1 /* Do not modify this file. Changes will be overwritten.                      */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3 /* packet-lpp.c                                                               */
4 /* asn2wrs.py -p lpp -c ./lpp.cnf -s ./packet-lpp-template -D . -O ../.. LPP-PDU-Definitions.asn LPP-Broadcast-Definitions.asn */
5 
6 /* Input file: packet-lpp-template.c */
7 
8 #line 1 "./asn1/lpp/packet-lpp-template.c"
9 /* packet-lpp.c
10  * Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
11  * Copyright 2011-2021 Pascal Quantin <pascal@wireshark.org>
12  *
13  * Wireshark - Network traffic analyzer
14  * By Gerald Combs <gerald@wireshark.org>
15  * Copyright 1998 Gerald Combs
16  *
17  * SPDX-License-Identifier: GPL-2.0-or-later
18  *
19  * Ref 3GPP TS 37.355 version 16.6.0 Release 16
20  * http://www.3gpp.org
21  */
22 
23 #include "config.h"
24 
25 #include "math.h"
26 
27 #include <epan/packet.h>
28 #include <epan/asn1.h>
29 #include <epan/tfs.h>
30 #include <epan/proto_data.h>
31 
32 #include "packet-per.h"
33 #include "packet-lpp.h"
34 
35 #define PNAME  "LTE Positioning Protocol (LPP)"
36 #define PSNAME "LPP"
37 #define PFNAME "lpp"
38 
39 void proto_register_lpp(void);
40 void proto_reg_handoff_lpp(void);
41 
42 /* Initialize the protocol and registered fields */
43 static int proto_lpp = -1;
44 
45 
46 /*--- Included file: packet-lpp-hf.c ---*/
47 #line 1 "./asn1/lpp/packet-lpp-hf.c"
48 static int hf_lpp_LPP_Message_PDU = -1;           /* LPP_Message */
49 static int hf_lpp_lpp_Ellipsoid_Point_PDU = -1;   /* Ellipsoid_Point */
50 static int hf_lpp_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU = -1;  /* Ellipsoid_PointWithUncertaintyCircle */
51 static int hf_lpp_lpp_EllipsoidPointWithUncertaintyEllipse_PDU = -1;  /* EllipsoidPointWithUncertaintyEllipse */
52 static int hf_lpp_lpp_EllipsoidPointWithAltitude_PDU = -1;  /* EllipsoidPointWithAltitude */
53 static int hf_lpp_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU = -1;  /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
54 static int hf_lpp_lpp_EllipsoidArc_PDU = -1;      /* EllipsoidArc */
55 static int hf_lpp_lpp_HorizontalVelocity_PDU = -1;  /* HorizontalVelocity */
56 static int hf_lpp_lpp_HorizontalWithVerticalVelocity_PDU = -1;  /* HorizontalWithVerticalVelocity */
57 static int hf_lpp_lpp_HorizontalVelocityWithUncertainty_PDU = -1;  /* HorizontalVelocityWithUncertainty */
58 static int hf_lpp_lpp_Polygon_PDU = -1;           /* Polygon */
59 static int hf_lpp_lpp_LocationCoordinates_PDU = -1;  /* LocationCoordinates */
60 static int hf_lpp_lpp_Velocity_PDU = -1;          /* Velocity */
61 static int hf_lpp_lpp_LocationError_PDU = -1;     /* LocationError */
62 static int hf_lpp_lpp_LocationSource_r13_PDU = -1;  /* LocationSource_r13 */
63 static int hf_lpp_NR_DL_PRS_AssistanceData_r16_PDU = -1;  /* NR_DL_PRS_AssistanceData_r16 */
64 static int hf_lpp_GNSS_ReferenceTime_PDU = -1;    /* GNSS_ReferenceTime */
65 static int hf_lpp_GNSS_ReferenceLocation_PDU = -1;  /* GNSS_ReferenceLocation */
66 static int hf_lpp_GNSS_IonosphericModel_PDU = -1;  /* GNSS_IonosphericModel */
67 static int hf_lpp_GNSS_EarthOrientationParameters_PDU = -1;  /* GNSS_EarthOrientationParameters */
68 static int hf_lpp_GNSS_RTK_ReferenceStationInfo_r15_PDU = -1;  /* GNSS_RTK_ReferenceStationInfo_r15 */
69 static int hf_lpp_GNSS_RTK_CommonObservationInfo_r15_PDU = -1;  /* GNSS_RTK_CommonObservationInfo_r15 */
70 static int hf_lpp_GNSS_RTK_AuxiliaryStationData_r15_PDU = -1;  /* GNSS_RTK_AuxiliaryStationData_r15 */
71 static int hf_lpp_GNSS_SSR_CorrectionPoints_r16_PDU = -1;  /* GNSS_SSR_CorrectionPoints_r16 */
72 static int hf_lpp_GNSS_TimeModelList_PDU = -1;    /* GNSS_TimeModelList */
73 static int hf_lpp_GNSS_DifferentialCorrections_PDU = -1;  /* GNSS_DifferentialCorrections */
74 static int hf_lpp_GNSS_NavigationModel_PDU = -1;  /* GNSS_NavigationModel */
75 static int hf_lpp_GNSS_RealTimeIntegrity_PDU = -1;  /* GNSS_RealTimeIntegrity */
76 static int hf_lpp_GNSS_DataBitAssistance_PDU = -1;  /* GNSS_DataBitAssistance */
77 static int hf_lpp_GNSS_AcquisitionAssistance_PDU = -1;  /* GNSS_AcquisitionAssistance */
78 static int hf_lpp_GNSS_Almanac_PDU = -1;          /* GNSS_Almanac */
79 static int hf_lpp_GNSS_UTC_Model_PDU = -1;        /* GNSS_UTC_Model */
80 static int hf_lpp_GNSS_AuxiliaryInformation_PDU = -1;  /* GNSS_AuxiliaryInformation */
81 static int hf_lpp_BDS_DifferentialCorrections_r12_PDU = -1;  /* BDS_DifferentialCorrections_r12 */
82 static int hf_lpp_BDS_GridModelParameter_r12_PDU = -1;  /* BDS_GridModelParameter_r12 */
83 static int hf_lpp_GNSS_RTK_Observations_r15_PDU = -1;  /* GNSS_RTK_Observations_r15 */
84 static int hf_lpp_GLO_RTK_BiasInformation_r15_PDU = -1;  /* GLO_RTK_BiasInformation_r15 */
85 static int hf_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU = -1;  /* GNSS_RTK_MAC_CorrectionDifferences_r15 */
86 static int hf_lpp_GNSS_RTK_Residuals_r15_PDU = -1;  /* GNSS_RTK_Residuals_r15 */
87 static int hf_lpp_GNSS_RTK_FKP_Gradients_r15_PDU = -1;  /* GNSS_RTK_FKP_Gradients_r15 */
88 static int hf_lpp_GNSS_SSR_OrbitCorrections_r15_PDU = -1;  /* GNSS_SSR_OrbitCorrections_r15 */
89 static int hf_lpp_GNSS_SSR_ClockCorrections_r15_PDU = -1;  /* GNSS_SSR_ClockCorrections_r15 */
90 static int hf_lpp_GNSS_SSR_CodeBias_r15_PDU = -1;  /* GNSS_SSR_CodeBias_r15 */
91 static int hf_lpp_GNSS_SSR_URA_r16_PDU = -1;      /* GNSS_SSR_URA_r16 */
92 static int hf_lpp_GNSS_SSR_PhaseBias_r16_PDU = -1;  /* GNSS_SSR_PhaseBias_r16 */
93 static int hf_lpp_GNSS_SSR_STEC_Correction_r16_PDU = -1;  /* GNSS_SSR_STEC_Correction_r16 */
94 static int hf_lpp_GNSS_SSR_GriddedCorrection_r16_PDU = -1;  /* GNSS_SSR_GriddedCorrection_r16 */
95 static int hf_lpp_NavIC_DifferentialCorrections_r16_PDU = -1;  /* NavIC_DifferentialCorrections_r16 */
96 static int hf_lpp_NavIC_GridModelParameter_r16_PDU = -1;  /* NavIC_GridModelParameter_r16 */
97 static int hf_lpp_TBS_AssistanceDataList_r14_PDU = -1;  /* TBS_AssistanceDataList_r14 */
98 static int hf_lpp_lpp_Sensor_MeasurementInformation_r13_PDU = -1;  /* Sensor_MeasurementInformation_r13 */
99 static int hf_lpp_lpp_Sensor_MotionInformation_r15_PDU = -1;  /* Sensor_MotionInformation_r15 */
100 static int hf_lpp_lpp_DisplacementTimeStamp_r15_PDU = -1;  /* DisplacementTimeStamp_r15 */
101 static int hf_lpp_Sensor_AssistanceDataList_r14_PDU = -1;  /* Sensor_AssistanceDataList_r14 */
102 static int hf_lpp_OTDOA_UE_Assisted_r15_PDU = -1;  /* OTDOA_UE_Assisted_r15 */
103 static int hf_lpp_NR_UEB_TRP_LocationData_r16_PDU = -1;  /* NR_UEB_TRP_LocationData_r16 */
104 static int hf_lpp_NR_UEB_TRP_RTD_Info_r16_PDU = -1;  /* NR_UEB_TRP_RTD_Info_r16 */
105 static int hf_lpp_transactionID = -1;             /* LPP_TransactionID */
106 static int hf_lpp_endTransaction = -1;            /* BOOLEAN */
107 static int hf_lpp_sequenceNumber = -1;            /* SequenceNumber */
108 static int hf_lpp_acknowledgement = -1;           /* Acknowledgement */
109 static int hf_lpp_lpp_MessageBody = -1;           /* LPP_MessageBody */
110 static int hf_lpp_ackRequested = -1;              /* BOOLEAN */
111 static int hf_lpp_ackIndicator = -1;              /* SequenceNumber */
112 static int hf_lpp_c1 = -1;                        /* T_c1 */
113 static int hf_lpp_requestCapabilities = -1;       /* RequestCapabilities */
114 static int hf_lpp_provideCapabilities = -1;       /* ProvideCapabilities */
115 static int hf_lpp_requestAssistanceData = -1;     /* RequestAssistanceData */
116 static int hf_lpp_provideAssistanceData = -1;     /* ProvideAssistanceData */
117 static int hf_lpp_requestLocationInformation = -1;  /* RequestLocationInformation */
118 static int hf_lpp_provideLocationInformation = -1;  /* ProvideLocationInformation */
119 static int hf_lpp_abort = -1;                     /* Abort */
120 static int hf_lpp_error = -1;                     /* Error */
121 static int hf_lpp_spare7 = -1;                    /* NULL */
122 static int hf_lpp_spare6 = -1;                    /* NULL */
123 static int hf_lpp_spare5 = -1;                    /* NULL */
124 static int hf_lpp_spare4 = -1;                    /* NULL */
125 static int hf_lpp_spare3 = -1;                    /* NULL */
126 static int hf_lpp_spare2 = -1;                    /* NULL */
127 static int hf_lpp_spare1 = -1;                    /* NULL */
128 static int hf_lpp_spare0 = -1;                    /* NULL */
129 static int hf_lpp_messageClassExtension = -1;     /* T_messageClassExtension */
130 static int hf_lpp_initiator = -1;                 /* Initiator */
131 static int hf_lpp_transactionNumber = -1;         /* TransactionNumber */
132 static int hf_lpp_criticalExtensions = -1;        /* T_criticalExtensions */
133 static int hf_lpp_c1_01 = -1;                     /* T_c1_01 */
134 static int hf_lpp_requestCapabilities_r9 = -1;    /* RequestCapabilities_r9_IEs */
135 static int hf_lpp_criticalExtensionsFuture = -1;  /* T_criticalExtensionsFuture */
136 static int hf_lpp_commonIEsRequestCapabilities = -1;  /* CommonIEsRequestCapabilities */
137 static int hf_lpp_a_gnss_RequestCapabilities = -1;  /* A_GNSS_RequestCapabilities */
138 static int hf_lpp_otdoa_RequestCapabilities = -1;  /* OTDOA_RequestCapabilities */
139 static int hf_lpp_ecid_RequestCapabilities = -1;  /* ECID_RequestCapabilities */
140 static int hf_lpp_epdu_RequestCapabilities = -1;  /* EPDU_Sequence */
141 static int hf_lpp_sensor_RequestCapabilities_r13 = -1;  /* Sensor_RequestCapabilities_r13 */
142 static int hf_lpp_tbs_RequestCapabilities_r13 = -1;  /* TBS_RequestCapabilities_r13 */
143 static int hf_lpp_wlan_RequestCapabilities_r13 = -1;  /* WLAN_RequestCapabilities_r13 */
144 static int hf_lpp_bt_RequestCapabilities_r13 = -1;  /* BT_RequestCapabilities_r13 */
145 static int hf_lpp_nr_ECID_RequestCapabilities_r16 = -1;  /* NR_ECID_RequestCapabilities_r16 */
146 static int hf_lpp_nr_Multi_RTT_RequestCapabilities_r16 = -1;  /* NR_Multi_RTT_RequestCapabilities_r16 */
147 static int hf_lpp_nr_DL_AoD_RequestCapabilities_r16 = -1;  /* NR_DL_AoD_RequestCapabilities_r16 */
148 static int hf_lpp_nr_DL_TDOA_RequestCapabilities_r16 = -1;  /* NR_DL_TDOA_RequestCapabilities_r16 */
149 static int hf_lpp_nr_UL_RequestCapabilities_r16 = -1;  /* NR_UL_RequestCapabilities_r16 */
150 static int hf_lpp_criticalExtensions_01 = -1;     /* T_criticalExtensions_01 */
151 static int hf_lpp_c1_02 = -1;                     /* T_c1_02 */
152 static int hf_lpp_provideCapabilities_r9 = -1;    /* ProvideCapabilities_r9_IEs */
153 static int hf_lpp_criticalExtensionsFuture_01 = -1;  /* T_criticalExtensionsFuture_01 */
154 static int hf_lpp_commonIEsProvideCapabilities = -1;  /* CommonIEsProvideCapabilities */
155 static int hf_lpp_a_gnss_ProvideCapabilities = -1;  /* A_GNSS_ProvideCapabilities */
156 static int hf_lpp_otdoa_ProvideCapabilities = -1;  /* OTDOA_ProvideCapabilities */
157 static int hf_lpp_ecid_ProvideCapabilities = -1;  /* ECID_ProvideCapabilities */
158 static int hf_lpp_epdu_ProvideCapabilities = -1;  /* EPDU_Sequence */
159 static int hf_lpp_sensor_ProvideCapabilities_r13 = -1;  /* Sensor_ProvideCapabilities_r13 */
160 static int hf_lpp_tbs_ProvideCapabilities_r13 = -1;  /* TBS_ProvideCapabilities_r13 */
161 static int hf_lpp_wlan_ProvideCapabilities_r13 = -1;  /* WLAN_ProvideCapabilities_r13 */
162 static int hf_lpp_bt_ProvideCapabilities_r13 = -1;  /* BT_ProvideCapabilities_r13 */
163 static int hf_lpp_nr_ECID_ProvideCapabilities_r16 = -1;  /* NR_ECID_ProvideCapabilities_r16 */
164 static int hf_lpp_nr_Multi_RTT_ProvideCapabilities_r16 = -1;  /* NR_Multi_RTT_ProvideCapabilities_r16 */
165 static int hf_lpp_nr_DL_AoD_ProvideCapabilities_r16 = -1;  /* NR_DL_AoD_ProvideCapabilities_r16 */
166 static int hf_lpp_nr_DL_TDOA_ProvideCapabilities_r16 = -1;  /* NR_DL_TDOA_ProvideCapabilities_r16 */
167 static int hf_lpp_nr_UL_ProvideCapabilities_r16 = -1;  /* NR_UL_ProvideCapabilities_r16 */
168 static int hf_lpp_criticalExtensions_02 = -1;     /* T_criticalExtensions_02 */
169 static int hf_lpp_c1_03 = -1;                     /* T_c1_03 */
170 static int hf_lpp_requestAssistanceData_r9 = -1;  /* RequestAssistanceData_r9_IEs */
171 static int hf_lpp_criticalExtensionsFuture_02 = -1;  /* T_criticalExtensionsFuture_02 */
172 static int hf_lpp_commonIEsRequestAssistanceData = -1;  /* CommonIEsRequestAssistanceData */
173 static int hf_lpp_a_gnss_RequestAssistanceData = -1;  /* A_GNSS_RequestAssistanceData */
174 static int hf_lpp_otdoa_RequestAssistanceData = -1;  /* OTDOA_RequestAssistanceData */
175 static int hf_lpp_epdu_RequestAssistanceData = -1;  /* EPDU_Sequence */
176 static int hf_lpp_sensor_RequestAssistanceData_r14 = -1;  /* Sensor_RequestAssistanceData_r14 */
177 static int hf_lpp_tbs_RequestAssistanceData_r14 = -1;  /* TBS_RequestAssistanceData_r14 */
178 static int hf_lpp_wlan_RequestAssistanceData_r14 = -1;  /* WLAN_RequestAssistanceData_r14 */
179 static int hf_lpp_nr_Multi_RTT_RequestAssistanceData_r16 = -1;  /* NR_Multi_RTT_RequestAssistanceData_r16 */
180 static int hf_lpp_nr_DL_AoD_RequestAssistanceData_r16 = -1;  /* NR_DL_AoD_RequestAssistanceData_r16 */
181 static int hf_lpp_nr_DL_TDOA_RequestAssistanceData_r16 = -1;  /* NR_DL_TDOA_RequestAssistanceData_r16 */
182 static int hf_lpp_criticalExtensions_03 = -1;     /* T_criticalExtensions_03 */
183 static int hf_lpp_c1_04 = -1;                     /* T_c1_04 */
184 static int hf_lpp_provideAssistanceData_r9 = -1;  /* ProvideAssistanceData_r9_IEs */
185 static int hf_lpp_criticalExtensionsFuture_03 = -1;  /* T_criticalExtensionsFuture_03 */
186 static int hf_lpp_commonIEsProvideAssistanceData = -1;  /* CommonIEsProvideAssistanceData */
187 static int hf_lpp_a_gnss_ProvideAssistanceData = -1;  /* A_GNSS_ProvideAssistanceData */
188 static int hf_lpp_otdoa_ProvideAssistanceData = -1;  /* OTDOA_ProvideAssistanceData */
189 static int hf_lpp_epdu_Provide_Assistance_Data = -1;  /* EPDU_Sequence */
190 static int hf_lpp_sensor_ProvideAssistanceData_r14 = -1;  /* Sensor_ProvideAssistanceData_r14 */
191 static int hf_lpp_tbs_ProvideAssistanceData_r14 = -1;  /* TBS_ProvideAssistanceData_r14 */
192 static int hf_lpp_wlan_ProvideAssistanceData_r14 = -1;  /* WLAN_ProvideAssistanceData_r14 */
193 static int hf_lpp_nr_Multi_RTT_ProvideAssistanceData_r16 = -1;  /* NR_Multi_RTT_ProvideAssistanceData_r16 */
194 static int hf_lpp_nr_DL_AoD_ProvideAssistanceData_r16 = -1;  /* NR_DL_AoD_ProvideAssistanceData_r16 */
195 static int hf_lpp_nr_DL_TDOA_ProvideAssistanceData_r16 = -1;  /* NR_DL_TDOA_ProvideAssistanceData_r16 */
196 static int hf_lpp_criticalExtensions_04 = -1;     /* T_criticalExtensions_04 */
197 static int hf_lpp_c1_05 = -1;                     /* T_c1_05 */
198 static int hf_lpp_requestLocationInformation_r9 = -1;  /* RequestLocationInformation_r9_IEs */
199 static int hf_lpp_criticalExtensionsFuture_04 = -1;  /* T_criticalExtensionsFuture_04 */
200 static int hf_lpp_commonIEsRequestLocationInformation = -1;  /* CommonIEsRequestLocationInformation */
201 static int hf_lpp_a_gnss_RequestLocationInformation = -1;  /* A_GNSS_RequestLocationInformation */
202 static int hf_lpp_otdoa_RequestLocationInformation = -1;  /* OTDOA_RequestLocationInformation */
203 static int hf_lpp_ecid_RequestLocationInformation = -1;  /* ECID_RequestLocationInformation */
204 static int hf_lpp_epdu_RequestLocationInformation = -1;  /* EPDU_Sequence */
205 static int hf_lpp_sensor_RequestLocationInformation_r13 = -1;  /* Sensor_RequestLocationInformation_r13 */
206 static int hf_lpp_tbs_RequestLocationInformation_r13 = -1;  /* TBS_RequestLocationInformation_r13 */
207 static int hf_lpp_wlan_RequestLocationInformation_r13 = -1;  /* WLAN_RequestLocationInformation_r13 */
208 static int hf_lpp_bt_RequestLocationInformation_r13 = -1;  /* BT_RequestLocationInformation_r13 */
209 static int hf_lpp_nr_ECID_RequestLocationInformation_r16 = -1;  /* NR_ECID_RequestLocationInformation_r16 */
210 static int hf_lpp_nr_Multi_RTT_RequestLocationInformation_r16 = -1;  /* NR_Multi_RTT_RequestLocationInformation_r16 */
211 static int hf_lpp_nr_DL_AoD_RequestLocationInformation_r16 = -1;  /* NR_DL_AoD_RequestLocationInformation_r16 */
212 static int hf_lpp_nr_DL_TDOA_RequestLocationInformation_r16 = -1;  /* NR_DL_TDOA_RequestLocationInformation_r16 */
213 static int hf_lpp_criticalExtensions_05 = -1;     /* T_criticalExtensions_05 */
214 static int hf_lpp_c1_06 = -1;                     /* T_c1_06 */
215 static int hf_lpp_provideLocationInformation_r9 = -1;  /* ProvideLocationInformation_r9_IEs */
216 static int hf_lpp_criticalExtensionsFuture_05 = -1;  /* T_criticalExtensionsFuture_05 */
217 static int hf_lpp_commonIEsProvideLocationInformation = -1;  /* CommonIEsProvideLocationInformation */
218 static int hf_lpp_a_gnss_ProvideLocationInformation = -1;  /* A_GNSS_ProvideLocationInformation */
219 static int hf_lpp_otdoa_ProvideLocationInformation = -1;  /* OTDOA_ProvideLocationInformation */
220 static int hf_lpp_ecid_ProvideLocationInformation = -1;  /* ECID_ProvideLocationInformation */
221 static int hf_lpp_epdu_ProvideLocationInformation = -1;  /* EPDU_Sequence */
222 static int hf_lpp_sensor_ProvideLocationInformation_r13 = -1;  /* Sensor_ProvideLocationInformation_r13 */
223 static int hf_lpp_tbs_ProvideLocationInformation_r13 = -1;  /* TBS_ProvideLocationInformation_r13 */
224 static int hf_lpp_wlan_ProvideLocationInformation_r13 = -1;  /* WLAN_ProvideLocationInformation_r13 */
225 static int hf_lpp_bt_ProvideLocationInformation_r13 = -1;  /* BT_ProvideLocationInformation_r13 */
226 static int hf_lpp_nr_ECID_ProvideLocationInformation_r16 = -1;  /* NR_ECID_ProvideLocationInformation_r16 */
227 static int hf_lpp_nr_Multi_RTT_ProvideLocationInformation_r16 = -1;  /* NR_Multi_RTT_ProvideLocationInformation_r16 */
228 static int hf_lpp_nr_DL_AoD_ProvideLocationInformation_r16 = -1;  /* NR_DL_AoD_ProvideLocationInformation_r16 */
229 static int hf_lpp_nr_DL_TDOA_ProvideLocationInformation_r16 = -1;  /* NR_DL_TDOA_ProvideLocationInformation_r16 */
230 static int hf_lpp_criticalExtensions_06 = -1;     /* T_criticalExtensions_06 */
231 static int hf_lpp_c1_07 = -1;                     /* T_c1_07 */
232 static int hf_lpp_abort_r9 = -1;                  /* Abort_r9_IEs */
233 static int hf_lpp_criticalExtensionsFuture_06 = -1;  /* T_criticalExtensionsFuture_06 */
234 static int hf_lpp_commonIEsAbort = -1;            /* CommonIEsAbort */
235 static int hf_lpp_epdu_Abort = -1;                /* EPDU_Sequence */
236 static int hf_lpp_error_r9 = -1;                  /* Error_r9_IEs */
237 static int hf_lpp_criticalExtensionsFuture_07 = -1;  /* T_criticalExtensionsFuture_07 */
238 static int hf_lpp_commonIEsError = -1;            /* CommonIEsError */
239 static int hf_lpp_epdu_Error = -1;                /* EPDU_Sequence */
240 static int hf_lpp_accessTypes = -1;               /* T_accessTypes */
241 static int hf_lpp_carrierFreq_r14 = -1;           /* ARFCN_ValueEUTRA_r14 */
242 static int hf_lpp_carrierFreqOffset_r14 = -1;     /* CarrierFreqOffsetNB_r14 */
243 static int hf_lpp_plmn_Identity = -1;             /* T_plmn_Identity */
244 static int hf_lpp_mcc = -1;                       /* T_mcc */
245 static int hf_lpp_mcc_item = -1;                  /* INTEGER_0_9 */
246 static int hf_lpp_mnc = -1;                       /* T_mnc */
247 static int hf_lpp_mnc_item = -1;                  /* INTEGER_0_9 */
248 static int hf_lpp_cellIdentity = -1;              /* T_cellIdentity */
249 static int hf_lpp_eutra = -1;                     /* BIT_STRING_SIZE_28 */
250 static int hf_lpp_utra = -1;                      /* BIT_STRING_SIZE_32 */
251 static int hf_lpp_plmn_Identity_01 = -1;          /* T_plmn_Identity_01 */
252 static int hf_lpp_mcc_01 = -1;                    /* T_mcc_01 */
253 static int hf_lpp_mnc_01 = -1;                    /* T_mnc_01 */
254 static int hf_lpp_locationAreaCode = -1;          /* BIT_STRING_SIZE_16 */
255 static int hf_lpp_cellGlobalIdGERAN_cellIdentity = -1;  /* BIT_STRING_SIZE_16 */
256 static int hf_lpp_mcc_02 = -1;                    /* T_mcc_02 */
257 static int hf_lpp_mnc_02 = -1;                    /* T_mnc_02 */
258 static int hf_lpp_cellidentity = -1;              /* BIT_STRING_SIZE_28 */
259 static int hf_lpp_latitudeSign = -1;              /* T_latitudeSign */
260 static int hf_lpp_degreesLatitude = -1;           /* INTEGER_0_8388607 */
261 static int hf_lpp_degreesLongitude = -1;          /* INTEGER_M8388608_8388607 */
262 static int hf_lpp_latitudeSign_01 = -1;           /* T_latitudeSign_01 */
263 static int hf_lpp_uncertainty = -1;               /* INTEGER_0_127 */
264 static int hf_lpp_latitudeSign_02 = -1;           /* T_latitudeSign_02 */
265 static int hf_lpp_uncertaintySemiMajor = -1;      /* INTEGER_0_127 */
266 static int hf_lpp_uncertaintySemiMinor = -1;      /* INTEGER_0_127 */
267 static int hf_lpp_orientationMajorAxis = -1;      /* INTEGER_0_179 */
268 static int hf_lpp_confidence = -1;                /* INTEGER_0_100 */
269 static int hf_lpp_latitudeSign_03 = -1;           /* T_latitudeSign_03 */
270 static int hf_lpp_altitudeDirection = -1;         /* T_altitudeDirection */
271 static int hf_lpp_altitude = -1;                  /* INTEGER_0_32767 */
272 static int hf_lpp_latitudeSign_04 = -1;           /* T_latitudeSign_04 */
273 static int hf_lpp_altitudeDirection_01 = -1;      /* T_altitudeDirection_01 */
274 static int hf_lpp_uncertaintyAltitude = -1;       /* INTEGER_0_127 */
275 static int hf_lpp_latitudeSign_05 = -1;           /* T_latitudeSign_05 */
276 static int hf_lpp_innerRadius = -1;               /* INTEGER_0_65535 */
277 static int hf_lpp_uncertaintyRadius = -1;         /* INTEGER_0_127 */
278 static int hf_lpp_offsetAngle = -1;               /* INTEGER_0_179 */
279 static int hf_lpp_includedAngle = -1;             /* INTEGER_0_179 */
280 static int hf_lpp_EPDU_Sequence_item = -1;        /* EPDU */
281 static int hf_lpp_ePDU_Identifier = -1;           /* EPDU_Identifier */
282 static int hf_lpp_ePDU_Body = -1;                 /* EPDU_Body */
283 static int hf_lpp_ePDU_ID = -1;                   /* EPDU_ID */
284 static int hf_lpp_ePDU_Name = -1;                 /* EPDU_Name */
285 static int hf_lpp_degreesLatitude_r15 = -1;       /* INTEGER_M2147483648_2147483647 */
286 static int hf_lpp_degreesLongitude_r15 = -1;      /* INTEGER_M2147483648_2147483647 */
287 static int hf_lpp_uncertaintySemiMajor_r15 = -1;  /* INTEGER_0_255 */
288 static int hf_lpp_uncertaintySemiMinor_r15 = -1;  /* INTEGER_0_255 */
289 static int hf_lpp_orientationMajorAxis_r15 = -1;  /* INTEGER_0_179 */
290 static int hf_lpp_confidence_r15 = -1;            /* INTEGER_0_100 */
291 static int hf_lpp_altitude_r15 = -1;              /* INTEGER_M64000_1280000 */
292 static int hf_lpp_horizontalConfidence_r15 = -1;  /* INTEGER_0_100 */
293 static int hf_lpp_uncertaintyAltitude_r15 = -1;   /* INTEGER_0_255 */
294 static int hf_lpp_verticalConfidence_r15 = -1;    /* INTEGER_0_100 */
295 static int hf_lpp_bearing = -1;                   /* INTEGER_0_359 */
296 static int hf_lpp_horizontalSpeed = -1;           /* INTEGER_0_2047 */
297 static int hf_lpp_verticalDirection = -1;         /* T_verticalDirection */
298 static int hf_lpp_verticalSpeed = -1;             /* INTEGER_0_255 */
299 static int hf_lpp_uncertaintySpeed = -1;          /* INTEGER_0_255 */
300 static int hf_lpp_verticalDirection_01 = -1;      /* T_verticalDirection_01 */
301 static int hf_lpp_horizontalUncertaintySpeed = -1;  /* INTEGER_0_255 */
302 static int hf_lpp_verticalUncertaintySpeed = -1;  /* INTEGER_0_255 */
303 static int hf_lpp_ellipsoidPoint = -1;            /* BOOLEAN */
304 static int hf_lpp_ellipsoidPointWithUncertaintyCircle = -1;  /* BOOLEAN */
305 static int hf_lpp_ellipsoidPointWithUncertaintyEllipse = -1;  /* BOOLEAN */
306 static int hf_lpp_polygon = -1;                   /* BOOLEAN */
307 static int hf_lpp_ellipsoidPointWithAltitude = -1;  /* BOOLEAN */
308 static int hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid = -1;  /* BOOLEAN */
309 static int hf_lpp_ellipsoidArc = -1;              /* BOOLEAN */
310 static int hf_lpp_highAccuracyEllipsoidPointWithUncertaintyEllipse_r15 = -1;  /* BOOLEAN */
311 static int hf_lpp_highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15 = -1;  /* BOOLEAN */
312 static int hf_lpp_mcc_r15 = -1;                   /* T_mcc_r15 */
313 static int hf_lpp_mcc_r15_item = -1;              /* INTEGER_0_9 */
314 static int hf_lpp_mnc_r15 = -1;                   /* T_mnc_r15 */
315 static int hf_lpp_mnc_r15_item = -1;              /* INTEGER_0_9 */
316 static int hf_lpp_nr_cellidentity_r15 = -1;       /* BIT_STRING_SIZE_36 */
317 static int hf_lpp_periodicSessionID_r15 = -1;     /* PeriodicSessionID_r15 */
318 static int hf_lpp_updateCapabilities_r15 = -1;    /* UpdateCapabilities_r15 */
319 static int hf_lpp_periodicSessionInitiator_r15 = -1;  /* T_periodicSessionInitiator_r15 */
320 static int hf_lpp_periodicSessionNumber_r15 = -1;  /* INTEGER_0_255 */
321 static int hf_lpp_Polygon_item = -1;              /* PolygonPoints */
322 static int hf_lpp_latitudeSign_06 = -1;           /* T_latitudeSign_06 */
323 static int hf_lpp_posModes = -1;                  /* T_posModes */
324 static int hf_lpp_horizontalVelocity = -1;        /* BOOLEAN */
325 static int hf_lpp_horizontalWithVerticalVelocity = -1;  /* BOOLEAN */
326 static int hf_lpp_horizontalVelocityWithUncertainty = -1;  /* BOOLEAN */
327 static int hf_lpp_horizontalWithVerticalVelocityAndUncertainty = -1;  /* BOOLEAN */
328 static int hf_lpp_lpp_message_segmentation_req_r14 = -1;  /* T_lpp_message_segmentation_req_r14 */
329 static int hf_lpp_segmentationInfo_r14 = -1;      /* SegmentationInfo_r14 */
330 static int hf_lpp_lpp_message_segmentation_r14 = -1;  /* T_lpp_message_segmentation_r14 */
331 static int hf_lpp_primaryCellID = -1;             /* ECGI */
332 static int hf_lpp_periodicAssistanceDataReq_r15 = -1;  /* PeriodicAssistanceDataControlParameters_r15 */
333 static int hf_lpp_primaryCellID_r15 = -1;         /* NCGI_r15 */
334 static int hf_lpp_periodicAssistanceData_r15 = -1;  /* PeriodicAssistanceDataControlParameters_r15 */
335 static int hf_lpp_locationInformationType = -1;   /* LocationInformationType */
336 static int hf_lpp_triggeredReporting = -1;        /* TriggeredReportingCriteria */
337 static int hf_lpp_periodicalReporting = -1;       /* PeriodicalReportingCriteria */
338 static int hf_lpp_additionalInformation = -1;     /* AdditionalInformation */
339 static int hf_lpp_qos = -1;                       /* QoS */
340 static int hf_lpp_environment = -1;               /* Environment */
341 static int hf_lpp_locationCoordinateTypes = -1;   /* LocationCoordinateTypes */
342 static int hf_lpp_velocityTypes = -1;             /* VelocityTypes */
343 static int hf_lpp_messageSizeLimitNB_r14 = -1;    /* MessageSizeLimitNB_r14 */
344 static int hf_lpp_reportingAmount = -1;           /* T_reportingAmount */
345 static int hf_lpp_reportingInterval = -1;         /* T_reportingInterval */
346 static int hf_lpp_cellChange = -1;                /* BOOLEAN */
347 static int hf_lpp_reportingDuration = -1;         /* ReportingDuration */
348 static int hf_lpp_horizontalAccuracy = -1;        /* HorizontalAccuracy */
349 static int hf_lpp_verticalCoordinateRequest = -1;  /* BOOLEAN */
350 static int hf_lpp_verticalAccuracy = -1;          /* VerticalAccuracy */
351 static int hf_lpp_responseTime = -1;              /* ResponseTime */
352 static int hf_lpp_velocityRequest = -1;           /* BOOLEAN */
353 static int hf_lpp_responseTimeNB_r14 = -1;        /* ResponseTimeNB_r14 */
354 static int hf_lpp_horizontalAccuracyExt_r15 = -1;  /* HorizontalAccuracyExt_r15 */
355 static int hf_lpp_verticalAccuracyExt_r15 = -1;   /* VerticalAccuracyExt_r15 */
356 static int hf_lpp_accuracy = -1;                  /* INTEGER_0_127 */
357 static int hf_lpp_accuracyExt_r15 = -1;           /* INTEGER_0_255 */
358 static int hf_lpp_time = -1;                      /* INTEGER_1_128 */
359 static int hf_lpp_responseTimeEarlyFix_r12 = -1;  /* INTEGER_1_128 */
360 static int hf_lpp_unit_r15 = -1;                  /* T_unit_r15 */
361 static int hf_lpp_timeNB_r14 = -1;                /* INTEGER_1_512 */
362 static int hf_lpp_responseTimeEarlyFixNB_r14 = -1;  /* INTEGER_1_512 */
363 static int hf_lpp_unitNB_r15 = -1;                /* T_unitNB_r15 */
364 static int hf_lpp_measurementLimit_r14 = -1;      /* INTEGER_1_512 */
365 static int hf_lpp_locationEstimate = -1;          /* LocationCoordinates */
366 static int hf_lpp_velocityEstimate = -1;          /* Velocity */
367 static int hf_lpp_locationError = -1;             /* LocationError */
368 static int hf_lpp_earlyFixReport_r12 = -1;        /* EarlyFixReport_r12 */
369 static int hf_lpp_locationSource_r13 = -1;        /* LocationSource_r13 */
370 static int hf_lpp_locationTimestamp_r13 = -1;     /* UTCTime */
371 static int hf_lpp_ellipsoidPoint_01 = -1;         /* Ellipsoid_Point */
372 static int hf_lpp_ellipsoidPointWithUncertaintyCircle_01 = -1;  /* Ellipsoid_PointWithUncertaintyCircle */
373 static int hf_lpp_ellipsoidPointWithUncertaintyEllipse_01 = -1;  /* EllipsoidPointWithUncertaintyEllipse */
374 static int hf_lpp_locationCoordinates_polygon = -1;  /* Polygon */
375 static int hf_lpp_ellipsoidPointWithAltitude_01 = -1;  /* EllipsoidPointWithAltitude */
376 static int hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_01 = -1;  /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
377 static int hf_lpp_ellipsoidArc_01 = -1;           /* EllipsoidArc */
378 static int hf_lpp_highAccuracyEllipsoidPointWithUncertaintyEllipse_v1510 = -1;  /* HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15 */
379 static int hf_lpp_highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_v1510 = -1;  /* HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15 */
380 static int hf_lpp_horizontalVelocity_01 = -1;     /* HorizontalVelocity */
381 static int hf_lpp_horizontalWithVerticalVelocity_01 = -1;  /* HorizontalWithVerticalVelocity */
382 static int hf_lpp_horizontalVelocityWithUncertainty_01 = -1;  /* HorizontalVelocityWithUncertainty */
383 static int hf_lpp_horizontalWithVerticalVelocityAndUncertainty_01 = -1;  /* HorizontalWithVerticalVelocityAndUncertainty */
384 static int hf_lpp_locationfailurecause = -1;      /* LocationFailureCause */
385 static int hf_lpp_abortCause = -1;                /* T_abortCause */
386 static int hf_lpp_errorCause = -1;                /* T_errorCause */
387 static int hf_lpp_dl_PRS_ID_r16 = -1;             /* INTEGER_0_255 */
388 static int hf_lpp_nr_DL_PRS_ResourceID_List_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16 */
389 static int hf_lpp_nr_DL_PRS_ResourceID_List_r16_item = -1;  /* NR_DL_PRS_ResourceID_r16 */
390 static int hf_lpp_nr_DL_PRS_ResourceSetID_r16 = -1;  /* NR_DL_PRS_ResourceSetID_r16 */
391 static int hf_lpp_NR_AdditionalPathList_r16_item = -1;  /* NR_AdditionalPath_r16 */
392 static int hf_lpp_nr_RelativeTimeDifference_r16 = -1;  /* T_nr_RelativeTimeDifference_r16 */
393 static int hf_lpp_k0_r16 = -1;                    /* INTEGER_0_16351 */
394 static int hf_lpp_k1_r16 = -1;                    /* INTEGER_0_8176 */
395 static int hf_lpp_k2_r16 = -1;                    /* INTEGER_0_4088 */
396 static int hf_lpp_k3_r16 = -1;                    /* INTEGER_0_2044 */
397 static int hf_lpp_k4_r16 = -1;                    /* INTEGER_0_1022 */
398 static int hf_lpp_k5_r16 = -1;                    /* INTEGER_0_511 */
399 static int hf_lpp_nr_PathQuality_r16 = -1;        /* NR_TimingQuality_r16 */
400 static int hf_lpp_nr_DL_PRS_ReferenceInfo_r16 = -1;  /* DL_PRS_ID_Info_r16 */
401 static int hf_lpp_nr_DL_PRS_AssistanceDataList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16 */
402 static int hf_lpp_nr_DL_PRS_AssistanceDataList_r16_item = -1;  /* NR_DL_PRS_AssistanceDataPerFreq_r16 */
403 static int hf_lpp_nr_SSB_Config_r16 = -1;         /* SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16 */
404 static int hf_lpp_nr_SSB_Config_r16_item = -1;    /* NR_SSB_Config_r16 */
405 static int hf_lpp_nr_DL_PRS_PositioningFrequencyLayer_r16 = -1;  /* NR_DL_PRS_PositioningFrequencyLayer_r16 */
406 static int hf_lpp_nr_DL_PRS_AssistanceDataPerFreq_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16 */
407 static int hf_lpp_nr_DL_PRS_AssistanceDataPerFreq_r16_item = -1;  /* NR_DL_PRS_AssistanceDataPerTRP_r16 */
408 static int hf_lpp_nr_PhysCellID_r16 = -1;         /* NR_PhysCellID_r16 */
409 static int hf_lpp_nr_CellGlobalID_r16 = -1;       /* NCGI_r15 */
410 static int hf_lpp_nr_ARFCN_r16 = -1;              /* ARFCN_ValueNR_r15 */
411 static int hf_lpp_nr_DL_PRS_SFN0_Offset_r16 = -1;  /* NR_DL_PRS_SFN0_Offset_r16 */
412 static int hf_lpp_nr_DL_PRS_ExpectedRSTD_r16 = -1;  /* INTEGER_M3841_3841 */
413 static int hf_lpp_nr_DL_PRS_ExpectedRSTD_Uncertainty_r16 = -1;  /* INTEGER_0_246 */
414 static int hf_lpp_nr_DL_PRS_Info_r16 = -1;        /* NR_DL_PRS_Info_r16 */
415 static int hf_lpp_prs_OnlyTP_r16 = -1;            /* T_prs_OnlyTP_r16 */
416 static int hf_lpp_dl_PRS_SubcarrierSpacing_r16 = -1;  /* T_dl_PRS_SubcarrierSpacing_r16 */
417 static int hf_lpp_dl_PRS_ResourceBandwidth_r16 = -1;  /* INTEGER_1_63 */
418 static int hf_lpp_dl_PRS_StartPRB_r16 = -1;       /* INTEGER_0_2176 */
419 static int hf_lpp_dl_PRS_PointA_r16 = -1;         /* ARFCN_ValueNR_r15 */
420 static int hf_lpp_dl_PRS_CombSizeN_r16 = -1;      /* T_dl_PRS_CombSizeN_r16 */
421 static int hf_lpp_dl_PRS_CyclicPrefix_r16 = -1;   /* T_dl_PRS_CyclicPrefix_r16 */
422 static int hf_lpp_sfn_Offset_r16 = -1;            /* INTEGER_0_1023 */
423 static int hf_lpp_integerSubframeOffset_r16 = -1;  /* INTEGER_0_9 */
424 static int hf_lpp_NR_DL_PRS_BeamInfo_r16_item = -1;  /* NR_DL_PRS_BeamInfoPerFreqLayer_r16 */
425 static int hf_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16_item = -1;  /* NR_DL_PRS_BeamInfoPerTRP_r16 */
426 static int hf_lpp_associated_DL_PRS_ID_r16 = -1;  /* INTEGER_0_255 */
427 static int hf_lpp_lcs_GCS_TranslationParameter_r16 = -1;  /* LCS_GCS_TranslationParameter_r16 */
428 static int hf_lpp_dl_PRS_BeamInfoSet_r16 = -1;    /* DL_PRS_BeamInfoSet_r16 */
429 static int hf_lpp_DL_PRS_BeamInfoSet_r16_item = -1;  /* DL_PRS_BeamInfoResourceSet_r16 */
430 static int hf_lpp_DL_PRS_BeamInfoResourceSet_r16_item = -1;  /* DL_PRS_BeamInfoElement_r16 */
431 static int hf_lpp_dl_PRS_Azimuth_r16 = -1;        /* INTEGER_0_359 */
432 static int hf_lpp_dl_PRS_Azimuth_fine_r16 = -1;   /* INTEGER_0_9 */
433 static int hf_lpp_dl_PRS_Elevation_r16 = -1;      /* INTEGER_0_180 */
434 static int hf_lpp_dl_PRS_Elevation_fine_r16 = -1;  /* INTEGER_0_9 */
435 static int hf_lpp_alpha_r16 = -1;                 /* INTEGER_0_359 */
436 static int hf_lpp_alpha_fine_r16 = -1;            /* INTEGER_0_9 */
437 static int hf_lpp_beta_r16 = -1;                  /* INTEGER_0_359 */
438 static int hf_lpp_beta_fine_r16 = -1;             /* INTEGER_0_9 */
439 static int hf_lpp_gamma_r16 = -1;                 /* INTEGER_0_359 */
440 static int hf_lpp_gamma_fine_r16 = -1;            /* INTEGER_0_9 */
441 static int hf_lpp_nr_DL_PRS_ResourceSetList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16 */
442 static int hf_lpp_nr_DL_PRS_ResourceSetList_r16_item = -1;  /* NR_DL_PRS_ResourceSet_r16 */
443 static int hf_lpp_dl_PRS_Periodicity_and_ResourceSetSlotOffset_r16 = -1;  /* NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16 */
444 static int hf_lpp_dl_PRS_ResourceRepetitionFactor_r16 = -1;  /* T_dl_PRS_ResourceRepetitionFactor_r16 */
445 static int hf_lpp_dl_PRS_ResourceTimeGap_r16 = -1;  /* T_dl_PRS_ResourceTimeGap_r16 */
446 static int hf_lpp_dl_PRS_NumSymbols_r16 = -1;     /* T_dl_PRS_NumSymbols_r16 */
447 static int hf_lpp_dl_PRS_MutingOption1_r16 = -1;  /* DL_PRS_MutingOption1_r16 */
448 static int hf_lpp_dl_PRS_MutingOption2_r16 = -1;  /* DL_PRS_MutingOption2_r16 */
449 static int hf_lpp_dl_PRS_ResourcePower_r16 = -1;  /* INTEGER_M60_50 */
450 static int hf_lpp_dl_PRS_ResourceList_r16 = -1;   /* SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16 */
451 static int hf_lpp_dl_PRS_ResourceList_r16_item = -1;  /* NR_DL_PRS_Resource_r16 */
452 static int hf_lpp_dl_prs_MutingBitRepetitionFactor_r16 = -1;  /* T_dl_prs_MutingBitRepetitionFactor_r16 */
453 static int hf_lpp_nr_option1_muting_r16 = -1;     /* NR_MutingPattern_r16 */
454 static int hf_lpp_nr_option2_muting_r16 = -1;     /* NR_MutingPattern_r16 */
455 static int hf_lpp_po2_r16 = -1;                   /* BIT_STRING_SIZE_2 */
456 static int hf_lpp_po4_r16 = -1;                   /* BIT_STRING_SIZE_4 */
457 static int hf_lpp_po6_r16 = -1;                   /* BIT_STRING_SIZE_6 */
458 static int hf_lpp_po8_r16 = -1;                   /* BIT_STRING_SIZE_8 */
459 static int hf_lpp_po16_r16 = -1;                  /* BIT_STRING_SIZE_16 */
460 static int hf_lpp_po32_r16 = -1;                  /* BIT_STRING_SIZE_32 */
461 static int hf_lpp_nr_DL_PRS_ResourceID_r16 = -1;  /* NR_DL_PRS_ResourceID_r16 */
462 static int hf_lpp_dl_PRS_SequenceID_r16 = -1;     /* INTEGER_0_4095 */
463 static int hf_lpp_dl_PRS_CombSizeN_AndReOffset_r16 = -1;  /* T_dl_PRS_CombSizeN_AndReOffset_r16 */
464 static int hf_lpp_n2_r16 = -1;                    /* INTEGER_0_1 */
465 static int hf_lpp_n4_r16 = -1;                    /* INTEGER_0_3 */
466 static int hf_lpp_n6_r16 = -1;                    /* INTEGER_0_5 */
467 static int hf_lpp_n12_r16 = -1;                   /* INTEGER_0_11 */
468 static int hf_lpp_dl_PRS_ResourceSlotOffset_r16 = -1;  /* INTEGER_0_nrMaxResourceOffsetValue_1_r16 */
469 static int hf_lpp_dl_PRS_ResourceSymbolOffset_r16 = -1;  /* INTEGER_0_12 */
470 static int hf_lpp_dl_PRS_QCL_Info_r16 = -1;       /* DL_PRS_QCL_Info_r16 */
471 static int hf_lpp_ssb_r16 = -1;                   /* T_ssb_r16 */
472 static int hf_lpp_pci_r16 = -1;                   /* NR_PhysCellID_r16 */
473 static int hf_lpp_ssb_Index_r16 = -1;             /* INTEGER_0_63 */
474 static int hf_lpp_rs_Type_r16 = -1;               /* T_rs_Type_r16 */
475 static int hf_lpp_dl_PRS_r16 = -1;                /* T_dl_PRS_r16 */
476 static int hf_lpp_qcl_DL_PRS_ResourceID_r16 = -1;  /* NR_DL_PRS_ResourceID_r16 */
477 static int hf_lpp_qcl_DL_PRS_ResourceSetID_r16 = -1;  /* NR_DL_PRS_ResourceSetID_r16 */
478 static int hf_lpp_scs15_r16 = -1;                 /* T_scs15_r16 */
479 static int hf_lpp_n5_r16 = -1;                    /* INTEGER_0_4 */
480 static int hf_lpp_n8_r16 = -1;                    /* INTEGER_0_7 */
481 static int hf_lpp_n10_r16 = -1;                   /* INTEGER_0_9 */
482 static int hf_lpp_n16_r16 = -1;                   /* INTEGER_0_15 */
483 static int hf_lpp_n20_r16 = -1;                   /* INTEGER_0_19 */
484 static int hf_lpp_n32_r16 = -1;                   /* INTEGER_0_31 */
485 static int hf_lpp_n40_r16 = -1;                   /* INTEGER_0_39 */
486 static int hf_lpp_n64_r16 = -1;                   /* INTEGER_0_63 */
487 static int hf_lpp_n80_r16 = -1;                   /* INTEGER_0_79 */
488 static int hf_lpp_n160_r16 = -1;                  /* INTEGER_0_159 */
489 static int hf_lpp_n320_r16 = -1;                  /* INTEGER_0_319 */
490 static int hf_lpp_n640_r16 = -1;                  /* INTEGER_0_639 */
491 static int hf_lpp_n1280_r16 = -1;                 /* INTEGER_0_1279 */
492 static int hf_lpp_n2560_r16 = -1;                 /* INTEGER_0_2559 */
493 static int hf_lpp_n5120_r16 = -1;                 /* INTEGER_0_5119 */
494 static int hf_lpp_n10240_r16 = -1;                /* INTEGER_0_10239 */
495 static int hf_lpp_scs30_r16 = -1;                 /* T_scs30_r16 */
496 static int hf_lpp_n128_r16 = -1;                  /* INTEGER_0_127 */
497 static int hf_lpp_n20480_r16 = -1;                /* INTEGER_0_20479 */
498 static int hf_lpp_scs60_r16 = -1;                 /* T_scs60_r16 */
499 static int hf_lpp_n256_r16 = -1;                  /* INTEGER_0_255 */
500 static int hf_lpp_n40960_r16 = -1;                /* INTEGER_0_40959 */
501 static int hf_lpp_scs120_r16 = -1;                /* T_scs120_r16 */
502 static int hf_lpp_n512_r16 = -1;                  /* INTEGER_0_511 */
503 static int hf_lpp_n81920_r16 = -1;                /* INTEGER_0_81919 */
504 static int hf_lpp_prs_ProcessingCapabilityBandList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16 */
505 static int hf_lpp_prs_ProcessingCapabilityBandList_r16_item = -1;  /* PRS_ProcessingCapabilityPerBand_r16 */
506 static int hf_lpp_maxSupportedFreqLayers_r16 = -1;  /* INTEGER_1_4 */
507 static int hf_lpp_simulLTE_NR_PRS_r16 = -1;       /* T_simulLTE_NR_PRS_r16 */
508 static int hf_lpp_freqBandIndicatorNR_r16 = -1;   /* FreqBandIndicatorNR_r16 */
509 static int hf_lpp_supportedBandwidthPRS_r16 = -1;  /* T_supportedBandwidthPRS_r16 */
510 static int hf_lpp_fr1 = -1;                       /* T_fr1 */
511 static int hf_lpp_fr2 = -1;                       /* T_fr2 */
512 static int hf_lpp_dl_PRS_BufferType_r16 = -1;     /* T_dl_PRS_BufferType_r16 */
513 static int hf_lpp_durationOfPRS_Processing_r16 = -1;  /* T_durationOfPRS_Processing_r16 */
514 static int hf_lpp_durationOfPRS_ProcessingSymbols_r16 = -1;  /* T_durationOfPRS_ProcessingSymbols_r16 */
515 static int hf_lpp_durationOfPRS_ProcessingSymbolsInEveryTms_r16 = -1;  /* T_durationOfPRS_ProcessingSymbolsInEveryTms_r16 */
516 static int hf_lpp_maxNumOfDL_PRS_ResProcessedPerSlot_r16 = -1;  /* T_maxNumOfDL_PRS_ResProcessedPerSlot_r16 */
517 static int hf_lpp_scs15_r16_01 = -1;              /* T_scs15_r16_01 */
518 static int hf_lpp_scs30_r16_01 = -1;              /* T_scs30_r16_01 */
519 static int hf_lpp_scs60_r16_01 = -1;              /* T_scs60_r16_01 */
520 static int hf_lpp_scs120_r16_01 = -1;             /* T_scs120_r16_01 */
521 static int hf_lpp_dl_PRS_QCL_ProcessingCapabilityBandList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16 */
522 static int hf_lpp_dl_PRS_QCL_ProcessingCapabilityBandList_r16_item = -1;  /* DL_PRS_QCL_ProcessingCapabilityPerBand_r16 */
523 static int hf_lpp_ssb_FromNeighCellAsQCL_r16 = -1;  /* T_ssb_FromNeighCellAsQCL_r16 */
524 static int hf_lpp_prs_FromServNeighCellAsQCL_r16 = -1;  /* T_prs_FromServNeighCellAsQCL_r16 */
525 static int hf_lpp_maxNrOfDL_PRS_ResourceSetPerTrpPerFrequencyLayer_r16 = -1;  /* INTEGER_1_2 */
526 static int hf_lpp_maxNrOfTRP_AcrossFreqs_r16 = -1;  /* T_maxNrOfTRP_AcrossFreqs_r16 */
527 static int hf_lpp_maxNrOfPosLayer_r16 = -1;       /* INTEGER_1_4 */
528 static int hf_lpp_dl_PRS_ResourcesCapabilityBandList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16 */
529 static int hf_lpp_dl_PRS_ResourcesCapabilityBandList_r16_item = -1;  /* DL_PRS_ResourcesCapabilityPerBand_r16 */
530 static int hf_lpp_dl_PRS_ResourcesBandCombinationList_r16 = -1;  /* DL_PRS_ResourcesBandCombinationList_r16 */
531 static int hf_lpp_maxNrOfDL_PRS_ResourcesPerResourceSet_r16 = -1;  /* T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16 */
532 static int hf_lpp_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16 = -1;  /* T_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16 */
533 static int hf_lpp_DL_PRS_ResourcesBandCombinationList_r16_item = -1;  /* DL_PRS_ResourcesBandCombination_r16 */
534 static int hf_lpp_bandList_r16 = -1;              /* SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16 */
535 static int hf_lpp_bandList_r16_item = -1;         /* FreqBandIndicatorNR_r16 */
536 static int hf_lpp_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16 = -1;  /* T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16 */
537 static int hf_lpp_fr1_Only_r16 = -1;              /* T_fr1_Only_r16 */
538 static int hf_lpp_fr2_Only_r16 = -1;              /* T_fr2_Only_r16 */
539 static int hf_lpp_fr1_FR2Mix_r16 = -1;            /* T_fr1_FR2Mix_r16 */
540 static int hf_lpp_fr1_r16 = -1;                   /* T_fr1_r16 */
541 static int hf_lpp_fr2_r16 = -1;                   /* T_fr2_r16 */
542 static int hf_lpp_nr_TRP_LocationInfo_r16 = -1;   /* NR_TRP_LocationInfo_r16 */
543 static int hf_lpp_nr_DL_PRS_BeamInfo_r16 = -1;    /* NR_DL_PRS_BeamInfo_r16 */
544 static int hf_lpp_nr_RTD_Info_r16 = -1;           /* NR_RTD_Info_r16 */
545 static int hf_lpp_referenceTRP_RTD_Info_r16 = -1;  /* ReferenceTRP_RTD_Info_r16 */
546 static int hf_lpp_rtd_InfoList_r16 = -1;          /* RTD_InfoList_r16 */
547 static int hf_lpp_dl_PRS_ID_Ref_r16 = -1;         /* INTEGER_0_255 */
548 static int hf_lpp_nr_PhysCellID_Ref_r16 = -1;     /* NR_PhysCellID_r16 */
549 static int hf_lpp_nr_CellGlobalID_Ref_r16 = -1;   /* NCGI_r15 */
550 static int hf_lpp_nr_ARFCN_Ref_r16 = -1;          /* ARFCN_ValueNR_r15 */
551 static int hf_lpp_refTime_r16 = -1;               /* T_refTime_r16 */
552 static int hf_lpp_systemFrameNumber_r16 = -1;     /* BIT_STRING_SIZE_10 */
553 static int hf_lpp_utc_r16 = -1;                   /* UTCTime */
554 static int hf_lpp_rtd_RefQuality_r16 = -1;        /* NR_TimingQuality_r16 */
555 static int hf_lpp_RTD_InfoList_r16_item = -1;     /* RTD_InfoListPerFreqLayer_r16 */
556 static int hf_lpp_RTD_InfoListPerFreqLayer_r16_item = -1;  /* RTD_InfoElement_r16 */
557 static int hf_lpp_subframeOffset_r16 = -1;        /* INTEGER_0_1966079 */
558 static int hf_lpp_rtd_Quality_r16 = -1;           /* NR_TimingQuality_r16 */
559 static int hf_lpp_NR_SelectedDL_PRS_IndexList_r16_item = -1;  /* NR_SelectedDL_PRS_PerFreq_r16 */
560 static int hf_lpp_nr_SelectedDL_PRS_FrequencyLayerIndex_r16 = -1;  /* INTEGER_0_nrMaxFreqLayers_1_r16 */
561 static int hf_lpp_nr_SelectedDL_PRS_IndexListPerFreq_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16 */
562 static int hf_lpp_nr_SelectedDL_PRS_IndexListPerFreq_r16_item = -1;  /* NR_SelectedDL_PRS_IndexPerTRP_r16 */
563 static int hf_lpp_nr_SelectedTRP_Index_r16 = -1;  /* INTEGER_0_nrMaxTRPsPerFreq_1_r16 */
564 static int hf_lpp_dl_SelectedPRS_ResourceSetIndexList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16 */
565 static int hf_lpp_dl_SelectedPRS_ResourceSetIndexList_r16_item = -1;  /* DL_SelectedPRS_ResourceSetIndex_r16 */
566 static int hf_lpp_nr_DL_SelectedPRS_ResourceSetIndex_r16 = -1;  /* INTEGER_0_nrMaxSetsPerTrpPerFreqLayer_1_r16 */
567 static int hf_lpp_dl_SelectedPRS_ResourceIndexList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16 */
568 static int hf_lpp_dl_SelectedPRS_ResourceIndexList_r16_item = -1;  /* DL_SelectedPRS_ResourceIndex_r16 */
569 static int hf_lpp_nr_DL_SelectedPRS_ResourceIdIndex_r16 = -1;  /* INTEGER_0_nrMaxNumDL_PRS_ResourcesPerSet_1_r16 */
570 static int hf_lpp_ss_PBCH_BlockPower_r16 = -1;    /* INTEGER_M60_50 */
571 static int hf_lpp_halfFrameIndex_r16 = -1;        /* INTEGER_0_1 */
572 static int hf_lpp_ssb_periodicity_r16 = -1;       /* T_ssb_periodicity_r16 */
573 static int hf_lpp_ssb_PositionsInBurst_r16 = -1;  /* T_ssb_PositionsInBurst_r16 */
574 static int hf_lpp_shortBitmap_r16 = -1;           /* BIT_STRING_SIZE_4 */
575 static int hf_lpp_mediumBitmap_r16 = -1;          /* BIT_STRING_SIZE_8 */
576 static int hf_lpp_longBitmap_r16 = -1;            /* BIT_STRING_SIZE_64 */
577 static int hf_lpp_ssb_SubcarrierSpacing_r16 = -1;  /* T_ssb_SubcarrierSpacing_r16 */
578 static int hf_lpp_sfn_SSB_Offset_r16 = -1;        /* INTEGER_0_15 */
579 static int hf_lpp_nr_SFN_r16 = -1;                /* INTEGER_0_1023 */
580 static int hf_lpp_nr_Slot_r16 = -1;               /* T_nr_Slot_r16 */
581 static int hf_lpp_scs15_r16_02 = -1;              /* INTEGER_0_9 */
582 static int hf_lpp_scs30_r16_02 = -1;              /* INTEGER_0_19 */
583 static int hf_lpp_scs60_r16_02 = -1;              /* INTEGER_0_39 */
584 static int hf_lpp_scs120_r16_02 = -1;             /* INTEGER_0_79 */
585 static int hf_lpp_timingQualityValue_r16 = -1;    /* INTEGER_0_31 */
586 static int hf_lpp_timingQualityResolution_r16 = -1;  /* T_timingQualityResolution_r16 */
587 static int hf_lpp_NR_TRP_LocationInfo_r16_item = -1;  /* NR_TRP_LocationInfoPerFreqLayer_r16 */
588 static int hf_lpp_referencePoint_r16 = -1;        /* ReferencePoint_r16 */
589 static int hf_lpp_trp_LocationInfoList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16 */
590 static int hf_lpp_trp_LocationInfoList_r16_item = -1;  /* TRP_LocationInfoElement_r16 */
591 static int hf_lpp_trp_Location_r16 = -1;          /* RelativeLocation_r16 */
592 static int hf_lpp_trp_DL_PRS_ResourceSets_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16 */
593 static int hf_lpp_trp_DL_PRS_ResourceSets_r16_item = -1;  /* DL_PRS_ResourceSets_TRP_Element_r16 */
594 static int hf_lpp_dl_PRS_ResourceSetARP_r16 = -1;  /* RelativeLocation_r16 */
595 static int hf_lpp_dl_PRS_Resource_ARP_List_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16 */
596 static int hf_lpp_dl_PRS_Resource_ARP_List_r16_item = -1;  /* DL_PRS_Resource_ARP_Element_r16 */
597 static int hf_lpp_dl_PRS_Resource_ARP_location_r16 = -1;  /* RelativeLocation_r16 */
598 static int hf_lpp_srs_CapabilityBandList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16 */
599 static int hf_lpp_srs_CapabilityBandList_r16_item = -1;  /* SRS_CapabilityPerBand_r16 */
600 static int hf_lpp_srs_PosResourceConfigCA_BandList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16 */
601 static int hf_lpp_srs_PosResourceConfigCA_BandList_r16_item = -1;  /* SRS_PosResourcesPerBand_r16 */
602 static int hf_lpp_maxNumberSRS_PosPathLossEstimateAllServingCells_r16 = -1;  /* T_maxNumberSRS_PosPathLossEstimateAllServingCells_r16 */
603 static int hf_lpp_maxNumberSRS_PosSpatialRelationsAllServingCells_r16 = -1;  /* T_maxNumberSRS_PosSpatialRelationsAllServingCells_r16 */
604 static int hf_lpp_olpc_SRS_Pos_r16 = -1;          /* OLPC_SRS_Pos_r16 */
605 static int hf_lpp_spatialRelationsSRS_Pos_r16 = -1;  /* SpatialRelationsSRS_Pos_r16 */
606 static int hf_lpp_olpc_SRS_PosBasedOnPRS_Serving_r16 = -1;  /* T_olpc_SRS_PosBasedOnPRS_Serving_r16 */
607 static int hf_lpp_olpc_SRS_PosBasedOnSSB_Neigh_r16 = -1;  /* T_olpc_SRS_PosBasedOnSSB_Neigh_r16 */
608 static int hf_lpp_olpc_SRS_PosBasedOnPRS_Neigh_r16 = -1;  /* T_olpc_SRS_PosBasedOnPRS_Neigh_r16 */
609 static int hf_lpp_maxNumberPathLossEstimatePerServing_r16 = -1;  /* T_maxNumberPathLossEstimatePerServing_r16 */
610 static int hf_lpp_spatialRelation_SRS_PosBasedOnSSB_Serving_r16 = -1;  /* T_spatialRelation_SRS_PosBasedOnSSB_Serving_r16 */
611 static int hf_lpp_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16 = -1;  /* T_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16 */
612 static int hf_lpp_spatialRelation_SRS_PosBasedOnPRS_Serving_r16 = -1;  /* T_spatialRelation_SRS_PosBasedOnPRS_Serving_r16 */
613 static int hf_lpp_spatialRelation_SRS_PosBasedOnSRS_r16 = -1;  /* T_spatialRelation_SRS_PosBasedOnSRS_r16 */
614 static int hf_lpp_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16 = -1;  /* T_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16 */
615 static int hf_lpp_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16 = -1;  /* T_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16 */
616 static int hf_lpp_maxNumberSRS_PosResourceSetsPerBWP_r16 = -1;  /* T_maxNumberSRS_PosResourceSetsPerBWP_r16 */
617 static int hf_lpp_maxNumberSRS_PosResourcesPerBWP_r16 = -1;  /* T_maxNumberSRS_PosResourcesPerBWP_r16 */
618 static int hf_lpp_maxNumberPeriodicSRS_PosResourcesPerBWP_r16 = -1;  /* T_maxNumberPeriodicSRS_PosResourcesPerBWP_r16 */
619 static int hf_lpp_maxNumberAP_SRS_PosResourcesPerBWP_r16 = -1;  /* T_maxNumberAP_SRS_PosResourcesPerBWP_r16 */
620 static int hf_lpp_maxNumberSP_SRS_PosResourcesPerBWP_r16 = -1;  /* T_maxNumberSP_SRS_PosResourcesPerBWP_r16 */
621 static int hf_lpp_referencePointGeographicLocation_r16 = -1;  /* T_referencePointGeographicLocation_r16 */
622 static int hf_lpp_location3D_r16 = -1;            /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
623 static int hf_lpp_ha_location3D_r16 = -1;         /* HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15 */
624 static int hf_lpp_milli_arc_second_units_r16 = -1;  /* T_milli_arc_second_units_r16 */
625 static int hf_lpp_height_units_r16 = -1;          /* T_height_units_r16 */
626 static int hf_lpp_delta_latitude_r16 = -1;        /* Delta_Latitude_r16 */
627 static int hf_lpp_delta_longitude_r16 = -1;       /* Delta_Longitude_r16 */
628 static int hf_lpp_delta_height_r16 = -1;          /* Delta_Height_r16 */
629 static int hf_lpp_locationUNC_r16 = -1;           /* LocationUncertainty_r16 */
630 static int hf_lpp_delta_Latitude_r16 = -1;        /* INTEGER_M1024_1023 */
631 static int hf_lpp_coarse_delta_Latitude_r16 = -1;  /* INTEGER_0_4095 */
632 static int hf_lpp_delta_Longitude_r16 = -1;       /* INTEGER_M1024_1023 */
633 static int hf_lpp_coarse_delta_Longitude_r16 = -1;  /* INTEGER_0_4095 */
634 static int hf_lpp_delta_Height_r16 = -1;          /* INTEGER_M1024_1023 */
635 static int hf_lpp_coarse_delta_Height_r16 = -1;   /* INTEGER_0_4095 */
636 static int hf_lpp_horizontalUncertainty_r16 = -1;  /* INTEGER_0_255 */
637 static int hf_lpp_horizontalConfidence_r16 = -1;  /* INTEGER_0_100 */
638 static int hf_lpp_verticalUncertainty_r16 = -1;   /* INTEGER_0_255 */
639 static int hf_lpp_verticalConfidence_r16 = -1;    /* INTEGER_0_100 */
640 static int hf_lpp_otdoa_ReferenceCellInfo = -1;   /* OTDOA_ReferenceCellInfo */
641 static int hf_lpp_otdoa_NeighbourCellInfo = -1;   /* OTDOA_NeighbourCellInfoList */
642 static int hf_lpp_otdoa_Error = -1;               /* OTDOA_Error */
643 static int hf_lpp_otdoa_ReferenceCellInfoNB_r14 = -1;  /* OTDOA_ReferenceCellInfoNB_r14 */
644 static int hf_lpp_otdoa_NeighbourCellInfoNB_r14 = -1;  /* OTDOA_NeighbourCellInfoListNB_r14 */
645 static int hf_lpp_physCellId = -1;                /* INTEGER_0_503 */
646 static int hf_lpp_cellGlobalId = -1;              /* ECGI */
647 static int hf_lpp_earfcnRef = -1;                 /* ARFCN_ValueEUTRA */
648 static int hf_lpp_antennaPortConfig = -1;         /* T_antennaPortConfig */
649 static int hf_lpp_cpLength = -1;                  /* T_cpLength */
650 static int hf_lpp_prsInfo = -1;                   /* PRS_Info */
651 static int hf_lpp_earfcnRef_v9a0 = -1;            /* ARFCN_ValueEUTRA_v9a0 */
652 static int hf_lpp_tpId_r14 = -1;                  /* INTEGER_0_4095 */
653 static int hf_lpp_cpLengthCRS_r14 = -1;           /* T_cpLengthCRS_r14 */
654 static int hf_lpp_sameMBSFNconfigRef_r14 = -1;    /* BOOLEAN */
655 static int hf_lpp_dlBandwidth_r14 = -1;           /* T_dlBandwidth_r14 */
656 static int hf_lpp_addPRSconfigRef_r14 = -1;       /* SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info */
657 static int hf_lpp_addPRSconfigRef_r14_item = -1;  /* PRS_Info */
658 static int hf_lpp_nr_LTE_SFN_Offset_r15 = -1;     /* INTEGER_0_1023 */
659 static int hf_lpp_tdd_config_v1520 = -1;          /* TDD_Config_v1520 */
660 static int hf_lpp_nr_LTE_fineTiming_Offset_r15 = -1;  /* INTEGER_0_19 */
661 static int hf_lpp_prs_Bandwidth = -1;             /* T_prs_Bandwidth */
662 static int hf_lpp_prs_ConfigurationIndex = -1;    /* INTEGER_0_4095 */
663 static int hf_lpp_numDL_Frames = -1;              /* T_numDL_Frames */
664 static int hf_lpp_prs_MutingInfo_r9 = -1;         /* T_prs_MutingInfo_r9 */
665 static int hf_lpp_po2_r9 = -1;                    /* BIT_STRING_SIZE_2 */
666 static int hf_lpp_po4_r9 = -1;                    /* BIT_STRING_SIZE_4 */
667 static int hf_lpp_po8_r9 = -1;                    /* BIT_STRING_SIZE_8 */
668 static int hf_lpp_po16_r9 = -1;                   /* BIT_STRING_SIZE_16 */
669 static int hf_lpp_po32_v1420 = -1;                /* BIT_STRING_SIZE_32 */
670 static int hf_lpp_po64_v1420 = -1;                /* BIT_STRING_SIZE_64 */
671 static int hf_lpp_po128_v1420 = -1;               /* BIT_STRING_SIZE_128 */
672 static int hf_lpp_po256_v1420 = -1;               /* BIT_STRING_SIZE_256 */
673 static int hf_lpp_po512_v1420 = -1;               /* BIT_STRING_SIZE_512 */
674 static int hf_lpp_po1024_v1420 = -1;              /* BIT_STRING_SIZE_1024 */
675 static int hf_lpp_prsID_r14 = -1;                 /* INTEGER_0_4095 */
676 static int hf_lpp_add_numDL_Frames_r14 = -1;      /* INTEGER_1_160 */
677 static int hf_lpp_prsOccGroupLen_r14 = -1;        /* T_prsOccGroupLen_r14 */
678 static int hf_lpp_prsHoppingInfo_r14 = -1;        /* T_prsHoppingInfo_r14 */
679 static int hf_lpp_nb2_r14 = -1;                   /* INTEGER_0_maxAvailNarrowBands_Minus1_r14 */
680 static int hf_lpp_nb4_r14 = -1;                   /* T_nb4_r14 */
681 static int hf_lpp_nb4_r14_item = -1;              /* INTEGER_0_maxAvailNarrowBands_Minus1_r14 */
682 static int hf_lpp_subframeAssignment_v1520 = -1;  /* T_subframeAssignment_v1520 */
683 static int hf_lpp_OTDOA_NeighbourCellInfoList_item = -1;  /* OTDOA_NeighbourFreqInfo */
684 static int hf_lpp_OTDOA_NeighbourFreqInfo_item = -1;  /* OTDOA_NeighbourCellInfoElement */
685 static int hf_lpp_earfcn = -1;                    /* ARFCN_ValueEUTRA */
686 static int hf_lpp_cpLength_01 = -1;               /* T_cpLength_01 */
687 static int hf_lpp_antennaPortConfig_01 = -1;      /* T_antennaPortConfig_01 */
688 static int hf_lpp_slotNumberOffset = -1;          /* INTEGER_0_19 */
689 static int hf_lpp_prs_SubframeOffset = -1;        /* INTEGER_0_1279 */
690 static int hf_lpp_expectedRSTD = -1;              /* INTEGER_0_16383 */
691 static int hf_lpp_expectedRSTD_Uncertainty = -1;  /* INTEGER_0_1023 */
692 static int hf_lpp_earfcn_v9a0 = -1;               /* ARFCN_ValueEUTRA_v9a0 */
693 static int hf_lpp_prs_only_tp_r14 = -1;           /* T_prs_only_tp_r14 */
694 static int hf_lpp_cpLengthCRS_r14_01 = -1;        /* T_cpLengthCRS_r14_01 */
695 static int hf_lpp_sameMBSFNconfigNeighbour_r14 = -1;  /* BOOLEAN */
696 static int hf_lpp_dlBandwidth_r14_01 = -1;        /* T_dlBandwidth_r14_01 */
697 static int hf_lpp_addPRSconfigNeighbour_r14 = -1;  /* SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14 */
698 static int hf_lpp_addPRSconfigNeighbour_r14_item = -1;  /* Add_PRSconfigNeighbourElement_r14 */
699 static int hf_lpp_add_prsInfo_r14 = -1;           /* PRS_Info */
700 static int hf_lpp_physCellIdNB_r14 = -1;          /* INTEGER_0_503 */
701 static int hf_lpp_cellGlobalIdNB_r14 = -1;        /* ECGI */
702 static int hf_lpp_carrierFreqRef_r14 = -1;        /* CarrierFreq_NB_r14 */
703 static int hf_lpp_earfcn_r14 = -1;                /* ARFCN_ValueEUTRA_r14 */
704 static int hf_lpp_eutra_NumCRS_Ports_r14 = -1;    /* T_eutra_NumCRS_Ports_r14 */
705 static int hf_lpp_otdoa_SIB1_NB_repetitions_r14 = -1;  /* T_otdoa_SIB1_NB_repetitions_r14 */
706 static int hf_lpp_nprsInfo_r14 = -1;              /* PRS_Info_NB_r14 */
707 static int hf_lpp_nprsInfo_Type2_v1470 = -1;      /* PRS_Info_NB_r14 */
708 static int hf_lpp_tdd_config_r15 = -1;            /* TDD_Config_v1520 */
709 static int hf_lpp_PRS_Info_NB_r14_item = -1;      /* NPRS_Info_r14 */
710 static int hf_lpp_operationModeInfoNPRS_r14 = -1;  /* T_operationModeInfoNPRS_r14 */
711 static int hf_lpp_nprs_carrier_r14 = -1;          /* CarrierFreq_NB_r14 */
712 static int hf_lpp_nprsSequenceInfo_r14 = -1;      /* INTEGER_0_174 */
713 static int hf_lpp_nprsID_r14 = -1;                /* INTEGER_0_4095 */
714 static int hf_lpp_partA_r14 = -1;                 /* T_partA_r14 */
715 static int hf_lpp_nprsBitmap_r14 = -1;            /* T_nprsBitmap_r14 */
716 static int hf_lpp_subframePattern10_r14 = -1;     /* BIT_STRING_SIZE_10 */
717 static int hf_lpp_subframePattern40_r14 = -1;     /* BIT_STRING_SIZE_40 */
718 static int hf_lpp_nprs_MutingInfoA_r14 = -1;      /* T_nprs_MutingInfoA_r14 */
719 static int hf_lpp_po2_r14 = -1;                   /* BIT_STRING_SIZE_2 */
720 static int hf_lpp_po4_r14 = -1;                   /* BIT_STRING_SIZE_4 */
721 static int hf_lpp_po8_r14 = -1;                   /* BIT_STRING_SIZE_8 */
722 static int hf_lpp_po16_r14 = -1;                  /* BIT_STRING_SIZE_16 */
723 static int hf_lpp_partB_r14 = -1;                 /* T_partB_r14 */
724 static int hf_lpp_nprs_Period_r14 = -1;           /* T_nprs_Period_r14 */
725 static int hf_lpp_nprs_startSF_r14 = -1;          /* T_nprs_startSF_r14 */
726 static int hf_lpp_nprs_NumSF_r14 = -1;            /* T_nprs_NumSF_r14 */
727 static int hf_lpp_nprs_MutingInfoB_r14 = -1;      /* T_nprs_MutingInfoB_r14 */
728 static int hf_lpp_sib1_SF_TDD_r15 = -1;           /* T_sib1_SF_TDD_r15 */
729 static int hf_lpp_partA_TDD_r15 = -1;             /* T_partA_TDD_r15 */
730 static int hf_lpp_nprsBitmap_r15 = -1;            /* T_nprsBitmap_r15 */
731 static int hf_lpp_subframePattern10_TDD_r15 = -1;  /* BIT_STRING_SIZE_8 */
732 static int hf_lpp_subframePattern40_TDD_r15 = -1;  /* BIT_STRING_SIZE_32 */
733 static int hf_lpp_nprs_MutingInfoA_r15 = -1;      /* T_nprs_MutingInfoA_r15 */
734 static int hf_lpp_po2_r15 = -1;                   /* BIT_STRING_SIZE_2 */
735 static int hf_lpp_po4_r15 = -1;                   /* BIT_STRING_SIZE_4 */
736 static int hf_lpp_po8_r15 = -1;                   /* BIT_STRING_SIZE_8 */
737 static int hf_lpp_po16_r15 = -1;                  /* BIT_STRING_SIZE_16 */
738 static int hf_lpp_OTDOA_NeighbourCellInfoListNB_r14_item = -1;  /* OTDOA_NeighbourCellInfoNB_r14 */
739 static int hf_lpp_carrierFreq_r14_01 = -1;        /* CarrierFreq_NB_r14 */
740 static int hf_lpp_eutra_NumCRS_Ports_r14_01 = -1;  /* T_eutra_NumCRS_Ports_r14_01 */
741 static int hf_lpp_otdoa_SIB1_NB_repetitions_r14_01 = -1;  /* T_otdoa_SIB1_NB_repetitions_r14_01 */
742 static int hf_lpp_nprs_slotNumberOffset_r14 = -1;  /* INTEGER_0_19 */
743 static int hf_lpp_nprs_SFN_Offset_r14 = -1;       /* INTEGER_0_63 */
744 static int hf_lpp_nprs_SubframeOffset_r14 = -1;   /* INTEGER_0_1279 */
745 static int hf_lpp_expectedRSTD_r14 = -1;          /* INTEGER_0_16383 */
746 static int hf_lpp_expectedRSTD_Uncertainty_r14 = -1;  /* INTEGER_0_1023 */
747 static int hf_lpp_prsNeighbourCellIndex_r14 = -1;  /* INTEGER_1_72 */
748 static int hf_lpp_adType_r14 = -1;                /* T_adType_r14 */
749 static int hf_lpp_nrPhysCellId_r15 = -1;          /* INTEGER_0_1007 */
750 static int hf_lpp_otdoaSignalMeasurementInformation = -1;  /* OTDOA_SignalMeasurementInformation */
751 static int hf_lpp_otdoaSignalMeasurementInformation_NB_r14 = -1;  /* OTDOA_SignalMeasurementInformation_NB_r14 */
752 static int hf_lpp_systemFrameNumber = -1;         /* BIT_STRING_SIZE_10 */
753 static int hf_lpp_physCellIdRef = -1;             /* INTEGER_0_503 */
754 static int hf_lpp_cellGlobalIdRef = -1;           /* ECGI */
755 static int hf_lpp_referenceQuality = -1;          /* OTDOA_MeasQuality */
756 static int hf_lpp_neighbourMeasurementList = -1;  /* NeighbourMeasurementList */
757 static int hf_lpp_tpIdRef_r14 = -1;               /* INTEGER_0_4095 */
758 static int hf_lpp_prsIdRef_r14 = -1;              /* INTEGER_0_4095 */
759 static int hf_lpp_additionalPathsRef_r14 = -1;    /* AdditionalPathList_r14 */
760 static int hf_lpp_nprsIdRef_r14 = -1;             /* INTEGER_0_4095 */
761 static int hf_lpp_carrierFreqOffsetNB_Ref_r14 = -1;  /* CarrierFreqOffsetNB_r14 */
762 static int hf_lpp_hyperSFN_r14 = -1;              /* BIT_STRING_SIZE_10 */
763 static int hf_lpp_motionTimeSource_r15 = -1;      /* MotionTimeSource_r15 */
764 static int hf_lpp_NeighbourMeasurementList_item = -1;  /* NeighbourMeasurementElement */
765 static int hf_lpp_physCellIdNeighbour = -1;       /* INTEGER_0_503 */
766 static int hf_lpp_cellGlobalIdNeighbour = -1;     /* ECGI */
767 static int hf_lpp_earfcnNeighbour = -1;           /* ARFCN_ValueEUTRA */
768 static int hf_lpp_rstd = -1;                      /* INTEGER_0_12711 */
769 static int hf_lpp_rstd_Quality = -1;              /* OTDOA_MeasQuality */
770 static int hf_lpp_earfcnNeighbour_v9a0 = -1;      /* ARFCN_ValueEUTRA_v9a0 */
771 static int hf_lpp_tpIdNeighbour_r14 = -1;         /* INTEGER_0_4095 */
772 static int hf_lpp_prsIdNeighbour_r14 = -1;        /* INTEGER_0_4095 */
773 static int hf_lpp_delta_rstd_r14 = -1;            /* INTEGER_0_5 */
774 static int hf_lpp_additionalPathsNeighbour_r14 = -1;  /* AdditionalPathList_r14 */
775 static int hf_lpp_nprsIdNeighbour_r14 = -1;       /* INTEGER_0_4095 */
776 static int hf_lpp_carrierFreqOffsetNB_Neighbour_r14 = -1;  /* CarrierFreqOffsetNB_r14 */
777 static int hf_lpp_delta_SFN_r15 = -1;             /* INTEGER_M8192_8191 */
778 static int hf_lpp_AdditionalPathList_r14_item = -1;  /* AdditionalPath_r14 */
779 static int hf_lpp_timeSource_r15 = -1;            /* T_timeSource_r15 */
780 static int hf_lpp_systemFrameNumber_r14 = -1;     /* BIT_STRING_SIZE_10 */
781 static int hf_lpp_physCellIdRef_r14 = -1;         /* INTEGER_0_503 */
782 static int hf_lpp_cellGlobalIdRef_r14 = -1;       /* ECGI */
783 static int hf_lpp_earfcnRef_r14 = -1;             /* ARFCN_ValueEUTRA_r14 */
784 static int hf_lpp_referenceQuality_r14 = -1;      /* OTDOA_MeasQuality */
785 static int hf_lpp_neighbourMeasurementList_r14 = -1;  /* NeighbourMeasurementList_NB_r14 */
786 static int hf_lpp_NeighbourMeasurementList_NB_r14_item = -1;  /* NeighbourMeasurementElement_NB_r14 */
787 static int hf_lpp_physCellIdNeighbour_r14 = -1;   /* INTEGER_0_503 */
788 static int hf_lpp_cellGlobalIdNeighbour_r14 = -1;  /* ECGI */
789 static int hf_lpp_earfcnNeighbour_r14 = -1;       /* ARFCN_ValueEUTRA_r14 */
790 static int hf_lpp_rstd_r14 = -1;                  /* INTEGER_0_12711 */
791 static int hf_lpp_rstd_Quality_r14 = -1;          /* OTDOA_MeasQuality */
792 static int hf_lpp_error_Resolution = -1;          /* T_error_Resolution */
793 static int hf_lpp_error_Value = -1;               /* T_error_Value */
794 static int hf_lpp_error_NumSamples = -1;          /* T_error_NumSamples */
795 static int hf_lpp_relativeTimeDifference_r14 = -1;  /* INTEGER_M256_255 */
796 static int hf_lpp_path_Quality_r14 = -1;          /* OTDOA_MeasQuality */
797 static int hf_lpp_assistanceAvailability = -1;    /* BOOLEAN */
798 static int hf_lpp_multipathRSTD_r14 = -1;         /* T_multipathRSTD_r14 */
799 static int hf_lpp_maxNoOfRSTDmeas_r14 = -1;       /* INTEGER_1_32 */
800 static int hf_lpp_motionMeasurements_r15 = -1;    /* T_motionMeasurements_r15 */
801 static int hf_lpp_otdoa_Mode = -1;                /* T_otdoa_Mode */
802 static int hf_lpp_supportedBandListEUTRA = -1;    /* SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA */
803 static int hf_lpp_supportedBandListEUTRA_item = -1;  /* SupportedBandEUTRA */
804 static int hf_lpp_supportedBandListEUTRA_v9a0 = -1;  /* SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0 */
805 static int hf_lpp_supportedBandListEUTRA_v9a0_item = -1;  /* SupportedBandEUTRA_v9a0 */
806 static int hf_lpp_interFreqRSTDmeasurement_r10 = -1;  /* T_interFreqRSTDmeasurement_r10 */
807 static int hf_lpp_additionalNeighbourCellInfoList_r10 = -1;  /* T_additionalNeighbourCellInfoList_r10 */
808 static int hf_lpp_prs_id_r14 = -1;                /* T_prs_id_r14 */
809 static int hf_lpp_tp_separation_via_muting_r14 = -1;  /* T_tp_separation_via_muting_r14 */
810 static int hf_lpp_additional_prs_config_r14 = -1;  /* T_additional_prs_config_r14 */
811 static int hf_lpp_prs_based_tbs_r14 = -1;         /* T_prs_based_tbs_r14 */
812 static int hf_lpp_additionalPathsReport_r14 = -1;  /* T_additionalPathsReport_r14 */
813 static int hf_lpp_densePrsConfig_r14 = -1;        /* T_densePrsConfig_r14 */
814 static int hf_lpp_maxSupportedPrsBandwidth_r14 = -1;  /* T_maxSupportedPrsBandwidth_r14 */
815 static int hf_lpp_prsOccGroup_r14 = -1;           /* T_prsOccGroup_r14 */
816 static int hf_lpp_prsFrequencyHopping_r14 = -1;   /* T_prsFrequencyHopping_r14 */
817 static int hf_lpp_maxSupportedPrsConfigs_r14 = -1;  /* T_maxSupportedPrsConfigs_r14 */
818 static int hf_lpp_periodicalReporting_r14 = -1;   /* T_periodicalReporting_r14 */
819 static int hf_lpp_multiPrbNprs_r14 = -1;          /* T_multiPrbNprs_r14 */
820 static int hf_lpp_idleStateForMeasurements_r14 = -1;  /* T_idleStateForMeasurements_r14 */
821 static int hf_lpp_numberOfRXantennas_r14 = -1;    /* T_numberOfRXantennas_r14 */
822 static int hf_lpp_motionMeasurements_r15_01 = -1;  /* T_motionMeasurements_r15_01 */
823 static int hf_lpp_interRAT_RSTDmeasurement_r15 = -1;  /* T_interRAT_RSTDmeasurement_r15 */
824 static int hf_lpp_bandEUTRA = -1;                 /* INTEGER_1_maxFBI */
825 static int hf_lpp_bandEUTRA_v9a0 = -1;            /* INTEGER_maxFBI_Plus1_maxFBI2 */
826 static int hf_lpp_locationServerErrorCauses = -1;  /* OTDOA_LocationServerErrorCauses */
827 static int hf_lpp_targetDeviceErrorCauses = -1;   /* OTDOA_TargetDeviceErrorCauses */
828 static int hf_lpp_cause = -1;                     /* T_cause */
829 static int hf_lpp_cause_01 = -1;                  /* T_cause_01 */
830 static int hf_lpp_gnss_CommonAssistData = -1;     /* GNSS_CommonAssistData */
831 static int hf_lpp_gnss_GenericAssistData = -1;    /* GNSS_GenericAssistData */
832 static int hf_lpp_gnss_Error = -1;                /* A_GNSS_Error */
833 static int hf_lpp_gnss_PeriodicAssistData_r15 = -1;  /* GNSS_PeriodicAssistData_r15 */
834 static int hf_lpp_gnss_ReferenceTime = -1;        /* GNSS_ReferenceTime */
835 static int hf_lpp_gnss_ReferenceLocation = -1;    /* GNSS_ReferenceLocation */
836 static int hf_lpp_gnss_IonosphericModel = -1;     /* GNSS_IonosphericModel */
837 static int hf_lpp_gnss_EarthOrientationParameters = -1;  /* GNSS_EarthOrientationParameters */
838 static int hf_lpp_gnss_RTK_ReferenceStationInfo_r15 = -1;  /* GNSS_RTK_ReferenceStationInfo_r15 */
839 static int hf_lpp_gnss_RTK_CommonObservationInfo_r15 = -1;  /* GNSS_RTK_CommonObservationInfo_r15 */
840 static int hf_lpp_gnss_RTK_AuxiliaryStationData_r15 = -1;  /* GNSS_RTK_AuxiliaryStationData_r15 */
841 static int hf_lpp_gnss_SSR_CorrectionPoints_r16 = -1;  /* GNSS_SSR_CorrectionPoints_r16 */
842 static int hf_lpp_GNSS_GenericAssistData_item = -1;  /* GNSS_GenericAssistDataElement */
843 static int hf_lpp_gnss_ID = -1;                   /* GNSS_ID */
844 static int hf_lpp_sbas_ID = -1;                   /* SBAS_ID */
845 static int hf_lpp_gnss_TimeModels = -1;           /* GNSS_TimeModelList */
846 static int hf_lpp_gnss_DifferentialCorrections = -1;  /* GNSS_DifferentialCorrections */
847 static int hf_lpp_gnss_NavigationModel = -1;      /* GNSS_NavigationModel */
848 static int hf_lpp_gnss_RealTimeIntegrity = -1;    /* GNSS_RealTimeIntegrity */
849 static int hf_lpp_gnss_DataBitAssistance = -1;    /* GNSS_DataBitAssistance */
850 static int hf_lpp_gnss_AcquisitionAssistance = -1;  /* GNSS_AcquisitionAssistance */
851 static int hf_lpp_gnss_Almanac = -1;              /* GNSS_Almanac */
852 static int hf_lpp_gnss_UTC_Model = -1;            /* GNSS_UTC_Model */
853 static int hf_lpp_gnss_AuxiliaryInformation = -1;  /* GNSS_AuxiliaryInformation */
854 static int hf_lpp_bds_DifferentialCorrections_r12 = -1;  /* BDS_DifferentialCorrections_r12 */
855 static int hf_lpp_bds_GridModel_r12 = -1;         /* BDS_GridModelParameter_r12 */
856 static int hf_lpp_gnss_RTK_Observations_r15 = -1;  /* GNSS_RTK_Observations_r15 */
857 static int hf_lpp_glo_RTK_BiasInformation_r15 = -1;  /* GLO_RTK_BiasInformation_r15 */
858 static int hf_lpp_gnss_RTK_MAC_CorrectionDifferences_r15 = -1;  /* GNSS_RTK_MAC_CorrectionDifferences_r15 */
859 static int hf_lpp_gnss_RTK_Residuals_r15 = -1;    /* GNSS_RTK_Residuals_r15 */
860 static int hf_lpp_gnss_RTK_FKP_Gradients_r15 = -1;  /* GNSS_RTK_FKP_Gradients_r15 */
861 static int hf_lpp_gnss_SSR_OrbitCorrections_r15 = -1;  /* GNSS_SSR_OrbitCorrections_r15 */
862 static int hf_lpp_gnss_SSR_ClockCorrections_r15 = -1;  /* GNSS_SSR_ClockCorrections_r15 */
863 static int hf_lpp_gnss_SSR_CodeBias_r15 = -1;     /* GNSS_SSR_CodeBias_r15 */
864 static int hf_lpp_gnss_SSR_URA_r16 = -1;          /* GNSS_SSR_URA_r16 */
865 static int hf_lpp_gnss_SSR_PhaseBias_r16 = -1;    /* GNSS_SSR_PhaseBias_r16 */
866 static int hf_lpp_gnss_SSR_STEC_Correction_r16 = -1;  /* GNSS_SSR_STEC_Correction_r16 */
867 static int hf_lpp_gnss_SSR_GriddedCorrection_r16 = -1;  /* GNSS_SSR_GriddedCorrection_r16 */
868 static int hf_lpp_navic_DifferentialCorrections_r16 = -1;  /* NavIC_DifferentialCorrections_r16 */
869 static int hf_lpp_navic_GridModel_r16 = -1;       /* NavIC_GridModelParameter_r16 */
870 static int hf_lpp_gnss_RTK_PeriodicObservations_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
871 static int hf_lpp_glo_RTK_PeriodicBiasInformation_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
872 static int hf_lpp_gnss_RTK_MAC_PeriodicCorrectionDifferences_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
873 static int hf_lpp_gnss_RTK_PeriodicResiduals_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
874 static int hf_lpp_gnss_RTK_FKP_PeriodicGradients_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
875 static int hf_lpp_gnss_SSR_PeriodicOrbitCorrections_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
876 static int hf_lpp_gnss_SSR_PeriodicClockCorrections_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
877 static int hf_lpp_gnss_SSR_PeriodicCodeBias_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
878 static int hf_lpp_gnss_SSR_PeriodicURA_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
879 static int hf_lpp_gnss_SSR_PeriodicPhaseBias_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
880 static int hf_lpp_gnss_SSR_PeriodicSTEC_Correction_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
881 static int hf_lpp_gnss_SSR_PeriodicGriddedCorrection_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
882 static int hf_lpp_gnss_SystemTime = -1;           /* GNSS_SystemTime */
883 static int hf_lpp_referenceTimeUnc = -1;          /* INTEGER_0_127 */
884 static int hf_lpp_gnss_ReferenceTimeForCells = -1;  /* SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell */
885 static int hf_lpp_gnss_ReferenceTimeForCells_item = -1;  /* GNSS_ReferenceTimeForOneCell */
886 static int hf_lpp_networkTime = -1;               /* NetworkTime */
887 static int hf_lpp_bsAlign = -1;                   /* T_bsAlign */
888 static int hf_lpp_gnss_TimeID = -1;               /* GNSS_ID */
889 static int hf_lpp_gnss_DayNumber = -1;            /* INTEGER_0_32767 */
890 static int hf_lpp_gnss_TimeOfDay = -1;            /* INTEGER_0_86399 */
891 static int hf_lpp_gnss_TimeOfDayFrac_msec = -1;   /* INTEGER_0_999 */
892 static int hf_lpp_notificationOfLeapSecond = -1;  /* T_notificationOfLeapSecond */
893 static int hf_lpp_gps_TOW_Assist = -1;            /* GPS_TOW_Assist */
894 static int hf_lpp_GPS_TOW_Assist_item = -1;       /* GPS_TOW_AssistElement */
895 static int hf_lpp_satelliteID = -1;               /* INTEGER_1_64 */
896 static int hf_lpp_tlmWord = -1;                   /* INTEGER_0_16383 */
897 static int hf_lpp_antiSpoof = -1;                 /* INTEGER_0_1 */
898 static int hf_lpp_alert = -1;                     /* INTEGER_0_1 */
899 static int hf_lpp_tlmRsvdBits = -1;               /* INTEGER_0_3 */
900 static int hf_lpp_secondsFromFrameStructureStart = -1;  /* INTEGER_0_12533 */
901 static int hf_lpp_fractionalSecondsFromFrameStructureStart = -1;  /* INTEGER_0_3999999 */
902 static int hf_lpp_frameDrift = -1;                /* INTEGER_M64_63 */
903 static int hf_lpp_cellID = -1;                    /* T_cellID */
904 static int hf_lpp_eUTRA = -1;                     /* T_eUTRA */
905 static int hf_lpp_cellGlobalIdEUTRA = -1;         /* CellGlobalIdEUTRA_AndUTRA */
906 static int hf_lpp_uTRA = -1;                      /* T_uTRA */
907 static int hf_lpp_mode = -1;                      /* T_mode */
908 static int hf_lpp_fdd = -1;                       /* T_fdd */
909 static int hf_lpp_primary_CPICH_Info = -1;        /* INTEGER_0_511 */
910 static int hf_lpp_tdd = -1;                       /* T_tdd */
911 static int hf_lpp_cellParameters = -1;            /* INTEGER_0_127 */
912 static int hf_lpp_cellGlobalIdUTRA = -1;          /* CellGlobalIdEUTRA_AndUTRA */
913 static int hf_lpp_uarfcn = -1;                    /* ARFCN_ValueUTRA */
914 static int hf_lpp_gSM = -1;                       /* T_gSM */
915 static int hf_lpp_bcchCarrier = -1;               /* INTEGER_0_1023 */
916 static int hf_lpp_bsic = -1;                      /* INTEGER_0_63 */
917 static int hf_lpp_cellGlobalIdGERAN = -1;         /* CellGlobalIdGERAN */
918 static int hf_lpp_nBIoT_r14 = -1;                 /* T_nBIoT_r14 */
919 static int hf_lpp_nbPhysCellId_r14 = -1;          /* INTEGER_0_503 */
920 static int hf_lpp_nbCellGlobalId_r14 = -1;        /* ECGI */
921 static int hf_lpp_nbCarrierFreq_r14 = -1;         /* CarrierFreq_NB_r14 */
922 static int hf_lpp_nr_r15 = -1;                    /* T_nr_r15 */
923 static int hf_lpp_nrCellGlobalID_r15 = -1;        /* NCGI_r15 */
924 static int hf_lpp_nrARFCN_r15 = -1;               /* ARFCN_ValueNR_r15 */
925 static int hf_lpp_threeDlocation = -1;            /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
926 static int hf_lpp_klobucharModel = -1;            /* KlobucharModelParameter */
927 static int hf_lpp_neQuickModel = -1;              /* NeQuickModelParameter */
928 static int hf_lpp_klobucharModel2_r16 = -1;       /* KlobucharModel2Parameter_r16 */
929 static int hf_lpp_dataID = -1;                    /* T_dataID */
930 static int hf_lpp_alfa0 = -1;                     /* INTEGER_M128_127 */
931 static int hf_lpp_alfa1 = -1;                     /* INTEGER_M128_127 */
932 static int hf_lpp_alfa2 = -1;                     /* INTEGER_M128_127 */
933 static int hf_lpp_alfa3 = -1;                     /* INTEGER_M128_127 */
934 static int hf_lpp_beta0 = -1;                     /* INTEGER_M128_127 */
935 static int hf_lpp_beta1 = -1;                     /* INTEGER_M128_127 */
936 static int hf_lpp_beta2 = -1;                     /* INTEGER_M128_127 */
937 static int hf_lpp_beta3 = -1;                     /* INTEGER_M128_127 */
938 static int hf_lpp_alfa1_r16 = -1;                 /* INTEGER_0_1023 */
939 static int hf_lpp_alfa2_r16 = -1;                 /* INTEGER_M128_127 */
940 static int hf_lpp_alfa3_r16 = -1;                 /* INTEGER_0_255 */
941 static int hf_lpp_alfa4_r16 = -1;                 /* INTEGER_0_255 */
942 static int hf_lpp_alfa5_r16 = -1;                 /* INTEGER_0_255 */
943 static int hf_lpp_alfa6_r16 = -1;                 /* INTEGER_M128_127 */
944 static int hf_lpp_alfa7_r16 = -1;                 /* INTEGER_M128_127 */
945 static int hf_lpp_alfa8_r16 = -1;                 /* INTEGER_M128_127 */
946 static int hf_lpp_alfa9_r16 = -1;                 /* INTEGER_M128_127 */
947 static int hf_lpp_ai0 = -1;                       /* INTEGER_0_2047 */
948 static int hf_lpp_ai1 = -1;                       /* INTEGER_M1024_1023 */
949 static int hf_lpp_ai2 = -1;                       /* INTEGER_M8192_8191 */
950 static int hf_lpp_ionoStormFlag1 = -1;            /* INTEGER_0_1 */
951 static int hf_lpp_ionoStormFlag2 = -1;            /* INTEGER_0_1 */
952 static int hf_lpp_ionoStormFlag3 = -1;            /* INTEGER_0_1 */
953 static int hf_lpp_ionoStormFlag4 = -1;            /* INTEGER_0_1 */
954 static int hf_lpp_ionoStormFlag5 = -1;            /* INTEGER_0_1 */
955 static int hf_lpp_teop = -1;                      /* INTEGER_0_65535 */
956 static int hf_lpp_pmX = -1;                       /* INTEGER_M1048576_1048575 */
957 static int hf_lpp_pmXdot = -1;                    /* INTEGER_M16384_16383 */
958 static int hf_lpp_pmY = -1;                       /* INTEGER_M1048576_1048575 */
959 static int hf_lpp_pmYdot = -1;                    /* INTEGER_M16384_16383 */
960 static int hf_lpp_deltaUT1 = -1;                  /* INTEGER_M1073741824_1073741823 */
961 static int hf_lpp_deltaUT1dot = -1;               /* INTEGER_M262144_262143 */
962 static int hf_lpp_referenceStationID_r15 = -1;    /* GNSS_ReferenceStationID_r15 */
963 static int hf_lpp_referenceStationIndicator_r15 = -1;  /* T_referenceStationIndicator_r15 */
964 static int hf_lpp_antenna_reference_point_ECEF_X_r15 = -1;  /* INTEGER_M137438953472_137438953471 */
965 static int hf_lpp_antenna_reference_point_ECEF_Y_r15 = -1;  /* INTEGER_M137438953472_137438953471 */
966 static int hf_lpp_antenna_reference_point_ECEF_Z_r15 = -1;  /* INTEGER_M137438953472_137438953471 */
967 static int hf_lpp_antennaHeight_r15 = -1;         /* INTEGER_0_65535 */
968 static int hf_lpp_antennaDescription_r15 = -1;    /* AntennaDescription_r15 */
969 static int hf_lpp_antenna_reference_point_unc_r15 = -1;  /* AntennaReferencePointUnc_r15 */
970 static int hf_lpp_physical_reference_station_info_r15 = -1;  /* PhysicalReferenceStationInfo_r15 */
971 static int hf_lpp_equalIntegerAmbiguityLevel_r16 = -1;  /* EqualIntegerAmbiguityLevel_r16 */
972 static int hf_lpp_antennaDescriptor_r15 = -1;     /* VisibleString_SIZE_1_256 */
973 static int hf_lpp_antennaSetUpID_r15 = -1;        /* T_antennaSetUpID_r15 */
974 static int hf_lpp_uncertainty_X_r15 = -1;         /* INTEGER_0_255 */
975 static int hf_lpp_confidence_X_r15 = -1;          /* INTEGER_0_100 */
976 static int hf_lpp_uncertainty_Y_r15 = -1;         /* INTEGER_0_255 */
977 static int hf_lpp_confidence_Y_r15 = -1;          /* INTEGER_0_100 */
978 static int hf_lpp_uncertainty_Z_r15 = -1;         /* INTEGER_0_255 */
979 static int hf_lpp_confidence_Z_r15 = -1;          /* INTEGER_0_100 */
980 static int hf_lpp_physicalReferenceStationID_r15 = -1;  /* GNSS_ReferenceStationID_r15 */
981 static int hf_lpp_physical_ARP_ECEF_X_r15 = -1;   /* INTEGER_M137438953472_137438953471 */
982 static int hf_lpp_physical_ARP_ECEF_Y_r15 = -1;   /* INTEGER_M137438953472_137438953471 */
983 static int hf_lpp_physical_ARP_ECEF_Z_r15 = -1;   /* INTEGER_M137438953472_137438953471 */
984 static int hf_lpp_physical_ARP_unc_r15 = -1;      /* AntennaReferencePointUnc_r15 */
985 static int hf_lpp_allReferenceStations_r16 = -1;  /* NULL */
986 static int hf_lpp_referenceStationList_r16 = -1;  /* ReferenceStationList_r16 */
987 static int hf_lpp_ReferenceStationList_r16_item = -1;  /* GNSS_ReferenceStationID_r15 */
988 static int hf_lpp_clockSteeringIndicator_r15 = -1;  /* INTEGER_0_3 */
989 static int hf_lpp_externalClockIndicator_r15 = -1;  /* INTEGER_0_3 */
990 static int hf_lpp_smoothingIndicator_r15 = -1;    /* T_smoothingIndicator_r15 */
991 static int hf_lpp_smoothingInterval_r15 = -1;     /* T_smoothingInterval_r15 */
992 static int hf_lpp_networkID_r15 = -1;             /* GNSS_NetworkID_r15 */
993 static int hf_lpp_subNetworkID_r15 = -1;          /* GNSS_SubNetworkID_r15 */
994 static int hf_lpp_master_referenceStationID_r15 = -1;  /* GNSS_ReferenceStationID_r15 */
995 static int hf_lpp_auxiliaryStationList_r15 = -1;  /* AuxiliaryStationList_r15 */
996 static int hf_lpp_AuxiliaryStationList_r15_item = -1;  /* AuxiliaryStationElement_r15 */
997 static int hf_lpp_aux_referenceStationID_r15 = -1;  /* GNSS_ReferenceStationID_r15 */
998 static int hf_lpp_aux_master_delta_latitude_r15 = -1;  /* INTEGER_M524288_524287 */
999 static int hf_lpp_aux_master_delta_longitude_r15 = -1;  /* INTEGER_M1048576_1048575 */
1000 static int hf_lpp_aux_master_delta_height_r15 = -1;  /* INTEGER_M4194304_4194303 */
1001 static int hf_lpp_aux_ARP_unc_r15 = -1;           /* Aux_ARP_Unc_r15 */
1002 static int hf_lpp_horizontalUncertainty_r15 = -1;  /* INTEGER_0_255 */
1003 static int hf_lpp_verticalUncertainty_r15 = -1;   /* INTEGER_0_255 */
1004 static int hf_lpp_correctionPointSetID_r16 = -1;  /* INTEGER_0_16383 */
1005 static int hf_lpp_correctionPoints_r16 = -1;      /* T_correctionPoints_r16 */
1006 static int hf_lpp_listOfCorrectionPoints_r16 = -1;  /* GNSS_SSR_ListOfCorrectionPoints_r16 */
1007 static int hf_lpp_arrayOfCorrectionPoints_r16 = -1;  /* GNSS_SSR_ArrayOfCorrectionPoints_r16 */
1008 static int hf_lpp_referencePointLatitude_r16 = -1;  /* INTEGER_M16384_16383 */
1009 static int hf_lpp_referencePointLongitude_r16 = -1;  /* INTEGER_M32768_32767 */
1010 static int hf_lpp_relativeLocationsList_r16 = -1;  /* SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16 */
1011 static int hf_lpp_relativeLocationsList_r16_item = -1;  /* RelativeLocationElement_r16 */
1012 static int hf_lpp_deltaLatitude_r16 = -1;         /* INTEGER_M512_511 */
1013 static int hf_lpp_deltaLongitude_r16 = -1;        /* INTEGER_M1024_1023 */
1014 static int hf_lpp_numberOfStepsLatitude_r16 = -1;  /* INTEGER_0_63 */
1015 static int hf_lpp_numberOfStepsLongitude_r16 = -1;  /* INTEGER_0_63 */
1016 static int hf_lpp_stepOfLatitude_r16 = -1;        /* INTEGER_1_511 */
1017 static int hf_lpp_stepOfLongitude_r16 = -1;       /* INTEGER_1_1023 */
1018 static int hf_lpp_bitmaskOfGrids_r16 = -1;        /* BIT_STRING_SIZE_64 */
1019 static int hf_lpp_GNSS_TimeModelList_item = -1;   /* GNSS_TimeModelElement */
1020 static int hf_lpp_gnss_TimeModelRefTime = -1;     /* INTEGER_0_65535 */
1021 static int hf_lpp_tA0 = -1;                       /* INTEGER_M67108864_67108863 */
1022 static int hf_lpp_tA1 = -1;                       /* INTEGER_M4096_4095 */
1023 static int hf_lpp_tA2 = -1;                       /* INTEGER_M64_63 */
1024 static int hf_lpp_gnss_TO_ID = -1;                /* INTEGER_1_15 */
1025 static int hf_lpp_weekNumber = -1;                /* INTEGER_0_8191 */
1026 static int hf_lpp_deltaT = -1;                    /* INTEGER_M128_127 */
1027 static int hf_lpp_dgnss_RefTime = -1;             /* INTEGER_0_3599 */
1028 static int hf_lpp_dgnss_SgnTypeList = -1;         /* DGNSS_SgnTypeList */
1029 static int hf_lpp_DGNSS_SgnTypeList_item = -1;    /* DGNSS_SgnTypeElement */
1030 static int hf_lpp_gnss_SignalID = -1;             /* GNSS_SignalID */
1031 static int hf_lpp_gnss_StatusHealth = -1;         /* INTEGER_0_7 */
1032 static int hf_lpp_dgnss_SatList = -1;             /* DGNSS_SatList */
1033 static int hf_lpp_DGNSS_SatList_item = -1;        /* DGNSS_CorrectionsElement */
1034 static int hf_lpp_svID = -1;                      /* SV_ID */
1035 static int hf_lpp_iod = -1;                       /* BIT_STRING_SIZE_11 */
1036 static int hf_lpp_udre = -1;                      /* INTEGER_0_3 */
1037 static int hf_lpp_pseudoRangeCor = -1;            /* INTEGER_M2047_2047 */
1038 static int hf_lpp_rangeRateCor = -1;              /* INTEGER_M127_127 */
1039 static int hf_lpp_udreGrowthRate = -1;            /* INTEGER_0_7 */
1040 static int hf_lpp_udreValidityTime = -1;          /* INTEGER_0_7 */
1041 static int hf_lpp_nonBroadcastIndFlag = -1;       /* INTEGER_0_1 */
1042 static int hf_lpp_gnss_SatelliteList = -1;        /* GNSS_NavModelSatelliteList */
1043 static int hf_lpp_GNSS_NavModelSatelliteList_item = -1;  /* GNSS_NavModelSatelliteElement */
1044 static int hf_lpp_svHealth = -1;                  /* BIT_STRING_SIZE_8 */
1045 static int hf_lpp_gnss_ClockModel = -1;           /* GNSS_ClockModel */
1046 static int hf_lpp_gnss_OrbitModel = -1;           /* GNSS_OrbitModel */
1047 static int hf_lpp_svHealthExt_v1240 = -1;         /* T_svHealthExt_v1240 */
1048 static int hf_lpp_standardClockModelList = -1;    /* StandardClockModelList */
1049 static int hf_lpp_nav_ClockModel = -1;            /* NAV_ClockModel */
1050 static int hf_lpp_cnav_ClockModel = -1;           /* CNAV_ClockModel */
1051 static int hf_lpp_glonass_ClockModel = -1;        /* GLONASS_ClockModel */
1052 static int hf_lpp_sbas_ClockModel = -1;           /* SBAS_ClockModel */
1053 static int hf_lpp_bds_ClockModel_r12 = -1;        /* BDS_ClockModel_r12 */
1054 static int hf_lpp_bds_ClockModel2_r16 = -1;       /* BDS_ClockModel2_r16 */
1055 static int hf_lpp_navic_ClockModel_r16 = -1;      /* NavIC_ClockModel_r16 */
1056 static int hf_lpp_keplerianSet = -1;              /* NavModelKeplerianSet */
1057 static int hf_lpp_nav_KeplerianSet = -1;          /* NavModelNAV_KeplerianSet */
1058 static int hf_lpp_cnav_KeplerianSet = -1;         /* NavModelCNAV_KeplerianSet */
1059 static int hf_lpp_glonass_ECEF = -1;              /* NavModel_GLONASS_ECEF */
1060 static int hf_lpp_sbas_ECEF = -1;                 /* NavModel_SBAS_ECEF */
1061 static int hf_lpp_bds_KeplerianSet_r12 = -1;      /* NavModel_BDS_KeplerianSet_r12 */
1062 static int hf_lpp_bds_KeplerianSet2_r16 = -1;     /* NavModel_BDS_KeplerianSet2_r16 */
1063 static int hf_lpp_navic_KeplerianSet_r16 = -1;    /* NavModel_NavIC_KeplerianSet_r16 */
1064 static int hf_lpp_StandardClockModelList_item = -1;  /* StandardClockModelElement */
1065 static int hf_lpp_stanClockToc = -1;              /* INTEGER_0_16383 */
1066 static int hf_lpp_stanClockAF2 = -1;              /* INTEGER_M32_31 */
1067 static int hf_lpp_stanClockAF1 = -1;              /* INTEGER_M1048576_1048575 */
1068 static int hf_lpp_stanClockAF0 = -1;              /* INTEGER_M1073741824_1073741823 */
1069 static int hf_lpp_stanClockTgd = -1;              /* INTEGER_M512_511 */
1070 static int hf_lpp_sisa = -1;                      /* INTEGER_0_255 */
1071 static int hf_lpp_stanModelID = -1;               /* INTEGER_0_1 */
1072 static int hf_lpp_navToc = -1;                    /* INTEGER_0_37799 */
1073 static int hf_lpp_navaf2 = -1;                    /* INTEGER_M128_127 */
1074 static int hf_lpp_navaf1 = -1;                    /* INTEGER_M32768_32767 */
1075 static int hf_lpp_navaf0 = -1;                    /* INTEGER_M2097152_2097151 */
1076 static int hf_lpp_navTgd = -1;                    /* INTEGER_M128_127 */
1077 static int hf_lpp_cnavToc = -1;                   /* INTEGER_0_2015 */
1078 static int hf_lpp_cnavTop = -1;                   /* INTEGER_0_2015 */
1079 static int hf_lpp_cnavURA0 = -1;                  /* INTEGER_M16_15 */
1080 static int hf_lpp_cnavURA1 = -1;                  /* INTEGER_0_7 */
1081 static int hf_lpp_cnavURA2 = -1;                  /* INTEGER_0_7 */
1082 static int hf_lpp_cnavAf2 = -1;                   /* INTEGER_M512_511 */
1083 static int hf_lpp_cnavAf1 = -1;                   /* INTEGER_M524288_524287 */
1084 static int hf_lpp_cnavAf0 = -1;                   /* INTEGER_M33554432_33554431 */
1085 static int hf_lpp_cnavTgd = -1;                   /* INTEGER_M4096_4095 */
1086 static int hf_lpp_cnavISCl1cp = -1;               /* INTEGER_M4096_4095 */
1087 static int hf_lpp_cnavISCl1cd = -1;               /* INTEGER_M4096_4095 */
1088 static int hf_lpp_cnavISCl1ca = -1;               /* INTEGER_M4096_4095 */
1089 static int hf_lpp_cnavISCl2c = -1;                /* INTEGER_M4096_4095 */
1090 static int hf_lpp_cnavISCl5i5 = -1;               /* INTEGER_M4096_4095 */
1091 static int hf_lpp_cnavISCl5q5 = -1;               /* INTEGER_M4096_4095 */
1092 static int hf_lpp_gloTau = -1;                    /* INTEGER_M2097152_2097151 */
1093 static int hf_lpp_gloGamma = -1;                  /* INTEGER_M1024_1023 */
1094 static int hf_lpp_gloDeltaTau = -1;               /* INTEGER_M16_15 */
1095 static int hf_lpp_sbasTo = -1;                    /* INTEGER_0_5399 */
1096 static int hf_lpp_sbasAgfo = -1;                  /* INTEGER_M2048_2047 */
1097 static int hf_lpp_sbasAgf1 = -1;                  /* INTEGER_M128_127 */
1098 static int hf_lpp_bdsAODC_r12 = -1;               /* INTEGER_0_31 */
1099 static int hf_lpp_bdsToc_r12 = -1;                /* INTEGER_0_131071 */
1100 static int hf_lpp_bdsA0_r12 = -1;                 /* INTEGER_M8388608_8388607 */
1101 static int hf_lpp_bdsA1_r12 = -1;                 /* INTEGER_M2097152_2097151 */
1102 static int hf_lpp_bdsA2_r12 = -1;                 /* INTEGER_M1024_1023 */
1103 static int hf_lpp_bdsTgd1_r12 = -1;               /* INTEGER_M512_511 */
1104 static int hf_lpp_bdsToc_r16 = -1;                /* INTEGER_0_2047 */
1105 static int hf_lpp_bdsA0_r16 = -1;                 /* INTEGER_M16777216_16777215 */
1106 static int hf_lpp_bdsA1_r16 = -1;                 /* INTEGER_M2097152_2097151 */
1107 static int hf_lpp_bdsA2_r16 = -1;                 /* INTEGER_M1024_1023 */
1108 static int hf_lpp_bdsTgdB1Cp_r16 = -1;            /* INTEGER_M2048_2047 */
1109 static int hf_lpp_bdsIscB1Cd_r16 = -1;            /* INTEGER_M2048_2047 */
1110 static int hf_lpp_navic_Toc_r16 = -1;             /* INTEGER_0_65535 */
1111 static int hf_lpp_navic_af2_r16 = -1;             /* INTEGER_M128_127 */
1112 static int hf_lpp_navic_af1_r16 = -1;             /* INTEGER_M32768_32767 */
1113 static int hf_lpp_navic_af0_r16 = -1;             /* INTEGER_M2097152_2097151 */
1114 static int hf_lpp_navic_Tgd_r16 = -1;             /* INTEGER_M128_127 */
1115 static int hf_lpp_keplerToe = -1;                 /* INTEGER_0_16383 */
1116 static int hf_lpp_keplerW = -1;                   /* INTEGER_M2147483648_2147483647 */
1117 static int hf_lpp_keplerDeltaN = -1;              /* INTEGER_M32768_32767 */
1118 static int hf_lpp_keplerM0 = -1;                  /* INTEGER_M2147483648_2147483647 */
1119 static int hf_lpp_keplerOmegaDot = -1;            /* INTEGER_M8388608_8388607 */
1120 static int hf_lpp_keplerE = -1;                   /* INTEGER_0_4294967295 */
1121 static int hf_lpp_keplerIDot = -1;                /* INTEGER_M8192_8191 */
1122 static int hf_lpp_keplerAPowerHalf = -1;          /* INTEGER_0_4294967295 */
1123 static int hf_lpp_keplerI0 = -1;                  /* INTEGER_M2147483648_2147483647 */
1124 static int hf_lpp_keplerOmega0 = -1;              /* INTEGER_M2147483648_2147483647 */
1125 static int hf_lpp_keplerCrs = -1;                 /* INTEGER_M32768_32767 */
1126 static int hf_lpp_keplerCis = -1;                 /* INTEGER_M32768_32767 */
1127 static int hf_lpp_keplerCus = -1;                 /* INTEGER_M32768_32767 */
1128 static int hf_lpp_keplerCrc = -1;                 /* INTEGER_M32768_32767 */
1129 static int hf_lpp_keplerCic = -1;                 /* INTEGER_M32768_32767 */
1130 static int hf_lpp_keplerCuc = -1;                 /* INTEGER_M32768_32767 */
1131 static int hf_lpp_navURA = -1;                    /* INTEGER_0_15 */
1132 static int hf_lpp_navFitFlag = -1;                /* INTEGER_0_1 */
1133 static int hf_lpp_navToe = -1;                    /* INTEGER_0_37799 */
1134 static int hf_lpp_navOmega = -1;                  /* INTEGER_M2147483648_2147483647 */
1135 static int hf_lpp_navDeltaN = -1;                 /* INTEGER_M32768_32767 */
1136 static int hf_lpp_navM0 = -1;                     /* INTEGER_M2147483648_2147483647 */
1137 static int hf_lpp_navOmegaADot = -1;              /* INTEGER_M8388608_8388607 */
1138 static int hf_lpp_navE = -1;                      /* INTEGER_0_4294967295 */
1139 static int hf_lpp_navIDot = -1;                   /* INTEGER_M8192_8191 */
1140 static int hf_lpp_navAPowerHalf = -1;             /* INTEGER_0_4294967295 */
1141 static int hf_lpp_navI0 = -1;                     /* INTEGER_M2147483648_2147483647 */
1142 static int hf_lpp_navOmegaA0 = -1;                /* INTEGER_M2147483648_2147483647 */
1143 static int hf_lpp_navCrs = -1;                    /* INTEGER_M32768_32767 */
1144 static int hf_lpp_navCis = -1;                    /* INTEGER_M32768_32767 */
1145 static int hf_lpp_navCus = -1;                    /* INTEGER_M32768_32767 */
1146 static int hf_lpp_navCrc = -1;                    /* INTEGER_M32768_32767 */
1147 static int hf_lpp_navCic = -1;                    /* INTEGER_M32768_32767 */
1148 static int hf_lpp_navCuc = -1;                    /* INTEGER_M32768_32767 */
1149 static int hf_lpp_addNAVparam = -1;               /* T_addNAVparam */
1150 static int hf_lpp_ephemCodeOnL2 = -1;             /* INTEGER_0_3 */
1151 static int hf_lpp_ephemL2Pflag = -1;              /* INTEGER_0_1 */
1152 static int hf_lpp_ephemSF1Rsvd = -1;              /* T_ephemSF1Rsvd */
1153 static int hf_lpp_reserved1 = -1;                 /* INTEGER_0_8388607 */
1154 static int hf_lpp_reserved2 = -1;                 /* INTEGER_0_16777215 */
1155 static int hf_lpp_reserved3 = -1;                 /* INTEGER_0_16777215 */
1156 static int hf_lpp_reserved4 = -1;                 /* INTEGER_0_65535 */
1157 static int hf_lpp_ephemAODA = -1;                 /* INTEGER_0_31 */
1158 static int hf_lpp_cnavURAindex = -1;              /* INTEGER_M16_15 */
1159 static int hf_lpp_cnavDeltaA = -1;                /* INTEGER_M33554432_33554431 */
1160 static int hf_lpp_cnavAdot = -1;                  /* INTEGER_M16777216_16777215 */
1161 static int hf_lpp_cnavDeltaNo = -1;               /* INTEGER_M65536_65535 */
1162 static int hf_lpp_cnavDeltaNoDot = -1;            /* INTEGER_M4194304_4194303 */
1163 static int hf_lpp_cnavMo = -1;                    /* T_cnavMo */
1164 static int hf_lpp_cnavE = -1;                     /* T_cnavE */
1165 static int hf_lpp_cnavOmega = -1;                 /* T_cnavOmega */
1166 static int hf_lpp_cnavOMEGA0 = -1;                /* T_cnavOMEGA0 */
1167 static int hf_lpp_cnavDeltaOmegaDot = -1;         /* INTEGER_M65536_65535 */
1168 static int hf_lpp_cnavIo = -1;                    /* T_cnavIo */
1169 static int hf_lpp_cnavIoDot = -1;                 /* INTEGER_M16384_16383 */
1170 static int hf_lpp_cnavCis = -1;                   /* INTEGER_M32768_32767 */
1171 static int hf_lpp_cnavCic = -1;                   /* INTEGER_M32768_32767 */
1172 static int hf_lpp_cnavCrs = -1;                   /* INTEGER_M8388608_8388607 */
1173 static int hf_lpp_cnavCrc = -1;                   /* INTEGER_M8388608_8388607 */
1174 static int hf_lpp_cnavCus = -1;                   /* INTEGER_M1048576_1048575 */
1175 static int hf_lpp_cnavCuc = -1;                   /* INTEGER_M1048576_1048575 */
1176 static int hf_lpp_gloEn = -1;                     /* INTEGER_0_31 */
1177 static int hf_lpp_gloP1 = -1;                     /* T_gloP1 */
1178 static int hf_lpp_gloP2 = -1;                     /* BOOLEAN */
1179 static int hf_lpp_gloM = -1;                      /* INTEGER_0_3 */
1180 static int hf_lpp_gloX = -1;                      /* INTEGER_M67108864_67108863 */
1181 static int hf_lpp_gloXdot = -1;                   /* INTEGER_M8388608_8388607 */
1182 static int hf_lpp_gloXdotdot = -1;                /* INTEGER_M16_15 */
1183 static int hf_lpp_gloY = -1;                      /* INTEGER_M67108864_67108863 */
1184 static int hf_lpp_gloYdot = -1;                   /* INTEGER_M8388608_8388607 */
1185 static int hf_lpp_gloYdotdot = -1;                /* INTEGER_M16_15 */
1186 static int hf_lpp_gloZ = -1;                      /* INTEGER_M67108864_67108863 */
1187 static int hf_lpp_gloZdot = -1;                   /* INTEGER_M8388608_8388607 */
1188 static int hf_lpp_gloZdotdot = -1;                /* INTEGER_M16_15 */
1189 static int hf_lpp_sbasAccuracy = -1;              /* BIT_STRING_SIZE_4 */
1190 static int hf_lpp_sbasXg = -1;                    /* INTEGER_M536870912_536870911 */
1191 static int hf_lpp_sbasYg = -1;                    /* INTEGER_M536870912_536870911 */
1192 static int hf_lpp_sbasZg = -1;                    /* INTEGER_M16777216_16777215 */
1193 static int hf_lpp_sbasXgDot = -1;                 /* INTEGER_M65536_65535 */
1194 static int hf_lpp_sbasYgDot = -1;                 /* INTEGER_M65536_65535 */
1195 static int hf_lpp_sbasZgDot = -1;                 /* INTEGER_M131072_131071 */
1196 static int hf_lpp_sbasXgDotDot = -1;              /* INTEGER_M512_511 */
1197 static int hf_lpp_sbagYgDotDot = -1;              /* INTEGER_M512_511 */
1198 static int hf_lpp_sbasZgDotDot = -1;              /* INTEGER_M512_511 */
1199 static int hf_lpp_bdsAODE_r12 = -1;               /* INTEGER_0_31 */
1200 static int hf_lpp_bdsURAI_r12 = -1;               /* INTEGER_0_15 */
1201 static int hf_lpp_bdsToe_r12 = -1;                /* INTEGER_0_131071 */
1202 static int hf_lpp_bdsAPowerHalf_r12 = -1;         /* INTEGER_0_4294967295 */
1203 static int hf_lpp_bdsE_r12 = -1;                  /* INTEGER_0_4294967295 */
1204 static int hf_lpp_bdsW_r12 = -1;                  /* INTEGER_M2147483648_2147483647 */
1205 static int hf_lpp_bdsDeltaN_r12 = -1;             /* INTEGER_M32768_32767 */
1206 static int hf_lpp_bdsM0_r12 = -1;                 /* INTEGER_M2147483648_2147483647 */
1207 static int hf_lpp_bdsOmega0_r12 = -1;             /* INTEGER_M2147483648_2147483647 */
1208 static int hf_lpp_bdsOmegaDot_r12 = -1;           /* INTEGER_M8388608_8388607 */
1209 static int hf_lpp_bdsI0_r12 = -1;                 /* INTEGER_M2147483648_2147483647 */
1210 static int hf_lpp_bdsIDot_r12 = -1;               /* INTEGER_M8192_8191 */
1211 static int hf_lpp_bdsCuc_r12 = -1;                /* INTEGER_M131072_131071 */
1212 static int hf_lpp_bdsCus_r12 = -1;                /* INTEGER_M131072_131071 */
1213 static int hf_lpp_bdsCrc_r12 = -1;                /* INTEGER_M131072_131071 */
1214 static int hf_lpp_bdsCrs_r12 = -1;                /* INTEGER_M131072_131071 */
1215 static int hf_lpp_bdsCic_r12 = -1;                /* INTEGER_M131072_131071 */
1216 static int hf_lpp_bdsCis_r12 = -1;                /* INTEGER_M131072_131071 */
1217 static int hf_lpp_bdsIODE_r16 = -1;               /* INTEGER_0_255 */
1218 static int hf_lpp_bdsToe_r16 = -1;                /* INTEGER_0_2047 */
1219 static int hf_lpp_bdsDeltaA_r16 = -1;             /* INTEGER_M33554432_33554431 */
1220 static int hf_lpp_bdsAdot_r16 = -1;               /* INTEGER_M16777216_16777216 */
1221 static int hf_lpp_bdsDeltaN0_r16 = -1;            /* INTEGER_M65536_65535 */
1222 static int hf_lpp_bdsDeltaN0dot_r16 = -1;         /* INTEGER_M4194304_4194303 */
1223 static int hf_lpp_bdsM0_r16 = -1;                 /* INTEGER_M4294967296_4294967295 */
1224 static int hf_lpp_bdsE_r16 = -1;                  /* INTEGER_0_8589934591 */
1225 static int hf_lpp_bdsOmega_r16 = -1;              /* INTEGER_M4294967296_4294967295 */
1226 static int hf_lpp_bdsOmega0_r16 = -1;             /* INTEGER_M4294967296_4294967295 */
1227 static int hf_lpp_bdsI0_r16 = -1;                 /* INTEGER_M4294967296_4294967295 */
1228 static int hf_lpp_bdsOmegaDot_r16 = -1;           /* INTEGER_M262144_262143 */
1229 static int hf_lpp_bdsI0Dot_r16 = -1;              /* INTEGER_M16384_16383 */
1230 static int hf_lpp_bdsCuc_r16 = -1;                /* INTEGER_M1048576_1048575 */
1231 static int hf_lpp_bdsCus_r16 = -1;                /* INTEGER_M1048576_1048575 */
1232 static int hf_lpp_bdsCrc_r16 = -1;                /* INTEGER_M8388608_8388607 */
1233 static int hf_lpp_bdsCrs_r16 = -1;                /* INTEGER_M8388608_8388607 */
1234 static int hf_lpp_bdsCic_r16 = -1;                /* INTEGER_M32768_32767 */
1235 static int hf_lpp_bdsCis_r16 = -1;                /* INTEGER_M32768_32767 */
1236 static int hf_lpp_navic_Toe_r16 = -1;             /* INTEGER_0_65536 */
1237 static int hf_lpp_navic_URAI_r16 = -1;            /* INTEGER_0_15 */
1238 static int hf_lpp_navic_W_r16 = -1;               /* INTEGER_M2147483648_2147483647 */
1239 static int hf_lpp_navic_DeltaN_r16 = -1;          /* INTEGER_M2097152_2097151 */
1240 static int hf_lpp_navic_M0_r16 = -1;              /* INTEGER_M2147483648_2147483647 */
1241 static int hf_lpp_navic_OmegaDot_r16 = -1;        /* INTEGER_M2147483648_2147483647 */
1242 static int hf_lpp_navic_E_r16 = -1;               /* INTEGER_0_4294967295 */
1243 static int hf_lpp_navic_IDot_r16 = -1;            /* INTEGER_M8192_8191 */
1244 static int hf_lpp_navic_APowerHalf_r16 = -1;      /* INTEGER_0_4294967295 */
1245 static int hf_lpp_navic_I0_r16 = -1;              /* INTEGER_M2147483648_2147483647 */
1246 static int hf_lpp_navic_Omega0_r16 = -1;          /* INTEGER_M2147483648_2147483647 */
1247 static int hf_lpp_navic_Crs_r16 = -1;             /* INTEGER_M32768_32767 */
1248 static int hf_lpp_navic_Cis_r16 = -1;             /* INTEGER_M32768_32767 */
1249 static int hf_lpp_navic_Cus_r16 = -1;             /* INTEGER_M32768_32767 */
1250 static int hf_lpp_navic_Crc_r16 = -1;             /* INTEGER_M32768_32767 */
1251 static int hf_lpp_navic_Cic_r16 = -1;             /* INTEGER_M32768_32767 */
1252 static int hf_lpp_navic_Cuc_r16 = -1;             /* INTEGER_M32768_32767 */
1253 static int hf_lpp_gnss_BadSignalList = -1;        /* GNSS_BadSignalList */
1254 static int hf_lpp_GNSS_BadSignalList_item = -1;   /* BadSignalElement */
1255 static int hf_lpp_badSVID = -1;                   /* SV_ID */
1256 static int hf_lpp_badSignalID = -1;               /* GNSS_SignalIDs */
1257 static int hf_lpp_gnss_TOD = -1;                  /* INTEGER_0_3599 */
1258 static int hf_lpp_gnss_TODfrac = -1;              /* INTEGER_0_999 */
1259 static int hf_lpp_gnss_DataBitsSatList = -1;      /* GNSS_DataBitsSatList */
1260 static int hf_lpp_GNSS_DataBitsSatList_item = -1;  /* GNSS_DataBitsSatElement */
1261 static int hf_lpp_gnss_DataBitsSgnList = -1;      /* GNSS_DataBitsSgnList */
1262 static int hf_lpp_GNSS_DataBitsSgnList_item = -1;  /* GNSS_DataBitsSgnElement */
1263 static int hf_lpp_gnss_SignalType = -1;           /* GNSS_SignalID */
1264 static int hf_lpp_gnss_DataBits = -1;             /* BIT_STRING_SIZE_1_1024 */
1265 static int hf_lpp_gnss_AcquisitionAssistList = -1;  /* GNSS_AcquisitionAssistList */
1266 static int hf_lpp_confidence_r10 = -1;            /* INTEGER_0_100 */
1267 static int hf_lpp_GNSS_AcquisitionAssistList_item = -1;  /* GNSS_AcquisitionAssistElement */
1268 static int hf_lpp_doppler0 = -1;                  /* INTEGER_M2048_2047 */
1269 static int hf_lpp_doppler1 = -1;                  /* INTEGER_0_63 */
1270 static int hf_lpp_dopplerUncertainty = -1;        /* INTEGER_0_4 */
1271 static int hf_lpp_codePhase = -1;                 /* INTEGER_0_1022 */
1272 static int hf_lpp_intCodePhase = -1;              /* INTEGER_0_127 */
1273 static int hf_lpp_codePhaseSearchWindow = -1;     /* INTEGER_0_31 */
1274 static int hf_lpp_azimuth = -1;                   /* INTEGER_0_511 */
1275 static int hf_lpp_elevation = -1;                 /* INTEGER_0_127 */
1276 static int hf_lpp_codePhase1023 = -1;             /* BOOLEAN */
1277 static int hf_lpp_dopplerUncertaintyExt_r10 = -1;  /* T_dopplerUncertaintyExt_r10 */
1278 static int hf_lpp_weekNumber_01 = -1;             /* INTEGER_0_255 */
1279 static int hf_lpp_toa = -1;                       /* T_toa */
1280 static int hf_lpp_ioda = -1;                      /* INTEGER_0_3 */
1281 static int hf_lpp_completeAlmanacProvided = -1;   /* BOOLEAN */
1282 static int hf_lpp_gnss_AlmanacList = -1;          /* GNSS_AlmanacList */
1283 static int hf_lpp_toa_ext_v1240 = -1;             /* T_toa_ext_v1240 */
1284 static int hf_lpp_ioda_ext_v1240 = -1;            /* INTEGER_4_15 */
1285 static int hf_lpp_weekNumber_ext_r16 = -1;        /* INTEGER_256_8191 */
1286 static int hf_lpp_toa_ext2_r16 = -1;              /* INTEGER_256_65535 */
1287 static int hf_lpp_GNSS_AlmanacList_item = -1;     /* GNSS_AlmanacElement */
1288 static int hf_lpp_keplerianAlmanacSet = -1;       /* AlmanacKeplerianSet */
1289 static int hf_lpp_keplerianNAV_Almanac = -1;      /* AlmanacNAV_KeplerianSet */
1290 static int hf_lpp_keplerianReducedAlmanac = -1;   /* AlmanacReducedKeplerianSet */
1291 static int hf_lpp_keplerianMidiAlmanac = -1;      /* AlmanacMidiAlmanacSet */
1292 static int hf_lpp_keplerianGLONASS = -1;          /* AlmanacGLONASS_AlmanacSet */
1293 static int hf_lpp_ecef_SBAS_Almanac = -1;         /* AlmanacECEF_SBAS_AlmanacSet */
1294 static int hf_lpp_keplerianBDS_Almanac_r12 = -1;  /* AlmanacBDS_AlmanacSet_r12 */
1295 static int hf_lpp_keplerianNavIC_Almanac_r16 = -1;  /* AlmanacNavIC_AlmanacSet_r16 */
1296 static int hf_lpp_kepAlmanacE = -1;               /* INTEGER_0_2047 */
1297 static int hf_lpp_kepAlmanacDeltaI = -1;          /* INTEGER_M1024_1023 */
1298 static int hf_lpp_kepAlmanacOmegaDot = -1;        /* INTEGER_M1024_1023 */
1299 static int hf_lpp_kepSV_StatusINAV = -1;          /* T_kepSV_StatusINAV */
1300 static int hf_lpp_kepSV_StatusFNAV = -1;          /* T_kepSV_StatusFNAV */
1301 static int hf_lpp_kepAlmanacAPowerHalf = -1;      /* INTEGER_M4096_4095 */
1302 static int hf_lpp_kepAlmanacOmega0 = -1;          /* INTEGER_M32768_32767 */
1303 static int hf_lpp_kepAlmanacW = -1;               /* INTEGER_M32768_32767 */
1304 static int hf_lpp_kepAlmanacM0 = -1;              /* INTEGER_M32768_32767 */
1305 static int hf_lpp_kepAlmanacAF0 = -1;             /* INTEGER_M32768_32767 */
1306 static int hf_lpp_kepAlmanacAF1 = -1;             /* INTEGER_M4096_4095 */
1307 static int hf_lpp_navAlmE = -1;                   /* INTEGER_0_65535 */
1308 static int hf_lpp_navAlmDeltaI = -1;              /* INTEGER_M32768_32767 */
1309 static int hf_lpp_navAlmOMEGADOT = -1;            /* INTEGER_M32768_32767 */
1310 static int hf_lpp_navAlmSVHealth = -1;            /* INTEGER_0_255 */
1311 static int hf_lpp_navAlmSqrtA = -1;               /* INTEGER_0_16777215 */
1312 static int hf_lpp_navAlmOMEGAo = -1;              /* INTEGER_M8388608_8388607 */
1313 static int hf_lpp_navAlmOmega = -1;               /* INTEGER_M8388608_8388607 */
1314 static int hf_lpp_navAlmMo = -1;                  /* INTEGER_M8388608_8388607 */
1315 static int hf_lpp_navAlmaf0 = -1;                 /* INTEGER_M1024_1023 */
1316 static int hf_lpp_navAlmaf1 = -1;                 /* INTEGER_M1024_1023 */
1317 static int hf_lpp_redAlmDeltaA = -1;              /* INTEGER_M128_127 */
1318 static int hf_lpp_redAlmOmega0 = -1;              /* INTEGER_M64_63 */
1319 static int hf_lpp_redAlmPhi0 = -1;                /* INTEGER_M64_63 */
1320 static int hf_lpp_redAlmL1Health = -1;            /* BOOLEAN */
1321 static int hf_lpp_redAlmL2Health = -1;            /* BOOLEAN */
1322 static int hf_lpp_redAlmL5Health = -1;            /* BOOLEAN */
1323 static int hf_lpp_midiAlmE = -1;                  /* INTEGER_0_2047 */
1324 static int hf_lpp_midiAlmDeltaI = -1;             /* INTEGER_M1024_1023 */
1325 static int hf_lpp_midiAlmOmegaDot = -1;           /* INTEGER_M1024_1023 */
1326 static int hf_lpp_midiAlmSqrtA = -1;              /* INTEGER_0_131071 */
1327 static int hf_lpp_midiAlmOmega0 = -1;             /* INTEGER_M32768_32767 */
1328 static int hf_lpp_midiAlmOmega = -1;              /* INTEGER_M32768_32767 */
1329 static int hf_lpp_midiAlmMo = -1;                 /* INTEGER_M32768_32767 */
1330 static int hf_lpp_midiAlmaf0 = -1;                /* INTEGER_M1024_1023 */
1331 static int hf_lpp_midiAlmaf1 = -1;                /* INTEGER_M512_511 */
1332 static int hf_lpp_midiAlmL1Health = -1;           /* BOOLEAN */
1333 static int hf_lpp_midiAlmL2Health = -1;           /* BOOLEAN */
1334 static int hf_lpp_midiAlmL5Health = -1;           /* BOOLEAN */
1335 static int hf_lpp_gloAlm_NA = -1;                 /* INTEGER_1_1461 */
1336 static int hf_lpp_gloAlmnA = -1;                  /* INTEGER_1_24 */
1337 static int hf_lpp_gloAlmHA = -1;                  /* INTEGER_0_31 */
1338 static int hf_lpp_gloAlmLambdaA = -1;             /* INTEGER_M1048576_1048575 */
1339 static int hf_lpp_gloAlmtlambdaA = -1;            /* INTEGER_0_2097151 */
1340 static int hf_lpp_gloAlmDeltaIa = -1;             /* INTEGER_M131072_131071 */
1341 static int hf_lpp_gloAlmDeltaTA = -1;             /* INTEGER_M2097152_2097151 */
1342 static int hf_lpp_gloAlmDeltaTdotA = -1;          /* INTEGER_M64_63 */
1343 static int hf_lpp_gloAlmEpsilonA = -1;            /* INTEGER_0_32767 */
1344 static int hf_lpp_gloAlmOmegaA = -1;              /* INTEGER_M32768_32767 */
1345 static int hf_lpp_gloAlmTauA = -1;                /* INTEGER_M512_511 */
1346 static int hf_lpp_gloAlmCA = -1;                  /* INTEGER_0_1 */
1347 static int hf_lpp_gloAlmMA = -1;                  /* BIT_STRING_SIZE_2 */
1348 static int hf_lpp_sbasAlmDataID = -1;             /* INTEGER_0_3 */
1349 static int hf_lpp_sbasAlmHealth = -1;             /* BIT_STRING_SIZE_8 */
1350 static int hf_lpp_sbasAlmXg = -1;                 /* INTEGER_M16384_16383 */
1351 static int hf_lpp_sbasAlmYg = -1;                 /* INTEGER_M16384_16383 */
1352 static int hf_lpp_sbasAlmZg = -1;                 /* INTEGER_M256_255 */
1353 static int hf_lpp_sbasAlmXgdot = -1;              /* INTEGER_M4_3 */
1354 static int hf_lpp_sbasAlmYgDot = -1;              /* INTEGER_M4_3 */
1355 static int hf_lpp_sbasAlmZgDot = -1;              /* INTEGER_M8_7 */
1356 static int hf_lpp_sbasAlmTo = -1;                 /* INTEGER_0_2047 */
1357 static int hf_lpp_bdsAlmToa_r12 = -1;             /* INTEGER_0_255 */
1358 static int hf_lpp_bdsAlmSqrtA_r12 = -1;           /* INTEGER_0_16777215 */
1359 static int hf_lpp_bdsAlmE_r12 = -1;               /* INTEGER_0_131071 */
1360 static int hf_lpp_bdsAlmW_r12 = -1;               /* INTEGER_M8388608_8388607 */
1361 static int hf_lpp_bdsAlmM0_r12 = -1;              /* INTEGER_M8388608_8388607 */
1362 static int hf_lpp_bdsAlmOmega0_r12 = -1;          /* INTEGER_M8388608_8388607 */
1363 static int hf_lpp_bdsAlmOmegaDot_r12 = -1;        /* INTEGER_M65536_65535 */
1364 static int hf_lpp_bdsAlmDeltaI_r12 = -1;          /* INTEGER_M32768_32767 */
1365 static int hf_lpp_bdsAlmA0_r12 = -1;              /* INTEGER_M1024_1023 */
1366 static int hf_lpp_bdsAlmA1_r12 = -1;              /* INTEGER_M1024_1023 */
1367 static int hf_lpp_bdsSvHealth_r12 = -1;           /* T_bdsSvHealth_r12 */
1368 static int hf_lpp_svID_r16 = -1;                  /* SV_ID */
1369 static int hf_lpp_navic_AlmToa_r16 = -1;          /* INTEGER_0_65535 */
1370 static int hf_lpp_navic_AlmE_r16 = -1;            /* INTEGER_0_65535 */
1371 static int hf_lpp_navic_AlmOMEGADOT_r16 = -1;     /* INTEGER_M32768_32767 */
1372 static int hf_lpp_navic_AlmSqrtA_r16 = -1;        /* INTEGER_0_16777215 */
1373 static int hf_lpp_navic_AlmOMEGAo_r16 = -1;       /* INTEGER_M8388608_8388607 */
1374 static int hf_lpp_navic_AlmOmega_r16 = -1;        /* INTEGER_M8388608_8388607 */
1375 static int hf_lpp_navic_AlmMo_r16 = -1;           /* INTEGER_M8388608_8388607 */
1376 static int hf_lpp_navic_Almaf0_r16 = -1;          /* INTEGER_M1024_1023 */
1377 static int hf_lpp_navic_Almaf1_r16 = -1;          /* INTEGER_M1024_1023 */
1378 static int hf_lpp_utcModel1 = -1;                 /* UTC_ModelSet1 */
1379 static int hf_lpp_utcModel2 = -1;                 /* UTC_ModelSet2 */
1380 static int hf_lpp_utcModel3 = -1;                 /* UTC_ModelSet3 */
1381 static int hf_lpp_utcModel4 = -1;                 /* UTC_ModelSet4 */
1382 static int hf_lpp_utcModel5_r12 = -1;             /* UTC_ModelSet5_r12 */
1383 static int hf_lpp_gnss_Utc_A1 = -1;               /* INTEGER_M8388608_8388607 */
1384 static int hf_lpp_gnss_Utc_A0 = -1;               /* INTEGER_M2147483648_2147483647 */
1385 static int hf_lpp_gnss_Utc_Tot = -1;              /* INTEGER_0_255 */
1386 static int hf_lpp_gnss_Utc_WNt = -1;              /* INTEGER_0_255 */
1387 static int hf_lpp_gnss_Utc_DeltaTls = -1;         /* INTEGER_M128_127 */
1388 static int hf_lpp_gnss_Utc_WNlsf = -1;            /* INTEGER_0_255 */
1389 static int hf_lpp_gnss_Utc_DN = -1;               /* INTEGER_M128_127 */
1390 static int hf_lpp_gnss_Utc_DeltaTlsf = -1;        /* INTEGER_M128_127 */
1391 static int hf_lpp_utcA0 = -1;                     /* INTEGER_M32768_32767 */
1392 static int hf_lpp_utcA1 = -1;                     /* INTEGER_M4096_4095 */
1393 static int hf_lpp_utcA2 = -1;                     /* INTEGER_M64_63 */
1394 static int hf_lpp_utcDeltaTls = -1;               /* INTEGER_M128_127 */
1395 static int hf_lpp_utcTot = -1;                    /* INTEGER_0_65535 */
1396 static int hf_lpp_utcWNot = -1;                   /* INTEGER_0_8191 */
1397 static int hf_lpp_utcWNlsf = -1;                  /* INTEGER_0_255 */
1398 static int hf_lpp_utcDN = -1;                     /* T_utcDN */
1399 static int hf_lpp_utcDeltaTlsf = -1;              /* INTEGER_M128_127 */
1400 static int hf_lpp_utcWNlsf_ext_r16 = -1;          /* INTEGER_256_8191 */
1401 static int hf_lpp_nA = -1;                        /* INTEGER_1_1461 */
1402 static int hf_lpp_tauC = -1;                      /* INTEGER_M2147483648_2147483647 */
1403 static int hf_lpp_b1 = -1;                        /* INTEGER_M1024_1023 */
1404 static int hf_lpp_b2 = -1;                        /* INTEGER_M512_511 */
1405 static int hf_lpp_kp = -1;                        /* T_kp */
1406 static int hf_lpp_utcA1wnt = -1;                  /* INTEGER_M8388608_8388607 */
1407 static int hf_lpp_utcA0wnt = -1;                  /* INTEGER_M2147483648_2147483647 */
1408 static int hf_lpp_utcTot_01 = -1;                 /* INTEGER_0_255 */
1409 static int hf_lpp_utcWNt = -1;                    /* INTEGER_0_255 */
1410 static int hf_lpp_UTC_ModelSet4_utcDN = -1;       /* INTEGER_M128_127 */
1411 static int hf_lpp_utcStandardID = -1;             /* INTEGER_0_7 */
1412 static int hf_lpp_utcA0_r12 = -1;                 /* INTEGER_M2147483648_2147483647 */
1413 static int hf_lpp_utcA1_r12 = -1;                 /* INTEGER_M8388608_8388607 */
1414 static int hf_lpp_utcDeltaTls_r12 = -1;           /* INTEGER_M128_127 */
1415 static int hf_lpp_utcWNlsf_r12 = -1;              /* INTEGER_0_255 */
1416 static int hf_lpp_utcDN_r12 = -1;                 /* INTEGER_0_255 */
1417 static int hf_lpp_utcDeltaTlsf_r12 = -1;          /* INTEGER_M128_127 */
1418 static int hf_lpp_gnss_ID_GPS = -1;               /* GNSS_ID_GPS */
1419 static int hf_lpp_gnss_ID_GLONASS = -1;           /* GNSS_ID_GLONASS */
1420 static int hf_lpp_gnss_ID_BDS_r16 = -1;           /* GNSS_ID_BDS_r16 */
1421 static int hf_lpp_GNSS_ID_GPS_item = -1;          /* GNSS_ID_GPS_SatElement */
1422 static int hf_lpp_signalsAvailable = -1;          /* GNSS_SignalIDs */
1423 static int hf_lpp_GNSS_ID_GLONASS_item = -1;      /* GNSS_ID_GLONASS_SatElement */
1424 static int hf_lpp_channelNumber = -1;             /* INTEGER_M7_13 */
1425 static int hf_lpp_GNSS_ID_BDS_r16_item = -1;      /* GNSS_ID_BDS_SatElement_r16 */
1426 static int hf_lpp_satType_r16 = -1;               /* INTEGER_0_3 */
1427 static int hf_lpp_dbds_RefTime_r12 = -1;          /* INTEGER_0_3599 */
1428 static int hf_lpp_bds_SgnTypeList_r12 = -1;       /* BDS_SgnTypeList_r12 */
1429 static int hf_lpp_BDS_SgnTypeList_r12_item = -1;  /* BDS_SgnTypeElement_r12 */
1430 static int hf_lpp_dbds_CorrectionList_r12 = -1;   /* DBDS_CorrectionList_r12 */
1431 static int hf_lpp_DBDS_CorrectionList_r12_item = -1;  /* DBDS_CorrectionElement_r12 */
1432 static int hf_lpp_bds_UDREI_r12 = -1;             /* INTEGER_0_15 */
1433 static int hf_lpp_bds_RURAI_r12 = -1;             /* INTEGER_0_15 */
1434 static int hf_lpp_bds_ECC_DeltaT_r12 = -1;        /* INTEGER_M4096_4095 */
1435 static int hf_lpp_bds_RefTime_r12 = -1;           /* INTEGER_0_3599 */
1436 static int hf_lpp_gridIonList_r12 = -1;           /* GridIonList_r12 */
1437 static int hf_lpp_GridIonList_r12_item = -1;      /* GridIonElement_r12 */
1438 static int hf_lpp_igp_ID_r12 = -1;                /* INTEGER_1_320 */
1439 static int hf_lpp_dt_r12 = -1;                    /* INTEGER_0_511 */
1440 static int hf_lpp_givei_r12 = -1;                 /* INTEGER_0_15 */
1441 static int hf_lpp_epochTime_r15 = -1;             /* GNSS_SystemTime */
1442 static int hf_lpp_gnss_ObservationList_r15 = -1;  /* GNSS_ObservationList_r15 */
1443 static int hf_lpp_GNSS_ObservationList_r15_item = -1;  /* GNSS_RTK_SatelliteDataElement_r15 */
1444 static int hf_lpp_svID_r15 = -1;                  /* SV_ID */
1445 static int hf_lpp_integer_ms_r15 = -1;            /* INTEGER_0_254 */
1446 static int hf_lpp_rough_range_r15 = -1;           /* INTEGER_0_1023 */
1447 static int hf_lpp_rough_phase_range_rate_r15 = -1;  /* INTEGER_M8192_8191 */
1448 static int hf_lpp_gnss_rtk_SatelliteSignalDataList_r15 = -1;  /* GNSS_RTK_SatelliteSignalDataList_r15 */
1449 static int hf_lpp_GNSS_RTK_SatelliteSignalDataList_r15_item = -1;  /* GNSS_RTK_SatelliteSignalDataElement_r15 */
1450 static int hf_lpp_gnss_SignalID_r15 = -1;         /* GNSS_SignalID */
1451 static int hf_lpp_fine_PseudoRange_r15 = -1;      /* INTEGER_M524288_524287 */
1452 static int hf_lpp_fine_PhaseRange_r15 = -1;       /* INTEGER_M8388608_8388607 */
1453 static int hf_lpp_lockTimeIndicator_r15 = -1;     /* INTEGER_0_1023 */
1454 static int hf_lpp_halfCycleAmbiguityIndicator_r15 = -1;  /* BIT_STRING_SIZE_1 */
1455 static int hf_lpp_carrier_to_noise_ratio_r15 = -1;  /* INTEGER_0_1023 */
1456 static int hf_lpp_fine_PhaseRangeRate_r15 = -1;   /* INTEGER_M16384_16383 */
1457 static int hf_lpp_cpbIndicator_r15 = -1;          /* BIT_STRING_SIZE_1 */
1458 static int hf_lpp_l1_ca_cpBias_r15 = -1;          /* INTEGER_M32768_32767 */
1459 static int hf_lpp_l1_p_cpBias_r15 = -1;           /* INTEGER_M32768_32767 */
1460 static int hf_lpp_l2_ca_cpBias_r15 = -1;          /* INTEGER_M32768_32767 */
1461 static int hf_lpp_l2_p_cpBias_r15 = -1;           /* INTEGER_M32768_32767 */
1462 static int hf_lpp_master_ReferenceStationID_r15 = -1;  /* GNSS_ReferenceStationID_r15 */
1463 static int hf_lpp_l1_r15 = -1;                    /* GNSS_FrequencyID_r15 */
1464 static int hf_lpp_l2_r15 = -1;                    /* GNSS_FrequencyID_r15 */
1465 static int hf_lpp_rtkCorrectionDifferencesList_r15 = -1;  /* RTK_CorrectionDifferencesList_r15 */
1466 static int hf_lpp_RTK_CorrectionDifferencesList_r15_item = -1;  /* RTK_CorrectionDifferencesElement_r15 */
1467 static int hf_lpp_auxiliary_referenceStationID_r15 = -1;  /* GNSS_ReferenceStationID_r15 */
1468 static int hf_lpp_geometric_ionospheric_corrections_differences_r15 = -1;  /* Geometric_Ionospheric_Corrections_Differences_r15 */
1469 static int hf_lpp_Geometric_Ionospheric_Corrections_Differences_r15_item = -1;  /* Geometric_Ionospheric_Corrections_Differences_Element_r15 */
1470 static int hf_lpp_ambiguityStatusFlag_r15 = -1;   /* INTEGER_0_3 */
1471 static int hf_lpp_non_synch_count_r15 = -1;       /* INTEGER_0_7 */
1472 static int hf_lpp_geometricCarrierPhaseCorrectionDifference_r15 = -1;  /* INTEGER_M65536_65535 */
1473 static int hf_lpp_iod_r15 = -1;                   /* BIT_STRING_SIZE_11 */
1474 static int hf_lpp_ionosphericCarrierPhaseCorrectionDifference_r15 = -1;  /* INTEGER_M65536_65535 */
1475 static int hf_lpp_n_Refs_r15 = -1;                /* INTEGER_0_127 */
1476 static int hf_lpp_rtk_residuals_list_r15 = -1;    /* RTK_Residuals_List_r15 */
1477 static int hf_lpp_RTK_Residuals_List_r15_item = -1;  /* RTK_Residuals_Element_r15 */
1478 static int hf_lpp_s_oc_r15 = -1;                  /* INTEGER_0_255 */
1479 static int hf_lpp_s_od_r15 = -1;                  /* INTEGER_0_511 */
1480 static int hf_lpp_s_oh_r15 = -1;                  /* INTEGER_0_63 */
1481 static int hf_lpp_s_lc_r15 = -1;                  /* INTEGER_0_1023 */
1482 static int hf_lpp_s_ld_r15 = -1;                  /* INTEGER_0_1023 */
1483 static int hf_lpp_fkp_gradients_list_r15 = -1;    /* FKP_Gradients_List_r15 */
1484 static int hf_lpp_FKP_Gradients_List_r15_item = -1;  /* FKP_Gradients_Element_r15 */
1485 static int hf_lpp_north_geometric_gradient_r15 = -1;  /* INTEGER_M2048_2047 */
1486 static int hf_lpp_east_geometric_gradient_r15 = -1;  /* INTEGER_M2048_2047 */
1487 static int hf_lpp_north_ionospheric_gradient_r15 = -1;  /* INTEGER_M8192_8191 */
1488 static int hf_lpp_east_ionospheric_gradient_r15 = -1;  /* INTEGER_M8192_8191 */
1489 static int hf_lpp_ssrUpdateInterval_r15 = -1;     /* INTEGER_0_15 */
1490 static int hf_lpp_satelliteReferenceDatum_r15 = -1;  /* T_satelliteReferenceDatum_r15 */
1491 static int hf_lpp_iod_ssr_r15 = -1;               /* INTEGER_0_15 */
1492 static int hf_lpp_ssr_OrbitCorrectionList_r15 = -1;  /* SSR_OrbitCorrectionList_r15 */
1493 static int hf_lpp_SSR_OrbitCorrectionList_r15_item = -1;  /* SSR_OrbitCorrectionSatelliteElement_r15 */
1494 static int hf_lpp_delta_radial_r15 = -1;          /* INTEGER_M2097152_2097151 */
1495 static int hf_lpp_delta_AlongTrack_r15 = -1;      /* INTEGER_M524288_524287 */
1496 static int hf_lpp_delta_CrossTrack_r15 = -1;      /* INTEGER_M524288_524287 */
1497 static int hf_lpp_dot_delta_radial_r15 = -1;      /* INTEGER_M1048576_1048575 */
1498 static int hf_lpp_dot_delta_AlongTrack_r15 = -1;  /* INTEGER_M262144_262143 */
1499 static int hf_lpp_dot_delta_CrossTrack_r15 = -1;  /* INTEGER_M262144_262143 */
1500 static int hf_lpp_ssr_ClockCorrectionList_r15 = -1;  /* SSR_ClockCorrectionList_r15 */
1501 static int hf_lpp_SSR_ClockCorrectionList_r15_item = -1;  /* SSR_ClockCorrectionSatelliteElement_r15 */
1502 static int hf_lpp_delta_Clock_C0_r15 = -1;        /* INTEGER_M2097152_2097151 */
1503 static int hf_lpp_delta_Clock_C1_r15 = -1;        /* INTEGER_M1048576_1048575 */
1504 static int hf_lpp_delta_Clock_C2_r15 = -1;        /* INTEGER_M67108864_67108863 */
1505 static int hf_lpp_ssr_CodeBiasSatList_r15 = -1;   /* SSR_CodeBiasSatList_r15 */
1506 static int hf_lpp_SSR_CodeBiasSatList_r15_item = -1;  /* SSR_CodeBiasSatElement_r15 */
1507 static int hf_lpp_ssr_CodeBiasSignalList_r15 = -1;  /* SSR_CodeBiasSignalList_r15 */
1508 static int hf_lpp_SSR_CodeBiasSignalList_r15_item = -1;  /* SSR_CodeBiasSignalElement_r15 */
1509 static int hf_lpp_signal_and_tracking_mode_ID_r15 = -1;  /* GNSS_SignalID */
1510 static int hf_lpp_codeBias_r15 = -1;              /* INTEGER_M8192_8191 */
1511 static int hf_lpp_epochTime_r16 = -1;             /* GNSS_SystemTime */
1512 static int hf_lpp_ssrUpdateInterval_r16 = -1;     /* INTEGER_0_15 */
1513 static int hf_lpp_iod_ssr_r16 = -1;               /* INTEGER_0_15 */
1514 static int hf_lpp_ssr_URA_SatList_r16 = -1;       /* SSR_URA_SatList_r16 */
1515 static int hf_lpp_SSR_URA_SatList_r16_item = -1;  /* SSR_URA_SatElement_r16 */
1516 static int hf_lpp_ssr_URA_r16 = -1;               /* BIT_STRING_SIZE_6 */
1517 static int hf_lpp_ssr_PhaseBiasSatList_r16 = -1;  /* SSR_PhaseBiasSatList_r16 */
1518 static int hf_lpp_SSR_PhaseBiasSatList_r16_item = -1;  /* SSR_PhaseBiasSatElement_r16 */
1519 static int hf_lpp_ssr_PhaseBiasSignalList_r16 = -1;  /* SSR_PhaseBiasSignalList_r16 */
1520 static int hf_lpp_SSR_PhaseBiasSignalList_r16_item = -1;  /* SSR_PhaseBiasSignalElement_r16 */
1521 static int hf_lpp_signal_and_tracking_mode_ID_r16 = -1;  /* GNSS_SignalID */
1522 static int hf_lpp_phaseBias_r16 = -1;             /* INTEGER_M16384_16383 */
1523 static int hf_lpp_phaseDiscontinuityIndicator_r16 = -1;  /* INTEGER_0_3 */
1524 static int hf_lpp_phaseBiasIntegerIndicator_r16 = -1;  /* INTEGER_0_3 */
1525 static int hf_lpp_stec_SatList_r16 = -1;          /* STEC_SatList_r16 */
1526 static int hf_lpp_STEC_SatList_r16_item = -1;     /* STEC_SatElement_r16 */
1527 static int hf_lpp_stecQualityIndicator_r16 = -1;  /* BIT_STRING_SIZE_6 */
1528 static int hf_lpp_stec_C00_r16 = -1;              /* INTEGER_M8192_8191 */
1529 static int hf_lpp_stec_C01_r16 = -1;              /* INTEGER_M2048_2047 */
1530 static int hf_lpp_stec_C10_r16 = -1;              /* INTEGER_M2048_2047 */
1531 static int hf_lpp_stec_C11_r16 = -1;              /* INTEGER_M512_511 */
1532 static int hf_lpp_troposphericDelayQualityIndicator_r16 = -1;  /* BIT_STRING_SIZE_6 */
1533 static int hf_lpp_gridList_r16 = -1;              /* GridList_r16 */
1534 static int hf_lpp_GridList_r16_item = -1;         /* GridElement_r16 */
1535 static int hf_lpp_tropospericDelayCorrection_r16 = -1;  /* TropospericDelayCorrection_r16 */
1536 static int hf_lpp_stec_ResidualSatList_r16 = -1;  /* STEC_ResidualSatList_r16 */
1537 static int hf_lpp_tropoHydroStaticVerticalDelay_r16 = -1;  /* INTEGER_M256_255 */
1538 static int hf_lpp_tropoWetVerticalDelay_r16 = -1;  /* INTEGER_M128_127 */
1539 static int hf_lpp_STEC_ResidualSatList_r16_item = -1;  /* STEC_ResidualSatElement_r16 */
1540 static int hf_lpp_stecResidualCorrection_r16 = -1;  /* T_stecResidualCorrection_r16 */
1541 static int hf_lpp_b7_r16 = -1;                    /* INTEGER_M64_63 */
1542 static int hf_lpp_b16_r16 = -1;                   /* INTEGER_M32768_32767 */
1543 static int hf_lpp_navic_RefTOWC_r16 = -1;         /* INTEGER_0_50400 */
1544 static int hf_lpp_navic_CorrectionListAutoNav_r16 = -1;  /* NavIC_CorrectionListAutoNav_r16 */
1545 static int hf_lpp_NavIC_CorrectionListAutoNav_r16_item = -1;  /* NavIC_CorrectionElementAutoNav_r16 */
1546 static int hf_lpp_navic_Tod_r16 = -1;             /* INTEGER_0_65535 */
1547 static int hf_lpp_navic_iodec_r16 = -1;           /* INTEGER_0_255 */
1548 static int hf_lpp_navic_UDRAI_r16 = -1;           /* INTEGER_M16_15 */
1549 static int hf_lpp_navic_UDRArateI_r16 = -1;       /* INTEGER_M16_15 */
1550 static int hf_lpp_navic_EDC_r16 = -1;             /* NavIC_EDC_r16 */
1551 static int hf_lpp_navic_CDC_r16 = -1;             /* NavIC_CDC_r16 */
1552 static int hf_lpp_navic_AlphaEDC_r16 = -1;        /* INTEGER_M8192_8191 */
1553 static int hf_lpp_navic_BetaEDC_r16 = -1;         /* INTEGER_M8192_8191 */
1554 static int hf_lpp_navic_GammaEDC_r16 = -1;        /* INTEGER_M16384_16383 */
1555 static int hf_lpp_navic_AoIcorrection_r16 = -1;   /* INTEGER_M2048_2047 */
1556 static int hf_lpp_navic_AoRAcorrection_r16 = -1;  /* INTEGER_M2048_2047 */
1557 static int hf_lpp_navic_SemiMajorcorrection_r16 = -1;  /* INTEGER_M2048_2047 */
1558 static int hf_lpp_navic_ClockBiasCorrection_r16 = -1;  /* INTEGER_M4096_4095 */
1559 static int hf_lpp_navic_ClockDriftCorrection_r16 = -1;  /* INTEGER_M128_127 */
1560 static int hf_lpp_regionMasked_r16 = -1;          /* INTEGER_0_1023 */
1561 static int hf_lpp_regionIgpList_r16 = -1;         /* RegionIgpList_r16 */
1562 static int hf_lpp_RegionIgpList_r16_item = -1;    /* RegionIgpElement_r16 */
1563 static int hf_lpp_regionID_r16 = -1;              /* INTEGER_0_15 */
1564 static int hf_lpp_givei1_r16 = -1;                /* INTEGER_0_15 */
1565 static int hf_lpp_givd1_r16 = -1;                 /* INTEGER_0_511 */
1566 static int hf_lpp_givei2_r16 = -1;                /* INTEGER_0_15 */
1567 static int hf_lpp_givd2_r16 = -1;                 /* INTEGER_0_511 */
1568 static int hf_lpp_givei3_r16 = -1;                /* INTEGER_0_15 */
1569 static int hf_lpp_givd3_r16 = -1;                 /* INTEGER_0_511 */
1570 static int hf_lpp_givei4_r16 = -1;                /* INTEGER_0_15 */
1571 static int hf_lpp_givd4_r16 = -1;                 /* INTEGER_0_511 */
1572 static int hf_lpp_givei5_r16 = -1;                /* INTEGER_0_15 */
1573 static int hf_lpp_givd5_r16 = -1;                 /* INTEGER_0_511 */
1574 static int hf_lpp_givei6_r16 = -1;                /* INTEGER_0_15 */
1575 static int hf_lpp_givd6_r16 = -1;                 /* INTEGER_0_511 */
1576 static int hf_lpp_givei7_r16 = -1;                /* INTEGER_0_15 */
1577 static int hf_lpp_givd7_r16 = -1;                 /* INTEGER_0_511 */
1578 static int hf_lpp_givei8_r16 = -1;                /* INTEGER_0_15 */
1579 static int hf_lpp_givd8_r16 = -1;                 /* INTEGER_0_511 */
1580 static int hf_lpp_givei9_r16 = -1;                /* INTEGER_0_15 */
1581 static int hf_lpp_givd9_r16 = -1;                 /* INTEGER_0_511 */
1582 static int hf_lpp_givei10_r16 = -1;               /* INTEGER_0_15 */
1583 static int hf_lpp_givd10_r16 = -1;                /* INTEGER_0_511 */
1584 static int hf_lpp_givei11_r16 = -1;               /* INTEGER_0_15 */
1585 static int hf_lpp_givd11_r16 = -1;                /* INTEGER_0_511 */
1586 static int hf_lpp_givei12_r16 = -1;               /* INTEGER_0_15 */
1587 static int hf_lpp_givd12_r16 = -1;                /* INTEGER_0_511 */
1588 static int hf_lpp_givei13_r16 = -1;               /* INTEGER_0_15 */
1589 static int hf_lpp_givd13_r16 = -1;                /* INTEGER_0_511 */
1590 static int hf_lpp_givei14_r16 = -1;               /* INTEGER_0_15 */
1591 static int hf_lpp_givd14_r16 = -1;                /* INTEGER_0_511 */
1592 static int hf_lpp_givei15_r16 = -1;               /* INTEGER_0_15 */
1593 static int hf_lpp_givd15_r16 = -1;                /* INTEGER_0_511 */
1594 static int hf_lpp_gnss_CommonAssistDataReq = -1;  /* GNSS_CommonAssistDataReq */
1595 static int hf_lpp_gnss_GenericAssistDataReq = -1;  /* GNSS_GenericAssistDataReq */
1596 static int hf_lpp_gnss_PeriodicAssistDataReq_r15 = -1;  /* GNSS_PeriodicAssistDataReq_r15 */
1597 static int hf_lpp_gnss_ReferenceTimeReq = -1;     /* GNSS_ReferenceTimeReq */
1598 static int hf_lpp_gnss_ReferenceLocationReq = -1;  /* GNSS_ReferenceLocationReq */
1599 static int hf_lpp_gnss_IonosphericModelReq = -1;  /* GNSS_IonosphericModelReq */
1600 static int hf_lpp_gnss_EarthOrientationParametersReq = -1;  /* GNSS_EarthOrientationParametersReq */
1601 static int hf_lpp_gnss_RTK_ReferenceStationInfoReq_r15 = -1;  /* GNSS_RTK_ReferenceStationInfoReq_r15 */
1602 static int hf_lpp_gnss_RTK_AuxiliaryStationDataReq_r15 = -1;  /* GNSS_RTK_AuxiliaryStationDataReq_r15 */
1603 static int hf_lpp_gnss_SSR_CorrectionPointsReq_r16 = -1;  /* GNSS_SSR_CorrectionPointsReq_r16 */
1604 static int hf_lpp_GNSS_GenericAssistDataReq_item = -1;  /* GNSS_GenericAssistDataReqElement */
1605 static int hf_lpp_gnss_TimeModelsReq = -1;        /* GNSS_TimeModelListReq */
1606 static int hf_lpp_gnss_DifferentialCorrectionsReq = -1;  /* GNSS_DifferentialCorrectionsReq */
1607 static int hf_lpp_gnss_NavigationModelReq = -1;   /* GNSS_NavigationModelReq */
1608 static int hf_lpp_gnss_RealTimeIntegrityReq = -1;  /* GNSS_RealTimeIntegrityReq */
1609 static int hf_lpp_gnss_DataBitAssistanceReq = -1;  /* GNSS_DataBitAssistanceReq */
1610 static int hf_lpp_gnss_AcquisitionAssistanceReq = -1;  /* GNSS_AcquisitionAssistanceReq */
1611 static int hf_lpp_gnss_AlmanacReq = -1;           /* GNSS_AlmanacReq */
1612 static int hf_lpp_gnss_UTCModelReq = -1;          /* GNSS_UTC_ModelReq */
1613 static int hf_lpp_gnss_AuxiliaryInformationReq = -1;  /* GNSS_AuxiliaryInformationReq */
1614 static int hf_lpp_bds_DifferentialCorrectionsReq_r12 = -1;  /* BDS_DifferentialCorrectionsReq_r12 */
1615 static int hf_lpp_bds_GridModelReq_r12 = -1;      /* BDS_GridModelReq_r12 */
1616 static int hf_lpp_gnss_RTK_ObservationsReq_r15 = -1;  /* GNSS_RTK_ObservationsReq_r15 */
1617 static int hf_lpp_glo_RTK_BiasInformationReq_r15 = -1;  /* GLO_RTK_BiasInformationReq_r15 */
1618 static int hf_lpp_gnss_RTK_MAC_CorrectionDifferencesReq_r15 = -1;  /* GNSS_RTK_MAC_CorrectionDifferencesReq_r15 */
1619 static int hf_lpp_gnss_RTK_ResidualsReq_r15 = -1;  /* GNSS_RTK_ResidualsReq_r15 */
1620 static int hf_lpp_gnss_RTK_FKP_GradientsReq_r15 = -1;  /* GNSS_RTK_FKP_GradientsReq_r15 */
1621 static int hf_lpp_gnss_SSR_OrbitCorrectionsReq_r15 = -1;  /* GNSS_SSR_OrbitCorrectionsReq_r15 */
1622 static int hf_lpp_gnss_SSR_ClockCorrectionsReq_r15 = -1;  /* GNSS_SSR_ClockCorrectionsReq_r15 */
1623 static int hf_lpp_gnss_SSR_CodeBiasReq_r15 = -1;  /* GNSS_SSR_CodeBiasReq_r15 */
1624 static int hf_lpp_gnss_SSR_URA_Req_r16 = -1;      /* GNSS_SSR_URA_Req_r16 */
1625 static int hf_lpp_gnss_SSR_PhaseBiasReq_r16 = -1;  /* GNSS_SSR_PhaseBiasReq_r16 */
1626 static int hf_lpp_gnss_SSR_STEC_CorrectionReq_r16 = -1;  /* GNSS_SSR_STEC_CorrectionReq_r16 */
1627 static int hf_lpp_gnss_SSR_GriddedCorrectionReq_r16 = -1;  /* GNSS_SSR_GriddedCorrectionReq_r16 */
1628 static int hf_lpp_navic_DifferentialCorrectionsReq_r16 = -1;  /* NavIC_DifferentialCorrectionsReq_r16 */
1629 static int hf_lpp_navic_GridModelReq_r16 = -1;    /* NavIC_GridModelReq_r16 */
1630 static int hf_lpp_gnss_RTK_PeriodicObservationsReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1631 static int hf_lpp_glo_RTK_PeriodicBiasInformationReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1632 static int hf_lpp_gnss_RTK_MAC_PeriodicCorrectionDifferencesReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1633 static int hf_lpp_gnss_RTK_PeriodicResidualsReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1634 static int hf_lpp_gnss_RTK_FKP_PeriodicGradientsReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1635 static int hf_lpp_gnss_SSR_PeriodicOrbitCorrectionsReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1636 static int hf_lpp_gnss_SSR_PeriodicClockCorrectionsReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1637 static int hf_lpp_gnss_SSR_PeriodicCodeBiasReq_r15 = -1;  /* GNSS_PeriodicControlParam_r15 */
1638 static int hf_lpp_gnss_SSR_PeriodicURA_Req_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
1639 static int hf_lpp_gnss_SSR_PeriodicPhaseBiasReq_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
1640 static int hf_lpp_gnss_SSR_PeriodicSTEC_CorrectionReq_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
1641 static int hf_lpp_gnss_SSR_PeriodicGriddedCorrectionReq_r16 = -1;  /* GNSS_PeriodicControlParam_r15 */
1642 static int hf_lpp_gnss_TimeReqPrefList = -1;      /* SEQUENCE_SIZE_1_8_OF_GNSS_ID */
1643 static int hf_lpp_gnss_TimeReqPrefList_item = -1;  /* GNSS_ID */
1644 static int hf_lpp_gps_TOW_assistReq = -1;         /* BOOLEAN */
1645 static int hf_lpp_notOfLeapSecReq = -1;           /* BOOLEAN */
1646 static int hf_lpp_klobucharModelReq = -1;         /* BIT_STRING_SIZE_2 */
1647 static int hf_lpp_neQuickModelReq = -1;           /* NULL */
1648 static int hf_lpp_klobucharModel2Req_r16 = -1;    /* NULL */
1649 static int hf_lpp_antennaDescriptionReq_r15 = -1;  /* BOOLEAN */
1650 static int hf_lpp_antennaHeightReq_r15 = -1;      /* BOOLEAN */
1651 static int hf_lpp_physicalReferenceStationReq_r15 = -1;  /* BOOLEAN */
1652 static int hf_lpp_stationID_r15 = -1;             /* GNSS_ReferenceStationID_r15 */
1653 static int hf_lpp_correctionPointSetID_Req_r16 = -1;  /* INTEGER_0_16383 */
1654 static int hf_lpp_GNSS_TimeModelListReq_item = -1;  /* GNSS_TimeModelElementReq */
1655 static int hf_lpp_gnss_TO_IDsReq = -1;            /* INTEGER_1_15 */
1656 static int hf_lpp_deltaTreq = -1;                 /* BOOLEAN */
1657 static int hf_lpp_dgnss_SignalsReq = -1;          /* GNSS_SignalIDs */
1658 static int hf_lpp_dgnss_ValidityTimeReq = -1;     /* BOOLEAN */
1659 static int hf_lpp_storedNavList = -1;             /* StoredNavListInfo */
1660 static int hf_lpp_reqNavList = -1;                /* ReqNavListInfo */
1661 static int hf_lpp_gnss_WeekOrDay = -1;            /* T_gnss_WeekOrDay */
1662 static int hf_lpp_gnss_Toe = -1;                  /* T_gnss_Toe */
1663 static int hf_lpp_t_toeLimit = -1;                /* T_t_toeLimit */
1664 static int hf_lpp_satListRelatedDataList = -1;    /* SatListRelatedDataList */
1665 static int hf_lpp_SatListRelatedDataList_item = -1;  /* SatListRelatedDataElement */
1666 static int hf_lpp_clockModelID = -1;              /* INTEGER_1_8 */
1667 static int hf_lpp_orbitModelID = -1;              /* INTEGER_1_8 */
1668 static int hf_lpp_svReqList = -1;                 /* BIT_STRING_SIZE_64 */
1669 static int hf_lpp_clockModelID_PrefList = -1;     /* T_clockModelID_PrefList */
1670 static int hf_lpp_clockModelID_PrefList_item = -1;  /* INTEGER_1_8 */
1671 static int hf_lpp_orbitModelID_PrefList = -1;     /* T_orbitModelID_PrefList */
1672 static int hf_lpp_orbitModelID_PrefList_item = -1;  /* INTEGER_1_8 */
1673 static int hf_lpp_addNavparamReq = -1;            /* BOOLEAN */
1674 static int hf_lpp_gnss_TOD_Req = -1;              /* INTEGER_0_3599 */
1675 static int hf_lpp_gnss_TOD_FracReq = -1;          /* INTEGER_0_999 */
1676 static int hf_lpp_dataBitInterval = -1;           /* INTEGER_0_15 */
1677 static int hf_lpp_gnss_SignalType_01 = -1;        /* GNSS_SignalIDs */
1678 static int hf_lpp_gnss_DataBitsReq = -1;          /* GNSS_DataBitsReqSatList */
1679 static int hf_lpp_GNSS_DataBitsReqSatList_item = -1;  /* GNSS_DataBitsReqSatElement */
1680 static int hf_lpp_gnss_SignalID_Req = -1;         /* GNSS_SignalID */
1681 static int hf_lpp_modelID = -1;                   /* INTEGER_1_8 */
1682 static int hf_lpp_gnss_RTK_SignalsReq_r15 = -1;   /* GNSS_SignalIDs */
1683 static int hf_lpp_gnss_RTK_Integer_ms_Req_r15 = -1;  /* BOOLEAN */
1684 static int hf_lpp_gnss_RTK_PhaseRangeRateReq_r15 = -1;  /* BOOLEAN */
1685 static int hf_lpp_gnss_RTK_CNR_Req_r15 = -1;      /* BOOLEAN */
1686 static int hf_lpp_aux_ReferenceStationList_r15 = -1;  /* AUX_ReferenceStationList_r15 */
1687 static int hf_lpp_linkCombinations_PrefList_r15 = -1;  /* GNSS_Link_CombinationsList_r15 */
1688 static int hf_lpp_AUX_ReferenceStationList_r15_item = -1;  /* AUX_ReferenceStationID_Element_r15 */
1689 static int hf_lpp_aux_stationID_r15 = -1;         /* GNSS_ReferenceStationID_r15 */
1690 static int hf_lpp_storedNavList_r15 = -1;         /* GNSS_NavListInfo_r15 */
1691 static int hf_lpp_signal_and_tracking_mode_ID_Map_r15 = -1;  /* GNSS_SignalIDs */
1692 static int hf_lpp_signal_and_tracking_mode_ID_Map_r16 = -1;  /* GNSS_SignalIDs */
1693 static int hf_lpp_storedNavList_r16 = -1;         /* GNSS_NavListInfo_r15 */
1694 static int hf_lpp_dgnss_SignalsReq_r16 = -1;      /* GNSS_SignalIDs */
1695 static int hf_lpp_gnss_SignalMeasurementInformation = -1;  /* GNSS_SignalMeasurementInformation */
1696 static int hf_lpp_gnss_LocationInformation = -1;  /* GNSS_LocationInformation */
1697 static int hf_lpp_measurementReferenceTime = -1;  /* MeasurementReferenceTime */
1698 static int hf_lpp_gnss_MeasurementList = -1;      /* GNSS_MeasurementList */
1699 static int hf_lpp_gnss_TOD_msec = -1;             /* INTEGER_0_3599999 */
1700 static int hf_lpp_gnss_TOD_frac = -1;             /* INTEGER_0_3999 */
1701 static int hf_lpp_gnss_TOD_unc = -1;              /* INTEGER_0_127 */
1702 static int hf_lpp_networkTime_01 = -1;            /* T_networkTime */
1703 static int hf_lpp_eUTRA_01 = -1;                  /* T_eUTRA_01 */
1704 static int hf_lpp_cellGlobalId_01 = -1;           /* CellGlobalIdEUTRA_AndUTRA */
1705 static int hf_lpp_uTRA_01 = -1;                   /* T_uTRA_01 */
1706 static int hf_lpp_mode_01 = -1;                   /* T_mode_01 */
1707 static int hf_lpp_fdd_01 = -1;                    /* T_fdd_01 */
1708 static int hf_lpp_tdd_01 = -1;                    /* T_tdd_01 */
1709 static int hf_lpp_referenceSystemFrameNumber = -1;  /* INTEGER_0_4095 */
1710 static int hf_lpp_gSM_01 = -1;                    /* T_gSM_01 */
1711 static int hf_lpp_cellGlobalId_02 = -1;           /* CellGlobalIdGERAN */
1712 static int hf_lpp_referenceFrame = -1;            /* T_referenceFrame */
1713 static int hf_lpp_referenceFN = -1;               /* INTEGER_0_65535 */
1714 static int hf_lpp_referenceFNMSB = -1;            /* INTEGER_0_63 */
1715 static int hf_lpp_deltaGNSS_TOD = -1;             /* INTEGER_0_127 */
1716 static int hf_lpp_nbIoT_r14 = -1;                 /* T_nbIoT_r14 */
1717 static int hf_lpp_sfn_r14 = -1;                   /* BIT_STRING_SIZE_10 */
1718 static int hf_lpp_nr_r15_01 = -1;                 /* T_nr_r15_01 */
1719 static int hf_lpp_nr_sfn_r15 = -1;                /* BIT_STRING_SIZE_10 */
1720 static int hf_lpp_GNSS_MeasurementList_item = -1;  /* GNSS_MeasurementForOneGNSS */
1721 static int hf_lpp_gnss_SgnMeasList = -1;          /* GNSS_SgnMeasList */
1722 static int hf_lpp_GNSS_SgnMeasList_item = -1;     /* GNSS_SgnMeasElement */
1723 static int hf_lpp_gnss_CodePhaseAmbiguity = -1;   /* INTEGER_0_127 */
1724 static int hf_lpp_gnss_SatMeasList = -1;          /* GNSS_SatMeasList */
1725 static int hf_lpp_GNSS_SatMeasList_item = -1;     /* GNSS_SatMeasElement */
1726 static int hf_lpp_cNo = -1;                       /* INTEGER_0_63 */
1727 static int hf_lpp_mpathDet = -1;                  /* T_mpathDet */
1728 static int hf_lpp_carrierQualityInd = -1;         /* INTEGER_0_3 */
1729 static int hf_lpp_codePhase_01 = -1;              /* INTEGER_0_2097151 */
1730 static int hf_lpp_integerCodePhase = -1;          /* INTEGER_0_127 */
1731 static int hf_lpp_codePhaseRMSError = -1;         /* INTEGER_0_63 */
1732 static int hf_lpp_doppler = -1;                   /* INTEGER_M32768_32767 */
1733 static int hf_lpp_adr = -1;                       /* INTEGER_0_33554431 */
1734 static int hf_lpp_adrMSB_r15 = -1;                /* INTEGER_0_15 */
1735 static int hf_lpp_adrSign_r15 = -1;               /* T_adrSign_r15 */
1736 static int hf_lpp_adrRMSerror_r15 = -1;           /* INTEGER_0_127 */
1737 static int hf_lpp_delta_codePhase_r15 = -1;       /* INTEGER_0_7 */
1738 static int hf_lpp_agnss_List = -1;                /* GNSS_ID_Bitmap */
1739 static int hf_lpp_gnss_PositioningInstructions = -1;  /* GNSS_PositioningInstructions */
1740 static int hf_lpp_gnss_Methods = -1;              /* GNSS_ID_Bitmap */
1741 static int hf_lpp_fineTimeAssistanceMeasReq = -1;  /* BOOLEAN */
1742 static int hf_lpp_adrMeasReq = -1;                /* BOOLEAN */
1743 static int hf_lpp_multiFreqMeasReq = -1;          /* BOOLEAN */
1744 static int hf_lpp_ha_GNSS_Req_r15 = -1;           /* T_ha_GNSS_Req_r15 */
1745 static int hf_lpp_gnss_SupportList = -1;          /* GNSS_SupportList */
1746 static int hf_lpp_assistanceDataSupportList = -1;  /* AssistanceDataSupportList */
1747 static int hf_lpp_periodicalReportingNotSupported_r14 = -1;  /* PositioningModes */
1748 static int hf_lpp_idleStateForMeasurements_r14_01 = -1;  /* T_idleStateForMeasurements_r14_01 */
1749 static int hf_lpp_periodicAssistanceData_r15_01 = -1;  /* T_periodicAssistanceData_r15 */
1750 static int hf_lpp_GNSS_SupportList_item = -1;     /* GNSS_SupportElement */
1751 static int hf_lpp_sbas_IDs = -1;                  /* SBAS_IDs */
1752 static int hf_lpp_agnss_Modes = -1;               /* PositioningModes */
1753 static int hf_lpp_gnss_Signals = -1;              /* GNSS_SignalIDs */
1754 static int hf_lpp_fta_MeasSupport = -1;           /* T_fta_MeasSupport */
1755 static int hf_lpp_cellTime = -1;                  /* AccessTypes */
1756 static int hf_lpp_mode_02 = -1;                   /* PositioningModes */
1757 static int hf_lpp_adr_Support = -1;               /* BOOLEAN */
1758 static int hf_lpp_velocityMeasurementSupport = -1;  /* BOOLEAN */
1759 static int hf_lpp_adrEnhancementsSupport_r15 = -1;  /* T_adrEnhancementsSupport_r15 */
1760 static int hf_lpp_ha_gnss_Modes_r15 = -1;         /* PositioningModes */
1761 static int hf_lpp_gnss_CommonAssistanceDataSupport = -1;  /* GNSS_CommonAssistanceDataSupport */
1762 static int hf_lpp_gnss_GenericAssistanceDataSupport = -1;  /* GNSS_GenericAssistanceDataSupport */
1763 static int hf_lpp_gnss_ReferenceTimeSupport = -1;  /* GNSS_ReferenceTimeSupport */
1764 static int hf_lpp_gnss_ReferenceLocationSupport = -1;  /* GNSS_ReferenceLocationSupport */
1765 static int hf_lpp_gnss_IonosphericModelSupport = -1;  /* GNSS_IonosphericModelSupport */
1766 static int hf_lpp_gnss_EarthOrientationParametersSupport = -1;  /* GNSS_EarthOrientationParametersSupport */
1767 static int hf_lpp_gnss_RTK_ReferenceStationInfoSupport_r15 = -1;  /* GNSS_RTK_ReferenceStationInfoSupport_r15 */
1768 static int hf_lpp_gnss_RTK_AuxiliaryStationDataSupport_r15 = -1;  /* GNSS_RTK_AuxiliaryStationDataSupport_r15 */
1769 static int hf_lpp_gnss_SystemTime_01 = -1;        /* GNSS_ID_Bitmap */
1770 static int hf_lpp_fta_Support = -1;               /* AccessTypes */
1771 static int hf_lpp_ionoModel = -1;                 /* T_ionoModel */
1772 static int hf_lpp_GNSS_GenericAssistanceDataSupport_item = -1;  /* GNSS_GenericAssistDataSupportElement */
1773 static int hf_lpp_gnss_TimeModelsSupport = -1;    /* GNSS_TimeModelListSupport */
1774 static int hf_lpp_gnss_DifferentialCorrectionsSupport = -1;  /* GNSS_DifferentialCorrectionsSupport */
1775 static int hf_lpp_gnss_NavigationModelSupport = -1;  /* GNSS_NavigationModelSupport */
1776 static int hf_lpp_gnss_RealTimeIntegritySupport = -1;  /* GNSS_RealTimeIntegritySupport */
1777 static int hf_lpp_gnss_DataBitAssistanceSupport = -1;  /* GNSS_DataBitAssistanceSupport */
1778 static int hf_lpp_gnss_AcquisitionAssistanceSupport = -1;  /* GNSS_AcquisitionAssistanceSupport */
1779 static int hf_lpp_gnss_AlmanacSupport = -1;       /* GNSS_AlmanacSupport */
1780 static int hf_lpp_gnss_UTC_ModelSupport = -1;     /* GNSS_UTC_ModelSupport */
1781 static int hf_lpp_gnss_AuxiliaryInformationSupport = -1;  /* GNSS_AuxiliaryInformationSupport */
1782 static int hf_lpp_bds_DifferentialCorrectionsSupport_r12 = -1;  /* BDS_DifferentialCorrectionsSupport_r12 */
1783 static int hf_lpp_bds_GridModelSupport_r12 = -1;  /* BDS_GridModelSupport_r12 */
1784 static int hf_lpp_gnss_RTK_ObservationsSupport_r15 = -1;  /* GNSS_RTK_ObservationsSupport_r15 */
1785 static int hf_lpp_glo_RTK_BiasInformationSupport_r15 = -1;  /* GLO_RTK_BiasInformationSupport_r15 */
1786 static int hf_lpp_gnss_RTK_MAC_CorrectionDifferencesSupport_r15 = -1;  /* GNSS_RTK_MAC_CorrectionDifferencesSupport_r15 */
1787 static int hf_lpp_gnss_RTK_ResidualsSupport_r15 = -1;  /* GNSS_RTK_ResidualsSupport_r15 */
1788 static int hf_lpp_gnss_RTK_FKP_GradientsSupport_r15 = -1;  /* GNSS_RTK_FKP_GradientsSupport_r15 */
1789 static int hf_lpp_gnss_SSR_OrbitCorrectionsSupport_r15 = -1;  /* GNSS_SSR_OrbitCorrectionsSupport_r15 */
1790 static int hf_lpp_gnss_SSR_ClockCorrectionsSupport_r15 = -1;  /* GNSS_SSR_ClockCorrectionsSupport_r15 */
1791 static int hf_lpp_gnss_SSR_CodeBiasSupport_r15 = -1;  /* GNSS_SSR_CodeBiasSupport_r15 */
1792 static int hf_lpp_gnss_SSR_URA_Support_r16 = -1;  /* GNSS_SSR_URA_Support_r16 */
1793 static int hf_lpp_gnss_SSR_PhaseBiasSupport_r16 = -1;  /* GNSS_SSR_PhaseBiasSupport_r16 */
1794 static int hf_lpp_gnss_SSR_STEC_CorrectionSupport_r16 = -1;  /* GNSS_SSR_STEC_CorrectionSupport_r16 */
1795 static int hf_lpp_gnss_SSR_GriddedCorrectionSupport_r16 = -1;  /* GNSS_SSR_GriddedCorrectionSupport_r16 */
1796 static int hf_lpp_navic_DifferentialCorrectionsSupport_r16 = -1;  /* NavIC_DifferentialCorrectionsSupport_r16 */
1797 static int hf_lpp_navic_GridModelSupport_r16 = -1;  /* NavIC_GridModelSupport_r16 */
1798 static int hf_lpp_gnssSignalIDs = -1;             /* GNSS_SignalIDs */
1799 static int hf_lpp_dgnss_ValidityTimeSup = -1;     /* BOOLEAN */
1800 static int hf_lpp_clockModel = -1;                /* T_clockModel */
1801 static int hf_lpp_orbitModel = -1;                /* T_orbitModel */
1802 static int hf_lpp_confidenceSupport_r10 = -1;     /* T_confidenceSupport_r10 */
1803 static int hf_lpp_dopplerUncertaintyExtSupport_r10 = -1;  /* T_dopplerUncertaintyExtSupport_r10 */
1804 static int hf_lpp_almanacModel = -1;              /* T_almanacModel */
1805 static int hf_lpp_utc_Model = -1;                 /* T_utc_Model */
1806 static int hf_lpp_gnssSignalIDs_r15 = -1;         /* GNSS_SignalIDs */
1807 static int hf_lpp_link_combinations_support_r15 = -1;  /* GNSS_Link_CombinationsList_r15 */
1808 static int hf_lpp_signal_and_tracking_mode_ID_Sup_r15 = -1;  /* GNSS_SignalIDs */
1809 static int hf_lpp_signal_and_tracking_mode_ID_Sup_r16 = -1;  /* GNSS_SignalIDs */
1810 static int hf_lpp_gnssSignalIDs_r16 = -1;         /* GNSS_SignalIDs */
1811 static int hf_lpp_gnss_SupportListReq = -1;       /* BOOLEAN */
1812 static int hf_lpp_assistanceDataSupportListReq = -1;  /* BOOLEAN */
1813 static int hf_lpp_locationVelocityTypesReq = -1;  /* BOOLEAN */
1814 static int hf_lpp_locationServerErrorCauses_01 = -1;  /* GNSS_LocationServerErrorCauses */
1815 static int hf_lpp_targetDeviceErrorCauses_01 = -1;  /* GNSS_TargetDeviceErrorCauses */
1816 static int hf_lpp_cause_02 = -1;                  /* T_cause_02 */
1817 static int hf_lpp_cause_03 = -1;                  /* T_cause_03 */
1818 static int hf_lpp_fineTimeAssistanceMeasurementsNotPossible = -1;  /* NULL */
1819 static int hf_lpp_adrMeasurementsNotPossible = -1;  /* NULL */
1820 static int hf_lpp_multiFrequencyMeasurementsNotPossible = -1;  /* NULL */
1821 static int hf_lpp_gnss_FrequencyID_r15 = -1;      /* INTEGER_0_7 */
1822 static int hf_lpp_gnss_id = -1;                   /* T_gnss_id */
1823 static int hf_lpp_gnss_ids = -1;                  /* T_gnss_ids */
1824 static int hf_lpp_GNSS_Link_CombinationsList_r15_item = -1;  /* GNSS_Link_Combinations_r15 */
1825 static int hf_lpp_GNSS_NavListInfo_r15_item = -1;  /* SatListElement_r15 */
1826 static int hf_lpp_networkID_r15_01 = -1;          /* INTEGER_0_255 */
1827 static int hf_lpp_deliveryAmount_r15 = -1;        /* INTEGER_1_32 */
1828 static int hf_lpp_deliveryInterval_r15 = -1;      /* INTEGER_1_64 */
1829 static int hf_lpp_referenceStationID_r15_01 = -1;  /* INTEGER_0_65535 */
1830 static int hf_lpp_providerName_r15 = -1;          /* VisibleString_SIZE_1_32 */
1831 static int hf_lpp_gnss_SignalID_01 = -1;          /* INTEGER_0_7 */
1832 static int hf_lpp_gnss_SignalID_Ext_r15 = -1;     /* INTEGER_8_23 */
1833 static int hf_lpp_gnss_SignalIDs = -1;            /* BIT_STRING_SIZE_8 */
1834 static int hf_lpp_gnss_SignalIDs_Ext_r15 = -1;    /* BIT_STRING_SIZE_16 */
1835 static int hf_lpp_subNetworkID_r15_01 = -1;       /* INTEGER_0_15 */
1836 static int hf_lpp_sbas_id = -1;                   /* T_sbas_id */
1837 static int hf_lpp_sbas_IDs_01 = -1;               /* T_sbas_IDs */
1838 static int hf_lpp_satellite_id = -1;              /* INTEGER_0_63 */
1839 static int hf_lpp_ecid_SignalMeasurementInformation = -1;  /* ECID_SignalMeasurementInformation */
1840 static int hf_lpp_ecid_Error = -1;                /* ECID_Error */
1841 static int hf_lpp_primaryCellMeasuredResults = -1;  /* MeasuredResultsElement */
1842 static int hf_lpp_measuredResultsList = -1;       /* MeasuredResultsList */
1843 static int hf_lpp_MeasuredResultsList_item = -1;  /* MeasuredResultsElement */
1844 static int hf_lpp_arfcnEUTRA = -1;                /* ARFCN_ValueEUTRA */
1845 static int hf_lpp_rsrp_Result = -1;               /* INTEGER_0_97 */
1846 static int hf_lpp_rsrq_Result = -1;               /* INTEGER_0_34 */
1847 static int hf_lpp_ue_RxTxTimeDiff = -1;           /* INTEGER_0_4095 */
1848 static int hf_lpp_arfcnEUTRA_v9a0 = -1;           /* ARFCN_ValueEUTRA_v9a0 */
1849 static int hf_lpp_nrsrp_Result_r14 = -1;          /* INTEGER_0_113 */
1850 static int hf_lpp_nrsrq_Result_r14 = -1;          /* INTEGER_0_74 */
1851 static int hf_lpp_carrierFreqOffsetNB_r14 = -1;   /* CarrierFreqOffsetNB_r14 */
1852 static int hf_lpp_rsrp_Result_v1470 = -1;         /* INTEGER_M17_M1 */
1853 static int hf_lpp_rsrq_Result_v1470 = -1;         /* INTEGER_M30_46 */
1854 static int hf_lpp_requestedMeasurements = -1;     /* T_requestedMeasurements */
1855 static int hf_lpp_ecid_MeasSupported = -1;        /* T_ecid_MeasSupported */
1856 static int hf_lpp_ueRxTxSupTDD_r13 = -1;          /* T_ueRxTxSupTDD_r13 */
1857 static int hf_lpp_periodicalReporting_r14_01 = -1;  /* T_periodicalReporting_r14_01 */
1858 static int hf_lpp_triggeredReporting_r14 = -1;    /* T_triggeredReporting_r14 */
1859 static int hf_lpp_idleStateForMeasurements_r14_02 = -1;  /* T_idleStateForMeasurements_r14_02 */
1860 static int hf_lpp_locationServerErrorCauses_02 = -1;  /* ECID_LocationServerErrorCauses */
1861 static int hf_lpp_targetDeviceErrorCauses_02 = -1;  /* ECID_TargetDeviceErrorCauses */
1862 static int hf_lpp_cause_04 = -1;                  /* T_cause_04 */
1863 static int hf_lpp_cause_05 = -1;                  /* T_cause_05 */
1864 static int hf_lpp_rsrpMeasurementNotPossible = -1;  /* NULL */
1865 static int hf_lpp_rsrqMeasurementNotPossible = -1;  /* NULL */
1866 static int hf_lpp_ueRxTxMeasurementNotPossible = -1;  /* NULL */
1867 static int hf_lpp_nrsrpMeasurementNotPossible_r14 = -1;  /* NULL */
1868 static int hf_lpp_nrsrqMeasurementNotPossible_r14 = -1;  /* NULL */
1869 static int hf_lpp_tbs_MeasurementInformation_r13 = -1;  /* TBS_MeasurementInformation_r13 */
1870 static int hf_lpp_tbs_Error_r13 = -1;             /* TBS_Error_r13 */
1871 static int hf_lpp_measurementReferenceTime_r13 = -1;  /* UTCTime */
1872 static int hf_lpp_mbs_SgnMeasList_r13 = -1;       /* MBS_BeaconMeasList_r13 */
1873 static int hf_lpp_MBS_BeaconMeasList_r13_item = -1;  /* MBS_BeaconMeasElement_r13 */
1874 static int hf_lpp_transmitterID_r13 = -1;         /* INTEGER_0_32767 */
1875 static int hf_lpp_codePhase_r13 = -1;             /* INTEGER_0_2097151 */
1876 static int hf_lpp_codePhaseRMSError_r13 = -1;     /* INTEGER_0_63 */
1877 static int hf_lpp_rssi_r14 = -1;                  /* INTEGER_M130_M30 */
1878 static int hf_lpp_mbsSgnMeasListReq_r13 = -1;     /* BOOLEAN */
1879 static int hf_lpp_mbsAssistanceAvailability_r14 = -1;  /* BOOLEAN */
1880 static int hf_lpp_mbsRequestedMeasurements_r14 = -1;  /* T_mbsRequestedMeasurements_r14 */
1881 static int hf_lpp_tbs_Modes_r13 = -1;             /* T_tbs_Modes_r13 */
1882 static int hf_lpp_mbs_AssistanceDataSupportList_r14 = -1;  /* MBS_AssistanceDataSupportList_r14 */
1883 static int hf_lpp_periodicalReportingSupported_r14 = -1;  /* PositioningModes */
1884 static int hf_lpp_mbs_ConfigSupport_r14 = -1;     /* T_mbs_ConfigSupport_r14 */
1885 static int hf_lpp_mbs_IdleStateForMeasurements_r14 = -1;  /* T_mbs_IdleStateForMeasurements_r14 */
1886 static int hf_lpp_mbs_AcquisitionAssistanceDataSupport_r14 = -1;  /* BOOLEAN */
1887 static int hf_lpp_mbs_AlmanacAssistanceDataSupport_r14 = -1;  /* BOOLEAN */
1888 static int hf_lpp_locationServerErrorCauses_r13 = -1;  /* TBS_LocationServerErrorCauses_r13 */
1889 static int hf_lpp_targetDeviceErrorCauses_r13 = -1;  /* TBS_TargetDeviceErrorCauses_r13 */
1890 static int hf_lpp_cause_r13 = -1;                 /* T_cause_r13 */
1891 static int hf_lpp_cause_r13_01 = -1;              /* T_cause_r13_01 */
1892 static int hf_lpp_tbs_AssistanceDataList_r14 = -1;  /* TBS_AssistanceDataList_r14 */
1893 static int hf_lpp_tbs_Error_r14 = -1;             /* TBS_Error_r13 */
1894 static int hf_lpp_mbs_AssistanceDataList_r14 = -1;  /* MBS_AssistanceDataList_r14 */
1895 static int hf_lpp_MBS_AssistanceDataList_r14_item = -1;  /* MBS_AssistanceDataElement_r14 */
1896 static int hf_lpp_mbs_AlmanacAssistance_r14 = -1;  /* MBS_AlmanacAssistance_r14 */
1897 static int hf_lpp_mbs_AcquisitionAssistance_r14 = -1;  /* MBS_AcquisitionAssistance_r14 */
1898 static int hf_lpp_transmitterID_r14 = -1;         /* INTEGER_0_32767 */
1899 static int hf_lpp_transmitterLatitude_r14 = -1;   /* T_transmitterLatitude_r14 */
1900 static int hf_lpp_transmitterLongitude_r14 = -1;  /* T_transmitterLongitude_r14 */
1901 static int hf_lpp_transmitterAltitude_r14 = -1;   /* T_transmitterAltitude_r14 */
1902 static int hf_lpp_timeCorrection_r14 = -1;        /* INTEGER_0_25 */
1903 static int hf_lpp_mbsConfiguration_r14 = -1;      /* T_mbsConfiguration_r14 */
1904 static int hf_lpp_pnCodeIndex_r14 = -1;           /* INTEGER_1_128 */
1905 static int hf_lpp_freq_r14 = -1;                  /* INTEGER_919750000_927250000 */
1906 static int hf_lpp_mbs_AlmanacAssistanceDataReq_r14 = -1;  /* BOOLEAN */
1907 static int hf_lpp_mbs_AcquisitionAssistanceDataReq_r14 = -1;  /* BOOLEAN */
1908 static int hf_lpp_sensor_MeasurementInformation_r13 = -1;  /* Sensor_MeasurementInformation_r13 */
1909 static int hf_lpp_sensor_Error_r13 = -1;          /* Sensor_Error_r13 */
1910 static int hf_lpp_sensor_MotionInformation_r15 = -1;  /* Sensor_MotionInformation_r15 */
1911 static int hf_lpp_uncompensatedBarometricPressure_r13 = -1;  /* INTEGER_30000_115000 */
1912 static int hf_lpp_uncertainty_r14 = -1;           /* T_uncertainty_r14 */
1913 static int hf_lpp_range_r14 = -1;                 /* INTEGER_0_1000 */
1914 static int hf_lpp_confidence_r14 = -1;            /* INTEGER_1_100 */
1915 static int hf_lpp_adjustment_r16 = -1;            /* INTEGER_M5000_5000 */
1916 static int hf_lpp_refTime_r15 = -1;               /* DisplacementTimeStamp_r15 */
1917 static int hf_lpp_displacementInfoList_r15 = -1;  /* DisplacementInfoList_r15 */
1918 static int hf_lpp_DisplacementInfoList_r15_item = -1;  /* DisplacementInfoListElement_r15 */
1919 static int hf_lpp_deltaTimeStamp_r15 = -1;        /* DeltaTime_r15 */
1920 static int hf_lpp_displacement_r15 = -1;          /* Displacement_r15 */
1921 static int hf_lpp_utcTime_r15 = -1;               /* UTC_Time_r15 */
1922 static int hf_lpp_gnssTime_r15 = -1;              /* MeasurementReferenceTime */
1923 static int hf_lpp_systemFrameNumber_r15 = -1;     /* SFN_r15 */
1924 static int hf_lpp_measurementSFN_r15 = -1;        /* INTEGER_M8192_9214 */
1925 static int hf_lpp_deltaTimeSec_r15 = -1;          /* INTEGER_1_16384 */
1926 static int hf_lpp_deltaTimeSFN_r15 = -1;          /* INTEGER_1_4096 */
1927 static int hf_lpp_sfn_r15 = -1;                   /* BIT_STRING_SIZE_10 */
1928 static int hf_lpp_hyperSFN_r15 = -1;              /* BIT_STRING_SIZE_10 */
1929 static int hf_lpp_bearing_r15 = -1;               /* INTEGER_0_3599 */
1930 static int hf_lpp_bearingUncConfidence_r15 = -1;  /* INTEGER_0_100 */
1931 static int hf_lpp_bearingRef_r15 = -1;            /* T_bearingRef_r15 */
1932 static int hf_lpp_horizontalDistance_r15 = -1;    /* INTEGER_0_8191 */
1933 static int hf_lpp_horizontalDistanceUnc_r15 = -1;  /* INTEGER_0_255 */
1934 static int hf_lpp_horizontalUncConfidence_r15 = -1;  /* INTEGER_0_100 */
1935 static int hf_lpp_verticalDirection_r15 = -1;     /* T_verticalDirection_r15 */
1936 static int hf_lpp_verticalDistance_r15 = -1;      /* INTEGER_0_8191 */
1937 static int hf_lpp_verticalDistanceUnc_r15 = -1;   /* INTEGER_0_255 */
1938 static int hf_lpp_verticalUncConfidence_r15 = -1;  /* INTEGER_0_100 */
1939 static int hf_lpp_utcTime_r15_01 = -1;            /* UTCTime */
1940 static int hf_lpp_utcTime_ms_r15 = -1;            /* INTEGER_0_999 */
1941 static int hf_lpp_uncompensatedBarometricPressureReq_r13 = -1;  /* BOOLEAN */
1942 static int hf_lpp_assistanceAvailability_r14 = -1;  /* BOOLEAN */
1943 static int hf_lpp_sensor_MotionInformationReq_r15 = -1;  /* BOOLEAN */
1944 static int hf_lpp_adjustmentReq_r16 = -1;         /* BOOLEAN */
1945 static int hf_lpp_sensor_Modes_r13 = -1;          /* T_sensor_Modes_r13 */
1946 static int hf_lpp_sensor_AssistanceDataSupportList_r14 = -1;  /* Sensor_AssistanceDataSupportList_r14 */
1947 static int hf_lpp_idleStateForMeasurements_r14_03 = -1;  /* T_idleStateForMeasurements_r14_03 */
1948 static int hf_lpp_sensor_MotionInformationSup_r15 = -1;  /* T_sensor_MotionInformationSup_r15 */
1949 static int hf_lpp_adjustmentSupported_r16 = -1;   /* T_adjustmentSupported_r16 */
1950 static int hf_lpp_validityPeriodSupported_v1520 = -1;  /* T_validityPeriodSupported_v1520 */
1951 static int hf_lpp_validityAreaSupported_v1520 = -1;  /* T_validityAreaSupported_v1520 */
1952 static int hf_lpp_locationServerErrorCauses_r13_01 = -1;  /* Sensor_LocationServerErrorCauses_r13 */
1953 static int hf_lpp_targetDeviceErrorCauses_r13_01 = -1;  /* Sensor_TargetDeviceErrorCauses_r13 */
1954 static int hf_lpp_cause_r13_02 = -1;              /* T_cause_r13_02 */
1955 static int hf_lpp_cause_r13_03 = -1;              /* T_cause_r13_03 */
1956 static int hf_lpp_sensor_AssistanceDataList_r14 = -1;  /* Sensor_AssistanceDataList_r14 */
1957 static int hf_lpp_sensor_Error_r14 = -1;          /* Sensor_Error_r13 */
1958 static int hf_lpp_refPressure_r14 = -1;           /* INTEGER_M20000_10000 */
1959 static int hf_lpp_refPosition_r14 = -1;           /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
1960 static int hf_lpp_refTemperature_r14 = -1;        /* INTEGER_M64_63 */
1961 static int hf_lpp_period_v1520 = -1;              /* T_period_v1520 */
1962 static int hf_lpp_pressureValidityPeriod_v1520 = -1;  /* PressureValidityPeriod_v1520 */
1963 static int hf_lpp_referencePressureRate_v1520 = -1;  /* INTEGER_M128_127 */
1964 static int hf_lpp_area_v1520 = -1;                /* T_area_v1520 */
1965 static int hf_lpp_pressureValidityArea_v1520 = -1;  /* PressureValidityArea_v1520 */
1966 static int hf_lpp_gN_pressure_v1520 = -1;         /* T_gN_pressure_v1520 */
1967 static int hf_lpp_gE_pressure_v1520 = -1;         /* T_gE_pressure_v1520 */
1968 static int hf_lpp_centerPoint_v1520 = -1;         /* Ellipsoid_Point */
1969 static int hf_lpp_validityAreaWidth_v1520 = -1;   /* INTEGER_1_128 */
1970 static int hf_lpp_validityAreaHeight_v1520 = -1;  /* INTEGER_1_128 */
1971 static int hf_lpp_beginTime_v1520 = -1;           /* GNSS_SystemTime */
1972 static int hf_lpp_beginTimeAlt_v1520 = -1;        /* INTEGER_0_2881 */
1973 static int hf_lpp_duration_v1520 = -1;            /* INTEGER_1_2881 */
1974 static int hf_lpp_wlan_MeasurementInformation_r13 = -1;  /* WLAN_MeasurementInformation_r13 */
1975 static int hf_lpp_wlan_Error_r13 = -1;            /* WLAN_Error_r13 */
1976 static int hf_lpp_wlan_MeasurementList_r13 = -1;  /* WLAN_MeasurementList_r13 */
1977 static int hf_lpp_WLAN_MeasurementList_r13_item = -1;  /* WLAN_MeasurementElement_r13 */
1978 static int hf_lpp_wlan_AP_Identifier_r13 = -1;    /* WLAN_AP_Identifier_r13 */
1979 static int hf_lpp_rssi_r13 = -1;                  /* INTEGER_M127_128 */
1980 static int hf_lpp_rtt_r13 = -1;                   /* WLAN_RTT_r13 */
1981 static int hf_lpp_apChannelFrequency_r13 = -1;    /* INTEGER_0_256 */
1982 static int hf_lpp_servingFlag_r13 = -1;           /* BOOLEAN */
1983 static int hf_lpp_bssid_r13 = -1;                 /* OCTET_STRING_SIZE_6 */
1984 static int hf_lpp_ssid_r13 = -1;                  /* T_ssid_r13 */
1985 static int hf_lpp_rttValue_r13 = -1;              /* INTEGER_0_16777215 */
1986 static int hf_lpp_rttUnits_r13 = -1;              /* T_rttUnits_r13 */
1987 static int hf_lpp_rttAccuracy_r13 = -1;           /* INTEGER_0_255 */
1988 static int hf_lpp_requestedMeasurements_r13 = -1;  /* T_requestedMeasurements_r13 */
1989 static int hf_lpp_wlan_Modes_r13 = -1;            /* T_wlan_Modes_r13 */
1990 static int hf_lpp_wlan_MeasSupported_r13 = -1;    /* T_wlan_MeasSupported_r13 */
1991 static int hf_lpp_wlan_AP_AD_Supported_r14 = -1;  /* T_wlan_AP_AD_Supported_r14 */
1992 static int hf_lpp_idleStateForMeasurements_r14_04 = -1;  /* T_idleStateForMeasurements_r14_04 */
1993 static int hf_lpp_locationServerErrorCauses_r13_02 = -1;  /* WLAN_LocationServerErrorCauses_r13 */
1994 static int hf_lpp_targetDeviceErrorCauses_r13_02 = -1;  /* WLAN_TargetDeviceErrorCauses_r13 */
1995 static int hf_lpp_cause_r13_04 = -1;              /* T_cause_r13_04 */
1996 static int hf_lpp_apLocationDataUnavailable_r14 = -1;  /* NULL */
1997 static int hf_lpp_cause_r13_05 = -1;              /* T_cause_r13_05 */
1998 static int hf_lpp_wlan_AP_RSSI_MeasurementNotPossible_r13 = -1;  /* NULL */
1999 static int hf_lpp_wlan_AP_RTT_MeasurementNotPossible_r13 = -1;  /* NULL */
2000 static int hf_lpp_wlan_DataSet_r14 = -1;          /* SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14 */
2001 static int hf_lpp_wlan_DataSet_r14_item = -1;     /* WLAN_DataSet_r14 */
2002 static int hf_lpp_wlan_Error_r14 = -1;            /* WLAN_Error_r13 */
2003 static int hf_lpp_wlan_AP_List_r14 = -1;          /* SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14 */
2004 static int hf_lpp_wlan_AP_List_r14_item = -1;     /* WLAN_AP_Data_r14 */
2005 static int hf_lpp_supportedChannels_11a_r14 = -1;  /* SupportedChannels_11a_r14 */
2006 static int hf_lpp_supportedChannels_11bg_r14 = -1;  /* SupportedChannels_11bg_r14 */
2007 static int hf_lpp_ch34_r14 = -1;                  /* BOOLEAN */
2008 static int hf_lpp_ch36_r14 = -1;                  /* BOOLEAN */
2009 static int hf_lpp_ch38_r14 = -1;                  /* BOOLEAN */
2010 static int hf_lpp_ch40_r14 = -1;                  /* BOOLEAN */
2011 static int hf_lpp_ch42_r14 = -1;                  /* BOOLEAN */
2012 static int hf_lpp_ch44_r14 = -1;                  /* BOOLEAN */
2013 static int hf_lpp_ch46_r14 = -1;                  /* BOOLEAN */
2014 static int hf_lpp_ch48_r14 = -1;                  /* BOOLEAN */
2015 static int hf_lpp_ch52_r14 = -1;                  /* BOOLEAN */
2016 static int hf_lpp_ch56_r14 = -1;                  /* BOOLEAN */
2017 static int hf_lpp_ch60_r14 = -1;                  /* BOOLEAN */
2018 static int hf_lpp_ch64_r14 = -1;                  /* BOOLEAN */
2019 static int hf_lpp_ch149_r14 = -1;                 /* BOOLEAN */
2020 static int hf_lpp_ch153_r14 = -1;                 /* BOOLEAN */
2021 static int hf_lpp_ch157_r14 = -1;                 /* BOOLEAN */
2022 static int hf_lpp_ch161_r14 = -1;                 /* BOOLEAN */
2023 static int hf_lpp_ch1_r14 = -1;                   /* BOOLEAN */
2024 static int hf_lpp_ch2_r14 = -1;                   /* BOOLEAN */
2025 static int hf_lpp_ch3_r14 = -1;                   /* BOOLEAN */
2026 static int hf_lpp_ch4_r14 = -1;                   /* BOOLEAN */
2027 static int hf_lpp_ch5_r14 = -1;                   /* BOOLEAN */
2028 static int hf_lpp_ch6_r14 = -1;                   /* BOOLEAN */
2029 static int hf_lpp_ch7_r14 = -1;                   /* BOOLEAN */
2030 static int hf_lpp_ch8_r14 = -1;                   /* BOOLEAN */
2031 static int hf_lpp_ch9_r14 = -1;                   /* BOOLEAN */
2032 static int hf_lpp_ch10_r14 = -1;                  /* BOOLEAN */
2033 static int hf_lpp_ch11_r14 = -1;                  /* BOOLEAN */
2034 static int hf_lpp_ch12_r14 = -1;                  /* BOOLEAN */
2035 static int hf_lpp_ch13_r14 = -1;                  /* BOOLEAN */
2036 static int hf_lpp_ch14_r14 = -1;                  /* BOOLEAN */
2037 static int hf_lpp_wlan_AP_Identifier_r14 = -1;    /* WLAN_AP_Identifier_r13 */
2038 static int hf_lpp_wlan_AP_Location_r14 = -1;      /* WLAN_AP_Location_r14 */
2039 static int hf_lpp_locationDataLCI_r14 = -1;       /* LocationDataLCI_r14 */
2040 static int hf_lpp_latitudeUncertainty_r14 = -1;   /* BIT_STRING_SIZE_6 */
2041 static int hf_lpp_latitude_r14 = -1;              /* BIT_STRING_SIZE_34 */
2042 static int hf_lpp_longitudeUncertainty_r14 = -1;  /* BIT_STRING_SIZE_6 */
2043 static int hf_lpp_longitude_r14 = -1;             /* BIT_STRING_SIZE_34 */
2044 static int hf_lpp_altitudeUncertainty_r14 = -1;   /* BIT_STRING_SIZE_6 */
2045 static int hf_lpp_altitude_r14 = -1;              /* BIT_STRING_SIZE_30 */
2046 static int hf_lpp_datum_r14 = -1;                 /* BIT_STRING_SIZE_8 */
2047 static int hf_lpp_requestedAD_r14 = -1;           /* T_requestedAD_r14 */
2048 static int hf_lpp_visibleAPs_r14 = -1;            /* SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13 */
2049 static int hf_lpp_visibleAPs_r14_item = -1;       /* WLAN_AP_Identifier_r13 */
2050 static int hf_lpp_wlan_AP_StoredData_r14 = -1;    /* SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13 */
2051 static int hf_lpp_wlan_AP_StoredData_r14_item = -1;  /* WLAN_AP_Identifier_r13 */
2052 static int hf_lpp_bt_MeasurementInformation_r13 = -1;  /* BT_MeasurementInformation_r13 */
2053 static int hf_lpp_bt_Error_r13 = -1;              /* BT_Error_r13 */
2054 static int hf_lpp_bt_MeasurementList_r13 = -1;    /* BT_MeasurementList_r13 */
2055 static int hf_lpp_BT_MeasurementList_r13_item = -1;  /* BT_MeasurementElement_r13 */
2056 static int hf_lpp_btAddr_r13 = -1;                /* T_btAddr_r13 */
2057 static int hf_lpp_rssi_r13_01 = -1;               /* INTEGER_M128_127 */
2058 static int hf_lpp_requestedMeasurements_r13_01 = -1;  /* T_requestedMeasurements_r13_01 */
2059 static int hf_lpp_bt_Modes_r13 = -1;              /* T_bt_Modes_r13 */
2060 static int hf_lpp_bt_MeasSupported_r13 = -1;      /* T_bt_MeasSupported_r13 */
2061 static int hf_lpp_idleStateForMeasurements_r14_05 = -1;  /* T_idleStateForMeasurements_r14_05 */
2062 static int hf_lpp_locationServerErrorCauses_r13_03 = -1;  /* BT_LocationServerErrorCauses_r13 */
2063 static int hf_lpp_targetDeviceErrorCauses_r13_03 = -1;  /* BT_TargetDeviceErrorCauses_r13 */
2064 static int hf_lpp_cause_r13_06 = -1;              /* T_cause_r13_06 */
2065 static int hf_lpp_cause_r13_07 = -1;              /* T_cause_r13_07 */
2066 static int hf_lpp_bt_Beacon_rssiMeasurementNotPossible_r13 = -1;  /* NULL */
2067 static int hf_lpp_nr_UL_SRS_Capability_r16 = -1;  /* NR_UL_SRS_Capability_r16 */
2068 static int hf_lpp_nr_ECID_SignalMeasurementInformation_r16 = -1;  /* NR_ECID_SignalMeasurementInformation_r16 */
2069 static int hf_lpp_nr_ECID_Error_r16 = -1;         /* NR_ECID_Error_r16 */
2070 static int hf_lpp_nr_PrimaryCellMeasuredResults_r16 = -1;  /* NR_MeasuredResultsElement_r16 */
2071 static int hf_lpp_nr_MeasuredResultsList_r16 = -1;  /* NR_MeasuredResultsList_r16 */
2072 static int hf_lpp_NR_MeasuredResultsList_r16_item = -1;  /* NR_MeasuredResultsElement_r16 */
2073 static int hf_lpp_nr_ARFCN_r16_01 = -1;           /* T_nr_ARFCN_r16 */
2074 static int hf_lpp_ssb_ARFCN_r16 = -1;             /* ARFCN_ValueNR_r15 */
2075 static int hf_lpp_csi_RS_pointA_r16 = -1;         /* ARFCN_ValueNR_r15 */
2076 static int hf_lpp_resultsSSB_Cell_r16 = -1;       /* MeasQuantityResults_r16 */
2077 static int hf_lpp_resultsCSI_RS_Cell_r16 = -1;    /* MeasQuantityResults_r16 */
2078 static int hf_lpp_resultsSSB_Indexes_r16 = -1;    /* ResultsPerSSB_IndexList_r16 */
2079 static int hf_lpp_resultsCSI_RS_Indexes_r16 = -1;  /* ResultsPerCSI_RS_IndexList_r16 */
2080 static int hf_lpp_nr_RSRP_r16 = -1;               /* INTEGER_0_127 */
2081 static int hf_lpp_nr_RSRQ_r16 = -1;               /* INTEGER_0_127 */
2082 static int hf_lpp_ResultsPerSSB_IndexList_r16_item = -1;  /* ResultsPerSSB_Index_r16 */
2083 static int hf_lpp_ssb_Results_r16 = -1;           /* MeasQuantityResults_r16 */
2084 static int hf_lpp_ResultsPerCSI_RS_IndexList_r16_item = -1;  /* ResultsPerCSI_RS_Index_r16 */
2085 static int hf_lpp_csi_RS_Index_r16 = -1;          /* INTEGER_0_95 */
2086 static int hf_lpp_csi_RS_Results_r16 = -1;        /* MeasQuantityResults_r16 */
2087 static int hf_lpp_requestedMeasurements_r16 = -1;  /* T_requestedMeasurements_r16 */
2088 static int hf_lpp_nr_ECID_MeasSupported_r16 = -1;  /* T_nr_ECID_MeasSupported_r16 */
2089 static int hf_lpp_periodicalReporting_r16 = -1;   /* T_periodicalReporting_r16 */
2090 static int hf_lpp_triggeredReporting_r16 = -1;    /* T_triggeredReporting_r16 */
2091 static int hf_lpp_locationServerErrorCauses_r16 = -1;  /* NR_ECID_LocationServerErrorCauses_r16 */
2092 static int hf_lpp_targetDeviceErrorCauses_r16 = -1;  /* NR_ECID_TargetDeviceErrorCauses_r16 */
2093 static int hf_lpp_cause_r16 = -1;                 /* T_cause_r16 */
2094 static int hf_lpp_cause_r16_01 = -1;              /* T_cause_r16_01 */
2095 static int hf_lpp_ss_RSRPMeasurementNotPossible_r16 = -1;  /* NULL */
2096 static int hf_lpp_ss_RSRQMeasurementNotPossible_r16 = -1;  /* NULL */
2097 static int hf_lpp_csi_RSRPMeasurementNotPossible_r16 = -1;  /* NULL */
2098 static int hf_lpp_csi_RSRQMeasurementNotPossible_r16 = -1;  /* NULL */
2099 static int hf_lpp_nr_DL_PRS_AssistanceData_r16 = -1;  /* NR_DL_PRS_AssistanceData_r16 */
2100 static int hf_lpp_nr_SelectedDL_PRS_IndexList_r16 = -1;  /* NR_SelectedDL_PRS_IndexList_r16 */
2101 static int hf_lpp_nr_PositionCalculationAssistance_r16 = -1;  /* NR_PositionCalculationAssistance_r16 */
2102 static int hf_lpp_nr_DL_TDOA_Error_r16 = -1;      /* NR_DL_TDOA_Error_r16 */
2103 static int hf_lpp_nr_AdType_r16 = -1;             /* T_nr_AdType_r16 */
2104 static int hf_lpp_nr_DL_TDOA_SignalMeasurementInformation_r16 = -1;  /* NR_DL_TDOA_SignalMeasurementInformation_r16 */
2105 static int hf_lpp_nr_dl_tdoa_LocationInformation_r16 = -1;  /* NR_DL_TDOA_LocationInformation_r16 */
2106 static int hf_lpp_dl_PRS_ReferenceInfo_r16 = -1;  /* DL_PRS_ID_Info_r16 */
2107 static int hf_lpp_nr_DL_TDOA_MeasList_r16 = -1;   /* NR_DL_TDOA_MeasList_r16 */
2108 static int hf_lpp_NR_DL_TDOA_MeasList_r16_item = -1;  /* NR_DL_TDOA_MeasElement_r16 */
2109 static int hf_lpp_nr_TimeStamp_r16 = -1;          /* NR_TimeStamp_r16 */
2110 static int hf_lpp_nr_RSTD_r16 = -1;               /* T_nr_RSTD_r16 */
2111 static int hf_lpp_k0_r16_01 = -1;                 /* INTEGER_0_1970049 */
2112 static int hf_lpp_k1_r16_01 = -1;                 /* INTEGER_0_985025 */
2113 static int hf_lpp_k2_r16_01 = -1;                 /* INTEGER_0_492513 */
2114 static int hf_lpp_k3_r16_01 = -1;                 /* INTEGER_0_246257 */
2115 static int hf_lpp_k4_r16_01 = -1;                 /* INTEGER_0_123129 */
2116 static int hf_lpp_k5_r16_01 = -1;                 /* INTEGER_0_61565 */
2117 static int hf_lpp_nr_AdditionalPathList_r16 = -1;  /* NR_AdditionalPathList_r16 */
2118 static int hf_lpp_nr_TimingQuality_r16 = -1;      /* NR_TimingQuality_r16 */
2119 static int hf_lpp_nr_DL_PRS_RSRP_Result_r16 = -1;  /* INTEGER_0_126 */
2120 static int hf_lpp_nr_DL_TDOA_AdditionalMeasurements_r16 = -1;  /* NR_DL_TDOA_AdditionalMeasurements_r16 */
2121 static int hf_lpp_NR_DL_TDOA_AdditionalMeasurements_r16_item = -1;  /* NR_DL_TDOA_AdditionalMeasurementElement_r16 */
2122 static int hf_lpp_nr_RSTD_ResultDiff_r16 = -1;    /* T_nr_RSTD_ResultDiff_r16 */
2123 static int hf_lpp_k0_r16_02 = -1;                 /* INTEGER_0_8191 */
2124 static int hf_lpp_k1_r16_02 = -1;                 /* INTEGER_0_4095 */
2125 static int hf_lpp_k2_r16_02 = -1;                 /* INTEGER_0_2047 */
2126 static int hf_lpp_k3_r16_02 = -1;                 /* INTEGER_0_1023 */
2127 static int hf_lpp_k4_r16_02 = -1;                 /* INTEGER_0_511 */
2128 static int hf_lpp_k5_r16_02 = -1;                 /* INTEGER_0_255 */
2129 static int hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16 = -1;  /* INTEGER_0_61 */
2130 static int hf_lpp_measurementReferenceTime_r16 = -1;  /* T_measurementReferenceTime_r16 */
2131 static int hf_lpp_systemFrameNumber_r16_01 = -1;  /* NR_TimeStamp_r16 */
2132 static int hf_lpp_utc_time_r16 = -1;              /* UTCTime */
2133 static int hf_lpp_nr_DL_PRS_RstdMeasurementInfoRequest_r16 = -1;  /* T_nr_DL_PRS_RstdMeasurementInfoRequest_r16 */
2134 static int hf_lpp_nr_RequestedMeasurements_r16 = -1;  /* T_nr_RequestedMeasurements_r16 */
2135 static int hf_lpp_nr_AssistanceAvailability_r16 = -1;  /* BOOLEAN */
2136 static int hf_lpp_nr_DL_TDOA_ReportConfig_r16 = -1;  /* NR_DL_TDOA_ReportConfig_r16 */
2137 static int hf_lpp_additionalPaths_r16 = -1;       /* T_additionalPaths_r16 */
2138 static int hf_lpp_maxDL_PRS_RSTD_MeasurementsPerTRPPair_r16 = -1;  /* INTEGER_1_4 */
2139 static int hf_lpp_timingReportingGranularityFactor_r16 = -1;  /* INTEGER_0_5 */
2140 static int hf_lpp_nr_DL_TDOA_Mode_r16 = -1;       /* PositioningModes */
2141 static int hf_lpp_nr_DL_TDOA_PRS_Capability_r16 = -1;  /* NR_DL_PRS_ResourcesCapability_r16 */
2142 static int hf_lpp_nr_DL_TDOA_MeasurementCapability_r16 = -1;  /* NR_DL_TDOA_MeasurementCapability_r16 */
2143 static int hf_lpp_nr_DL_PRS_QCL_ProcessingCapability_r16 = -1;  /* NR_DL_PRS_QCL_ProcessingCapability_r16 */
2144 static int hf_lpp_nr_DL_PRS_ProcessingCapability_r16 = -1;  /* NR_DL_PRS_ProcessingCapability_r16 */
2145 static int hf_lpp_additionalPathsReport_r16 = -1;  /* T_additionalPathsReport_r16 */
2146 static int hf_lpp_periodicalReporting_r16_01 = -1;  /* PositioningModes */
2147 static int hf_lpp_dl_RSTD_MeasurementPerPairOfTRP_FR1_r16 = -1;  /* INTEGER_1_4 */
2148 static int hf_lpp_dl_RSTD_MeasurementPerPairOfTRP_FR2_r16 = -1;  /* INTEGER_1_4 */
2149 static int hf_lpp_supportOfDL_PRS_RSRP_MeasFR1_r16 = -1;  /* T_supportOfDL_PRS_RSRP_MeasFR1_r16 */
2150 static int hf_lpp_supportOfDL_PRS_RSRP_MeasFR2_r16 = -1;  /* T_supportOfDL_PRS_RSRP_MeasFR2_r16 */
2151 static int hf_lpp_locationServerErrorCauses_r16_01 = -1;  /* NR_DL_TDOA_LocationServerErrorCauses_r16 */
2152 static int hf_lpp_targetDeviceErrorCauses_r16_01 = -1;  /* NR_DL_TDOA_TargetDeviceErrorCauses_r16 */
2153 static int hf_lpp_cause_r16_02 = -1;              /* T_cause_r16_02 */
2154 static int hf_lpp_cause_r16_03 = -1;              /* T_cause_r16_03 */
2155 static int hf_lpp_nr_DL_AoD_Error_r16 = -1;       /* NR_DL_AoD_Error_r16 */
2156 static int hf_lpp_nr_AdType_r16_01 = -1;          /* T_nr_AdType_r16_01 */
2157 static int hf_lpp_nr_DL_AoD_SignalMeasurementInformation_r16 = -1;  /* NR_DL_AoD_SignalMeasurementInformation_r16 */
2158 static int hf_lpp_nr_dl_AoD_LocationInformation_r16 = -1;  /* NR_DL_AoD_LocationInformation_r16 */
2159 static int hf_lpp_nr_DL_AoD_MeasList_r16 = -1;    /* NR_DL_AoD_MeasList_r16 */
2160 static int hf_lpp_NR_DL_AoD_MeasList_r16_item = -1;  /* NR_DL_AoD_MeasElement_r16 */
2161 static int hf_lpp_nr_DL_PRS_RxBeamIndex_r16 = -1;  /* INTEGER_1_8 */
2162 static int hf_lpp_nr_DL_AoD_AdditionalMeasurements_r16 = -1;  /* NR_DL_AoD_AdditionalMeasurements_r16 */
2163 static int hf_lpp_NR_DL_AoD_AdditionalMeasurements_r16_item = -1;  /* NR_DL_AoD_AdditionalMeasurementElement_r16 */
2164 static int hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16_01 = -1;  /* INTEGER_0_30 */
2165 static int hf_lpp_measurementReferenceTime_r16_01 = -1;  /* T_measurementReferenceTime_r16_01 */
2166 static int hf_lpp_sfn_time_r16 = -1;              /* NR_TimeStamp_r16 */
2167 static int hf_lpp_nr_DL_AoD_ReportConfig_r16 = -1;  /* NR_DL_AoD_ReportConfig_r16 */
2168 static int hf_lpp_maxDL_PRS_RSRP_MeasurementsPerTRP_r16 = -1;  /* INTEGER_1_8 */
2169 static int hf_lpp_nr_DL_AoD_Mode_r16 = -1;        /* PositioningModes */
2170 static int hf_lpp_nr_DL_AoD_PRS_Capability_r16 = -1;  /* NR_DL_PRS_ResourcesCapability_r16 */
2171 static int hf_lpp_nr_DL_AoD_MeasurementCapability_r16 = -1;  /* NR_DL_AoD_MeasurementCapability_r16 */
2172 static int hf_lpp_maxDL_PRS_RSRP_MeasurementFR1_r16 = -1;  /* INTEGER_1_8 */
2173 static int hf_lpp_maxDL_PRS_RSRP_MeasurementFR2_r16 = -1;  /* INTEGER_1_8 */
2174 static int hf_lpp_dl_AoD_MeasCapabilityBandList_r16 = -1;  /* SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16 */
2175 static int hf_lpp_dl_AoD_MeasCapabilityBandList_r16_item = -1;  /* DL_AoD_MeasCapabilityPerBand_r16 */
2176 static int hf_lpp_simul_NR_DL_AoD_DL_TDOA_r16 = -1;  /* T_simul_NR_DL_AoD_DL_TDOA_r16 */
2177 static int hf_lpp_simul_NR_DL_AoD_Multi_RTT_r16 = -1;  /* T_simul_NR_DL_AoD_Multi_RTT_r16 */
2178 static int hf_lpp_locationServerErrorCauses_r16_02 = -1;  /* NR_DL_AoD_LocationServerErrorCauses_r16 */
2179 static int hf_lpp_targetDeviceErrorCauses_r16_02 = -1;  /* NR_DL_AoD_TargetDeviceErrorCauses_r16 */
2180 static int hf_lpp_cause_r16_04 = -1;              /* T_cause_r16_04 */
2181 static int hf_lpp_cause_r16_05 = -1;              /* T_cause_r16_05 */
2182 static int hf_lpp_nr_Multi_RTT_Error_r16 = -1;    /* NR_Multi_RTT_Error_r16 */
2183 static int hf_lpp_nr_AdType_r16_02 = -1;          /* T_nr_AdType_r16_02 */
2184 static int hf_lpp_nr_Multi_RTT_SignalMeasurementInformation_r16 = -1;  /* NR_Multi_RTT_SignalMeasurementInformation_r16 */
2185 static int hf_lpp_nr_Multi_RTT_MeasList_r16 = -1;  /* NR_Multi_RTT_MeasList_r16 */
2186 static int hf_lpp_nr_NTA_Offset_r16 = -1;         /* T_nr_NTA_Offset_r16 */
2187 static int hf_lpp_NR_Multi_RTT_MeasList_r16_item = -1;  /* NR_Multi_RTT_MeasElement_r16 */
2188 static int hf_lpp_nr_UE_RxTxTimeDiff_r16 = -1;    /* T_nr_UE_RxTxTimeDiff_r16 */
2189 static int hf_lpp_nr_Multi_RTT_AdditionalMeasurements_r16 = -1;  /* NR_Multi_RTT_AdditionalMeasurements_r16 */
2190 static int hf_lpp_NR_Multi_RTT_AdditionalMeasurements_r16_item = -1;  /* NR_Multi_RTT_AdditionalMeasurementElement_r16 */
2191 static int hf_lpp_nr_UE_RxTxTimeDiffAdditional_r16 = -1;  /* T_nr_UE_RxTxTimeDiffAdditional_r16 */
2192 static int hf_lpp_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16 = -1;  /* T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16 */
2193 static int hf_lpp_nr_RequestedMeasurements_r16_01 = -1;  /* T_nr_RequestedMeasurements_r16_01 */
2194 static int hf_lpp_nr_Multi_RTT_ReportConfig_r16 = -1;  /* NR_Multi_RTT_ReportConfig_r16 */
2195 static int hf_lpp_additionalPaths_r16_01 = -1;    /* T_additionalPaths_r16_01 */
2196 static int hf_lpp_maxDL_PRS_RxTxTimeDiffMeasPerTRP_r16 = -1;  /* INTEGER_1_4 */
2197 static int hf_lpp_nr_Multi_RTT_PRS_Capability_r16 = -1;  /* NR_DL_PRS_ResourcesCapability_r16 */
2198 static int hf_lpp_nr_Multi_RTT_MeasurementCapability_r16 = -1;  /* NR_Multi_RTT_MeasurementCapability_r16 */
2199 static int hf_lpp_additionalPathsReport_r16_01 = -1;  /* T_additionalPathsReport_r16_01 */
2200 static int hf_lpp_periodicalReporting_r16_02 = -1;  /* T_periodicalReporting_r16_01 */
2201 static int hf_lpp_maxNrOfRx_TX_MeasFR1_r16 = -1;  /* INTEGER_1_4 */
2202 static int hf_lpp_maxNrOfRx_TX_MeasFR2_r16 = -1;  /* INTEGER_1_4 */
2203 static int hf_lpp_supportOfRSRP_MeasFR1_r16 = -1;  /* T_supportOfRSRP_MeasFR1_r16 */
2204 static int hf_lpp_supportOfRSRP_MeasFR2_r16 = -1;  /* T_supportOfRSRP_MeasFR2_r16 */
2205 static int hf_lpp_srs_AssocPRS_MultiLayersFR1_r16 = -1;  /* T_srs_AssocPRS_MultiLayersFR1_r16 */
2206 static int hf_lpp_srs_AssocPRS_MultiLayersFR2_r16 = -1;  /* T_srs_AssocPRS_MultiLayersFR2_r16 */
2207 static int hf_lpp_locationServerErrorCauses_r16_03 = -1;  /* NR_Multi_RTT_LocationServerErrorCauses_r16 */
2208 static int hf_lpp_targetDeviceErrorCauses_r16_03 = -1;  /* NR_Multi_RTT_TargetDeviceErrorCauses_r16 */
2209 static int hf_lpp_cause_r16_06 = -1;              /* T_cause_r16_06 */
2210 static int hf_lpp_cause_r16_07 = -1;              /* T_cause_r16_07 */
2211 static int hf_lpp_valueTag_r15 = -1;              /* INTEGER_0_63 */
2212 static int hf_lpp_expirationTime_r15 = -1;        /* UTCTime */
2213 static int hf_lpp_cipheringKeyData_r15 = -1;      /* CipheringKeyData_r15 */
2214 static int hf_lpp_segmentationInfo_r15 = -1;      /* SegmentationInfo_r15 */
2215 static int hf_lpp_assistanceDataElement_r15 = -1;  /* T_assistanceDataElement_r15 */
2216 static int hf_lpp_cipherSetID_r15 = -1;           /* INTEGER_0_65535 */
2217 static int hf_lpp_d0_r15 = -1;                    /* BIT_STRING_SIZE_1_128 */
2218 static int hf_lpp_segmentationOption_r15 = -1;    /* T_segmentationOption_r15 */
2219 static int hf_lpp_assistanceDataSegmentType_r15 = -1;  /* T_assistanceDataSegmentType_r15 */
2220 static int hf_lpp_assistanceDataSegmentNumber_r15 = -1;  /* INTEGER_0_63 */
2221 static int hf_lpp_otdoa_ReferenceCellInfo_r15 = -1;  /* OTDOA_ReferenceCellInfo */
2222 static int hf_lpp_otdoa_NeighbourCellInfo_r15 = -1;  /* OTDOA_NeighbourCellInfoList */
2223 static int hf_lpp_nr_trp_LocationInfo_r16 = -1;   /* NR_TRP_LocationInfo_r16 */
2224 static int hf_lpp_nr_dl_prs_BeamInfo_r16 = -1;    /* NR_DL_PRS_BeamInfo_r16 */
2225 static int hf_lpp_nr_rtd_Info_r16 = -1;           /* NR_RTD_Info_r16 */
2226 /* named bits */
2227 static int hf_lpp_T_accessTypes_eutra = -1;
2228 static int hf_lpp_T_accessTypes_utra = -1;
2229 static int hf_lpp_T_accessTypes_gsm = -1;
2230 static int hf_lpp_T_accessTypes_nb_iot = -1;
2231 static int hf_lpp_T_accessTypes_nr_v1510 = -1;
2232 static int hf_lpp_UpdateCapabilities_r15_primaryCellID_r15 = -1;
2233 static int hf_lpp_T_posModes_standalone = -1;
2234 static int hf_lpp_T_posModes_ue_based = -1;
2235 static int hf_lpp_T_posModes_ue_assisted = -1;
2236 static int hf_lpp_T_lpp_message_segmentation_req_r14_serverToTarget = -1;
2237 static int hf_lpp_T_lpp_message_segmentation_req_r14_targetToServer = -1;
2238 static int hf_lpp_T_lpp_message_segmentation_r14_serverToTarget = -1;
2239 static int hf_lpp_T_lpp_message_segmentation_r14_targetToServer = -1;
2240 static int hf_lpp_LocationSource_r13_a_gnss = -1;
2241 static int hf_lpp_LocationSource_r13_wlan = -1;
2242 static int hf_lpp_LocationSource_r13_bt = -1;
2243 static int hf_lpp_LocationSource_r13_tbs = -1;
2244 static int hf_lpp_LocationSource_r13_sensor = -1;
2245 static int hf_lpp_LocationSource_r13_ha_gnss_v1510 = -1;
2246 static int hf_lpp_LocationSource_r13_motion_sensor_v1550 = -1;
2247 static int hf_lpp_LocationSource_r13_dl_tdoa_r16 = -1;
2248 static int hf_lpp_LocationSource_r13_dl_aod_r16 = -1;
2249 static int hf_lpp_T_adType_r14_prs = -1;
2250 static int hf_lpp_T_adType_r14_nprs = -1;
2251 static int hf_lpp_T_otdoa_Mode_ue_assisted = -1;
2252 static int hf_lpp_T_otdoa_Mode_ue_assisted_NB_r14 = -1;
2253 static int hf_lpp_T_otdoa_Mode_ue_assisted_NB_TDD_r15 = -1;
2254 static int hf_lpp_T_periodicAssistanceData_r15_solicited = -1;
2255 static int hf_lpp_T_periodicAssistanceData_r15_unsolicited = -1;
2256 static int hf_lpp_T_ionoModel_klobuchar = -1;
2257 static int hf_lpp_T_ionoModel_neQuick = -1;
2258 static int hf_lpp_T_ionoModel_klobuchar2_r16 = -1;
2259 static int hf_lpp_T_clockModel_model_1 = -1;
2260 static int hf_lpp_T_clockModel_model_2 = -1;
2261 static int hf_lpp_T_clockModel_model_3 = -1;
2262 static int hf_lpp_T_clockModel_model_4 = -1;
2263 static int hf_lpp_T_clockModel_model_5 = -1;
2264 static int hf_lpp_T_clockModel_model_6 = -1;
2265 static int hf_lpp_T_clockModel_model_7_r16 = -1;
2266 static int hf_lpp_T_clockModel_model_8_r16 = -1;
2267 static int hf_lpp_T_orbitModel_model_1 = -1;
2268 static int hf_lpp_T_orbitModel_model_2 = -1;
2269 static int hf_lpp_T_orbitModel_model_3 = -1;
2270 static int hf_lpp_T_orbitModel_model_4 = -1;
2271 static int hf_lpp_T_orbitModel_model_5 = -1;
2272 static int hf_lpp_T_orbitModel_model_6 = -1;
2273 static int hf_lpp_T_orbitModel_model_7_r16 = -1;
2274 static int hf_lpp_T_orbitModel_model_8_r16 = -1;
2275 static int hf_lpp_T_almanacModel_model_1 = -1;
2276 static int hf_lpp_T_almanacModel_model_2 = -1;
2277 static int hf_lpp_T_almanacModel_model_3 = -1;
2278 static int hf_lpp_T_almanacModel_model_4 = -1;
2279 static int hf_lpp_T_almanacModel_model_5 = -1;
2280 static int hf_lpp_T_almanacModel_model_6 = -1;
2281 static int hf_lpp_T_almanacModel_model_7 = -1;
2282 static int hf_lpp_T_utc_Model_model_1 = -1;
2283 static int hf_lpp_T_utc_Model_model_2 = -1;
2284 static int hf_lpp_T_utc_Model_model_3 = -1;
2285 static int hf_lpp_T_utc_Model_model_4 = -1;
2286 static int hf_lpp_T_utc_Model_model_5 = -1;
2287 static int hf_lpp_T_gnss_ids_gps = -1;
2288 static int hf_lpp_T_gnss_ids_sbas = -1;
2289 static int hf_lpp_T_gnss_ids_qzss = -1;
2290 static int hf_lpp_T_gnss_ids_galileo = -1;
2291 static int hf_lpp_T_gnss_ids_glonass = -1;
2292 static int hf_lpp_T_gnss_ids_bds = -1;
2293 static int hf_lpp_T_gnss_ids_navic_v1610 = -1;
2294 static int hf_lpp_T_sbas_IDs_waas = -1;
2295 static int hf_lpp_T_sbas_IDs_egnos = -1;
2296 static int hf_lpp_T_sbas_IDs_msas = -1;
2297 static int hf_lpp_T_sbas_IDs_gagan = -1;
2298 static int hf_lpp_T_requestedMeasurements_rsrpReq = -1;
2299 static int hf_lpp_T_requestedMeasurements_rsrqReq = -1;
2300 static int hf_lpp_T_requestedMeasurements_ueRxTxReq = -1;
2301 static int hf_lpp_T_requestedMeasurements_nrsrpReq_r14 = -1;
2302 static int hf_lpp_T_requestedMeasurements_nrsrqReq_r14 = -1;
2303 static int hf_lpp_T_ecid_MeasSupported_rsrpSup = -1;
2304 static int hf_lpp_T_ecid_MeasSupported_rsrqSup = -1;
2305 static int hf_lpp_T_ecid_MeasSupported_ueRxTxSup = -1;
2306 static int hf_lpp_T_ecid_MeasSupported_nrsrpSup_r14 = -1;
2307 static int hf_lpp_T_ecid_MeasSupported_nrsrqSup_r14 = -1;
2308 static int hf_lpp_T_mbsRequestedMeasurements_r14_rssi = -1;
2309 static int hf_lpp_T_tbs_Modes_r13_standalone = -1;
2310 static int hf_lpp_T_tbs_Modes_r13_ue_assisted = -1;
2311 static int hf_lpp_T_tbs_Modes_r13_ue_based = -1;
2312 static int hf_lpp_T_mbs_ConfigSupport_r14_tb1 = -1;
2313 static int hf_lpp_T_mbs_ConfigSupport_r14_tb2 = -1;
2314 static int hf_lpp_T_mbs_ConfigSupport_r14_tb3 = -1;
2315 static int hf_lpp_T_mbs_ConfigSupport_r14_tb4 = -1;
2316 static int hf_lpp_T_sensor_Modes_r13_standalone = -1;
2317 static int hf_lpp_T_sensor_Modes_r13_ue_assisted = -1;
2318 static int hf_lpp_T_sensor_Modes_r13_ue_based = -1;
2319 static int hf_lpp_T_requestedMeasurements_r13_rssi = -1;
2320 static int hf_lpp_T_requestedMeasurements_r13_rtt = -1;
2321 static int hf_lpp_T_wlan_Modes_r13_standalone = -1;
2322 static int hf_lpp_T_wlan_Modes_r13_ue_assisted = -1;
2323 static int hf_lpp_T_wlan_Modes_r13_ue_based = -1;
2324 static int hf_lpp_T_wlan_MeasSupported_r13_rssi_r13 = -1;
2325 static int hf_lpp_T_wlan_MeasSupported_r13_rtt_r13 = -1;
2326 static int hf_lpp_T_wlan_AP_AD_Supported_r14_ap_identifier = -1;
2327 static int hf_lpp_T_wlan_AP_AD_Supported_r14_ap_location = -1;
2328 static int hf_lpp_T_requestedAD_r14_ap_identifier = -1;
2329 static int hf_lpp_T_requestedAD_r14_ap_location = -1;
2330 static int hf_lpp_T_requestedMeasurements_r13_01_rssi = -1;
2331 static int hf_lpp_T_bt_Modes_r13_standalone = -1;
2332 static int hf_lpp_T_bt_Modes_r13_ue_assisted = -1;
2333 static int hf_lpp_T_bt_MeasSupported_r13_rssi_r13 = -1;
2334 static int hf_lpp_T_requestedMeasurements_r16_ssrsrpReq = -1;
2335 static int hf_lpp_T_requestedMeasurements_r16_ssrsrqReq = -1;
2336 static int hf_lpp_T_requestedMeasurements_r16_csirsrpReq = -1;
2337 static int hf_lpp_T_requestedMeasurements_r16_csirsrqReq = -1;
2338 static int hf_lpp_T_nr_ECID_MeasSupported_r16_ssrsrpSup = -1;
2339 static int hf_lpp_T_nr_ECID_MeasSupported_r16_ssrsrqSup = -1;
2340 static int hf_lpp_T_nr_ECID_MeasSupported_r16_csirsrpSup = -1;
2341 static int hf_lpp_T_nr_ECID_MeasSupported_r16_csirsrqSup = -1;
2342 static int hf_lpp_T_nr_AdType_r16_dl_prs = -1;
2343 static int hf_lpp_T_nr_AdType_r16_posCalc = -1;
2344 static int hf_lpp_T_nr_RequestedMeasurements_r16_prsrsrpReq = -1;
2345 static int hf_lpp_T_nr_AdType_r16_01_dl_prs = -1;
2346 static int hf_lpp_T_nr_AdType_r16_01_posCalc = -1;
2347 static int hf_lpp_T_nr_AdType_r16_02_dl_prs = -1;
2348 static int hf_lpp_T_nr_AdType_r16_02_ul_srs = -1;
2349 static int hf_lpp_T_nr_RequestedMeasurements_r16_01_prsrsrpReq = -1;
2350 static int dummy_hf_lpp_eag_field = -1; /* never registered */
2351 
2352 /*--- End of included file: packet-lpp-hf.c ---*/
2353 #line 38 "./asn1/lpp/packet-lpp-template.c"
2354 static int hf_lpp_svHealthExt_v1240_e5bhs = -1;
2355 static int hf_lpp_svHealthExt_v1240_e1_bhs = -1;
2356 static int hf_lpp_kepSV_StatusINAV_e5bhs = -1;
2357 static int hf_lpp_kepSV_StatusINAV_e1_bhs = -1;
2358 static int hf_lpp_kepSV_StatusFNAV_e5ahs = -1;
2359 static int hf_lpp_bdsSvHealth_r12_sat_clock = -1;
2360 static int hf_lpp_bdsSvHealth_r12_b1i = -1;
2361 static int hf_lpp_bdsSvHealth_r12_b2i = -1;
2362 static int hf_lpp_bdsSvHealth_r12_nav = -1;
2363 static int hf_lpp_AssistanceDataSIBelement_r15_PDU = -1;
2364 
2365 static dissector_handle_t lppe_handle = NULL;
2366 
2367 static guint32 lpp_epdu_id = -1;
2368 
2369 /* Initialize the subtree pointers */
2370 static gint ett_lpp = -1;
2371 static gint ett_lpp_svHealthExt_v1240 = -1;
2372 static gint ett_kepSV_StatusINAV = -1;
2373 static gint ett_kepSV_StatusFNAV = -1;
2374 static gint ett_lpp_bdsSvHealth_r12 = -1;
2375 static gint ett_lpp_assistanceDataElement_r15 = -1;
2376 
2377 /*--- Included file: packet-lpp-ett.c ---*/
2378 #line 1 "./asn1/lpp/packet-lpp-ett.c"
2379 static gint ett_lpp_LPP_Message = -1;
2380 static gint ett_lpp_Acknowledgement = -1;
2381 static gint ett_lpp_LPP_MessageBody = -1;
2382 static gint ett_lpp_T_c1 = -1;
2383 static gint ett_lpp_T_messageClassExtension = -1;
2384 static gint ett_lpp_LPP_TransactionID = -1;
2385 static gint ett_lpp_RequestCapabilities = -1;
2386 static gint ett_lpp_T_criticalExtensions = -1;
2387 static gint ett_lpp_T_c1_01 = -1;
2388 static gint ett_lpp_T_criticalExtensionsFuture = -1;
2389 static gint ett_lpp_RequestCapabilities_r9_IEs = -1;
2390 static gint ett_lpp_ProvideCapabilities = -1;
2391 static gint ett_lpp_T_criticalExtensions_01 = -1;
2392 static gint ett_lpp_T_c1_02 = -1;
2393 static gint ett_lpp_T_criticalExtensionsFuture_01 = -1;
2394 static gint ett_lpp_ProvideCapabilities_r9_IEs = -1;
2395 static gint ett_lpp_RequestAssistanceData = -1;
2396 static gint ett_lpp_T_criticalExtensions_02 = -1;
2397 static gint ett_lpp_T_c1_03 = -1;
2398 static gint ett_lpp_T_criticalExtensionsFuture_02 = -1;
2399 static gint ett_lpp_RequestAssistanceData_r9_IEs = -1;
2400 static gint ett_lpp_ProvideAssistanceData = -1;
2401 static gint ett_lpp_T_criticalExtensions_03 = -1;
2402 static gint ett_lpp_T_c1_04 = -1;
2403 static gint ett_lpp_T_criticalExtensionsFuture_03 = -1;
2404 static gint ett_lpp_ProvideAssistanceData_r9_IEs = -1;
2405 static gint ett_lpp_RequestLocationInformation = -1;
2406 static gint ett_lpp_T_criticalExtensions_04 = -1;
2407 static gint ett_lpp_T_c1_05 = -1;
2408 static gint ett_lpp_T_criticalExtensionsFuture_04 = -1;
2409 static gint ett_lpp_RequestLocationInformation_r9_IEs = -1;
2410 static gint ett_lpp_ProvideLocationInformation = -1;
2411 static gint ett_lpp_T_criticalExtensions_05 = -1;
2412 static gint ett_lpp_T_c1_06 = -1;
2413 static gint ett_lpp_T_criticalExtensionsFuture_05 = -1;
2414 static gint ett_lpp_ProvideLocationInformation_r9_IEs = -1;
2415 static gint ett_lpp_Abort = -1;
2416 static gint ett_lpp_T_criticalExtensions_06 = -1;
2417 static gint ett_lpp_T_c1_07 = -1;
2418 static gint ett_lpp_T_criticalExtensionsFuture_06 = -1;
2419 static gint ett_lpp_Abort_r9_IEs = -1;
2420 static gint ett_lpp_Error = -1;
2421 static gint ett_lpp_T_criticalExtensionsFuture_07 = -1;
2422 static gint ett_lpp_Error_r9_IEs = -1;
2423 static gint ett_lpp_AccessTypes = -1;
2424 static gint ett_lpp_T_accessTypes = -1;
2425 static gint ett_lpp_CarrierFreq_NB_r14 = -1;
2426 static gint ett_lpp_CellGlobalIdEUTRA_AndUTRA = -1;
2427 static gint ett_lpp_T_plmn_Identity = -1;
2428 static gint ett_lpp_T_mcc = -1;
2429 static gint ett_lpp_T_mnc = -1;
2430 static gint ett_lpp_T_cellIdentity = -1;
2431 static gint ett_lpp_CellGlobalIdGERAN = -1;
2432 static gint ett_lpp_T_plmn_Identity_01 = -1;
2433 static gint ett_lpp_T_mcc_01 = -1;
2434 static gint ett_lpp_T_mnc_01 = -1;
2435 static gint ett_lpp_ECGI = -1;
2436 static gint ett_lpp_T_mcc_02 = -1;
2437 static gint ett_lpp_T_mnc_02 = -1;
2438 static gint ett_lpp_Ellipsoid_Point = -1;
2439 static gint ett_lpp_Ellipsoid_PointWithUncertaintyCircle = -1;
2440 static gint ett_lpp_EllipsoidPointWithUncertaintyEllipse = -1;
2441 static gint ett_lpp_EllipsoidPointWithAltitude = -1;
2442 static gint ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid = -1;
2443 static gint ett_lpp_EllipsoidArc = -1;
2444 static gint ett_lpp_EPDU_Sequence = -1;
2445 static gint ett_lpp_EPDU = -1;
2446 static gint ett_lpp_EPDU_Identifier = -1;
2447 static gint ett_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15 = -1;
2448 static gint ett_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15 = -1;
2449 static gint ett_lpp_HorizontalVelocity = -1;
2450 static gint ett_lpp_HorizontalWithVerticalVelocity = -1;
2451 static gint ett_lpp_HorizontalVelocityWithUncertainty = -1;
2452 static gint ett_lpp_HorizontalWithVerticalVelocityAndUncertainty = -1;
2453 static gint ett_lpp_LocationCoordinateTypes = -1;
2454 static gint ett_lpp_NCGI_r15 = -1;
2455 static gint ett_lpp_T_mcc_r15 = -1;
2456 static gint ett_lpp_T_mnc_r15 = -1;
2457 static gint ett_lpp_PeriodicAssistanceDataControlParameters_r15 = -1;
2458 static gint ett_lpp_PeriodicSessionID_r15 = -1;
2459 static gint ett_lpp_UpdateCapabilities_r15 = -1;
2460 static gint ett_lpp_Polygon = -1;
2461 static gint ett_lpp_PolygonPoints = -1;
2462 static gint ett_lpp_PositioningModes = -1;
2463 static gint ett_lpp_T_posModes = -1;
2464 static gint ett_lpp_VelocityTypes = -1;
2465 static gint ett_lpp_CommonIEsRequestCapabilities = -1;
2466 static gint ett_lpp_T_lpp_message_segmentation_req_r14 = -1;
2467 static gint ett_lpp_CommonIEsProvideCapabilities = -1;
2468 static gint ett_lpp_T_lpp_message_segmentation_r14 = -1;
2469 static gint ett_lpp_CommonIEsRequestAssistanceData = -1;
2470 static gint ett_lpp_CommonIEsProvideAssistanceData = -1;
2471 static gint ett_lpp_CommonIEsRequestLocationInformation = -1;
2472 static gint ett_lpp_PeriodicalReportingCriteria = -1;
2473 static gint ett_lpp_TriggeredReportingCriteria = -1;
2474 static gint ett_lpp_QoS = -1;
2475 static gint ett_lpp_HorizontalAccuracy = -1;
2476 static gint ett_lpp_VerticalAccuracy = -1;
2477 static gint ett_lpp_HorizontalAccuracyExt_r15 = -1;
2478 static gint ett_lpp_VerticalAccuracyExt_r15 = -1;
2479 static gint ett_lpp_ResponseTime = -1;
2480 static gint ett_lpp_ResponseTimeNB_r14 = -1;
2481 static gint ett_lpp_MessageSizeLimitNB_r14 = -1;
2482 static gint ett_lpp_CommonIEsProvideLocationInformation = -1;
2483 static gint ett_lpp_LocationCoordinates = -1;
2484 static gint ett_lpp_Velocity = -1;
2485 static gint ett_lpp_LocationError = -1;
2486 static gint ett_lpp_LocationSource_r13 = -1;
2487 static gint ett_lpp_CommonIEsAbort = -1;
2488 static gint ett_lpp_CommonIEsError = -1;
2489 static gint ett_lpp_DL_PRS_ID_Info_r16 = -1;
2490 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16 = -1;
2491 static gint ett_lpp_NR_AdditionalPathList_r16 = -1;
2492 static gint ett_lpp_NR_AdditionalPath_r16 = -1;
2493 static gint ett_lpp_T_nr_RelativeTimeDifference_r16 = -1;
2494 static gint ett_lpp_NR_DL_PRS_AssistanceData_r16 = -1;
2495 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16 = -1;
2496 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16 = -1;
2497 static gint ett_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16 = -1;
2498 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16 = -1;
2499 static gint ett_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16 = -1;
2500 static gint ett_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16 = -1;
2501 static gint ett_lpp_NR_DL_PRS_SFN0_Offset_r16 = -1;
2502 static gint ett_lpp_NR_DL_PRS_BeamInfo_r16 = -1;
2503 static gint ett_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16 = -1;
2504 static gint ett_lpp_NR_DL_PRS_BeamInfoPerTRP_r16 = -1;
2505 static gint ett_lpp_DL_PRS_BeamInfoSet_r16 = -1;
2506 static gint ett_lpp_DL_PRS_BeamInfoResourceSet_r16 = -1;
2507 static gint ett_lpp_DL_PRS_BeamInfoElement_r16 = -1;
2508 static gint ett_lpp_LCS_GCS_TranslationParameter_r16 = -1;
2509 static gint ett_lpp_NR_DL_PRS_Info_r16 = -1;
2510 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16 = -1;
2511 static gint ett_lpp_NR_DL_PRS_ResourceSet_r16 = -1;
2512 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16 = -1;
2513 static gint ett_lpp_DL_PRS_MutingOption1_r16 = -1;
2514 static gint ett_lpp_DL_PRS_MutingOption2_r16 = -1;
2515 static gint ett_lpp_NR_MutingPattern_r16 = -1;
2516 static gint ett_lpp_NR_DL_PRS_Resource_r16 = -1;
2517 static gint ett_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16 = -1;
2518 static gint ett_lpp_DL_PRS_QCL_Info_r16 = -1;
2519 static gint ett_lpp_T_ssb_r16 = -1;
2520 static gint ett_lpp_T_dl_PRS_r16 = -1;
2521 static gint ett_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16 = -1;
2522 static gint ett_lpp_T_scs15_r16 = -1;
2523 static gint ett_lpp_T_scs30_r16 = -1;
2524 static gint ett_lpp_T_scs60_r16 = -1;
2525 static gint ett_lpp_T_scs120_r16 = -1;
2526 static gint ett_lpp_NR_DL_PRS_ProcessingCapability_r16 = -1;
2527 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16 = -1;
2528 static gint ett_lpp_PRS_ProcessingCapabilityPerBand_r16 = -1;
2529 static gint ett_lpp_T_supportedBandwidthPRS_r16 = -1;
2530 static gint ett_lpp_T_durationOfPRS_Processing_r16 = -1;
2531 static gint ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16 = -1;
2532 static gint ett_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16 = -1;
2533 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16 = -1;
2534 static gint ett_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16 = -1;
2535 static gint ett_lpp_NR_DL_PRS_ResourcesCapability_r16 = -1;
2536 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16 = -1;
2537 static gint ett_lpp_DL_PRS_ResourcesCapabilityPerBand_r16 = -1;
2538 static gint ett_lpp_DL_PRS_ResourcesBandCombinationList_r16 = -1;
2539 static gint ett_lpp_DL_PRS_ResourcesBandCombination_r16 = -1;
2540 static gint ett_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16 = -1;
2541 static gint ett_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16 = -1;
2542 static gint ett_lpp_T_fr1_FR2Mix_r16 = -1;
2543 static gint ett_lpp_NR_PositionCalculationAssistance_r16 = -1;
2544 static gint ett_lpp_NR_RTD_Info_r16 = -1;
2545 static gint ett_lpp_ReferenceTRP_RTD_Info_r16 = -1;
2546 static gint ett_lpp_T_refTime_r16 = -1;
2547 static gint ett_lpp_RTD_InfoList_r16 = -1;
2548 static gint ett_lpp_RTD_InfoListPerFreqLayer_r16 = -1;
2549 static gint ett_lpp_RTD_InfoElement_r16 = -1;
2550 static gint ett_lpp_NR_SelectedDL_PRS_IndexList_r16 = -1;
2551 static gint ett_lpp_NR_SelectedDL_PRS_PerFreq_r16 = -1;
2552 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16 = -1;
2553 static gint ett_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16 = -1;
2554 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16 = -1;
2555 static gint ett_lpp_DL_SelectedPRS_ResourceSetIndex_r16 = -1;
2556 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16 = -1;
2557 static gint ett_lpp_DL_SelectedPRS_ResourceIndex_r16 = -1;
2558 static gint ett_lpp_NR_SSB_Config_r16 = -1;
2559 static gint ett_lpp_T_ssb_PositionsInBurst_r16 = -1;
2560 static gint ett_lpp_NR_TimeStamp_r16 = -1;
2561 static gint ett_lpp_T_nr_Slot_r16 = -1;
2562 static gint ett_lpp_NR_TimingQuality_r16 = -1;
2563 static gint ett_lpp_NR_TRP_LocationInfo_r16 = -1;
2564 static gint ett_lpp_NR_TRP_LocationInfoPerFreqLayer_r16 = -1;
2565 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16 = -1;
2566 static gint ett_lpp_TRP_LocationInfoElement_r16 = -1;
2567 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16 = -1;
2568 static gint ett_lpp_DL_PRS_ResourceSets_TRP_Element_r16 = -1;
2569 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16 = -1;
2570 static gint ett_lpp_DL_PRS_Resource_ARP_Element_r16 = -1;
2571 static gint ett_lpp_NR_UL_SRS_Capability_r16 = -1;
2572 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16 = -1;
2573 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16 = -1;
2574 static gint ett_lpp_SRS_CapabilityPerBand_r16 = -1;
2575 static gint ett_lpp_OLPC_SRS_Pos_r16 = -1;
2576 static gint ett_lpp_SpatialRelationsSRS_Pos_r16 = -1;
2577 static gint ett_lpp_SRS_PosResourcesPerBand_r16 = -1;
2578 static gint ett_lpp_ReferencePoint_r16 = -1;
2579 static gint ett_lpp_T_referencePointGeographicLocation_r16 = -1;
2580 static gint ett_lpp_RelativeLocation_r16 = -1;
2581 static gint ett_lpp_Delta_Latitude_r16 = -1;
2582 static gint ett_lpp_Delta_Longitude_r16 = -1;
2583 static gint ett_lpp_Delta_Height_r16 = -1;
2584 static gint ett_lpp_LocationUncertainty_r16 = -1;
2585 static gint ett_lpp_OTDOA_ProvideAssistanceData = -1;
2586 static gint ett_lpp_OTDOA_ReferenceCellInfo = -1;
2587 static gint ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info = -1;
2588 static gint ett_lpp_PRS_Info = -1;
2589 static gint ett_lpp_T_prs_MutingInfo_r9 = -1;
2590 static gint ett_lpp_T_prsHoppingInfo_r14 = -1;
2591 static gint ett_lpp_T_nb4_r14 = -1;
2592 static gint ett_lpp_TDD_Config_v1520 = -1;
2593 static gint ett_lpp_OTDOA_NeighbourCellInfoList = -1;
2594 static gint ett_lpp_OTDOA_NeighbourFreqInfo = -1;
2595 static gint ett_lpp_OTDOA_NeighbourCellInfoElement = -1;
2596 static gint ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14 = -1;
2597 static gint ett_lpp_Add_PRSconfigNeighbourElement_r14 = -1;
2598 static gint ett_lpp_OTDOA_ReferenceCellInfoNB_r14 = -1;
2599 static gint ett_lpp_PRS_Info_NB_r14 = -1;
2600 static gint ett_lpp_NPRS_Info_r14 = -1;
2601 static gint ett_lpp_T_partA_r14 = -1;
2602 static gint ett_lpp_T_nprsBitmap_r14 = -1;
2603 static gint ett_lpp_T_nprs_MutingInfoA_r14 = -1;
2604 static gint ett_lpp_T_partB_r14 = -1;
2605 static gint ett_lpp_T_nprs_MutingInfoB_r14 = -1;
2606 static gint ett_lpp_T_partA_TDD_r15 = -1;
2607 static gint ett_lpp_T_nprsBitmap_r15 = -1;
2608 static gint ett_lpp_T_nprs_MutingInfoA_r15 = -1;
2609 static gint ett_lpp_OTDOA_NeighbourCellInfoListNB_r14 = -1;
2610 static gint ett_lpp_OTDOA_NeighbourCellInfoNB_r14 = -1;
2611 static gint ett_lpp_OTDOA_RequestAssistanceData = -1;
2612 static gint ett_lpp_T_adType_r14 = -1;
2613 static gint ett_lpp_OTDOA_ProvideLocationInformation = -1;
2614 static gint ett_lpp_OTDOA_SignalMeasurementInformation = -1;
2615 static gint ett_lpp_NeighbourMeasurementList = -1;
2616 static gint ett_lpp_NeighbourMeasurementElement = -1;
2617 static gint ett_lpp_AdditionalPathList_r14 = -1;
2618 static gint ett_lpp_MotionTimeSource_r15 = -1;
2619 static gint ett_lpp_OTDOA_SignalMeasurementInformation_NB_r14 = -1;
2620 static gint ett_lpp_NeighbourMeasurementList_NB_r14 = -1;
2621 static gint ett_lpp_NeighbourMeasurementElement_NB_r14 = -1;
2622 static gint ett_lpp_OTDOA_MeasQuality = -1;
2623 static gint ett_lpp_AdditionalPath_r14 = -1;
2624 static gint ett_lpp_OTDOA_RequestLocationInformation = -1;
2625 static gint ett_lpp_OTDOA_ProvideCapabilities = -1;
2626 static gint ett_lpp_T_otdoa_Mode = -1;
2627 static gint ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA = -1;
2628 static gint ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0 = -1;
2629 static gint ett_lpp_SupportedBandEUTRA = -1;
2630 static gint ett_lpp_SupportedBandEUTRA_v9a0 = -1;
2631 static gint ett_lpp_OTDOA_RequestCapabilities = -1;
2632 static gint ett_lpp_OTDOA_Error = -1;
2633 static gint ett_lpp_OTDOA_LocationServerErrorCauses = -1;
2634 static gint ett_lpp_OTDOA_TargetDeviceErrorCauses = -1;
2635 static gint ett_lpp_A_GNSS_ProvideAssistanceData = -1;
2636 static gint ett_lpp_GNSS_CommonAssistData = -1;
2637 static gint ett_lpp_GNSS_GenericAssistData = -1;
2638 static gint ett_lpp_GNSS_GenericAssistDataElement = -1;
2639 static gint ett_lpp_GNSS_PeriodicAssistData_r15 = -1;
2640 static gint ett_lpp_GNSS_ReferenceTime = -1;
2641 static gint ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell = -1;
2642 static gint ett_lpp_GNSS_ReferenceTimeForOneCell = -1;
2643 static gint ett_lpp_GNSS_SystemTime = -1;
2644 static gint ett_lpp_GPS_TOW_Assist = -1;
2645 static gint ett_lpp_GPS_TOW_AssistElement = -1;
2646 static gint ett_lpp_NetworkTime = -1;
2647 static gint ett_lpp_T_cellID = -1;
2648 static gint ett_lpp_T_eUTRA = -1;
2649 static gint ett_lpp_T_uTRA = -1;
2650 static gint ett_lpp_T_mode = -1;
2651 static gint ett_lpp_T_fdd = -1;
2652 static gint ett_lpp_T_tdd = -1;
2653 static gint ett_lpp_T_gSM = -1;
2654 static gint ett_lpp_T_nBIoT_r14 = -1;
2655 static gint ett_lpp_T_nr_r15 = -1;
2656 static gint ett_lpp_GNSS_ReferenceLocation = -1;
2657 static gint ett_lpp_GNSS_IonosphericModel = -1;
2658 static gint ett_lpp_KlobucharModelParameter = -1;
2659 static gint ett_lpp_KlobucharModel2Parameter_r16 = -1;
2660 static gint ett_lpp_NeQuickModelParameter = -1;
2661 static gint ett_lpp_GNSS_EarthOrientationParameters = -1;
2662 static gint ett_lpp_GNSS_RTK_ReferenceStationInfo_r15 = -1;
2663 static gint ett_lpp_AntennaDescription_r15 = -1;
2664 static gint ett_lpp_AntennaReferencePointUnc_r15 = -1;
2665 static gint ett_lpp_PhysicalReferenceStationInfo_r15 = -1;
2666 static gint ett_lpp_EqualIntegerAmbiguityLevel_r16 = -1;
2667 static gint ett_lpp_ReferenceStationList_r16 = -1;
2668 static gint ett_lpp_GNSS_RTK_CommonObservationInfo_r15 = -1;
2669 static gint ett_lpp_GNSS_RTK_AuxiliaryStationData_r15 = -1;
2670 static gint ett_lpp_AuxiliaryStationList_r15 = -1;
2671 static gint ett_lpp_AuxiliaryStationElement_r15 = -1;
2672 static gint ett_lpp_Aux_ARP_Unc_r15 = -1;
2673 static gint ett_lpp_GNSS_SSR_CorrectionPoints_r16 = -1;
2674 static gint ett_lpp_T_correctionPoints_r16 = -1;
2675 static gint ett_lpp_GNSS_SSR_ListOfCorrectionPoints_r16 = -1;
2676 static gint ett_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16 = -1;
2677 static gint ett_lpp_RelativeLocationElement_r16 = -1;
2678 static gint ett_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16 = -1;
2679 static gint ett_lpp_GNSS_TimeModelList = -1;
2680 static gint ett_lpp_GNSS_TimeModelElement = -1;
2681 static gint ett_lpp_GNSS_DifferentialCorrections = -1;
2682 static gint ett_lpp_DGNSS_SgnTypeList = -1;
2683 static gint ett_lpp_DGNSS_SgnTypeElement = -1;
2684 static gint ett_lpp_DGNSS_SatList = -1;
2685 static gint ett_lpp_DGNSS_CorrectionsElement = -1;
2686 static gint ett_lpp_GNSS_NavigationModel = -1;
2687 static gint ett_lpp_GNSS_NavModelSatelliteList = -1;
2688 static gint ett_lpp_GNSS_NavModelSatelliteElement = -1;
2689 static gint ett_lpp_GNSS_ClockModel = -1;
2690 static gint ett_lpp_GNSS_OrbitModel = -1;
2691 static gint ett_lpp_StandardClockModelList = -1;
2692 static gint ett_lpp_StandardClockModelElement = -1;
2693 static gint ett_lpp_NAV_ClockModel = -1;
2694 static gint ett_lpp_CNAV_ClockModel = -1;
2695 static gint ett_lpp_GLONASS_ClockModel = -1;
2696 static gint ett_lpp_SBAS_ClockModel = -1;
2697 static gint ett_lpp_BDS_ClockModel_r12 = -1;
2698 static gint ett_lpp_BDS_ClockModel2_r16 = -1;
2699 static gint ett_lpp_NavIC_ClockModel_r16 = -1;
2700 static gint ett_lpp_NavModelKeplerianSet = -1;
2701 static gint ett_lpp_NavModelNAV_KeplerianSet = -1;
2702 static gint ett_lpp_T_addNAVparam = -1;
2703 static gint ett_lpp_T_ephemSF1Rsvd = -1;
2704 static gint ett_lpp_NavModelCNAV_KeplerianSet = -1;
2705 static gint ett_lpp_NavModel_GLONASS_ECEF = -1;
2706 static gint ett_lpp_NavModel_SBAS_ECEF = -1;
2707 static gint ett_lpp_NavModel_BDS_KeplerianSet_r12 = -1;
2708 static gint ett_lpp_NavModel_BDS_KeplerianSet2_r16 = -1;
2709 static gint ett_lpp_NavModel_NavIC_KeplerianSet_r16 = -1;
2710 static gint ett_lpp_GNSS_RealTimeIntegrity = -1;
2711 static gint ett_lpp_GNSS_BadSignalList = -1;
2712 static gint ett_lpp_BadSignalElement = -1;
2713 static gint ett_lpp_GNSS_DataBitAssistance = -1;
2714 static gint ett_lpp_GNSS_DataBitsSatList = -1;
2715 static gint ett_lpp_GNSS_DataBitsSatElement = -1;
2716 static gint ett_lpp_GNSS_DataBitsSgnList = -1;
2717 static gint ett_lpp_GNSS_DataBitsSgnElement = -1;
2718 static gint ett_lpp_GNSS_AcquisitionAssistance = -1;
2719 static gint ett_lpp_GNSS_AcquisitionAssistList = -1;
2720 static gint ett_lpp_GNSS_AcquisitionAssistElement = -1;
2721 static gint ett_lpp_GNSS_Almanac = -1;
2722 static gint ett_lpp_GNSS_AlmanacList = -1;
2723 static gint ett_lpp_GNSS_AlmanacElement = -1;
2724 static gint ett_lpp_AlmanacKeplerianSet = -1;
2725 static gint ett_lpp_AlmanacNAV_KeplerianSet = -1;
2726 static gint ett_lpp_AlmanacReducedKeplerianSet = -1;
2727 static gint ett_lpp_AlmanacMidiAlmanacSet = -1;
2728 static gint ett_lpp_AlmanacGLONASS_AlmanacSet = -1;
2729 static gint ett_lpp_AlmanacECEF_SBAS_AlmanacSet = -1;
2730 static gint ett_lpp_AlmanacBDS_AlmanacSet_r12 = -1;
2731 static gint ett_lpp_AlmanacNavIC_AlmanacSet_r16 = -1;
2732 static gint ett_lpp_GNSS_UTC_Model = -1;
2733 static gint ett_lpp_UTC_ModelSet1 = -1;
2734 static gint ett_lpp_UTC_ModelSet2 = -1;
2735 static gint ett_lpp_UTC_ModelSet3 = -1;
2736 static gint ett_lpp_UTC_ModelSet4 = -1;
2737 static gint ett_lpp_UTC_ModelSet5_r12 = -1;
2738 static gint ett_lpp_GNSS_AuxiliaryInformation = -1;
2739 static gint ett_lpp_GNSS_ID_GPS = -1;
2740 static gint ett_lpp_GNSS_ID_GPS_SatElement = -1;
2741 static gint ett_lpp_GNSS_ID_GLONASS = -1;
2742 static gint ett_lpp_GNSS_ID_GLONASS_SatElement = -1;
2743 static gint ett_lpp_GNSS_ID_BDS_r16 = -1;
2744 static gint ett_lpp_GNSS_ID_BDS_SatElement_r16 = -1;
2745 static gint ett_lpp_BDS_DifferentialCorrections_r12 = -1;
2746 static gint ett_lpp_BDS_SgnTypeList_r12 = -1;
2747 static gint ett_lpp_BDS_SgnTypeElement_r12 = -1;
2748 static gint ett_lpp_DBDS_CorrectionList_r12 = -1;
2749 static gint ett_lpp_DBDS_CorrectionElement_r12 = -1;
2750 static gint ett_lpp_BDS_GridModelParameter_r12 = -1;
2751 static gint ett_lpp_GridIonList_r12 = -1;
2752 static gint ett_lpp_GridIonElement_r12 = -1;
2753 static gint ett_lpp_GNSS_RTK_Observations_r15 = -1;
2754 static gint ett_lpp_GNSS_ObservationList_r15 = -1;
2755 static gint ett_lpp_GNSS_RTK_SatelliteDataElement_r15 = -1;
2756 static gint ett_lpp_GNSS_RTK_SatelliteSignalDataList_r15 = -1;
2757 static gint ett_lpp_GNSS_RTK_SatelliteSignalDataElement_r15 = -1;
2758 static gint ett_lpp_GLO_RTK_BiasInformation_r15 = -1;
2759 static gint ett_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15 = -1;
2760 static gint ett_lpp_RTK_CorrectionDifferencesList_r15 = -1;
2761 static gint ett_lpp_RTK_CorrectionDifferencesElement_r15 = -1;
2762 static gint ett_lpp_Geometric_Ionospheric_Corrections_Differences_r15 = -1;
2763 static gint ett_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15 = -1;
2764 static gint ett_lpp_GNSS_RTK_Residuals_r15 = -1;
2765 static gint ett_lpp_RTK_Residuals_List_r15 = -1;
2766 static gint ett_lpp_RTK_Residuals_Element_r15 = -1;
2767 static gint ett_lpp_GNSS_RTK_FKP_Gradients_r15 = -1;
2768 static gint ett_lpp_FKP_Gradients_List_r15 = -1;
2769 static gint ett_lpp_FKP_Gradients_Element_r15 = -1;
2770 static gint ett_lpp_GNSS_SSR_OrbitCorrections_r15 = -1;
2771 static gint ett_lpp_SSR_OrbitCorrectionList_r15 = -1;
2772 static gint ett_lpp_SSR_OrbitCorrectionSatelliteElement_r15 = -1;
2773 static gint ett_lpp_GNSS_SSR_ClockCorrections_r15 = -1;
2774 static gint ett_lpp_SSR_ClockCorrectionList_r15 = -1;
2775 static gint ett_lpp_SSR_ClockCorrectionSatelliteElement_r15 = -1;
2776 static gint ett_lpp_GNSS_SSR_CodeBias_r15 = -1;
2777 static gint ett_lpp_SSR_CodeBiasSatList_r15 = -1;
2778 static gint ett_lpp_SSR_CodeBiasSatElement_r15 = -1;
2779 static gint ett_lpp_SSR_CodeBiasSignalList_r15 = -1;
2780 static gint ett_lpp_SSR_CodeBiasSignalElement_r15 = -1;
2781 static gint ett_lpp_GNSS_SSR_URA_r16 = -1;
2782 static gint ett_lpp_SSR_URA_SatList_r16 = -1;
2783 static gint ett_lpp_SSR_URA_SatElement_r16 = -1;
2784 static gint ett_lpp_GNSS_SSR_PhaseBias_r16 = -1;
2785 static gint ett_lpp_SSR_PhaseBiasSatList_r16 = -1;
2786 static gint ett_lpp_SSR_PhaseBiasSatElement_r16 = -1;
2787 static gint ett_lpp_SSR_PhaseBiasSignalList_r16 = -1;
2788 static gint ett_lpp_SSR_PhaseBiasSignalElement_r16 = -1;
2789 static gint ett_lpp_GNSS_SSR_STEC_Correction_r16 = -1;
2790 static gint ett_lpp_STEC_SatList_r16 = -1;
2791 static gint ett_lpp_STEC_SatElement_r16 = -1;
2792 static gint ett_lpp_GNSS_SSR_GriddedCorrection_r16 = -1;
2793 static gint ett_lpp_GridList_r16 = -1;
2794 static gint ett_lpp_GridElement_r16 = -1;
2795 static gint ett_lpp_TropospericDelayCorrection_r16 = -1;
2796 static gint ett_lpp_STEC_ResidualSatList_r16 = -1;
2797 static gint ett_lpp_STEC_ResidualSatElement_r16 = -1;
2798 static gint ett_lpp_T_stecResidualCorrection_r16 = -1;
2799 static gint ett_lpp_NavIC_DifferentialCorrections_r16 = -1;
2800 static gint ett_lpp_NavIC_CorrectionListAutoNav_r16 = -1;
2801 static gint ett_lpp_NavIC_CorrectionElementAutoNav_r16 = -1;
2802 static gint ett_lpp_NavIC_EDC_r16 = -1;
2803 static gint ett_lpp_NavIC_CDC_r16 = -1;
2804 static gint ett_lpp_NavIC_GridModelParameter_r16 = -1;
2805 static gint ett_lpp_RegionIgpList_r16 = -1;
2806 static gint ett_lpp_RegionIgpElement_r16 = -1;
2807 static gint ett_lpp_A_GNSS_RequestAssistanceData = -1;
2808 static gint ett_lpp_GNSS_CommonAssistDataReq = -1;
2809 static gint ett_lpp_GNSS_GenericAssistDataReq = -1;
2810 static gint ett_lpp_GNSS_GenericAssistDataReqElement = -1;
2811 static gint ett_lpp_GNSS_PeriodicAssistDataReq_r15 = -1;
2812 static gint ett_lpp_GNSS_ReferenceTimeReq = -1;
2813 static gint ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID = -1;
2814 static gint ett_lpp_GNSS_ReferenceLocationReq = -1;
2815 static gint ett_lpp_GNSS_IonosphericModelReq = -1;
2816 static gint ett_lpp_GNSS_EarthOrientationParametersReq = -1;
2817 static gint ett_lpp_GNSS_RTK_ReferenceStationInfoReq_r15 = -1;
2818 static gint ett_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15 = -1;
2819 static gint ett_lpp_GNSS_SSR_CorrectionPointsReq_r16 = -1;
2820 static gint ett_lpp_GNSS_TimeModelListReq = -1;
2821 static gint ett_lpp_GNSS_TimeModelElementReq = -1;
2822 static gint ett_lpp_GNSS_DifferentialCorrectionsReq = -1;
2823 static gint ett_lpp_GNSS_NavigationModelReq = -1;
2824 static gint ett_lpp_StoredNavListInfo = -1;
2825 static gint ett_lpp_SatListRelatedDataList = -1;
2826 static gint ett_lpp_SatListRelatedDataElement = -1;
2827 static gint ett_lpp_ReqNavListInfo = -1;
2828 static gint ett_lpp_T_clockModelID_PrefList = -1;
2829 static gint ett_lpp_T_orbitModelID_PrefList = -1;
2830 static gint ett_lpp_GNSS_RealTimeIntegrityReq = -1;
2831 static gint ett_lpp_GNSS_DataBitAssistanceReq = -1;
2832 static gint ett_lpp_GNSS_DataBitsReqSatList = -1;
2833 static gint ett_lpp_GNSS_DataBitsReqSatElement = -1;
2834 static gint ett_lpp_GNSS_AcquisitionAssistanceReq = -1;
2835 static gint ett_lpp_GNSS_AlmanacReq = -1;
2836 static gint ett_lpp_GNSS_UTC_ModelReq = -1;
2837 static gint ett_lpp_GNSS_AuxiliaryInformationReq = -1;
2838 static gint ett_lpp_BDS_DifferentialCorrectionsReq_r12 = -1;
2839 static gint ett_lpp_BDS_GridModelReq_r12 = -1;
2840 static gint ett_lpp_GNSS_RTK_ObservationsReq_r15 = -1;
2841 static gint ett_lpp_GLO_RTK_BiasInformationReq_r15 = -1;
2842 static gint ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15 = -1;
2843 static gint ett_lpp_AUX_ReferenceStationList_r15 = -1;
2844 static gint ett_lpp_AUX_ReferenceStationID_Element_r15 = -1;
2845 static gint ett_lpp_GNSS_RTK_ResidualsReq_r15 = -1;
2846 static gint ett_lpp_GNSS_RTK_FKP_GradientsReq_r15 = -1;
2847 static gint ett_lpp_GNSS_SSR_OrbitCorrectionsReq_r15 = -1;
2848 static gint ett_lpp_GNSS_SSR_ClockCorrectionsReq_r15 = -1;
2849 static gint ett_lpp_GNSS_SSR_CodeBiasReq_r15 = -1;
2850 static gint ett_lpp_GNSS_SSR_URA_Req_r16 = -1;
2851 static gint ett_lpp_GNSS_SSR_PhaseBiasReq_r16 = -1;
2852 static gint ett_lpp_GNSS_SSR_STEC_CorrectionReq_r16 = -1;
2853 static gint ett_lpp_GNSS_SSR_GriddedCorrectionReq_r16 = -1;
2854 static gint ett_lpp_NavIC_DifferentialCorrectionsReq_r16 = -1;
2855 static gint ett_lpp_NavIC_GridModelReq_r16 = -1;
2856 static gint ett_lpp_A_GNSS_ProvideLocationInformation = -1;
2857 static gint ett_lpp_GNSS_SignalMeasurementInformation = -1;
2858 static gint ett_lpp_MeasurementReferenceTime = -1;
2859 static gint ett_lpp_T_networkTime = -1;
2860 static gint ett_lpp_T_eUTRA_01 = -1;
2861 static gint ett_lpp_T_uTRA_01 = -1;
2862 static gint ett_lpp_T_mode_01 = -1;
2863 static gint ett_lpp_T_fdd_01 = -1;
2864 static gint ett_lpp_T_tdd_01 = -1;
2865 static gint ett_lpp_T_gSM_01 = -1;
2866 static gint ett_lpp_T_referenceFrame = -1;
2867 static gint ett_lpp_T_nbIoT_r14 = -1;
2868 static gint ett_lpp_T_nr_r15_01 = -1;
2869 static gint ett_lpp_GNSS_MeasurementList = -1;
2870 static gint ett_lpp_GNSS_MeasurementForOneGNSS = -1;
2871 static gint ett_lpp_GNSS_SgnMeasList = -1;
2872 static gint ett_lpp_GNSS_SgnMeasElement = -1;
2873 static gint ett_lpp_GNSS_SatMeasList = -1;
2874 static gint ett_lpp_GNSS_SatMeasElement = -1;
2875 static gint ett_lpp_GNSS_LocationInformation = -1;
2876 static gint ett_lpp_A_GNSS_RequestLocationInformation = -1;
2877 static gint ett_lpp_GNSS_PositioningInstructions = -1;
2878 static gint ett_lpp_A_GNSS_ProvideCapabilities = -1;
2879 static gint ett_lpp_T_periodicAssistanceData_r15 = -1;
2880 static gint ett_lpp_GNSS_SupportList = -1;
2881 static gint ett_lpp_GNSS_SupportElement = -1;
2882 static gint ett_lpp_T_fta_MeasSupport = -1;
2883 static gint ett_lpp_AssistanceDataSupportList = -1;
2884 static gint ett_lpp_GNSS_CommonAssistanceDataSupport = -1;
2885 static gint ett_lpp_GNSS_ReferenceTimeSupport = -1;
2886 static gint ett_lpp_GNSS_ReferenceLocationSupport = -1;
2887 static gint ett_lpp_GNSS_IonosphericModelSupport = -1;
2888 static gint ett_lpp_T_ionoModel = -1;
2889 static gint ett_lpp_GNSS_EarthOrientationParametersSupport = -1;
2890 static gint ett_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15 = -1;
2891 static gint ett_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15 = -1;
2892 static gint ett_lpp_GNSS_GenericAssistanceDataSupport = -1;
2893 static gint ett_lpp_GNSS_GenericAssistDataSupportElement = -1;
2894 static gint ett_lpp_GNSS_TimeModelListSupport = -1;
2895 static gint ett_lpp_GNSS_DifferentialCorrectionsSupport = -1;
2896 static gint ett_lpp_GNSS_NavigationModelSupport = -1;
2897 static gint ett_lpp_T_clockModel = -1;
2898 static gint ett_lpp_T_orbitModel = -1;
2899 static gint ett_lpp_GNSS_RealTimeIntegritySupport = -1;
2900 static gint ett_lpp_GNSS_DataBitAssistanceSupport = -1;
2901 static gint ett_lpp_GNSS_AcquisitionAssistanceSupport = -1;
2902 static gint ett_lpp_GNSS_AlmanacSupport = -1;
2903 static gint ett_lpp_T_almanacModel = -1;
2904 static gint ett_lpp_GNSS_UTC_ModelSupport = -1;
2905 static gint ett_lpp_T_utc_Model = -1;
2906 static gint ett_lpp_GNSS_AuxiliaryInformationSupport = -1;
2907 static gint ett_lpp_BDS_DifferentialCorrectionsSupport_r12 = -1;
2908 static gint ett_lpp_BDS_GridModelSupport_r12 = -1;
2909 static gint ett_lpp_GNSS_RTK_ObservationsSupport_r15 = -1;
2910 static gint ett_lpp_GLO_RTK_BiasInformationSupport_r15 = -1;
2911 static gint ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15 = -1;
2912 static gint ett_lpp_GNSS_RTK_ResidualsSupport_r15 = -1;
2913 static gint ett_lpp_GNSS_RTK_FKP_GradientsSupport_r15 = -1;
2914 static gint ett_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15 = -1;
2915 static gint ett_lpp_GNSS_SSR_ClockCorrectionsSupport_r15 = -1;
2916 static gint ett_lpp_GNSS_SSR_CodeBiasSupport_r15 = -1;
2917 static gint ett_lpp_GNSS_SSR_URA_Support_r16 = -1;
2918 static gint ett_lpp_GNSS_SSR_PhaseBiasSupport_r16 = -1;
2919 static gint ett_lpp_GNSS_SSR_STEC_CorrectionSupport_r16 = -1;
2920 static gint ett_lpp_GNSS_SSR_GriddedCorrectionSupport_r16 = -1;
2921 static gint ett_lpp_NavIC_DifferentialCorrectionsSupport_r16 = -1;
2922 static gint ett_lpp_NavIC_GridModelSupport_r16 = -1;
2923 static gint ett_lpp_A_GNSS_RequestCapabilities = -1;
2924 static gint ett_lpp_A_GNSS_Error = -1;
2925 static gint ett_lpp_GNSS_LocationServerErrorCauses = -1;
2926 static gint ett_lpp_GNSS_TargetDeviceErrorCauses = -1;
2927 static gint ett_lpp_GNSS_FrequencyID_r15 = -1;
2928 static gint ett_lpp_GNSS_ID = -1;
2929 static gint ett_lpp_GNSS_ID_Bitmap = -1;
2930 static gint ett_lpp_T_gnss_ids = -1;
2931 static gint ett_lpp_GNSS_Link_CombinationsList_r15 = -1;
2932 static gint ett_lpp_GNSS_Link_Combinations_r15 = -1;
2933 static gint ett_lpp_GNSS_NavListInfo_r15 = -1;
2934 static gint ett_lpp_SatListElement_r15 = -1;
2935 static gint ett_lpp_GNSS_NetworkID_r15 = -1;
2936 static gint ett_lpp_GNSS_PeriodicControlParam_r15 = -1;
2937 static gint ett_lpp_GNSS_ReferenceStationID_r15 = -1;
2938 static gint ett_lpp_GNSS_SignalID = -1;
2939 static gint ett_lpp_GNSS_SignalIDs = -1;
2940 static gint ett_lpp_GNSS_SubNetworkID_r15 = -1;
2941 static gint ett_lpp_SBAS_ID = -1;
2942 static gint ett_lpp_SBAS_IDs = -1;
2943 static gint ett_lpp_T_sbas_IDs = -1;
2944 static gint ett_lpp_SV_ID = -1;
2945 static gint ett_lpp_ECID_ProvideLocationInformation = -1;
2946 static gint ett_lpp_ECID_SignalMeasurementInformation = -1;
2947 static gint ett_lpp_MeasuredResultsList = -1;
2948 static gint ett_lpp_MeasuredResultsElement = -1;
2949 static gint ett_lpp_ECID_RequestLocationInformation = -1;
2950 static gint ett_lpp_T_requestedMeasurements = -1;
2951 static gint ett_lpp_ECID_ProvideCapabilities = -1;
2952 static gint ett_lpp_T_ecid_MeasSupported = -1;
2953 static gint ett_lpp_ECID_RequestCapabilities = -1;
2954 static gint ett_lpp_ECID_Error = -1;
2955 static gint ett_lpp_ECID_LocationServerErrorCauses = -1;
2956 static gint ett_lpp_ECID_TargetDeviceErrorCauses = -1;
2957 static gint ett_lpp_TBS_ProvideLocationInformation_r13 = -1;
2958 static gint ett_lpp_TBS_MeasurementInformation_r13 = -1;
2959 static gint ett_lpp_MBS_BeaconMeasList_r13 = -1;
2960 static gint ett_lpp_MBS_BeaconMeasElement_r13 = -1;
2961 static gint ett_lpp_TBS_RequestLocationInformation_r13 = -1;
2962 static gint ett_lpp_T_mbsRequestedMeasurements_r14 = -1;
2963 static gint ett_lpp_TBS_ProvideCapabilities_r13 = -1;
2964 static gint ett_lpp_T_tbs_Modes_r13 = -1;
2965 static gint ett_lpp_T_mbs_ConfigSupport_r14 = -1;
2966 static gint ett_lpp_MBS_AssistanceDataSupportList_r14 = -1;
2967 static gint ett_lpp_TBS_RequestCapabilities_r13 = -1;
2968 static gint ett_lpp_TBS_Error_r13 = -1;
2969 static gint ett_lpp_TBS_LocationServerErrorCauses_r13 = -1;
2970 static gint ett_lpp_TBS_TargetDeviceErrorCauses_r13 = -1;
2971 static gint ett_lpp_TBS_ProvideAssistanceData_r14 = -1;
2972 static gint ett_lpp_TBS_AssistanceDataList_r14 = -1;
2973 static gint ett_lpp_MBS_AssistanceDataList_r14 = -1;
2974 static gint ett_lpp_MBS_AssistanceDataElement_r14 = -1;
2975 static gint ett_lpp_MBS_AlmanacAssistance_r14 = -1;
2976 static gint ett_lpp_MBS_AcquisitionAssistance_r14 = -1;
2977 static gint ett_lpp_TBS_RequestAssistanceData_r14 = -1;
2978 static gint ett_lpp_Sensor_ProvideLocationInformation_r13 = -1;
2979 static gint ett_lpp_Sensor_MeasurementInformation_r13 = -1;
2980 static gint ett_lpp_T_uncertainty_r14 = -1;
2981 static gint ett_lpp_Sensor_MotionInformation_r15 = -1;
2982 static gint ett_lpp_DisplacementInfoList_r15 = -1;
2983 static gint ett_lpp_DisplacementInfoListElement_r15 = -1;
2984 static gint ett_lpp_DisplacementTimeStamp_r15 = -1;
2985 static gint ett_lpp_DeltaTime_r15 = -1;
2986 static gint ett_lpp_SFN_r15 = -1;
2987 static gint ett_lpp_Displacement_r15 = -1;
2988 static gint ett_lpp_UTC_Time_r15 = -1;
2989 static gint ett_lpp_Sensor_RequestLocationInformation_r13 = -1;
2990 static gint ett_lpp_Sensor_ProvideCapabilities_r13 = -1;
2991 static gint ett_lpp_T_sensor_Modes_r13 = -1;
2992 static gint ett_lpp_Sensor_AssistanceDataSupportList_r14 = -1;
2993 static gint ett_lpp_Sensor_RequestCapabilities_r13 = -1;
2994 static gint ett_lpp_Sensor_Error_r13 = -1;
2995 static gint ett_lpp_Sensor_LocationServerErrorCauses_r13 = -1;
2996 static gint ett_lpp_Sensor_TargetDeviceErrorCauses_r13 = -1;
2997 static gint ett_lpp_Sensor_ProvideAssistanceData_r14 = -1;
2998 static gint ett_lpp_Sensor_AssistanceDataList_r14 = -1;
2999 static gint ett_lpp_T_period_v1520 = -1;
3000 static gint ett_lpp_T_area_v1520 = -1;
3001 static gint ett_lpp_PressureValidityArea_v1520 = -1;
3002 static gint ett_lpp_PressureValidityPeriod_v1520 = -1;
3003 static gint ett_lpp_Sensor_RequestAssistanceData_r14 = -1;
3004 static gint ett_lpp_WLAN_ProvideLocationInformation_r13 = -1;
3005 static gint ett_lpp_WLAN_MeasurementInformation_r13 = -1;
3006 static gint ett_lpp_WLAN_MeasurementList_r13 = -1;
3007 static gint ett_lpp_WLAN_MeasurementElement_r13 = -1;
3008 static gint ett_lpp_WLAN_AP_Identifier_r13 = -1;
3009 static gint ett_lpp_WLAN_RTT_r13 = -1;
3010 static gint ett_lpp_WLAN_RequestLocationInformation_r13 = -1;
3011 static gint ett_lpp_T_requestedMeasurements_r13 = -1;
3012 static gint ett_lpp_WLAN_ProvideCapabilities_r13 = -1;
3013 static gint ett_lpp_T_wlan_Modes_r13 = -1;
3014 static gint ett_lpp_T_wlan_MeasSupported_r13 = -1;
3015 static gint ett_lpp_T_wlan_AP_AD_Supported_r14 = -1;
3016 static gint ett_lpp_WLAN_RequestCapabilities_r13 = -1;
3017 static gint ett_lpp_WLAN_Error_r13 = -1;
3018 static gint ett_lpp_WLAN_LocationServerErrorCauses_r13 = -1;
3019 static gint ett_lpp_WLAN_TargetDeviceErrorCauses_r13 = -1;
3020 static gint ett_lpp_WLAN_ProvideAssistanceData_r14 = -1;
3021 static gint ett_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14 = -1;
3022 static gint ett_lpp_WLAN_DataSet_r14 = -1;
3023 static gint ett_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14 = -1;
3024 static gint ett_lpp_SupportedChannels_11a_r14 = -1;
3025 static gint ett_lpp_SupportedChannels_11bg_r14 = -1;
3026 static gint ett_lpp_WLAN_AP_Data_r14 = -1;
3027 static gint ett_lpp_WLAN_AP_Location_r14 = -1;
3028 static gint ett_lpp_LocationDataLCI_r14 = -1;
3029 static gint ett_lpp_WLAN_RequestAssistanceData_r14 = -1;
3030 static gint ett_lpp_T_requestedAD_r14 = -1;
3031 static gint ett_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13 = -1;
3032 static gint ett_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13 = -1;
3033 static gint ett_lpp_BT_ProvideLocationInformation_r13 = -1;
3034 static gint ett_lpp_BT_MeasurementInformation_r13 = -1;
3035 static gint ett_lpp_BT_MeasurementList_r13 = -1;
3036 static gint ett_lpp_BT_MeasurementElement_r13 = -1;
3037 static gint ett_lpp_BT_RequestLocationInformation_r13 = -1;
3038 static gint ett_lpp_T_requestedMeasurements_r13_01 = -1;
3039 static gint ett_lpp_BT_ProvideCapabilities_r13 = -1;
3040 static gint ett_lpp_T_bt_Modes_r13 = -1;
3041 static gint ett_lpp_T_bt_MeasSupported_r13 = -1;
3042 static gint ett_lpp_BT_RequestCapabilities_r13 = -1;
3043 static gint ett_lpp_BT_Error_r13 = -1;
3044 static gint ett_lpp_BT_LocationServerErrorCauses_r13 = -1;
3045 static gint ett_lpp_BT_TargetDeviceErrorCauses_r13 = -1;
3046 static gint ett_lpp_NR_UL_ProvideCapabilities_r16 = -1;
3047 static gint ett_lpp_NR_UL_RequestCapabilities_r16 = -1;
3048 static gint ett_lpp_NR_ECID_ProvideLocationInformation_r16 = -1;
3049 static gint ett_lpp_NR_ECID_SignalMeasurementInformation_r16 = -1;
3050 static gint ett_lpp_NR_MeasuredResultsList_r16 = -1;
3051 static gint ett_lpp_NR_MeasuredResultsElement_r16 = -1;
3052 static gint ett_lpp_T_nr_ARFCN_r16 = -1;
3053 static gint ett_lpp_MeasQuantityResults_r16 = -1;
3054 static gint ett_lpp_ResultsPerSSB_IndexList_r16 = -1;
3055 static gint ett_lpp_ResultsPerSSB_Index_r16 = -1;
3056 static gint ett_lpp_ResultsPerCSI_RS_IndexList_r16 = -1;
3057 static gint ett_lpp_ResultsPerCSI_RS_Index_r16 = -1;
3058 static gint ett_lpp_NR_ECID_RequestLocationInformation_r16 = -1;
3059 static gint ett_lpp_T_requestedMeasurements_r16 = -1;
3060 static gint ett_lpp_NR_ECID_ProvideCapabilities_r16 = -1;
3061 static gint ett_lpp_T_nr_ECID_MeasSupported_r16 = -1;
3062 static gint ett_lpp_NR_ECID_RequestCapabilities_r16 = -1;
3063 static gint ett_lpp_NR_ECID_Error_r16 = -1;
3064 static gint ett_lpp_NR_ECID_LocationServerErrorCauses_r16 = -1;
3065 static gint ett_lpp_NR_ECID_TargetDeviceErrorCauses_r16 = -1;
3066 static gint ett_lpp_NR_DL_TDOA_ProvideAssistanceData_r16 = -1;
3067 static gint ett_lpp_NR_DL_TDOA_RequestAssistanceData_r16 = -1;
3068 static gint ett_lpp_T_nr_AdType_r16 = -1;
3069 static gint ett_lpp_NR_DL_TDOA_ProvideLocationInformation_r16 = -1;
3070 static gint ett_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16 = -1;
3071 static gint ett_lpp_NR_DL_TDOA_MeasList_r16 = -1;
3072 static gint ett_lpp_NR_DL_TDOA_MeasElement_r16 = -1;
3073 static gint ett_lpp_T_nr_RSTD_r16 = -1;
3074 static gint ett_lpp_NR_DL_TDOA_AdditionalMeasurements_r16 = -1;
3075 static gint ett_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16 = -1;
3076 static gint ett_lpp_T_nr_RSTD_ResultDiff_r16 = -1;
3077 static gint ett_lpp_NR_DL_TDOA_LocationInformation_r16 = -1;
3078 static gint ett_lpp_T_measurementReferenceTime_r16 = -1;
3079 static gint ett_lpp_NR_DL_TDOA_RequestLocationInformation_r16 = -1;
3080 static gint ett_lpp_T_nr_RequestedMeasurements_r16 = -1;
3081 static gint ett_lpp_NR_DL_TDOA_ReportConfig_r16 = -1;
3082 static gint ett_lpp_NR_DL_TDOA_ProvideCapabilities_r16 = -1;
3083 static gint ett_lpp_NR_DL_TDOA_MeasurementCapability_r16 = -1;
3084 static gint ett_lpp_NR_DL_TDOA_RequestCapabilities_r16 = -1;
3085 static gint ett_lpp_NR_DL_TDOA_Error_r16 = -1;
3086 static gint ett_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16 = -1;
3087 static gint ett_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16 = -1;
3088 static gint ett_lpp_NR_DL_AoD_ProvideAssistanceData_r16 = -1;
3089 static gint ett_lpp_NR_DL_AoD_RequestAssistanceData_r16 = -1;
3090 static gint ett_lpp_T_nr_AdType_r16_01 = -1;
3091 static gint ett_lpp_NR_DL_AoD_ProvideLocationInformation_r16 = -1;
3092 static gint ett_lpp_NR_DL_AoD_SignalMeasurementInformation_r16 = -1;
3093 static gint ett_lpp_NR_DL_AoD_MeasList_r16 = -1;
3094 static gint ett_lpp_NR_DL_AoD_MeasElement_r16 = -1;
3095 static gint ett_lpp_NR_DL_AoD_AdditionalMeasurements_r16 = -1;
3096 static gint ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16 = -1;
3097 static gint ett_lpp_NR_DL_AoD_LocationInformation_r16 = -1;
3098 static gint ett_lpp_T_measurementReferenceTime_r16_01 = -1;
3099 static gint ett_lpp_NR_DL_AoD_RequestLocationInformation_r16 = -1;
3100 static gint ett_lpp_NR_DL_AoD_ReportConfig_r16 = -1;
3101 static gint ett_lpp_NR_DL_AoD_ProvideCapabilities_r16 = -1;
3102 static gint ett_lpp_NR_DL_AoD_MeasurementCapability_r16 = -1;
3103 static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16 = -1;
3104 static gint ett_lpp_DL_AoD_MeasCapabilityPerBand_r16 = -1;
3105 static gint ett_lpp_NR_DL_AoD_RequestCapabilities_r16 = -1;
3106 static gint ett_lpp_NR_DL_AoD_Error_r16 = -1;
3107 static gint ett_lpp_NR_DL_AoD_LocationServerErrorCauses_r16 = -1;
3108 static gint ett_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16 = -1;
3109 static gint ett_lpp_NR_Multi_RTT_ProvideAssistanceData_r16 = -1;
3110 static gint ett_lpp_NR_Multi_RTT_RequestAssistanceData_r16 = -1;
3111 static gint ett_lpp_T_nr_AdType_r16_02 = -1;
3112 static gint ett_lpp_NR_Multi_RTT_ProvideLocationInformation_r16 = -1;
3113 static gint ett_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16 = -1;
3114 static gint ett_lpp_NR_Multi_RTT_MeasList_r16 = -1;
3115 static gint ett_lpp_NR_Multi_RTT_MeasElement_r16 = -1;
3116 static gint ett_lpp_T_nr_UE_RxTxTimeDiff_r16 = -1;
3117 static gint ett_lpp_NR_Multi_RTT_AdditionalMeasurements_r16 = -1;
3118 static gint ett_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16 = -1;
3119 static gint ett_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16 = -1;
3120 static gint ett_lpp_NR_Multi_RTT_RequestLocationInformation_r16 = -1;
3121 static gint ett_lpp_T_nr_RequestedMeasurements_r16_01 = -1;
3122 static gint ett_lpp_NR_Multi_RTT_ReportConfig_r16 = -1;
3123 static gint ett_lpp_NR_Multi_RTT_ProvideCapabilities_r16 = -1;
3124 static gint ett_lpp_NR_Multi_RTT_MeasurementCapability_r16 = -1;
3125 static gint ett_lpp_NR_Multi_RTT_RequestCapabilities_r16 = -1;
3126 static gint ett_lpp_NR_Multi_RTT_Error_r16 = -1;
3127 static gint ett_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16 = -1;
3128 static gint ett_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16 = -1;
3129 static gint ett_lpp_AssistanceDataSIBelement_r15 = -1;
3130 static gint ett_lpp_CipheringKeyData_r15 = -1;
3131 static gint ett_lpp_SegmentationInfo_r15 = -1;
3132 static gint ett_lpp_OTDOA_UE_Assisted_r15 = -1;
3133 static gint ett_lpp_NR_UEB_TRP_LocationData_r16 = -1;
3134 static gint ett_lpp_NR_UEB_TRP_RTD_Info_r16 = -1;
3135 
3136 /*--- End of included file: packet-lpp-ett.c ---*/
3137 #line 61 "./asn1/lpp/packet-lpp-template.c"
3138 
3139 /* Include constants */
3140 
3141 /*--- Included file: packet-lpp-val.h ---*/
3142 #line 1 "./asn1/lpp/packet-lpp-val.h"
3143 #define maxEPDU                        16
3144 #define maxAddPRSconfig_r14            2
3145 #define maxAvailNarrowBands_Minus1_r14 15
3146 #define maxFreqLayers                  3
3147 #define maxCarrier_r14                 5
3148 #define maxCells_r14                   72
3149 #define maxPaths_r14                   2
3150 #define maxBands                       64
3151 #define maxFBI                         64
3152 #define maxFBI_Plus1                   65
3153 #define maxFBI2                        256
3154 #define maxEARFCN                      65535
3155 #define maxEARFCN_Plus1                65536
3156 #define maxEARFCN2                     262143
3157 #define maxMBS_r14                     64
3158 #define maxWLAN_AP_r13                 64
3159 #define maxKnownAPs_r14                2048
3160 #define maxVisibleAPs_r14              32
3161 #define maxWLAN_AP_r14                 128
3162 #define maxWLAN_DataSets_r14           8
3163 #define maxBT_Beacon_r13               32
3164 #define nrMaxBands_r16                 1024
3165 #define nrMaxFreqLayers_r16            4
3166 #define nrMaxFreqLayers_1_r16          3
3167 #define nrMaxNumDL_PRS_ResourcesPerSet_1_r16 63
3168 #define nrMaxNumDL_PRS_ResourceSetsPerTRP_1_r16 7
3169 #define nrMaxResourceIDs_r16           64
3170 #define nrMaxResourceOffsetValue_1_r16 511
3171 #define nrMaxResourcesPerSet_r16       64
3172 #define nrMaxSetsPerTrpPerFreqLayer_r16 2
3173 #define nrMaxSetsPerTrpPerFreqLayer_1_r16 1
3174 #define nrMaxTRPs_r16                  256
3175 #define nrMaxTRPsPerFreq_r16           64
3176 #define nrMaxTRPsPerFreq_1_r16         63
3177 #define maxSimultaneousBands_r16       4
3178 #define maxBandComb_r16                1024
3179 #define nrMaxConfiguredBands_r16       16
3180 
3181 typedef enum _T_GNSS_ID_enum {
3182   T_GNSS_ID_GPS =   0,
3183   T_GNSS_ID_SBAS =   1,
3184   T_GNSS_ID_QZSS =   2,
3185   T_GNSS_ID_GALILEO =   3,
3186   T_GNSS_ID_GLONASS =   4,
3187   T_GNSS_ID_BDS =   5,
3188   T_GNSS_ID_NAVIC_V1610 =   6
3189 } T_GNSS_ID_enum;
3190 
3191 /*--- End of included file: packet-lpp-val.h ---*/
3192 #line 64 "./asn1/lpp/packet-lpp-template.c"
3193 
3194 static const value_string lpp_ePDU_ID_vals[] = {
3195   { 1, "OMA LPP extensions (LPPe)"},
3196   { 0, NULL}
3197 };
3198 
3199 struct lpp_private_data {
3200   lpp_pos_sib_type_t pos_sib_type;
3201   gboolean is_ciphered;
3202   gboolean is_segmented;
3203 };
3204 
3205 static struct lpp_private_data*
lpp_get_private_data(packet_info * pinfo)3206 lpp_get_private_data(packet_info *pinfo)
3207 {
3208   struct lpp_private_data *lpp_data = (struct lpp_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_lpp, 0);
3209   if (!lpp_data) {
3210     lpp_data = wmem_new0(pinfo->pool, struct lpp_private_data);
3211     p_add_proto_data(pinfo->pool, pinfo, proto_lpp, 0, lpp_data);
3212   }
3213   return lpp_data;
3214 }
3215 
3216 /* Forward declarations */
3217 static int dissect_GNSS_ReferenceTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3218 static int dissect_GNSS_ReferenceLocation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3219 static int dissect_GNSS_IonosphericModel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3220 static int dissect_GNSS_EarthOrientationParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3221 static int dissect_GNSS_RTK_ReferenceStationInfo_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3222 static int dissect_GNSS_RTK_CommonObservationInfo_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3223 static int dissect_GNSS_RTK_AuxiliaryStationData_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3224 static int dissect_GNSS_SSR_CorrectionPoints_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3225 static int dissect_GNSS_TimeModelList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3226 static int dissect_GNSS_DifferentialCorrections_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3227 static int dissect_GNSS_NavigationModel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3228 static int dissect_GNSS_RealTimeIntegrity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3229 static int dissect_GNSS_DataBitAssistance_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3230 static int dissect_GNSS_AcquisitionAssistance_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3231 static int dissect_GNSS_Almanac_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3232 static int dissect_GNSS_UTC_Model_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3233 static int dissect_GNSS_AuxiliaryInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3234 static int dissect_BDS_DifferentialCorrections_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3235 static int dissect_BDS_GridModelParameter_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3236 static int dissect_GNSS_RTK_Observations_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3237 static int dissect_GLO_RTK_BiasInformation_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3238 static int dissect_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3239 static int dissect_GNSS_RTK_Residuals_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3240 static int dissect_GNSS_RTK_FKP_Gradients_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3241 static int dissect_GNSS_SSR_OrbitCorrections_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3242 static int dissect_GNSS_SSR_ClockCorrections_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3243 static int dissect_GNSS_SSR_CodeBias_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3244 static int dissect_GNSS_SSR_URA_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3245 static int dissect_GNSS_SSR_PhaseBias_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3246 static int dissect_GNSS_SSR_STEC_Correction_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3247 static int dissect_GNSS_SSR_GriddedCorrection_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3248 static int dissect_NavIC_DifferentialCorrections_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3249 static int dissect_NavIC_GridModelParameter_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3250 static int dissect_OTDOA_UE_Assisted_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3251 static int dissect_Sensor_AssistanceDataList_r14_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3252 static int dissect_TBS_AssistanceDataList_r14_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3253 static int dissect_NR_DL_PRS_AssistanceData_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3254 static int dissect_NR_UEB_TRP_LocationData_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3255 static int dissect_NR_UEB_TRP_RTD_Info_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
3256 
3257 static void
lpp_degreesLatitude_fmt(gchar * s,guint32 v)3258 lpp_degreesLatitude_fmt(gchar *s, guint32 v)
3259 {
3260   g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
3261              ((float)v/8388607.0)*90, v);
3262 }
3263 
3264 static void
lpp_degreesLongitude_fmt(gchar * s,guint32 v)3265 lpp_degreesLongitude_fmt(gchar *s, guint32 v)
3266 {
3267   gint32 longitude = (gint32) v;
3268 
3269   g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
3270              ((float)longitude/8388608.0)*180, longitude);
3271 }
3272 
3273 static void
lpp_uncertainty_fmt(gchar * s,guint32 v)3274 lpp_uncertainty_fmt(gchar *s, guint32 v)
3275 {
3276   double uncertainty = 10*(pow(1.1, (double)v)-1);
3277 
3278   if (uncertainty < 1000) {
3279     g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
3280   } else {
3281     g_snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%u)", uncertainty/1000, v);
3282   }
3283 }
3284 
3285 static void
lpp_angle_fmt(gchar * s,guint32 v)3286 lpp_angle_fmt(gchar *s, guint32 v)
3287 {
3288   g_snprintf(s, ITEM_LABEL_LENGTH, "%u degrees (%u)", 2*v, v);
3289 }
3290 
3291 static void
lpp_confidence_fmt(gchar * s,guint32 v)3292 lpp_confidence_fmt(gchar *s, guint32 v)
3293 {
3294   if (v == 0) {
3295     g_snprintf(s, ITEM_LABEL_LENGTH, "no information (0)");
3296   } else {
3297     g_snprintf(s, ITEM_LABEL_LENGTH, "%u%%", v);
3298   }
3299 }
3300 
3301 static void
lpp_1_10_degrees_fmt(gchar * s,guint32 v)3302 lpp_1_10_degrees_fmt(gchar *s, guint32 v)
3303 {
3304   double val = (double)v/10;
3305 
3306   g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", val, v);
3307 }
3308 
3309 static void
lpp_1_100_m_fmt(gchar * s,guint32 v)3310 lpp_1_100_m_fmt(gchar *s, guint32 v)
3311 {
3312   double val = (double)v/100;
3313 
3314   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%u)", val, v);
3315 }
3316 
3317 static void
lpp_measurementLimit_fmt(gchar * s,guint32 v)3318 lpp_measurementLimit_fmt(gchar *s, guint32 v)
3319 {
3320   g_snprintf(s, ITEM_LABEL_LENGTH, "%u octets (%u)", 100*v, v);
3321 }
3322 
3323 static void
lpp_altitude_fmt(gchar * s,guint32 v)3324 lpp_altitude_fmt(gchar *s, guint32 v)
3325 {
3326   g_snprintf(s, ITEM_LABEL_LENGTH, "%um", v);
3327 }
3328 
3329 static void
lpp_uncertaintyAltitude_fmt(gchar * s,guint32 v)3330 lpp_uncertaintyAltitude_fmt(gchar *s, guint32 v)
3331 {
3332   double uncertainty = 45*(pow(1.025, (double)v)-1);
3333 
3334   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
3335 }
3336 
3337 static void
lpp_radius_fmt(gchar * s,guint32 v)3338 lpp_radius_fmt(gchar *s, guint32 v)
3339 {
3340   g_snprintf(s, ITEM_LABEL_LENGTH, "%um (%u)", 5*v, v);
3341 }
3342 
3343 static void
lpp_nr_LTE_fineTiming_Offset_fmt(gchar * s,guint32 v)3344 lpp_nr_LTE_fineTiming_Offset_fmt(gchar *s, guint32 v)
3345 {
3346   g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
3347 }
3348 
3349 static void
lpp_expectedRSTD_fmt(gchar * s,guint32 v)3350 lpp_expectedRSTD_fmt(gchar *s, guint32 v)
3351 {
3352   gint32 rstd = 3*((gint32)v-8192);
3353 
3354   g_snprintf(s, ITEM_LABEL_LENGTH, "%dTs (%u)", rstd, v);
3355 }
3356 
3357 static void
lpp_expectedRSTD_Uncertainty_fmt(gchar * s,guint32 v)3358 lpp_expectedRSTD_Uncertainty_fmt(gchar *s, guint32 v)
3359 {
3360   g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs (%u)", 3*v, v);
3361 }
3362 
3363 static void
lpp_rstd_fmt(gchar * s,guint32 v)3364 lpp_rstd_fmt(gchar *s, guint32 v)
3365 {
3366   if (v == 0) {
3367     g_snprintf(s, ITEM_LABEL_LENGTH, "RSTD < -15391Ts (0)");
3368   } else if (v < 2260) {
3369     g_snprintf(s, ITEM_LABEL_LENGTH, "-%uTs <= RSTD < -%uTs (%u)", 15391-5*(v-1), 15391-5*v, v);
3370   } else if (v < 6355) {
3371     g_snprintf(s, ITEM_LABEL_LENGTH, "-%uTs <= RSTD < -%uTs (%u)", 6356-v, 6355-v, v);
3372   } else if (v == 6355) {
3373     g_snprintf(s, ITEM_LABEL_LENGTH, "-1Ts <= RSTD <= 0Ts (6355)");
3374   } else if (v < 10452) {
3375     g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs < RSTD <= %uTs (%u)", v-6356, v-6355, v);
3376   } else if (v < 12711) {
3377     g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs < RSTD <= %uTs (%u)", 5*(v-1)-48159, 5*v-48159, v);
3378   } else {
3379     g_snprintf(s, ITEM_LABEL_LENGTH, "15391Ts < RSTD (12711)");
3380   }
3381 }
3382 
3383 static const value_string lpp_error_Resolution_vals[] = {
3384   { 0, "5 meters"},
3385   { 1, "10 meters"},
3386   { 2, "20 meters"},
3387   { 3, "30 meters"},
3388   { 0, NULL}
3389 };
3390 
3391 static const value_string lpp_error_Value_vals[] = {
3392   {  0, "0 to (R*1-1) meters"},
3393   {  1, "R*1 to (R*2-1) meters"},
3394   {  2, "R*2 to (R*3-1) meters"},
3395   {  3, "R*3 to (R*4-1) meters"},
3396   {  4, "R*4 to (R*5-1) meters"},
3397   {  5, "R*5 to (R*6-1) meters"},
3398   {  6, "R*6 to (R*7-1) meters"},
3399   {  7, "R*7 to (R*8-1) meters"},
3400   {  8, "R*8 to (R*9-1) meters"},
3401   {  9, "R*9 to (R*10-1) meters"},
3402   { 10, "R*10 to (R*11-1) meters"},
3403   { 11, "R*11 to (R*12-1) meters"},
3404   { 12, "R*12 to (R*13-1) meters"},
3405   { 13, "R*13 to (R*14-1) meters"},
3406   { 14, "R*14 to (R*15-1) meters"},
3407   { 15, "R*15 to (R*16-1) meters"},
3408   { 16, "R*16 to (R*17-1) meters"},
3409   { 17, "R*17 to (R*18-1) meters"},
3410   { 18, "R*18 to (R*19-1) meters"},
3411   { 19, "R*19 to (R*20-1) meters"},
3412   { 20, "R*20 to (R*21-1) meters"},
3413   { 21, "R*21 to (R*22-1) meters"},
3414   { 22, "R*22 to (R*23-1) meters"},
3415   { 23, "R*23 to (R*24-1) meters"},
3416   { 24, "R*24 to (R*25-1) meters"},
3417   { 25, "R*25 to (R*26-1) meters"},
3418   { 26, "R*26 to (R*27-1) meters"},
3419   { 27, "R*27 to (R*28-1) meters"},
3420   { 28, "R*28 to (R*29-1) meters"},
3421   { 29, "R*29 to (R*30-1) meters"},
3422   { 30, "R*30 to (R*31-1) meters"},
3423   { 31, "R*31 meters or more"},
3424   { 0, NULL}
3425 };
3426 static value_string_ext lpp_error_Value_vals_ext = VALUE_STRING_EXT_INIT(lpp_error_Value_vals);
3427 
3428 static const value_string lpp_error_NumSamples_vals[] = {
3429   {  0, "Not the baseline metric"},
3430   {  1, "5-9"},
3431   {  2, "10-14"},
3432   {  3, "15-24"},
3433   {  4, "25-34"},
3434   {  5, "35-44"},
3435   {  6, "45-54"},
3436   {  7, "55 or more"},
3437   { 0, NULL}
3438 };
3439 
3440 static void
lpp_relativeTimeDifference_fmt(gchar * s,guint32 v)3441 lpp_relativeTimeDifference_fmt(gchar *s, guint32 v)
3442 {
3443   double rtd = (double)((gint32)v)*0.5;
3444 
3445   g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f Ts (%d)", rtd, (gint32)v);
3446 }
3447 
3448 static void
lpp_referenceTimeUnc_fmt(gchar * s,guint32 v)3449 lpp_referenceTimeUnc_fmt(gchar *s, guint32 v)
3450 {
3451   double referenceTimeUnc = 0.5*(pow(1.14, (double)v)-1);
3452 
3453   g_snprintf(s, ITEM_LABEL_LENGTH, "%fus (%u)", referenceTimeUnc, v);
3454 }
3455 
3456 static const value_string lpp_kp_vals[] = {
3457   { 0, "No UTC correction at the end of current quarter"},
3458   { 1, "UTC correction by plus (+1 s) in the end of current quarter"},
3459   { 3, "UTC correction by minus (-1 s) in the end of current quarter"},
3460   { 0, NULL}
3461 };
3462 
3463 static void
lpp_fractionalSecondsFromFrameStructureStart_fmt(gchar * s,guint32 v)3464 lpp_fractionalSecondsFromFrameStructureStart_fmt(gchar *s, guint32 v)
3465 {
3466   float frac = ((float)v)/4;
3467 
3468   g_snprintf(s, ITEM_LABEL_LENGTH, "%fus (%u)", frac, v);
3469 }
3470 
3471 static void
lpp_frameDrift_fmt(gchar * s,guint32 v)3472 lpp_frameDrift_fmt(gchar *s, guint32 v)
3473 {
3474   double drift = (double)((gint32)v)*pow(2, -30);
3475 
3476   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", drift, (gint32)v);
3477 }
3478 
3479 static const value_string lpp_dataID_vals[] = {
3480   { 0, "Parameters are applicable worldwide"},
3481   { 1, "Parameters have been generated by BDS"},
3482   { 3, "Parameters have been generated by QZSS"},
3483   { 0, NULL}
3484 };
3485 
3486 static void
lpp_alpha0_fmt(gchar * s,guint32 v)3487 lpp_alpha0_fmt(gchar *s, guint32 v)
3488 {
3489   double alpha = (double)((gint32)v)*pow(2, -30);
3490 
3491   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", alpha, (gint32)v);
3492 }
3493 
3494 static void
lpp_alpha1_fmt(gchar * s,guint32 v)3495 lpp_alpha1_fmt(gchar *s, guint32 v)
3496 {
3497   double alpha = (double)((gint32)v)*pow(2, -27);
3498 
3499   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", alpha, (gint32)v);
3500 }
3501 
3502 static void
lpp_alpha2_3_fmt(gchar * s,guint32 v)3503 lpp_alpha2_3_fmt(gchar *s, guint32 v)
3504 {
3505   double alpha = (double)((gint32)v)*pow(2, -24);
3506 
3507   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", alpha, (gint32)v);
3508 }
3509 
3510 static void
lpp_beta0_fmt(gchar * s,guint32 v)3511 lpp_beta0_fmt(gchar *s, guint32 v)
3512 {
3513   double beta = (double)((gint32)v)*pow(2, 11);
3514 
3515   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", beta, (gint32)v);
3516 }
3517 
3518 static void
lpp_beta1_fmt(gchar * s,guint32 v)3519 lpp_beta1_fmt(gchar *s, guint32 v)
3520 {
3521   double beta = (double)((gint32)v)*pow(2, 14);
3522 
3523   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", beta, (gint32)v);
3524 }
3525 
3526 static void
lpp_beta2_3_fmt(gchar * s,guint32 v)3527 lpp_beta2_3_fmt(gchar *s, guint32 v)
3528 {
3529   double beta = (double)((gint32)v)*pow(2, 16);
3530 
3531   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", beta, (gint32)v);
3532 }
3533 
3534 static void
lpp_ai0_fmt(gchar * s,guint32 v)3535 lpp_ai0_fmt(gchar *s, guint32 v)
3536 {
3537   double ai = (double)v*pow(2, -2);
3538 
3539   g_snprintf(s, ITEM_LABEL_LENGTH, "%gsfu (%u)", ai, v);
3540 }
3541 
3542 static void
lpp_ai1_fmt(gchar * s,guint32 v)3543 lpp_ai1_fmt(gchar *s, guint32 v)
3544 {
3545   double ai = (double)v*pow(2, -8);
3546 
3547   g_snprintf(s, ITEM_LABEL_LENGTH, "%gsfu/degree (%u)", ai, v);
3548 }
3549 
3550 static void
lpp_ai2_fmt(gchar * s,guint32 v)3551 lpp_ai2_fmt(gchar *s, guint32 v)
3552 {
3553   double ai = (double)v*pow(2, -15);
3554 
3555   g_snprintf(s, ITEM_LABEL_LENGTH, "%gsfu/degree2 (%u)", ai, v);
3556 }
3557 
3558 static void
lpp_teop_fmt(gchar * s,guint32 v)3559 lpp_teop_fmt(gchar *s, guint32 v)
3560 {
3561   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
3562 }
3563 
3564 static void
lpp_pmX_Y_fmt(gchar * s,guint32 v)3565 lpp_pmX_Y_fmt(gchar *s, guint32 v)
3566 {
3567   double pm = (double)((gint32)v)*pow(2, -20);
3568 
3569   g_snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds (%d)", pm, (gint32)v);
3570 }
3571 
3572 static void
lpp_pmX_Ydot_fmt(gchar * s,guint32 v)3573 lpp_pmX_Ydot_fmt(gchar *s, guint32 v)
3574 {
3575   double pmDot = (double)((gint32)v)*pow(2, -21);
3576 
3577   g_snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds/day (%d)", pmDot, (gint32)v);
3578 }
3579 
3580 static void
lpp_deltaUT1_fmt(gchar * s,guint32 v)3581 lpp_deltaUT1_fmt(gchar *s, guint32 v)
3582 {
3583   double deltaUT1 = (double)((gint32)v)*pow(2, -24);
3584 
3585   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", deltaUT1, (gint32)v);
3586 }
3587 
3588 static void
lpp_deltaUT1dot_fmt(gchar * s,guint32 v)3589 lpp_deltaUT1dot_fmt(gchar *s, guint32 v)
3590 {
3591   double deltaUT1dot = (double)((gint32)v)*pow(2, -25);
3592 
3593   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/day (%d)", deltaUT1dot, (gint32)v);
3594 }
3595 
3596 static void
lpp_1_1000m_64_fmt(gchar * s,guint64 v)3597 lpp_1_1000m_64_fmt(gchar *s, guint64 v)
3598 {
3599   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%" G_GINT64_MODIFIER "d)", (double)v/1000, (gint64)v);
3600 }
3601 
3602 static void
lpp_1_1000m_32_fmt(gchar * s,guint32 v)3603 lpp_1_1000m_32_fmt(gchar *s, guint32 v)
3604 {
3605   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (double)v/1000, (gint32)v);
3606 }
3607 
3608 static const value_string lpp_clockSteeringIndicator_vals[] = {
3609   { 0, "Clock steering is not applied"},
3610   { 1, "Clock steering has been applied"},
3611   { 2, "Unknown clock steering status"},
3612   { 3, "Reserved"},
3613   { 0, NULL}
3614 };
3615 
3616 static const value_string lpp_externalClockIndicator_vals[] = {
3617   { 0, "Internal clock is used"},
3618   { 1, "External clock is used, clock status is \"locked\""},
3619   { 2, "External clock is used, clock status is \"not locked\", which may indicate external clock failure and that the transmitted data may not be reliable"},
3620   { 3, "Unknown clock is used"},
3621   { 0, NULL}
3622 };
3623 
3624 static const value_string lpp_smoothingIndicator_r15_vals[] = {
3625   { 0, "Other type of smoothing is used"},
3626   { 1, "Divergence-free smoothing is used"},
3627   { 0, NULL}
3628 };
3629 
3630 static const value_string lpp_smoothingInterval_r15_vals[] = {
3631   { 0, "No smoothing"},
3632   { 1, "< 30 s"},
3633   { 2, "30-60 s"},
3634   { 3, "1-2 min"},
3635   { 4, "2-4 min"},
3636   { 5, "4-8 min"},
3637   { 6, "> 8 min"},
3638   { 7, "Unlimited smoothing interval"},
3639   { 0, NULL}
3640 };
3641 
3642 static void
lpp_aux_master_delta_fmt(gchar * s,guint32 v)3643 lpp_aux_master_delta_fmt(gchar *s, guint32 v)
3644 {
3645   double delta = (double)((gint32)v)*25*pow(10, -6);
3646   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", delta, (gint32)v);
3647 }
3648 
3649 static void
lpp_gnss_TimeModelRefTime_fmt(gchar * s,guint32 v)3650 lpp_gnss_TimeModelRefTime_fmt(gchar *s, guint32 v)
3651 {
3652   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", v*16, v);
3653 }
3654 
3655 static void
lpp_tA0_fmt(gchar * s,guint32 v)3656 lpp_tA0_fmt(gchar *s, guint32 v)
3657 {
3658   double tA0 = (double)((gint32)v)*pow(2, -35);
3659 
3660   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", tA0, (gint32)v);
3661 }
3662 
3663 static void
lpp_tA1_fmt(gchar * s,guint32 v)3664 lpp_tA1_fmt(gchar *s, guint32 v)
3665 {
3666   double tA1 = (double)((gint32)v)*pow(2, -51);
3667 
3668   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", tA1, (gint32)v);
3669 }
3670 
3671 static void
lpp_tA2_fmt(gchar * s,guint32 v)3672 lpp_tA2_fmt(gchar *s, guint32 v)
3673 {
3674   double tA2 = (double)((gint32)v)*pow(2, -68);
3675 
3676   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", tA2, (gint32)v);
3677 }
3678 
3679 static const value_string lpp_gnss_TO_ID_vals[] = {
3680   { 1, "GPS"},
3681   { 2, "Galileo"},
3682   { 3, "QZSS"},
3683   { 4, "GLONASS"},
3684   { 0, NULL}
3685 };
3686 
3687 static const value_string lpp_gnss_StatusHealth_vals[] = {
3688   { 0, "UDRE Scale Factor = 1.0"},
3689   { 1, "UDRE Scale Factor = 0.75"},
3690   { 2, "UDRE Scale Factor = 0.5"},
3691   { 3, "UDRE Scale Factor = 0.3"},
3692   { 4, "UDRE Scale Factor = 0.2"},
3693   { 5, "UDRE Scale Factor = 0.1"},
3694   { 6, "Reference Station Transmission Not Monitored"},
3695   { 7, "Data is invalid - disregard"},
3696   { 0, NULL}
3697 };
3698 
3699 static const value_string lpp_udre_vals[] = {
3700   { 0, "UDRE <= 1.0m"},
3701   { 1, "1.0m < UDRE <= 4.0m"},
3702   { 2, "4.0m < UDRE <= 8.0m"},
3703   { 3, "8.0m < UDRE"},
3704   { 0, NULL}
3705 };
3706 
3707 static void
lpp_pseudoRangeCor_fmt(gchar * s,guint32 v)3708 lpp_pseudoRangeCor_fmt(gchar *s, guint32 v)
3709 {
3710   double pseudoRangeCor = ((double)(gint32)v)*0.32;
3711 
3712   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", pseudoRangeCor, (gint32)v);
3713 }
3714 
3715 static void
lpp_rangeRateCor_fmt(gchar * s,guint32 v)3716 lpp_rangeRateCor_fmt(gchar *s, guint32 v)
3717 {
3718   double rangeRateCor = ((double)(gint32)v)*0.032;
3719 
3720   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", rangeRateCor, (gint32)v);
3721 }
3722 
3723 static const value_string lpp_udreGrowthRate_vals[] = {
3724   { 0, "1.5"},
3725   { 1, "2"},
3726   { 2, "4"},
3727   { 3, "6"},
3728   { 4, "8"},
3729   { 5, "10"},
3730   { 6, "12"},
3731   { 7, "16"},
3732   { 0, NULL}
3733 };
3734 
3735 static const value_string lpp_udreValidityTime_vals[] = {
3736   { 0, "20s"},
3737   { 1, "40s"},
3738   { 2, "80s"},
3739   { 3, "160s"},
3740   { 4, "320s"},
3741   { 5, "640s"},
3742   { 6, "1280s"},
3743   { 7, "2560s"},
3744   { 0, NULL}
3745 };
3746 
3747 static const value_string lpp_signal_health_status_vals[] = {
3748   { 0, "Signal OK"},
3749   { 1, "Signal out of service"},
3750   { 2, "Signal will be out of service"},
3751   { 3, "Signal Component currently in Test"},
3752   { 0, NULL}
3753 };
3754 static void
lpp_stanClockToc_fmt(gchar * s,guint32 v)3755 lpp_stanClockToc_fmt(gchar *s, guint32 v)
3756 {
3757   g_snprintf(s, ITEM_LABEL_LENGTH, "%um/s (%u)", 60*v, v);
3758 }
3759 
3760 static void
lpp_stanClockAF2_fmt(gchar * s,guint32 v)3761 lpp_stanClockAF2_fmt(gchar *s, guint32 v)
3762 {
3763   double stanClockAF2 = (double)((gint32)v)*pow(2, -59);
3764 
3765   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", stanClockAF2, (gint32)v);
3766 }
3767 
3768 static void
lpp_stanClockAF1_fmt(gchar * s,guint32 v)3769 lpp_stanClockAF1_fmt(gchar *s, guint32 v)
3770 {
3771   double stanClockAF1 = (double)((gint32)v)*pow(2, -46);
3772 
3773   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", stanClockAF1, (gint32)v);
3774 }
3775 
3776 static void
lpp_stanClockAF0_fmt(gchar * s,guint32 v)3777 lpp_stanClockAF0_fmt(gchar *s, guint32 v)
3778 {
3779   double stanClockAF0 = (double)((gint32)v)*pow(2, -34);
3780 
3781   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", stanClockAF0, (gint32)v);
3782 }
3783 
3784 static void
lpp_stanClockTgd_fmt(gchar * s,guint32 v)3785 lpp_stanClockTgd_fmt(gchar *s, guint32 v)
3786 {
3787   double stanClockTgd = (double)((gint32)v)*pow(2, -32);
3788 
3789   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", stanClockTgd, (gint32)v);
3790 }
3791 
3792 static void
lpp_sisa_fmt(gchar * s,guint32 v)3793 lpp_sisa_fmt(gchar *s, guint32 v)
3794 {
3795   if (v < 50) {
3796     g_snprintf(s, ITEM_LABEL_LENGTH, "%ucm (%u)", v, v);
3797   } else if (v < 75) {
3798     g_snprintf(s, ITEM_LABEL_LENGTH, "%ucm (%u)", 50+((v-50)*2), v);
3799   } else if (v < 100) {
3800     g_snprintf(s, ITEM_LABEL_LENGTH, "%ucm (%u)", 100+((v-75)*4), v);
3801   } else if (v < 126) {
3802     g_snprintf(s, ITEM_LABEL_LENGTH, "%ucm (%u)", 200+((v-100)*16), v);
3803   } else if (v < 255) {
3804     g_snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
3805   } else {
3806     g_snprintf(s, ITEM_LABEL_LENGTH, "No Accuracy Prediction Available (255)");
3807   }
3808 }
3809 
3810 static const value_string lpp_stanModelID_vals[] = {
3811   { 0, "I/Nav"},
3812   { 1, "F/Nav"},
3813   { 0, NULL}
3814 };
3815 
3816 static void
lpp_navToc_fmt(gchar * s,guint32 v)3817 lpp_navToc_fmt(gchar *s, guint32 v)
3818 {
3819   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
3820 }
3821 
3822 static void
lpp_navaf2_fmt(gchar * s,guint32 v)3823 lpp_navaf2_fmt(gchar *s, guint32 v)
3824 {
3825   double navaf2 = (double)((gint32)v)*pow(2, -55);
3826 
3827   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", navaf2, (gint32)v);
3828 }
3829 
3830 static void
lpp_navaf1_fmt(gchar * s,guint32 v)3831 lpp_navaf1_fmt(gchar *s, guint32 v)
3832 {
3833   double navaf1 = (double)((gint32)v)*pow(2, -43);
3834 
3835   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navaf1, (gint32)v);
3836 }
3837 
3838 static void
lpp_navaf0_navTgd_fmt(gchar * s,guint32 v)3839 lpp_navaf0_navTgd_fmt(gchar *s, guint32 v)
3840 {
3841   double navaf0_navTgd = (double)((gint32)v)*pow(2, -31);
3842 
3843   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navaf0_navTgd, (gint32)v);
3844 }
3845 
3846 static void
lpp_cnavToc_cnavTop_fmt(gchar * s,guint32 v)3847 lpp_cnavToc_cnavTop_fmt(gchar *s, guint32 v)
3848 {
3849   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 300*v, v);
3850 }
3851 
3852 static void
lpp_cnavAf2_fmt(gchar * s,guint32 v)3853 lpp_cnavAf2_fmt(gchar *s, guint32 v)
3854 {
3855   double cnavAf2 = (double)((gint32)v)*pow(2, -60);
3856 
3857   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", cnavAf2, (gint32)v);
3858 }
3859 
3860 static void
lpp_cnavAf1_fmt(gchar * s,guint32 v)3861 lpp_cnavAf1_fmt(gchar *s, guint32 v)
3862 {
3863   double cnavAf1 = (double)((gint32)v)*pow(2, -48);
3864 
3865   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", cnavAf1, (gint32)v);
3866 }
3867 
3868 static void
lpp_cnavX_fmt(gchar * s,guint32 v)3869 lpp_cnavX_fmt(gchar *s, guint32 v)
3870 {
3871   double cnavX = (double)((gint32)v)*pow(2, -35);
3872 
3873   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", cnavX, (gint32)v);
3874 }
3875 
3876 static void
lpp_gloTau_gloDeltaTau_fmt(gchar * s,guint32 v)3877 lpp_gloTau_gloDeltaTau_fmt(gchar *s, guint32 v)
3878 {
3879   double gloTau_gloDeltaTau = (double)((gint32)v)*pow(2, -30);
3880 
3881   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gloTau_gloDeltaTau, (gint32)v);
3882 }
3883 
3884 static void
lpp_gloGamma_fmt(gchar * s,guint32 v)3885 lpp_gloGamma_fmt(gchar *s, guint32 v)
3886 {
3887   double gloGamma = (double)((gint32)v)*pow(2, -40);
3888 
3889   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%d)", gloGamma, (gint32)v);
3890 }
3891 
3892 static void
lpp_sbasTo_fmt(gchar * s,guint32 v)3893 lpp_sbasTo_fmt(gchar *s, guint32 v)
3894 {
3895   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
3896 }
3897 
3898 static void
lpp_sbasAgfo_fmt(gchar * s,guint32 v)3899 lpp_sbasAgfo_fmt(gchar *s, guint32 v)
3900 {
3901   double sbasAgfo = (double)((gint32)v)*pow(2, -31);
3902 
3903   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", sbasAgfo, (gint32)v);
3904 }
3905 
3906 static void
lpp_sbasAgf1_fmt(gchar * s,guint32 v)3907 lpp_sbasAgf1_fmt(gchar *s, guint32 v)
3908 {
3909   double sbasAgf1 = (double)((gint32)v)*pow(2, -40);
3910 
3911   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", sbasAgf1, (gint32)v);
3912 }
3913 
3914 static void
lpp_bdsAODC_AODE_r12_fmt(gchar * s,guint32 v)3915 lpp_bdsAODC_AODE_r12_fmt(gchar *s, guint32 v)
3916 {
3917   if (v < 25) {
3918     g_snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is %u hours (%u)", v, v);
3919   } else if (v < 31) {
3920     g_snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is %u days (%u)", v-23, v);
3921   } else {
3922     g_snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is over 7 days (%u)", v);
3923   }
3924 }
3925 
3926 
3927 static void
lpp_bdsToc_Toe_r12_fmt(gchar * s,guint32 v)3928 lpp_bdsToc_Toe_r12_fmt(gchar *s, guint32 v)
3929 {
3930   double bdsToc = (double)((gint32)v)*pow(2, 3);
3931 
3932   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsToc, (gint32)v);
3933 }
3934 
3935 static void
lpp_bdsA0_r12_fmt(gchar * s,guint32 v)3936 lpp_bdsA0_r12_fmt(gchar *s, guint32 v)
3937 {
3938   double bdsA0 = (double)((gint32)v)*pow(2, -33);
3939 
3940   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsA0, (gint32)v);
3941 }
3942 
3943 static void
lpp_bdsA1_r12_fmt(gchar * s,guint32 v)3944 lpp_bdsA1_r12_fmt(gchar *s, guint32 v)
3945 {
3946   double bdsA1 = (double)((gint32)v)*pow(2, -50);
3947 
3948   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", bdsA1, (gint32)v);
3949 }
3950 
3951 static void
lpp_bdsA2_r12_fmt(gchar * s,guint32 v)3952 lpp_bdsA2_r12_fmt(gchar *s, guint32 v)
3953 {
3954   double bdsA2 = (double)((gint32)v)*pow(2, -66);
3955 
3956   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", bdsA2, (gint32)v);
3957 }
3958 
3959 static void
lpp_bdsTgd1_r12_fmt(gchar * s,guint32 v)3960 lpp_bdsTgd1_r12_fmt(gchar *s, guint32 v)
3961 {
3962   g_snprintf(s, ITEM_LABEL_LENGTH, "%gns (%d)", (float)((gint32)v)*0.1, (gint32)v);
3963 }
3964 
3965 static void
lpp_keplerToe_fmt(gchar * s,guint32 v)3966 lpp_keplerToe_fmt(gchar *s, guint32 v)
3967 {
3968   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 60*v, v);
3969 }
3970 
3971 static void
lpp_keplerW_M0_I0_Omega0_fmt(gchar * s,guint32 v)3972 lpp_keplerW_M0_I0_Omega0_fmt(gchar *s, guint32 v)
3973 {
3974   double keplerW_M0_I0_Omega0 = (double)((gint32)v)*pow(2, -31);
3975 
3976   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", keplerW_M0_I0_Omega0, (gint32)v);
3977 }
3978 
3979 static void
lpp_keplerDeltaN_OmegaDot_IDot_fmt(gchar * s,guint32 v)3980 lpp_keplerDeltaN_OmegaDot_IDot_fmt(gchar *s, guint32 v)
3981 {
3982   double keplerDeltaN_OmegaDot_IDot = (double)((gint32)v)*pow(2, -43);
3983 
3984   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", keplerDeltaN_OmegaDot_IDot, (gint32)v);
3985 }
3986 
3987 static void
lpp_keplerE_fmt(gchar * s,guint32 v)3988 lpp_keplerE_fmt(gchar *s, guint32 v)
3989 {
3990   double keplerE = (double)v*pow(2, -33);
3991 
3992   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", keplerE, v);
3993 }
3994 
3995 static void
lpp_keplerAPowerHalf_fmt(gchar * s,guint32 v)3996 lpp_keplerAPowerHalf_fmt(gchar *s, guint32 v)
3997 {
3998   double keplerAPowerHalf = (double)v*pow(2, -19);
3999 
4000   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%u)", keplerAPowerHalf, v);
4001 }
4002 
4003 static void
lpp_keplerCrs_Crc_fmt(gchar * s,guint32 v)4004 lpp_keplerCrs_Crc_fmt(gchar *s, guint32 v)
4005 {
4006   double keplerCrs_Crc = (double)((gint32)v)*pow(2, -5);
4007 
4008   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", keplerCrs_Crc, (gint32)v);
4009 }
4010 
4011 static void
lpp_keplerCx_fmt(gchar * s,guint32 v)4012 lpp_keplerCx_fmt(gchar *s, guint32 v)
4013 {
4014   double keplerCx = (double)((gint32)v)*pow(2, -29);
4015 
4016   g_snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", keplerCx, (gint32)v);
4017 }
4018 
4019 static void
lpp_navToe_fmt(gchar * s,guint32 v)4020 lpp_navToe_fmt(gchar *s, guint32 v)
4021 {
4022   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
4023 }
4024 
4025 static void
lpp_navOmega_M0_I0_OmegaA0_fmt(gchar * s,guint32 v)4026 lpp_navOmega_M0_I0_OmegaA0_fmt(gchar *s, guint32 v)
4027 {
4028   double navOmega_M0_I0_OmegaA0 = (double)((gint32)v)*pow(2, -31);
4029 
4030   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navOmega_M0_I0_OmegaA0, (gint32)v);
4031 }
4032 
4033 static void
lpp_navDeltaN_OmegaADot_IDot_fmt(gchar * s,guint32 v)4034 lpp_navDeltaN_OmegaADot_IDot_fmt(gchar *s, guint32 v)
4035 {
4036   double navDeltaN_OmegaADot_IDot = (double)((gint32)v)*pow(2, -43);
4037 
4038   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navDeltaN_OmegaADot_IDot, (gint32)v);
4039 }
4040 
4041 static void
lpp_navE_fmt(gchar * s,guint32 v)4042 lpp_navE_fmt(gchar *s, guint32 v)
4043 {
4044   double navE = (double)v*pow(2, -33);
4045 
4046   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", navE, v);
4047 }
4048 
4049 static void
lpp_navAPowerHalf_fmt(gchar * s,guint32 v)4050 lpp_navAPowerHalf_fmt(gchar *s, guint32 v)
4051 {
4052   double navAPowerHalf = (double)v*pow(2, -19);
4053 
4054   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%u)", navAPowerHalf, v);
4055 }
4056 
4057 static void
lpp_navCrs_Crc_fmt(gchar * s,guint32 v)4058 lpp_navCrs_Crc_fmt(gchar *s, guint32 v)
4059 {
4060   double navCrs_Crc = (double)((gint32)v)*pow(2, -5);
4061 
4062   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", navCrs_Crc, (gint32)v);
4063 }
4064 
4065 static void
lpp_navCx_fmt(gchar * s,guint32 v)4066 lpp_navCx_fmt(gchar *s, guint32 v)
4067 {
4068   double navCx = (double)((gint32)v)*pow(2, -29);
4069 
4070   g_snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", navCx, (gint32)v);
4071 }
4072 
4073 static void
lpp_cnavDeltaA_fmt(gchar * s,guint32 v)4074 lpp_cnavDeltaA_fmt(gchar *s, guint32 v)
4075 {
4076   double cnavDeltaA = (double)((gint32)v)*pow(2, -9);
4077 
4078   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", cnavDeltaA, (gint32)v);
4079 }
4080 
4081 static void
lpp_cnavAdot_fmt(gchar * s,guint32 v)4082 lpp_cnavAdot_fmt(gchar *s, guint32 v)
4083 {
4084   double cnavAdot = (double)((gint32)v)*pow(2, -21);
4085 
4086   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", cnavAdot, (gint32)v);
4087 }
4088 
4089 static void
lpp_cnavDeltaNo_fmt(gchar * s,guint32 v)4090 lpp_cnavDeltaNo_fmt(gchar *s, guint32 v)
4091 {
4092   double cnavDeltaNo = (double)((gint32)v)*pow(2, -44);
4093 
4094   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaNo, (gint32)v);
4095 }
4096 
4097 static void
lpp_cnavDeltaNoDot_fmt(gchar * s,guint32 v)4098 lpp_cnavDeltaNoDot_fmt(gchar *s, guint32 v)
4099 {
4100   double cnavDeltaNoDot = (double)((gint32)v)*pow(2, -57);
4101 
4102   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s2 (%d)", cnavDeltaNoDot, (gint32)v);
4103 }
4104 
4105 static void
lpp_cnavDeltaOmegaDot_IoDot_fmt(gchar * s,guint32 v)4106 lpp_cnavDeltaOmegaDot_IoDot_fmt(gchar *s, guint32 v)
4107 {
4108   double cnavDeltaOmegaDot_IoDot = (double)((gint32)v)*pow(2, -44);
4109 
4110   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaOmegaDot_IoDot, (gint32)v);
4111 }
4112 
4113 static void
lpp_cnavCx_fmt(gchar * s,guint32 v)4114 lpp_cnavCx_fmt(gchar *s, guint32 v)
4115 {
4116   double cnavCx = (double)((gint32)v)*pow(2, -30);
4117 
4118   g_snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", cnavCx, (gint32)v);
4119 }
4120 
4121 static void
lpp_cnavCrs_Crc_fmt(gchar * s,guint32 v)4122 lpp_cnavCrs_Crc_fmt(gchar *s, guint32 v)
4123 {
4124   double cnavCrs_Crc = (double)((gint32)v)*pow(2, -8);
4125 
4126   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", cnavCrs_Crc, (gint32)v);
4127 }
4128 
4129 static void
lpp_gloX_Y_Z_fmt(gchar * s,guint32 v)4130 lpp_gloX_Y_Z_fmt(gchar *s, guint32 v)
4131 {
4132   double gloX_Y_Z = (double)((gint32)v)*pow(2, -11);
4133 
4134   g_snprintf(s, ITEM_LABEL_LENGTH, "%gkm (%d)", gloX_Y_Z, (gint32)v);
4135 }
4136 
4137 static void
lpp_gloXdot_Ydot_Zdot_fmt(gchar * s,guint32 v)4138 lpp_gloXdot_Ydot_Zdot_fmt(gchar *s, guint32 v)
4139 {
4140   double gloXdot_Ydot_Zdot = (double)((gint32)v)*pow(2, -20);
4141 
4142   g_snprintf(s, ITEM_LABEL_LENGTH, "%gkm/s (%d)", gloXdot_Ydot_Zdot, (gint32)v);
4143 }
4144 
4145 static void
lpp_gloXdotdot_Ydotdot_Zdotdot_fmt(gchar * s,guint32 v)4146 lpp_gloXdotdot_Ydotdot_Zdotdot_fmt(gchar *s, guint32 v)
4147 {
4148   double gloXdotdot_Ydotdot_Zdotdot = (double)((gint32)v)*pow(2, -30);
4149 
4150   g_snprintf(s, ITEM_LABEL_LENGTH, "%gkm/s2 (%d)", gloXdotdot_Ydotdot_Zdotdot, (gint32)v);
4151 }
4152 
4153 static void
lpp_sbasXg_Yg_fmt(gchar * s,guint32 v)4154 lpp_sbasXg_Yg_fmt(gchar *s, guint32 v)
4155 {
4156   double sbasXg_Yg = (double)((gint32)v)*0.08;
4157 
4158   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", sbasXg_Yg, (gint32)v);
4159 }
4160 
4161 static void
lpp_sbasZg_fmt(gchar * s,guint32 v)4162 lpp_sbasZg_fmt(gchar *s, guint32 v)
4163 {
4164   double sbasZg = (double)((gint32)v)*0.4;
4165 
4166   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", sbasZg, (gint32)v);
4167 }
4168 
4169 static void
lpp_sbasXgDot_YgDot_fmt(gchar * s,guint32 v)4170 lpp_sbasXgDot_YgDot_fmt(gchar *s, guint32 v)
4171 {
4172   double sbasXgDot_YgDot = (double)((gint32)v)*0.000625;
4173 
4174   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", sbasXgDot_YgDot, (gint32)v);
4175 }
4176 
4177 static void
lpp_sbasZgDot_fmt(gchar * s,guint32 v)4178 lpp_sbasZgDot_fmt(gchar *s, guint32 v)
4179 {
4180   double sbasZgDot = (double)((gint32)v)*0.004;
4181 
4182   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", sbasZgDot, (gint32)v);
4183 }
4184 
4185 static void
lpp_sbasXgDotDot_YgDotDot_fmt(gchar * s,guint32 v)4186 lpp_sbasXgDotDot_YgDotDot_fmt(gchar *s, guint32 v)
4187 {
4188   double sbasXgDotDot_YgDotDot = (double)((gint32)v)*0.0000125;
4189 
4190   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", sbasXgDotDot_YgDotDot, (gint32)v);
4191 }
4192 
4193 static void
lpp_sbasZgDotDot_fmt(gchar * s,guint32 v)4194 lpp_sbasZgDotDot_fmt(gchar *s, guint32 v)
4195 {
4196   double sbasZgDotDot = (double)((gint32)v)*0.0000625;
4197 
4198   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", sbasZgDotDot, (gint32)v);
4199 }
4200 
4201 static void
lpp_bdsAPowerHalf_r12_fmt(gchar * s,guint32 v)4202 lpp_bdsAPowerHalf_r12_fmt(gchar *s, guint32 v)
4203 {
4204   double bdsAPowerHalf = (double)v*pow(2, -19);
4205 
4206   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%u)", bdsAPowerHalf, v);
4207 }
4208 
4209 static void
lpp_bdsE_r12_fmt(gchar * s,guint32 v)4210 lpp_bdsE_r12_fmt(gchar *s, guint32 v)
4211 {
4212   double bdsE = (double)v*pow(2, -33);
4213 
4214   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", bdsE, v);
4215 }
4216 
4217 static void
lpp_bdsW_M0_Omega0_I0_r12_fmt(gchar * s,guint32 v)4218 lpp_bdsW_M0_Omega0_I0_r12_fmt(gchar *s, guint32 v)
4219 {
4220   double bdsW_M0_Omega0_I0 = (double)((gint32)v)*pow(2, -31);
4221 
4222   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsW_M0_Omega0_I0, (gint32)v);
4223 }
4224 
4225 static void
lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt(gchar * s,guint32 v)4226 lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt(gchar *s, guint32 v)
4227 {
4228   double bdsDeltaN_OmegaDot_IDot = (double)((gint32)v)*pow(2, -43);
4229 
4230   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsDeltaN_OmegaDot_IDot, (gint32)v);
4231 }
4232 
4233 static void
lpp_bdsCuc_Cus_Cic_Cis_r12_fmt(gchar * s,guint32 v)4234 lpp_bdsCuc_Cus_Cic_Cis_r12_fmt(gchar *s, guint32 v)
4235 {
4236   double bdsCuc_Cus_Cic_Cis = (double)((gint32)v)*pow(2, -31);
4237 
4238   g_snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", bdsCuc_Cus_Cic_Cis, (gint32)v);
4239 }
4240 
4241 static void
lpp_bdsCrc_Crs_r12_fmt(gchar * s,guint32 v)4242 lpp_bdsCrc_Crs_r12_fmt(gchar *s, guint32 v)
4243 {
4244   double bdsCrc_Crs = (double)((gint32)v)*pow(2, -6);
4245 
4246   g_snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", bdsCrc_Crs, (gint32)v);
4247 }
4248 
4249 static void
lpp_doppler0_fmt(gchar * s,guint32 v)4250 lpp_doppler0_fmt(gchar *s, guint32 v)
4251 {
4252   double doppler0 = (double)((gint32)v)*0.5;
4253 
4254   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", doppler0, (gint32)v);
4255 }
4256 
4257 static void
lpp_doppler1_fmt(gchar * s,guint32 v)4258 lpp_doppler1_fmt(gchar *s, guint32 v)
4259 {
4260   double doppler1 = (double)((gint32)(v-42))/210;
4261 
4262   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm/s2 (%u)", doppler1, v);
4263 }
4264 
4265 static const value_string lpp_dopplerUncertainty_vals[] = {
4266   { 0, "40m/s"},
4267   { 1, "20m/s"},
4268   { 2, "10m/s"},
4269   { 3, "5m/s"},
4270   { 4, "2.5m/s"},
4271   { 0, NULL}
4272 };
4273 
4274 static void
lpp_codePhase_fmt(gchar * s,guint32 v)4275 lpp_codePhase_fmt(gchar *s, guint32 v)
4276 {
4277   double codePhase = (double)v*pow(2, -10);
4278 
4279   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%u)", codePhase, v);
4280 }
4281 
4282 static const value_string lpp_codePhaseSearchWindow_vals[] = {
4283   {  0, "No information"},
4284   {  1, "0.002ms"},
4285   {  2, "0.004ms"},
4286   {  3, "0.008ms"},
4287   {  4, "0.012ms"},
4288   {  5, "0.016ms"},
4289   {  6, "0.024ms"},
4290   {  7, "0.032ms"},
4291   {  8, "0.048ms"},
4292   {  9, "0.064ms"},
4293   { 10, "0.096ms"},
4294   { 11, "0.128ms"},
4295   { 12, "0.164ms"},
4296   { 13, "0.200ms"},
4297   { 14, "0.250ms"},
4298   { 15, "0.300ms"},
4299   { 16, "0.360ms"},
4300   { 17, "0.420ms"},
4301   { 18, "0.480ms"},
4302   { 19, "0.540ms"},
4303   { 20, "0.600ms"},
4304   { 21, "0.660ms"},
4305   { 22, "0.720ms"},
4306   { 23, "0.780ms"},
4307   { 24, "0.850ms"},
4308   { 25, "1.000ms"},
4309   { 26, "1.150ms"},
4310   { 27, "1.300ms"},
4311   { 28, "1.450ms"},
4312   { 29, "1.600ms"},
4313   { 30, "1.800ms"},
4314   { 31, "2.000ms"},
4315   { 0, NULL}
4316 };
4317 static value_string_ext lpp_codePhaseSearchWindow_vals_ext = VALUE_STRING_EXT_INIT(lpp_codePhaseSearchWindow_vals);
4318 
4319 static void
lpp_azimuth_elevation_fmt(gchar * s,guint32 v)4320 lpp_azimuth_elevation_fmt(gchar *s, guint32 v)
4321 {
4322   g_snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)", (float)v*0.703125, v);
4323 }
4324 
4325 static void
lpp_kepAlmanacE_fmt(gchar * s,guint32 v)4326 lpp_kepAlmanacE_fmt(gchar *s, guint32 v)
4327 {
4328   double kepAlmanacE = (double)v*pow(2, -16);
4329 
4330   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", kepAlmanacE, v);
4331 }
4332 
4333 static void
lpp_kepAlmanacDeltaI_fmt(gchar * s,guint32 v)4334 lpp_kepAlmanacDeltaI_fmt(gchar *s, guint32 v)
4335 {
4336   double kepAlmanacDeltaI = (double)((gint32)v)*pow(2, -14);
4337 
4338   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacDeltaI, (gint32)v);
4339 }
4340 
4341 static void
lpp_kepAlmanacOmegaDot_fmt(gchar * s,guint32 v)4342 lpp_kepAlmanacOmegaDot_fmt(gchar *s, guint32 v)
4343 {
4344   double kepAlmanacOmegaDot = (double)((gint32)v)*pow(2, -33);
4345 
4346   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", kepAlmanacOmegaDot, (gint32)v);
4347 }
4348 
4349 static void
lpp_kepAlmanacAPowerHalf_fmt(gchar * s,guint32 v)4350 lpp_kepAlmanacAPowerHalf_fmt(gchar *s, guint32 v)
4351 {
4352   double kepAlmanacAPowerHalf = (double)((gint32)v)*pow(2, -9);
4353 
4354   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%d)", kepAlmanacAPowerHalf, (gint32)v);
4355 }
4356 
4357 static void
lpp_kepAlmanacOmega0_W_M0_fmt(gchar * s,guint32 v)4358 lpp_kepAlmanacOmega0_W_M0_fmt(gchar *s, guint32 v)
4359 {
4360   double kepAlmanacOmega0_W_M0 = (double)((gint32)v)*pow(2, -15);
4361 
4362   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacOmega0_W_M0, (gint32)v);
4363 }
4364 
4365 static void
lpp_kepAlmanacAF0_fmt(gchar * s,guint32 v)4366 lpp_kepAlmanacAF0_fmt(gchar *s, guint32 v)
4367 {
4368   double kepAlmanacAF0 = (double)((gint32)v)*pow(2, -19);
4369 
4370   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", kepAlmanacAF0, (gint32)v);
4371 }
4372 
4373 static void
lpp_kepAlmanacAF1_fmt(gchar * s,guint32 v)4374 lpp_kepAlmanacAF1_fmt(gchar *s, guint32 v)
4375 {
4376   double kepAlmanacAF1 = (double)((gint32)v)*pow(2, -38);
4377 
4378   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", kepAlmanacAF1, (gint32)v);
4379 }
4380 
4381 static void
lpp_navAlmE_fmt(gchar * s,guint32 v)4382 lpp_navAlmE_fmt(gchar *s, guint32 v)
4383 {
4384   double navAlmE = (double)v*pow(2, -21);
4385 
4386   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", navAlmE, v);
4387 }
4388 
4389 static void
lpp_navAlmDeltaI_fmt(gchar * s,guint32 v)4390 lpp_navAlmDeltaI_fmt(gchar *s, guint32 v)
4391 {
4392   double navAlmDeltaI = (double)((gint32)v)*pow(2, -19);
4393 
4394   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmDeltaI, (gint32)v);
4395 }
4396 
4397 static void
lpp_navAlmOMEGADOT_fmt(gchar * s,guint32 v)4398 lpp_navAlmOMEGADOT_fmt(gchar *s, guint32 v)
4399 {
4400   double navAlmOMEGADOT = (double)((gint32)v)*pow(2, -38);
4401 
4402   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navAlmOMEGADOT, (gint32)v);
4403 }
4404 
4405 static void
lpp_navAlmSqrtA_fmt(gchar * s,guint32 v)4406 lpp_navAlmSqrtA_fmt(gchar *s, guint32 v)
4407 {
4408   double navAlmSqrtA = (double)v*pow(2, -11);
4409 
4410   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%u)", navAlmSqrtA, v);
4411 }
4412 
4413 static void
lpp_navAlmOMEGAo_Omega_Mo_fmt(gchar * s,guint32 v)4414 lpp_navAlmOMEGAo_Omega_Mo_fmt(gchar *s, guint32 v)
4415 {
4416   double navAlmOMEGAo_Omega_Mo = (double)((gint32)v)*pow(2, -23);
4417 
4418   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmOMEGAo_Omega_Mo, (gint32)v);
4419 }
4420 
4421 static void
lpp_navAlmaf0_fmt(gchar * s,guint32 v)4422 lpp_navAlmaf0_fmt(gchar *s, guint32 v)
4423 {
4424   double navAlmaf0 = (double)((gint32)v)*pow(2, -20);
4425 
4426   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", navAlmaf0, (gint32)v);
4427 }
4428 
4429 static void
lpp_navAlmaf1_fmt(gchar * s,guint32 v)4430 lpp_navAlmaf1_fmt(gchar *s, guint32 v)
4431 {
4432   double navAlmaf1 = (double)((gint32)v)*pow(2, -38);
4433 
4434   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navAlmaf1, (gint32)v);
4435 }
4436 
4437 static void
lpp_redAlmDeltaA_fmt(gchar * s,guint32 v)4438 lpp_redAlmDeltaA_fmt(gchar *s, guint32 v)
4439 {
4440   g_snprintf(s, ITEM_LABEL_LENGTH, "%dm (%d)", 512*(gint)v, (gint)v);
4441 }
4442 
4443 static void
lpp_redAlmOmega0_Phi0_fmt(gchar * s,guint32 v)4444 lpp_redAlmOmega0_Phi0_fmt(gchar *s, guint32 v)
4445 {
4446   double redAlmOmega0_Phi0 = (double)((gint32)v)*pow(2, -6);
4447 
4448   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", redAlmOmega0_Phi0, (gint32)v);
4449 }
4450 
4451 static void
lpp_midiAlmE_fmt(gchar * s,guint32 v)4452 lpp_midiAlmE_fmt(gchar *s, guint32 v)
4453 {
4454   double midiAlmE = (double)v*pow(2, -16);
4455 
4456   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", midiAlmE, v);
4457 }
4458 
4459 static void
lpp_midiAlmDeltaI_fmt(gchar * s,guint32 v)4460 lpp_midiAlmDeltaI_fmt(gchar *s, guint32 v)
4461 {
4462   double midiAlmDeltaI = (double)((gint32)v)*pow(2, -14);
4463 
4464   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmDeltaI, (gint32)v);
4465 }
4466 
4467 static void
lpp_midiAlmOmegaDot_fmt(gchar * s,guint32 v)4468 lpp_midiAlmOmegaDot_fmt(gchar *s, guint32 v)
4469 {
4470   double midiAlmOmegaDot = (double)((gint32)v)*pow(2, -33);
4471 
4472   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", midiAlmOmegaDot, (gint32)v);
4473 }
4474 
4475 static void
lpp_midiAlmSqrtA_fmt(gchar * s,guint32 v)4476 lpp_midiAlmSqrtA_fmt(gchar *s, guint32 v)
4477 {
4478   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm1/2 (%u)", (float)v*0.0625, v);
4479 }
4480 
4481 static void
lpp_midiAlmOmega0_Omega_Mo_fmt(gchar * s,guint32 v)4482 lpp_midiAlmOmega0_Omega_Mo_fmt(gchar *s, guint32 v)
4483 {
4484   double midiAlmOmega0_Omega_Mo = (double)((gint32)v)*pow(2, -15);
4485 
4486   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmOmega0_Omega_Mo, (gint32)v);
4487 }
4488 
4489 static void
lpp_midiAlmaf0_fmt(gchar * s,guint32 v)4490 lpp_midiAlmaf0_fmt(gchar *s, guint32 v)
4491 {
4492   double midiAlmaf0 = (double)((gint32)v)*pow(2, -20);
4493 
4494   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", midiAlmaf0, (gint32)v);
4495 }
4496 
4497 static void
lpp_midiAlmaf1_fmt(gchar * s,guint32 v)4498 lpp_midiAlmaf1_fmt(gchar *s, guint32 v)
4499 {
4500   double midiAlmaf1 = (double)((gint32)v)*pow(2, -37);
4501 
4502   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", midiAlmaf1, (gint32)v);
4503 }
4504 
4505 static void
lpp_gloAlmLambdaA_DeltaIa_fmt(gchar * s,guint32 v)4506 lpp_gloAlmLambdaA_DeltaIa_fmt(gchar *s, guint32 v)
4507 {
4508   double gloAlmLambdaA_DeltaIa = (double)((gint32)v)*pow(2, -20);
4509 
4510   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmLambdaA_DeltaIa, (gint32)v);
4511 }
4512 
4513 static void
lpp_gloAlmtlambdaA_fmt(gchar * s,guint32 v)4514 lpp_gloAlmtlambdaA_fmt(gchar *s, guint32 v)
4515 {
4516   g_snprintf(s, ITEM_LABEL_LENGTH, "%fs (%u)", (float)v*0.03125, v);
4517 }
4518 
4519 static void
lpp_gloAlmDeltaTA_fmt(gchar * s,guint32 v)4520 lpp_gloAlmDeltaTA_fmt(gchar *s, guint32 v)
4521 {
4522   double gloAlmDeltaTA = (double)((gint32)v)*pow(2, -9);
4523 
4524   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/orbit period (%d)", gloAlmDeltaTA, (gint32)v);
4525 }
4526 
4527 static void
lpp_gloAlmDeltaTdotA_fmt(gchar * s,guint32 v)4528 lpp_gloAlmDeltaTdotA_fmt(gchar *s, guint32 v)
4529 {
4530   double gloAlmDeltaTdotA = (double)((gint32)v)*pow(2, -14);
4531 
4532   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/orbit period (%d)", gloAlmDeltaTdotA, (gint32)v);
4533 }
4534 
4535 static void
lpp_gloAlmEpsilonA_fmt(gchar * s,guint32 v)4536 lpp_gloAlmEpsilonA_fmt(gchar *s, guint32 v)
4537 {
4538   double gloAlmEpsilonA = (double)v*pow(2, -20);
4539 
4540   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", gloAlmEpsilonA, (gint32)v);
4541 }
4542 
4543 static void
lpp_gloAlmOmegaA_fmt(gchar * s,guint32 v)4544 lpp_gloAlmOmegaA_fmt(gchar *s, guint32 v)
4545 {
4546   double gloAlmOmegaA = (double)((gint32)v)*pow(2, -15);
4547 
4548   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmOmegaA, (gint32)v);
4549 }
4550 
4551 static void
lpp_gloAlmTauA_fmt(gchar * s,guint32 v)4552 lpp_gloAlmTauA_fmt(gchar *s, guint32 v)
4553 {
4554   double gloAlmTauA = (double)((gint32)v)*pow(2, -18);
4555 
4556   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gloAlmTauA, (gint32)v);
4557 }
4558 
4559 static void
lpp_sbasAlmXg_Yg_fmt(gchar * s,guint32 v)4560 lpp_sbasAlmXg_Yg_fmt(gchar *s, guint32 v)
4561 {
4562   g_snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%d)", (gint32)v*2.6, (gint32)v);
4563 }
4564 
4565 static void
lpp_sbasAlmZg_fmt(gchar * s,guint32 v)4566 lpp_sbasAlmZg_fmt(gchar *s, guint32 v)
4567 {
4568   g_snprintf(s, ITEM_LABEL_LENGTH, "%dkm (%d)", (gint32)v*26, (gint32)v);
4569 }
4570 
4571 static void
lpp_sbasAlmXgdot_YgDot_fmt(gchar * s,guint32 v)4572 lpp_sbasAlmXgdot_YgDot_fmt(gchar *s, guint32 v)
4573 {
4574   g_snprintf(s, ITEM_LABEL_LENGTH, "%dm/s (%d)", (gint32)v*10, (gint32)v);
4575 }
4576 
4577 static void
lpp_sbasAlmZgDot_fmt(gchar * s,guint32 v)4578 lpp_sbasAlmZgDot_fmt(gchar *s, guint32 v)
4579 {
4580   g_snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", (gint32)v*40.96, (gint32)v);
4581 }
4582 
4583 static void
lpp_sbasAlmTo_fmt(gchar * s,guint32 v)4584 lpp_sbasAlmTo_fmt(gchar *s, guint32 v)
4585 {
4586   g_snprintf(s, ITEM_LABEL_LENGTH, "%um/s (%u)", v*64, v);
4587 }
4588 
4589 static void
lpp_bdsAlmToa_r12_fmt(gchar * s,guint32 v)4590 lpp_bdsAlmToa_r12_fmt(gchar *s, guint32 v)
4591 {
4592   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", v*4096, v);
4593 }
4594 
4595 static void
lpp_bdsAlmSqrtA_r12_fmt(gchar * s,guint32 v)4596 lpp_bdsAlmSqrtA_r12_fmt(gchar *s, guint32 v)
4597 {
4598   double bdsAlmSqrtA = (double)v*pow(2, -11);
4599 
4600   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%u)", bdsAlmSqrtA, v);
4601 }
4602 
4603 static void
lpp_bdsAlmE_r12_fmt(gchar * s,guint32 v)4604 lpp_bdsAlmE_r12_fmt(gchar *s, guint32 v)
4605 {
4606   double bdsAlmE = (double)v*pow(2, -21);
4607 
4608   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%u)", bdsAlmE, v);
4609 }
4610 
4611 static void
lpp_bdsAlmW_M0_Omega0_r12_fmt(gchar * s,guint32 v)4612 lpp_bdsAlmW_M0_Omega0_r12_fmt(gchar *s, guint32 v)
4613 {
4614   double bdsAlmW_M0_Omega0 = (double)((gint32)v)*pow(2, -23);
4615 
4616   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmW_M0_Omega0, (gint32)v);
4617 }
4618 
4619 static void
lpp_bdsAlmOmegaDot_r12_fmt(gchar * s,guint32 v)4620 lpp_bdsAlmOmegaDot_r12_fmt(gchar *s, guint32 v)
4621 {
4622   double bdsAlmOmegaDot = (double)((gint32)v)*pow(2, -38);
4623 
4624   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsAlmOmegaDot, (gint32)v);
4625 }
4626 
4627 static void
lpp_bdsAlmDeltaI_r12_fmt(gchar * s,guint32 v)4628 lpp_bdsAlmDeltaI_r12_fmt(gchar *s, guint32 v)
4629 {
4630   double bdsAlmDeltaI = (double)((gint32)v)*pow(2, -19);
4631 
4632   g_snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmDeltaI, (gint32)v);
4633 }
4634 
4635 static void
lpp_bdsAlmA0_r12_fmt(gchar * s,guint32 v)4636 lpp_bdsAlmA0_r12_fmt(gchar *s, guint32 v)
4637 {
4638   double bdsAlmA0 = (double)((gint32)v)*pow(2, -20);
4639 
4640   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsAlmA0, (gint32)v);
4641 }
4642 
4643 static void
lpp_bdsAlmA1_r12_fmt(gchar * s,guint32 v)4644 lpp_bdsAlmA1_r12_fmt(gchar *s, guint32 v)
4645 {
4646   double bdsAlmA1 = (double)((gint32)v)*pow(2, -38);
4647 
4648   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", bdsAlmA1, (gint32)v);
4649 }
4650 
4651 static const true_false_string lpp_bdsSvHealth_r12_b1i_b2i_value = {
4652   "OK",
4653   "Weak"
4654 };
4655 
4656 static const true_false_string lpp_bdsSvHealth_r12_nav_value = {
4657   "OK",
4658   "Bad (IOD over limit)"
4659 };
4660 
4661 static void
lpp_gnss_Utc_A1_fmt(gchar * s,guint32 v)4662 lpp_gnss_Utc_A1_fmt(gchar *s, guint32 v)
4663 {
4664   double gnss_Utc_A1 = (double)((gint32)v)*pow(2, -50);
4665 
4666   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", gnss_Utc_A1, (gint32)v);
4667 }
4668 
4669 static void
lpp_gnss_Utc_A0_fmt(gchar * s,guint32 v)4670 lpp_gnss_Utc_A0_fmt(gchar *s, guint32 v)
4671 {
4672   double gnss_Utc_A0 = (double)((gint32)v)*pow(2, -30);
4673 
4674   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gnss_Utc_A0, (gint32)v);
4675 }
4676 
4677 static void
lpp_gnss_Utc_Tot_fmt(gchar * s,guint32 v)4678 lpp_gnss_Utc_Tot_fmt(gchar *s, guint32 v)
4679 {
4680   g_snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", v*4096, v);
4681 }
4682 
4683 static const value_string lpp_bds_UDREI_vals[] = {
4684   {  0, "1 meter"},
4685   {  1, "1.5 meters"},
4686   {  2, "2 meters"},
4687   {  3, "3 meters"},
4688   {  4, "4 meters"},
4689   {  5, "5 meters"},
4690   {  6, "6 meters"},
4691   {  7, "8 meters"},
4692   {  8, "10 meters"},
4693   {  9, "15 meters"},
4694   { 10, "20 meters"},
4695   { 11, "50 meters"},
4696   { 12, "100 meters"},
4697   { 13, "150 meters"},
4698   { 14, "Not monitored"},
4699   { 15, "Not available"},
4700   { 0, NULL}
4701 };
4702 static value_string_ext lpp_bds_UDREI_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_UDREI_vals);
4703 
4704 static const value_string lpp_bds_RURAI_vals[] = {
4705   {  0, "0.75 meter"},
4706   {  1, "1 meter"},
4707   {  2, "1.25 meters"},
4708   {  3, "1.75 meters"},
4709   {  4, "2.25 meters"},
4710   {  5, "3 meters"},
4711   {  6, "3.75 meters"},
4712   {  7, "4.5 meters"},
4713   {  8, "5.25 meters"},
4714   {  9, "6 meters"},
4715   { 10, "7.5 meters"},
4716   { 11, "15 meters"},
4717   { 12, "50 meters"},
4718   { 13, "150 meters"},
4719   { 14, "300 meters"},
4720   { 15, "> 300 meters"},
4721   { 0, NULL}
4722 };
4723 static value_string_ext lpp_bds_RURAI_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_RURAI_vals);
4724 
4725 static void
lpp_bds_ECC_DeltaT_r12_fmt(gchar * s,guint32 v)4726 lpp_bds_ECC_DeltaT_r12_fmt(gchar *s, guint32 v)
4727 {
4728   if ((gint32)v == -4096) {
4729     g_snprintf(s, ITEM_LABEL_LENGTH, "Not available (%d)", (gint32)v);
4730   } else {
4731     g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (float)((gint32)v)*0.1, (gint32)v);
4732   }
4733 }
4734 
4735 static void
lpp_bds_GridIonElement_dt_r12_fmt(gchar * s,guint32 v)4736 lpp_bds_GridIonElement_dt_r12_fmt(gchar *s, guint32 v)
4737 {
4738   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (float)((gint32)v)*0.125, (gint32)v);
4739 }
4740 
4741 static const value_string lpp_bds_givei_vals[] = {
4742   {  0, "0.3 meter"},
4743   {  1, "0.6 meter"},
4744   {  2, "0.9 meter"},
4745   {  3, "1.2 meters"},
4746   {  4, "1.5 meters"},
4747   {  5, "1.8 meters"},
4748   {  6, "2.1 meters"},
4749   {  7, "2.4 meters"},
4750   {  8, "2.7 meters"},
4751   {  9, "3 meters"},
4752   { 10, "3.6 meters"},
4753   { 11, "4.5 meters"},
4754   { 12, "6 meters"},
4755   { 13, "9 meters"},
4756   { 14, "15 meters"},
4757   { 15, "45 meters"},
4758   { 0, NULL}
4759 };
4760 static value_string_ext lpp_bds_givei_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_givei_vals);
4761 
4762 static void
lpp_fine_PseudoRange_r15_fmt(gchar * s,guint32 v)4763 lpp_fine_PseudoRange_r15_fmt(gchar *s, guint32 v)
4764 {
4765   double val = (double)((gint32)v)*pow(2, -29);
4766 
4767   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (gint32)v);
4768 }
4769 
4770 static void
lpp_fine_PhaseRange_r15_fmt(gchar * s,guint32 v)4771 lpp_fine_PhaseRange_r15_fmt(gchar *s, guint32 v)
4772 {
4773   double val = (double)((gint32)v)*pow(2, -31);
4774 
4775   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (gint32)v);
4776 }
4777 
4778 static void
lpp_carrier_to_noise_ratio_r15_fmt(gchar * s,guint32 v)4779 lpp_carrier_to_noise_ratio_r15_fmt(gchar *s, guint32 v)
4780 {
4781   double val = (double)v*pow(2, -4);
4782 
4783   g_snprintf(s, ITEM_LABEL_LENGTH, "%gdB-Hz (%d)", val, v);
4784 }
4785 
4786 static void
lpp_fine_PhaseRangeRate_r15_fmt(gchar * s,guint32 v)4787 lpp_fine_PhaseRangeRate_r15_fmt(gchar *s, guint32 v)
4788 {
4789   double val = (double)((gint32)v)/1000;
4790 
4791   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (gint32)v);
4792 }
4793 
4794 static void
lpp_cpBias_r15_fmt(gchar * s,guint32 v)4795 lpp_cpBias_r15_fmt(gchar *s, guint32 v)
4796 {
4797   double val = (double)((gint32)v)/50;
4798 
4799   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
4800 }
4801 
4802 static const value_string lpp_ambiguityStatusFlag_r15_vals[] = {
4803   { 0, "Reserved for future use (artificial observations)"},
4804   { 1, "Correct Integer Ambiguity Level for L1 and L2"},
4805   { 2, "Correct Integer Ambiguity Level for L1-L2 widelane"},
4806   { 3, "Uncertain Integer Ambiguity Level. Only a likely guess is used"},
4807   { 0, NULL}
4808 };
4809 
4810 static void
lpp_1_2000m_fmt(gchar * s,guint32 v)4811 lpp_1_2000m_fmt(gchar *s, guint32 v)
4812 {
4813   double val = (double)((gint32)v)/2000;
4814 
4815   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
4816 }
4817 
4818 static void
lpp_1_100ppm_fmt(gchar * s,guint32 v)4819 lpp_1_100ppm_fmt(gchar *s, guint32 v)
4820 {
4821   double val = (double)((gint32)v)/100;
4822 
4823   g_snprintf(s, ITEM_LABEL_LENGTH, "%gppm (%d)", val, (gint32)v);
4824 }
4825 
4826 static void
lpp_1_10ppm_fmt(gchar * s,guint32 v)4827 lpp_1_10ppm_fmt(gchar *s, guint32 v)
4828 {
4829   double val = (double)((gint32)v)/10;
4830 
4831   g_snprintf(s, ITEM_LABEL_LENGTH, "%gppm (%d)", val, (gint32)v);
4832 }
4833 
4834 static const value_string lpp_ssrUpdateInterval_r15_vals[] = {
4835   {  0, "1 second"},
4836   {  1, "2 seconds"},
4837   {  2, "5 seconds"},
4838   {  3, "10 seconds"},
4839   {  4, "15 seconds"},
4840   {  5, "30 seconds"},
4841   {  6, "60 seconds"},
4842   {  7, "120 seconds"},
4843   {  8, "240 seconds"},
4844   {  9, "300 seconds"},
4845   { 10, "600 seconds"},
4846   { 11, "900 seconds"},
4847   { 12, "1800 seconds"},
4848   { 13, "3600 seconds"},
4849   { 14, "7200 seconds"},
4850   { 15, "10800 seconds"},
4851   { 0, NULL}
4852 };
4853 
4854 static void
lpp_1_10000m_fmt(gchar * s,guint32 v)4855 lpp_1_10000m_fmt(gchar *s, guint32 v)
4856 {
4857   double val = (double)((gint32)v)/10000;
4858 
4859   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
4860 }
4861 
4862 static void
lpp_4_10000m_fmt(gchar * s,guint32 v)4863 lpp_4_10000m_fmt(gchar *s, guint32 v)
4864 {
4865   double val = (double)((gint32)v)/10000*4;
4866 
4867   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
4868 }
4869 
4870 static void
lpp_1_1000000m_s_fmt(gchar * s,guint32 v)4871 lpp_1_1000000m_s_fmt(gchar *s, guint32 v)
4872 {
4873   double val = (double)((gint32)v)/1000000;
4874 
4875   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", val, (gint32)v);
4876 }
4877 
4878 static void
lpp_4_1000000m_s_fmt(gchar * s,guint32 v)4879 lpp_4_1000000m_s_fmt(gchar *s, guint32 v)
4880 {
4881   double val = (double)((gint32)v)/1000000*4;
4882 
4883   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", val, (gint32)v);
4884 }
4885 
4886 static void
lpp_2_100000000m_s2_fmt(gchar * s,guint32 v)4887 lpp_2_100000000m_s2_fmt(gchar *s, guint32 v)
4888 {
4889   double val = (double)((gint32)v)/100000000*2;
4890 
4891   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", val, (gint32)v);
4892 }
4893 
4894 static void
lpp_1_100000m_fmt(gchar * s,guint32 v)4895 lpp_1_100000m_fmt(gchar *s, guint32 v)
4896 {
4897   double val = (double)((gint32)v)/100000;
4898 
4899   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
4900 }
4901 
4902 static void
lpp_tauC_fmt(gchar * s,guint32 v)4903 lpp_tauC_fmt(gchar *s, guint32 v)
4904 {
4905   double tauC = (double)((gint32)v)*pow(2, -31);
4906 
4907   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", tauC, (gint32)v);
4908 }
4909 
4910 static void
lpp_b1_fmt(gchar * s,guint32 v)4911 lpp_b1_fmt(gchar *s, guint32 v)
4912 {
4913   double b1 = (double)((gint32)v)*pow(2, -10);
4914 
4915   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", b1, (gint32)v);
4916 }
4917 
4918 static void
lpp_b2_fmt(gchar * s,guint32 v)4919 lpp_b2_fmt(gchar *s, guint32 v)
4920 {
4921   double b2 = (double)((gint32)v)*pow(2, -16);
4922 
4923   g_snprintf(s, ITEM_LABEL_LENGTH, "%gs/msd (%d)", b2, (gint32)v);
4924 }
4925 
4926 static const value_string lpp_utcStandardID_vals[] = {
4927   { 0, "UTC as operated by the Communications Research Laboratory (CRL), Tokyo, Japan"},
4928   { 1, "UTC as operated by the National Institute of Standards and Technology (NIST)"},
4929   { 2, "UTC as operated by the U. S. Naval Observatory (USNO)"},
4930   { 3, "UTC as operated by the International Bureau of Weights and Measures (BIPM)"},
4931   { 0, NULL}
4932 };
4933 
4934 static const value_string lpp_dataBitInterval_vals[] = {
4935   {  0, "0.1"},
4936   {  1, "0.2"},
4937   {  2, "0.4"},
4938   {  3, "0.8"},
4939   {  4, "1.6"},
4940   {  5, "3.2"},
4941   {  6, "6.4"},
4942   {  7, "12.8"},
4943   {  8, "25.6"},
4944   {  9, "51.2"},
4945   { 10, "102.4"},
4946   { 11, "204.8"},
4947   { 12, "409.6"},
4948   { 13, "819.2"},
4949   { 14, "1638.4"},
4950   { 15, "Not specified"},
4951   { 0, NULL}
4952 };
4953 static value_string_ext lpp_dataBitInterval_vals_ext = VALUE_STRING_EXT_INIT(lpp_dataBitInterval_vals);
4954 
4955 static const value_string lpp_carrierQualityInd_vals[] = {
4956   { 0, "Data direct, carrier phase not continuous"},
4957   { 1, "Data inverted, carrier phase not continuous"},
4958   { 2, "Data direct, carrier phase continuous"},
4959   { 3, "Data inverted, carrier phase continuous"},
4960   { 0, NULL}
4961 };
4962 
4963 static void
lpp_GNSS_SatMeas_codePhase_fmt(gchar * s,guint32 v)4964 lpp_GNSS_SatMeas_codePhase_fmt(gchar *s, guint32 v)
4965 {
4966   double codePhase = (double)v*pow(2, -21);
4967 
4968   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%u)", codePhase, v);
4969 }
4970 
4971 static void
lpp_codePhaseRMSError_fmt(gchar * s,guint32 v)4972 lpp_codePhaseRMSError_fmt(gchar *s, guint32 v)
4973 {
4974   guint8 mantissa = v & 0x07;
4975   guint8 exponent = (v & 0x38) >> 3;
4976   guint8 mantissa_1 = (v - 1) & 0x07;
4977   guint8 exponent_1 = ((v - 1) & 0x38) >> 3;
4978 
4979   if (v == 0) {
4980     g_snprintf(s, ITEM_LABEL_LENGTH, "P < 0.5 (0)");
4981   } else if (v < 63) {
4982     g_snprintf(s, ITEM_LABEL_LENGTH, "%f <= P < %f (%u)", 0.5*(1+mantissa_1/8)*pow(2, exponent_1),
4983                0.5*(1+mantissa/8)*pow(2, exponent), v);
4984   } else {
4985     g_snprintf(s, ITEM_LABEL_LENGTH, "112 <= P (63)");
4986   }
4987 }
4988 
4989 static void
lpp_transmitterLatitude_fmt(gchar * s,guint32 v)4990 lpp_transmitterLatitude_fmt(gchar *s, guint32 v)
4991 {
4992   double lat = ((double)v*4.0/pow(2, 20))-90.0;
4993 
4994   g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", lat, v);
4995 }
4996 
4997 static void
lpp_transmitterLongitude_fmt(gchar * s,guint32 v)4998 lpp_transmitterLongitude_fmt(gchar *s, guint32 v)
4999 {
5000   double longitude = ((double)v*4.0/pow(2, 20))-180.0;
5001 
5002   g_snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", longitude, v);
5003 }
5004 
5005 static void
lpp_transmitterAltitude_fmt(gchar * s,guint32 v)5006 lpp_transmitterAltitude_fmt(gchar *s, guint32 v)
5007 {
5008   double alt = ((double)v*0.29)-500.0;
5009 
5010   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%u)", alt, v);
5011 }
5012 
5013 static void
lpp_refPressure_fmt(gchar * s,guint32 v)5014 lpp_refPressure_fmt(gchar *s, guint32 v)
5015 {
5016   gint32 pressure = (gint32)v;
5017 
5018   g_snprintf(s, ITEM_LABEL_LENGTH, "%dPa (%d)", 101325+pressure, pressure);
5019 }
5020 
5021 static void
lpp_refTemperature_fmt(gchar * s,guint32 v)5022 lpp_refTemperature_fmt(gchar *s, guint32 v)
5023 {
5024   gint32 temp = (gint32)v;
5025 
5026   g_snprintf(s, ITEM_LABEL_LENGTH, "%dK (%d)", 273+temp, temp);
5027 }
5028 
5029 static void
lpp_referencePressureRate_v1520_fmt(gchar * s,guint32 v)5030 lpp_referencePressureRate_v1520_fmt(gchar *s, guint32 v)
5031 {
5032   gint32 rate = (gint32)v;
5033 
5034   g_snprintf(s, ITEM_LABEL_LENGTH, "%dPa/hour (%d)", 10*rate, rate);
5035 }
5036 
5037 static void
lpp_PressureValidityPeriod_v1520_fmt(gchar * s,guint32 v)5038 lpp_PressureValidityPeriod_v1520_fmt(gchar *s, guint32 v)
5039 {
5040   g_snprintf(s, ITEM_LABEL_LENGTH, "%umin (%u)", 15*v, v);
5041 }
5042 
5043 static void
lpp_doppler_fmt(gchar * s,guint32 v)5044 lpp_doppler_fmt(gchar *s, guint32 v)
5045 {
5046   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", (gint32)v*0.04, (gint32)v);
5047 }
5048 
5049 static void
lpp_adr_fmt(gchar * s,guint32 v)5050 lpp_adr_fmt(gchar *s, guint32 v)
5051 {
5052   double adr = (double)v*pow(2, -10);
5053 
5054   g_snprintf(s, ITEM_LABEL_LENGTH, "%gm (%u)", adr, v);
5055 }
5056 
5057 static void
lpp_adrMSB_r15_fmt(gchar * s,guint32 v)5058 lpp_adrMSB_r15_fmt(gchar *s, guint32 v)
5059 {
5060   g_snprintf(s, ITEM_LABEL_LENGTH, "%um (%u)", v*32768, v);
5061 }
5062 
5063 static void
lpp_GNSS_SatMeas_delta_codePhase_r15_fmt(gchar * s,guint32 v)5064 lpp_GNSS_SatMeas_delta_codePhase_r15_fmt(gchar *s, guint32 v)
5065 {
5066   double codePhase = (double)v*pow(2, -24);
5067 
5068   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%u)", codePhase, v);
5069 }
5070 
5071 static void
lpp_deliveryAmount_r15_fmt(gchar * s,guint32 v)5072 lpp_deliveryAmount_r15_fmt(gchar *s, guint32 v)
5073 {
5074   g_snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", pow(2, v), v);
5075 }
5076 
5077 static void
lpp_rsrp_Result_fmt(gchar * s,guint32 v)5078 lpp_rsrp_Result_fmt(gchar *s, guint32 v)
5079 {
5080   if (v == 0) {
5081     g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
5082   } else if (v < 97) {
5083     g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%u)", v-141, v-140, v);
5084   } else {
5085     g_snprintf(s, ITEM_LABEL_LENGTH, "-44dBm <= RSRP (97)");
5086   }
5087 }
5088 
5089 static void
lpp_rsrq_Result_fmt(gchar * s,guint32 v)5090 lpp_rsrq_Result_fmt(gchar *s, guint32 v)
5091 {
5092   if (v == 0) {
5093     g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
5094   } else if (v < 34) {
5095     g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%u)", ((float)v/2)-20, (((float)v+1)/2)-20, v);
5096   } else {
5097     g_snprintf(s, ITEM_LABEL_LENGTH, "-3dB <= RSRQ (34)");
5098   }
5099 }
5100 
5101 static void
lpp_nrsrp_Result_fmt(gchar * s,guint32 v)5102 lpp_nrsrp_Result_fmt(gchar *s, guint32 v)
5103 {
5104   if (v == 0) {
5105     g_snprintf(s, ITEM_LABEL_LENGTH, "NRSRP < -156dBm (0)");
5106   } else if (v < 113) {
5107     g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= NRSRP < %ddBm (%u)", v-157, v-156, v);
5108   } else {
5109     g_snprintf(s, ITEM_LABEL_LENGTH, "-44dBm <= NRSRP (97)");
5110   }
5111 }
5112 
5113 static void
lpp_nrsrq_Result_fmt(gchar * s,guint32 v)5114 lpp_nrsrq_Result_fmt(gchar *s, guint32 v)
5115 {
5116   if (v == 0) {
5117     g_snprintf(s, ITEM_LABEL_LENGTH, "NRSRQ < -34dB (0)");
5118   } else if (v < 74) {
5119     g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= NRSRQ < %.1fdB (%u)", (((float)v-1)/2)-34, ((float)v/2)-34, v);
5120   } else {
5121     g_snprintf(s, ITEM_LABEL_LENGTH, "2.5dB <= NRSRQ (%u)", v);
5122   }
5123 }
5124 
5125 static void
lpp_rsrp_Result_v1470_fmt(gchar * s,guint32 v)5126 lpp_rsrp_Result_v1470_fmt(gchar *s, guint32 v)
5127 {
5128   gint32 d = (gint32)v;
5129 
5130   if (d == -17) {
5131     g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -157dBm (-17)");
5132   } else {
5133     g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%d)", d-141, d-140, d);
5134   }
5135 }
5136 
5137 static void
lpp_rsrq_Result_v1470_fmt(gchar * s,guint32 v)5138 lpp_rsrq_Result_v1470_fmt(gchar *s, guint32 v)
5139 {
5140   gint32 d = (gint32)v;
5141 
5142   if (v == 0) {
5143     g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -34.5dB (-30)");
5144   } else if (v < 46) {
5145     g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%d)", ((float)d/2)-20, (((float)d+1)/2)-20, d);
5146   } else {
5147     g_snprintf(s, ITEM_LABEL_LENGTH, "3dB <= RSRQ (46)");
5148   }
5149 }
5150 
5151 static void
lpp_ue_RxTxTimeDiff_fmt(gchar * s,guint32 v)5152 lpp_ue_RxTxTimeDiff_fmt(gchar *s, guint32 v)
5153 {
5154   if (v == 0) {
5155     g_snprintf(s, ITEM_LABEL_LENGTH, "T < 2Ts (0)");
5156   } else if (v < 2048) {
5157     g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs <= T < %uTs (%u)", v*2, (v+1)*2, v);
5158   } else if (v < 4095) {
5159     g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs <= T < %uTs (%u)", (v*8)-12288, ((v+1)*8)-12288, v);
5160   } else {
5161     g_snprintf(s, ITEM_LABEL_LENGTH, "20472Ts <= T (4095)");
5162   }
5163 }
5164 
5165 static void
lpp_mbs_beaconMeasElt_codePhase_fmt(gchar * s,guint32 v)5166 lpp_mbs_beaconMeasElt_codePhase_fmt(gchar *s, guint32 v)
5167 {
5168   double codePhase = (double)v*pow(2, -21);
5169 
5170   g_snprintf(s, ITEM_LABEL_LENGTH, "%gms (%u)", codePhase, v);
5171 }
5172 
5173 const unit_name_string units_dbhz = { "dB-Hz", NULL };
5174 const unit_name_string units_pa = { "Pa", NULL };
5175 
5176 
5177 /*--- Included file: packet-lpp-fn.c ---*/
5178 #line 1 "./asn1/lpp/packet-lpp-fn.c"
5179 
5180 static const value_string lpp_Initiator_vals[] = {
5181   {   0, "locationServer" },
5182   {   1, "targetDevice" },
5183   { 0, NULL }
5184 };
5185 
5186 
5187 static int
dissect_lpp_Initiator(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5188 dissect_lpp_Initiator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5189   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5190                                      2, NULL, TRUE, 0, NULL);
5191 
5192   return offset;
5193 }
5194 
5195 
5196 
5197 static int
dissect_lpp_TransactionNumber(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5198 dissect_lpp_TransactionNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5199   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5200                                                             0U, 255U, NULL, FALSE);
5201 
5202   return offset;
5203 }
5204 
5205 
5206 static const per_sequence_t LPP_TransactionID_sequence[] = {
5207   { &hf_lpp_initiator       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Initiator },
5208   { &hf_lpp_transactionNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_TransactionNumber },
5209   { NULL, 0, 0, NULL }
5210 };
5211 
5212 static int
dissect_lpp_LPP_TransactionID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5213 dissect_lpp_LPP_TransactionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5214   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5215                                    ett_lpp_LPP_TransactionID, LPP_TransactionID_sequence);
5216 
5217   return offset;
5218 }
5219 
5220 
5221 
5222 static int
dissect_lpp_BOOLEAN(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5223 dissect_lpp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5224   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
5225 
5226   return offset;
5227 }
5228 
5229 
5230 
5231 static int
dissect_lpp_SequenceNumber(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5232 dissect_lpp_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5233   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5234                                                             0U, 255U, NULL, FALSE);
5235 
5236   return offset;
5237 }
5238 
5239 
5240 static const per_sequence_t Acknowledgement_sequence[] = {
5241   { &hf_lpp_ackRequested    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5242   { &hf_lpp_ackIndicator    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SequenceNumber },
5243   { NULL, 0, 0, NULL }
5244 };
5245 
5246 static int
dissect_lpp_Acknowledgement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5247 dissect_lpp_Acknowledgement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5248   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5249                                    ett_lpp_Acknowledgement, Acknowledgement_sequence);
5250 
5251   return offset;
5252 }
5253 
5254 
5255 static int * const T_lpp_message_segmentation_req_r14_bits[] = {
5256   &hf_lpp_T_lpp_message_segmentation_req_r14_serverToTarget,
5257   &hf_lpp_T_lpp_message_segmentation_req_r14_targetToServer,
5258   NULL
5259 };
5260 
5261 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_)5262 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_) {
5263   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5264                                      NO_BOUND, NO_BOUND, FALSE, T_lpp_message_segmentation_req_r14_bits, 2, NULL, NULL);
5265 
5266   return offset;
5267 }
5268 
5269 
5270 static const per_sequence_t CommonIEsRequestCapabilities_eag_1_sequence[] = {
5271   { &hf_lpp_lpp_message_segmentation_req_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_lpp_message_segmentation_req_r14 },
5272   { NULL, 0, 0, NULL }
5273 };
5274 
5275 static int
dissect_lpp_CommonIEsRequestCapabilities_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5276 dissect_lpp_CommonIEsRequestCapabilities_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5277   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsRequestCapabilities_eag_1_sequence);
5278 
5279   return offset;
5280 }
5281 
5282 
5283 static const per_sequence_t CommonIEsRequestCapabilities_sequence[] = {
5284   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsRequestCapabilities_eag_1 },
5285   { NULL, 0, 0, NULL }
5286 };
5287 
5288 static int
dissect_lpp_CommonIEsRequestCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5289 dissect_lpp_CommonIEsRequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5290   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5291                                    ett_lpp_CommonIEsRequestCapabilities, CommonIEsRequestCapabilities_sequence);
5292 
5293   return offset;
5294 }
5295 
5296 
5297 static const per_sequence_t A_GNSS_RequestCapabilities_sequence[] = {
5298   { &hf_lpp_gnss_SupportListReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5299   { &hf_lpp_assistanceDataSupportListReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5300   { &hf_lpp_locationVelocityTypesReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5301   { NULL, 0, 0, NULL }
5302 };
5303 
5304 static int
dissect_lpp_A_GNSS_RequestCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5305 dissect_lpp_A_GNSS_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5306   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5307                                    ett_lpp_A_GNSS_RequestCapabilities, A_GNSS_RequestCapabilities_sequence);
5308 
5309   return offset;
5310 }
5311 
5312 
5313 static const per_sequence_t OTDOA_RequestCapabilities_sequence[] = {
5314   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5315 };
5316 
5317 static int
dissect_lpp_OTDOA_RequestCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5318 dissect_lpp_OTDOA_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5319   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5320                                    ett_lpp_OTDOA_RequestCapabilities, OTDOA_RequestCapabilities_sequence);
5321 
5322   return offset;
5323 }
5324 
5325 
5326 static const per_sequence_t ECID_RequestCapabilities_sequence[] = {
5327   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5328 };
5329 
5330 static int
dissect_lpp_ECID_RequestCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5331 dissect_lpp_ECID_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5332   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5333                                    ett_lpp_ECID_RequestCapabilities, ECID_RequestCapabilities_sequence);
5334 
5335   return offset;
5336 }
5337 
5338 
5339 
5340 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_)5341 dissect_lpp_EPDU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5342 #line 149 "./asn1/lpp/lpp.cnf"
5343   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5344                                                             1U, 256U, &lpp_epdu_id, FALSE);
5345 
5346 
5347 
5348 
5349   return offset;
5350 }
5351 
5352 
5353 
5354 static int
dissect_lpp_EPDU_Name(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5355 dissect_lpp_EPDU_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5356   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
5357                                           1, 32, FALSE);
5358 
5359   return offset;
5360 }
5361 
5362 
5363 static const per_sequence_t EPDU_Identifier_sequence[] = {
5364   { &hf_lpp_ePDU_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU_ID },
5365   { &hf_lpp_ePDU_Name       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Name },
5366   { NULL, 0, 0, NULL }
5367 };
5368 
5369 static int
dissect_lpp_EPDU_Identifier(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5370 dissect_lpp_EPDU_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5371   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5372                                    ett_lpp_EPDU_Identifier, EPDU_Identifier_sequence);
5373 
5374   return offset;
5375 }
5376 
5377 
5378 
5379 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_)5380 dissect_lpp_EPDU_Body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5381 #line 155 "./asn1/lpp/lpp.cnf"
5382   tvbuff_t *lppe_tvb = NULL;
5383   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5384                                        NO_BOUND, NO_BOUND, FALSE, &lppe_tvb);
5385 
5386   switch(lpp_epdu_id){
5387   case 1:
5388     if (lppe_tvb && lppe_handle) {
5389       call_dissector(lppe_handle, lppe_tvb, actx->pinfo, tree);
5390     }
5391     break;
5392   default:
5393     break;
5394   }
5395   lpp_epdu_id = -1;
5396 
5397 
5398 
5399   return offset;
5400 }
5401 
5402 
5403 static const per_sequence_t EPDU_sequence[] = {
5404   { &hf_lpp_ePDU_Identifier , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU_Identifier },
5405   { &hf_lpp_ePDU_Body       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU_Body },
5406   { NULL, 0, 0, NULL }
5407 };
5408 
5409 static int
dissect_lpp_EPDU(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5410 dissect_lpp_EPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5411   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5412                                    ett_lpp_EPDU, EPDU_sequence);
5413 
5414   return offset;
5415 }
5416 
5417 
5418 static const per_sequence_t EPDU_Sequence_sequence_of[1] = {
5419   { &hf_lpp_EPDU_Sequence_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU },
5420 };
5421 
5422 static int
dissect_lpp_EPDU_Sequence(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5423 dissect_lpp_EPDU_Sequence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5424   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5425                                                   ett_lpp_EPDU_Sequence, EPDU_Sequence_sequence_of,
5426                                                   1, maxEPDU, FALSE);
5427 
5428   return offset;
5429 }
5430 
5431 
5432 static const per_sequence_t Sensor_RequestCapabilities_r13_sequence[] = {
5433   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5434 };
5435 
5436 static int
dissect_lpp_Sensor_RequestCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5437 dissect_lpp_Sensor_RequestCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5438   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5439                                    ett_lpp_Sensor_RequestCapabilities_r13, Sensor_RequestCapabilities_r13_sequence);
5440 
5441   return offset;
5442 }
5443 
5444 
5445 static const per_sequence_t TBS_RequestCapabilities_r13_sequence[] = {
5446   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5447 };
5448 
5449 static int
dissect_lpp_TBS_RequestCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5450 dissect_lpp_TBS_RequestCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5451   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5452                                    ett_lpp_TBS_RequestCapabilities_r13, TBS_RequestCapabilities_r13_sequence);
5453 
5454   return offset;
5455 }
5456 
5457 
5458 static const per_sequence_t WLAN_RequestCapabilities_r13_sequence[] = {
5459   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5460 };
5461 
5462 static int
dissect_lpp_WLAN_RequestCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5463 dissect_lpp_WLAN_RequestCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5464   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5465                                    ett_lpp_WLAN_RequestCapabilities_r13, WLAN_RequestCapabilities_r13_sequence);
5466 
5467   return offset;
5468 }
5469 
5470 
5471 static const per_sequence_t BT_RequestCapabilities_r13_sequence[] = {
5472   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5473 };
5474 
5475 static int
dissect_lpp_BT_RequestCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5476 dissect_lpp_BT_RequestCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5477   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5478                                    ett_lpp_BT_RequestCapabilities_r13, BT_RequestCapabilities_r13_sequence);
5479 
5480   return offset;
5481 }
5482 
5483 
5484 static const per_sequence_t RequestCapabilities_r9_IEs_eag_1_sequence[] = {
5485   { &hf_lpp_sensor_RequestCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_RequestCapabilities_r13 },
5486   { &hf_lpp_tbs_RequestCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TBS_RequestCapabilities_r13 },
5487   { &hf_lpp_wlan_RequestCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_WLAN_RequestCapabilities_r13 },
5488   { &hf_lpp_bt_RequestCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BT_RequestCapabilities_r13 },
5489   { NULL, 0, 0, NULL }
5490 };
5491 
5492 static int
dissect_lpp_RequestCapabilities_r9_IEs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5493 dissect_lpp_RequestCapabilities_r9_IEs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5494   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RequestCapabilities_r9_IEs_eag_1_sequence);
5495 
5496   return offset;
5497 }
5498 
5499 
5500 static const per_sequence_t NR_ECID_RequestCapabilities_r16_sequence[] = {
5501   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5502 };
5503 
5504 static int
dissect_lpp_NR_ECID_RequestCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5505 dissect_lpp_NR_ECID_RequestCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5506   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5507                                    ett_lpp_NR_ECID_RequestCapabilities_r16, NR_ECID_RequestCapabilities_r16_sequence);
5508 
5509   return offset;
5510 }
5511 
5512 
5513 static const per_sequence_t NR_Multi_RTT_RequestCapabilities_r16_sequence[] = {
5514   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5515 };
5516 
5517 static int
dissect_lpp_NR_Multi_RTT_RequestCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5518 dissect_lpp_NR_Multi_RTT_RequestCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5519   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5520                                    ett_lpp_NR_Multi_RTT_RequestCapabilities_r16, NR_Multi_RTT_RequestCapabilities_r16_sequence);
5521 
5522   return offset;
5523 }
5524 
5525 
5526 static const per_sequence_t NR_DL_AoD_RequestCapabilities_r16_sequence[] = {
5527   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5528 };
5529 
5530 static int
dissect_lpp_NR_DL_AoD_RequestCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5531 dissect_lpp_NR_DL_AoD_RequestCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5532   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5533                                    ett_lpp_NR_DL_AoD_RequestCapabilities_r16, NR_DL_AoD_RequestCapabilities_r16_sequence);
5534 
5535   return offset;
5536 }
5537 
5538 
5539 static const per_sequence_t NR_DL_TDOA_RequestCapabilities_r16_sequence[] = {
5540   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5541 };
5542 
5543 static int
dissect_lpp_NR_DL_TDOA_RequestCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5544 dissect_lpp_NR_DL_TDOA_RequestCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5545   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5546                                    ett_lpp_NR_DL_TDOA_RequestCapabilities_r16, NR_DL_TDOA_RequestCapabilities_r16_sequence);
5547 
5548   return offset;
5549 }
5550 
5551 
5552 static const per_sequence_t NR_UL_RequestCapabilities_r16_sequence[] = {
5553   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5554 };
5555 
5556 static int
dissect_lpp_NR_UL_RequestCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5557 dissect_lpp_NR_UL_RequestCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5558   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5559                                    ett_lpp_NR_UL_RequestCapabilities_r16, NR_UL_RequestCapabilities_r16_sequence);
5560 
5561   return offset;
5562 }
5563 
5564 
5565 static const per_sequence_t RequestCapabilities_r9_IEs_eag_2_sequence[] = {
5566   { &hf_lpp_nr_ECID_RequestCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_ECID_RequestCapabilities_r16 },
5567   { &hf_lpp_nr_Multi_RTT_RequestCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_RequestCapabilities_r16 },
5568   { &hf_lpp_nr_DL_AoD_RequestCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_RequestCapabilities_r16 },
5569   { &hf_lpp_nr_DL_TDOA_RequestCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_RequestCapabilities_r16 },
5570   { &hf_lpp_nr_UL_RequestCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_UL_RequestCapabilities_r16 },
5571   { NULL, 0, 0, NULL }
5572 };
5573 
5574 static int
dissect_lpp_RequestCapabilities_r9_IEs_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5575 dissect_lpp_RequestCapabilities_r9_IEs_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5576   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RequestCapabilities_r9_IEs_eag_2_sequence);
5577 
5578   return offset;
5579 }
5580 
5581 
5582 static const per_sequence_t RequestCapabilities_r9_IEs_sequence[] = {
5583   { &hf_lpp_commonIEsRequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsRequestCapabilities },
5584   { &hf_lpp_a_gnss_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_RequestCapabilities },
5585   { &hf_lpp_otdoa_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_RequestCapabilities },
5586   { &hf_lpp_ecid_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_RequestCapabilities },
5587   { &hf_lpp_epdu_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
5588   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_RequestCapabilities_r9_IEs_eag_1 },
5589   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_RequestCapabilities_r9_IEs_eag_2 },
5590   { NULL, 0, 0, NULL }
5591 };
5592 
5593 static int
dissect_lpp_RequestCapabilities_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5594 dissect_lpp_RequestCapabilities_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5595   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5596                                    ett_lpp_RequestCapabilities_r9_IEs, RequestCapabilities_r9_IEs_sequence);
5597 
5598   return offset;
5599 }
5600 
5601 
5602 
5603 static int
dissect_lpp_NULL(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5604 dissect_lpp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5605   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
5606 
5607   return offset;
5608 }
5609 
5610 
5611 static const value_string lpp_T_c1_01_vals[] = {
5612   {   0, "requestCapabilities-r9" },
5613   {   1, "spare3" },
5614   {   2, "spare2" },
5615   {   3, "spare1" },
5616   { 0, NULL }
5617 };
5618 
5619 static const per_choice_t T_c1_01_choice[] = {
5620   {   0, &hf_lpp_requestCapabilities_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestCapabilities_r9_IEs },
5621   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
5622   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
5623   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
5624   { 0, NULL, 0, NULL }
5625 };
5626 
5627 static int
dissect_lpp_T_c1_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5628 dissect_lpp_T_c1_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5629   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5630                                  ett_lpp_T_c1_01, T_c1_01_choice,
5631                                  NULL);
5632 
5633   return offset;
5634 }
5635 
5636 
5637 static const per_sequence_t T_criticalExtensionsFuture_sequence[] = {
5638   { NULL, 0, 0, NULL }
5639 };
5640 
5641 static int
dissect_lpp_T_criticalExtensionsFuture(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5642 dissect_lpp_T_criticalExtensionsFuture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5643   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5644                                    ett_lpp_T_criticalExtensionsFuture, T_criticalExtensionsFuture_sequence);
5645 
5646   return offset;
5647 }
5648 
5649 
5650 static const value_string lpp_T_criticalExtensions_vals[] = {
5651   {   0, "c1" },
5652   {   1, "criticalExtensionsFuture" },
5653   { 0, NULL }
5654 };
5655 
5656 static const per_choice_t T_criticalExtensions_choice[] = {
5657   {   0, &hf_lpp_c1_01           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_01 },
5658   {   1, &hf_lpp_criticalExtensionsFuture, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture },
5659   { 0, NULL, 0, NULL }
5660 };
5661 
5662 static int
dissect_lpp_T_criticalExtensions(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5663 dissect_lpp_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5664   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5665                                  ett_lpp_T_criticalExtensions, T_criticalExtensions_choice,
5666                                  NULL);
5667 
5668   return offset;
5669 }
5670 
5671 
5672 static const per_sequence_t RequestCapabilities_sequence[] = {
5673   { &hf_lpp_criticalExtensions, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions },
5674   { NULL, 0, 0, NULL }
5675 };
5676 
5677 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_)5678 dissect_lpp_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5679 #line 125 "./asn1/lpp/lpp.cnf"
5680   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities");
5681 
5682 
5683   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5684                                    ett_lpp_RequestCapabilities, RequestCapabilities_sequence);
5685 
5686   return offset;
5687 }
5688 
5689 
5690 static const value_string lpp_SegmentationInfo_r14_vals[] = {
5691   {   0, "noMoreMessages" },
5692   {   1, "moreMessagesOnTheWay" },
5693   { 0, NULL }
5694 };
5695 
5696 
5697 static int
dissect_lpp_SegmentationInfo_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5698 dissect_lpp_SegmentationInfo_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5699   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5700                                      2, NULL, FALSE, 0, NULL);
5701 
5702   return offset;
5703 }
5704 
5705 
5706 static int * const T_lpp_message_segmentation_r14_bits[] = {
5707   &hf_lpp_T_lpp_message_segmentation_r14_serverToTarget,
5708   &hf_lpp_T_lpp_message_segmentation_r14_targetToServer,
5709   NULL
5710 };
5711 
5712 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_)5713 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_) {
5714   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5715                                      NO_BOUND, NO_BOUND, FALSE, T_lpp_message_segmentation_r14_bits, 2, NULL, NULL);
5716 
5717   return offset;
5718 }
5719 
5720 
5721 static const per_sequence_t CommonIEsProvideCapabilities_eag_1_sequence[] = {
5722   { &hf_lpp_segmentationInfo_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SegmentationInfo_r14 },
5723   { &hf_lpp_lpp_message_segmentation_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_lpp_message_segmentation_r14 },
5724   { NULL, 0, 0, NULL }
5725 };
5726 
5727 static int
dissect_lpp_CommonIEsProvideCapabilities_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5728 dissect_lpp_CommonIEsProvideCapabilities_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5729   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsProvideCapabilities_eag_1_sequence);
5730 
5731   return offset;
5732 }
5733 
5734 
5735 static const per_sequence_t CommonIEsProvideCapabilities_sequence[] = {
5736   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsProvideCapabilities_eag_1 },
5737   { NULL, 0, 0, NULL }
5738 };
5739 
5740 static int
dissect_lpp_CommonIEsProvideCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5741 dissect_lpp_CommonIEsProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5742   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5743                                    ett_lpp_CommonIEsProvideCapabilities, CommonIEsProvideCapabilities_sequence);
5744 
5745   return offset;
5746 }
5747 
5748 
5749 static const value_string lpp_T_gnss_id_vals[] = {
5750   { T_GNSS_ID_GPS, "gps" },
5751   { T_GNSS_ID_SBAS, "sbas" },
5752   { T_GNSS_ID_QZSS, "qzss" },
5753   { T_GNSS_ID_GALILEO, "galileo" },
5754   { T_GNSS_ID_GLONASS, "glonass" },
5755   { T_GNSS_ID_BDS, "bds" },
5756   { T_GNSS_ID_NAVIC_V1610, "navic-v1610" },
5757   { 0, NULL }
5758 };
5759 
5760 
5761 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_)5762 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_) {
5763 #line 1633 "./asn1/lpp/lpp.cnf"
5764   guint32 gnss_id;
5765   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5766                                      5, &gnss_id, TRUE, 2, NULL);
5767 
5768   actx->private_data = GUINT_TO_POINTER(gnss_id);
5769 
5770 
5771 
5772   return offset;
5773 }
5774 
5775 
5776 static const per_sequence_t GNSS_ID_sequence[] = {
5777   { &hf_lpp_gnss_id         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gnss_id },
5778   { NULL, 0, 0, NULL }
5779 };
5780 
5781 int
dissect_lpp_GNSS_ID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5782 dissect_lpp_GNSS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5783   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5784                                    ett_lpp_GNSS_ID, GNSS_ID_sequence);
5785 
5786   return offset;
5787 }
5788 
5789 
5790 static int * const T_sbas_IDs_bits[] = {
5791   &hf_lpp_T_sbas_IDs_waas,
5792   &hf_lpp_T_sbas_IDs_egnos,
5793   &hf_lpp_T_sbas_IDs_msas,
5794   &hf_lpp_T_sbas_IDs_gagan,
5795   NULL
5796 };
5797 
5798 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_)5799 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_) {
5800   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5801                                      1, 8, FALSE, T_sbas_IDs_bits, 4, NULL, NULL);
5802 
5803   return offset;
5804 }
5805 
5806 
5807 static const per_sequence_t SBAS_IDs_sequence[] = {
5808   { &hf_lpp_sbas_IDs_01     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_sbas_IDs },
5809   { NULL, 0, 0, NULL }
5810 };
5811 
5812 static int
dissect_lpp_SBAS_IDs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5813 dissect_lpp_SBAS_IDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5814   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5815                                    ett_lpp_SBAS_IDs, SBAS_IDs_sequence);
5816 
5817   return offset;
5818 }
5819 
5820 
5821 static int * const T_posModes_bits[] = {
5822   &hf_lpp_T_posModes_standalone,
5823   &hf_lpp_T_posModes_ue_based,
5824   &hf_lpp_T_posModes_ue_assisted,
5825   NULL
5826 };
5827 
5828 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_)5829 dissect_lpp_T_posModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5830   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5831                                      1, 8, FALSE, T_posModes_bits, 3, NULL, NULL);
5832 
5833   return offset;
5834 }
5835 
5836 
5837 static const per_sequence_t PositioningModes_sequence[] = {
5838   { &hf_lpp_posModes        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_posModes },
5839   { NULL, 0, 0, NULL }
5840 };
5841 
5842 static int
dissect_lpp_PositioningModes(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5843 dissect_lpp_PositioningModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5844   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5845                                    ett_lpp_PositioningModes, PositioningModes_sequence);
5846 
5847   return offset;
5848 }
5849 
5850 
5851 
5852 static int
dissect_lpp_BIT_STRING_SIZE_8(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5853 dissect_lpp_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5854   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5855                                      8, 8, FALSE, NULL, 0, NULL, NULL);
5856 
5857   return offset;
5858 }
5859 
5860 
5861 
5862 static int
dissect_lpp_BIT_STRING_SIZE_16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5863 dissect_lpp_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5864   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5865                                      16, 16, FALSE, NULL, 0, NULL, NULL);
5866 
5867   return offset;
5868 }
5869 
5870 
5871 static const per_sequence_t GNSS_SignalIDs_eag_1_sequence[] = {
5872   { &hf_lpp_gnss_SignalIDs_Ext_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_16 },
5873   { NULL, 0, 0, NULL }
5874 };
5875 
5876 static int
dissect_lpp_GNSS_SignalIDs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5877 dissect_lpp_GNSS_SignalIDs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5878   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_SignalIDs_eag_1_sequence);
5879 
5880   return offset;
5881 }
5882 
5883 
5884 static const per_sequence_t GNSS_SignalIDs_sequence[] = {
5885   { &hf_lpp_gnss_SignalIDs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
5886   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs_eag_1 },
5887   { NULL, 0, 0, NULL }
5888 };
5889 
5890 int
dissect_lpp_GNSS_SignalIDs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5891 dissect_lpp_GNSS_SignalIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5892   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5893                                    ett_lpp_GNSS_SignalIDs, GNSS_SignalIDs_sequence);
5894 
5895   return offset;
5896 }
5897 
5898 
5899 static int * const T_accessTypes_bits[] = {
5900   &hf_lpp_T_accessTypes_eutra,
5901   &hf_lpp_T_accessTypes_utra,
5902   &hf_lpp_T_accessTypes_gsm,
5903   &hf_lpp_T_accessTypes_nb_iot,
5904   &hf_lpp_T_accessTypes_nr_v1510,
5905   NULL
5906 };
5907 
5908 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_)5909 dissect_lpp_T_accessTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5910   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5911                                      1, 8, FALSE, T_accessTypes_bits, 5, NULL, NULL);
5912 
5913   return offset;
5914 }
5915 
5916 
5917 static const per_sequence_t AccessTypes_sequence[] = {
5918   { &hf_lpp_accessTypes     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_accessTypes },
5919   { NULL, 0, 0, NULL }
5920 };
5921 
5922 static int
dissect_lpp_AccessTypes(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5923 dissect_lpp_AccessTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5924   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5925                                    ett_lpp_AccessTypes, AccessTypes_sequence);
5926 
5927   return offset;
5928 }
5929 
5930 
5931 static const per_sequence_t T_fta_MeasSupport_sequence[] = {
5932   { &hf_lpp_cellTime        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_AccessTypes },
5933   { &hf_lpp_mode_02         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PositioningModes },
5934   { NULL, 0, 0, NULL }
5935 };
5936 
5937 static int
dissect_lpp_T_fta_MeasSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5938 dissect_lpp_T_fta_MeasSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5939   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5940                                    ett_lpp_T_fta_MeasSupport, T_fta_MeasSupport_sequence);
5941 
5942   return offset;
5943 }
5944 
5945 
5946 static const value_string lpp_T_adrEnhancementsSupport_r15_vals[] = {
5947   {   0, "true" },
5948   { 0, NULL }
5949 };
5950 
5951 
5952 static int
dissect_lpp_T_adrEnhancementsSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5953 dissect_lpp_T_adrEnhancementsSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5954   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5955                                      1, NULL, FALSE, 0, NULL);
5956 
5957   return offset;
5958 }
5959 
5960 
5961 static const per_sequence_t GNSS_SupportElement_eag_1_sequence[] = {
5962   { &hf_lpp_adrEnhancementsSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_adrEnhancementsSupport_r15 },
5963   { &hf_lpp_ha_gnss_Modes_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
5964   { NULL, 0, 0, NULL }
5965 };
5966 
5967 static int
dissect_lpp_GNSS_SupportElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5968 dissect_lpp_GNSS_SupportElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5969   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_SupportElement_eag_1_sequence);
5970 
5971   return offset;
5972 }
5973 
5974 
5975 static const per_sequence_t GNSS_SupportElement_sequence[] = {
5976   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
5977   { &hf_lpp_sbas_IDs        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_IDs },
5978   { &hf_lpp_agnss_Modes     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PositioningModes },
5979   { &hf_lpp_gnss_Signals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
5980   { &hf_lpp_fta_MeasSupport , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_fta_MeasSupport },
5981   { &hf_lpp_adr_Support     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5982   { &hf_lpp_velocityMeasurementSupport, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5983   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SupportElement_eag_1 },
5984   { NULL, 0, 0, NULL }
5985 };
5986 
5987 static int
dissect_lpp_GNSS_SupportElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5988 dissect_lpp_GNSS_SupportElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5989   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5990                                    ett_lpp_GNSS_SupportElement, GNSS_SupportElement_sequence);
5991 
5992   return offset;
5993 }
5994 
5995 
5996 static const per_sequence_t GNSS_SupportList_sequence_of[1] = {
5997   { &hf_lpp_GNSS_SupportList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SupportElement },
5998 };
5999 
6000 static int
dissect_lpp_GNSS_SupportList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6001 dissect_lpp_GNSS_SupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6002   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6003                                                   ett_lpp_GNSS_SupportList, GNSS_SupportList_sequence_of,
6004                                                   1, 16, FALSE);
6005 
6006   return offset;
6007 }
6008 
6009 
6010 static int * const T_gnss_ids_bits[] = {
6011   &hf_lpp_T_gnss_ids_gps,
6012   &hf_lpp_T_gnss_ids_sbas,
6013   &hf_lpp_T_gnss_ids_qzss,
6014   &hf_lpp_T_gnss_ids_galileo,
6015   &hf_lpp_T_gnss_ids_glonass,
6016   &hf_lpp_T_gnss_ids_bds,
6017   &hf_lpp_T_gnss_ids_navic_v1610,
6018   NULL
6019 };
6020 
6021 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_)6022 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_) {
6023   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6024                                      1, 16, FALSE, T_gnss_ids_bits, 7, NULL, NULL);
6025 
6026   return offset;
6027 }
6028 
6029 
6030 static const per_sequence_t GNSS_ID_Bitmap_sequence[] = {
6031   { &hf_lpp_gnss_ids        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gnss_ids },
6032   { NULL, 0, 0, NULL }
6033 };
6034 
6035 int
dissect_lpp_GNSS_ID_Bitmap(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6036 dissect_lpp_GNSS_ID_Bitmap(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6037   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6038                                    ett_lpp_GNSS_ID_Bitmap, GNSS_ID_Bitmap_sequence);
6039 
6040   return offset;
6041 }
6042 
6043 
6044 static const per_sequence_t GNSS_ReferenceTimeSupport_sequence[] = {
6045   { &hf_lpp_gnss_SystemTime_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_Bitmap },
6046   { &hf_lpp_fta_Support     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AccessTypes },
6047   { NULL, 0, 0, NULL }
6048 };
6049 
6050 static int
dissect_lpp_GNSS_ReferenceTimeSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6051 dissect_lpp_GNSS_ReferenceTimeSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6052   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6053                                    ett_lpp_GNSS_ReferenceTimeSupport, GNSS_ReferenceTimeSupport_sequence);
6054 
6055   return offset;
6056 }
6057 
6058 
6059 static const per_sequence_t GNSS_ReferenceLocationSupport_sequence[] = {
6060   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6061 };
6062 
6063 static int
dissect_lpp_GNSS_ReferenceLocationSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6064 dissect_lpp_GNSS_ReferenceLocationSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6065   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6066                                    ett_lpp_GNSS_ReferenceLocationSupport, GNSS_ReferenceLocationSupport_sequence);
6067 
6068   return offset;
6069 }
6070 
6071 
6072 static int * const T_ionoModel_bits[] = {
6073   &hf_lpp_T_ionoModel_klobuchar,
6074   &hf_lpp_T_ionoModel_neQuick,
6075   &hf_lpp_T_ionoModel_klobuchar2_r16,
6076   NULL
6077 };
6078 
6079 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_)6080 dissect_lpp_T_ionoModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6081   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6082                                      1, 8, FALSE, T_ionoModel_bits, 3, NULL, NULL);
6083 
6084   return offset;
6085 }
6086 
6087 
6088 static const per_sequence_t GNSS_IonosphericModelSupport_sequence[] = {
6089   { &hf_lpp_ionoModel       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_ionoModel },
6090   { NULL, 0, 0, NULL }
6091 };
6092 
6093 static int
dissect_lpp_GNSS_IonosphericModelSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6094 dissect_lpp_GNSS_IonosphericModelSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6095   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6096                                    ett_lpp_GNSS_IonosphericModelSupport, GNSS_IonosphericModelSupport_sequence);
6097 
6098   return offset;
6099 }
6100 
6101 
6102 static const per_sequence_t GNSS_EarthOrientationParametersSupport_sequence[] = {
6103   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6104 };
6105 
6106 static int
dissect_lpp_GNSS_EarthOrientationParametersSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6107 dissect_lpp_GNSS_EarthOrientationParametersSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6108   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6109                                    ett_lpp_GNSS_EarthOrientationParametersSupport, GNSS_EarthOrientationParametersSupport_sequence);
6110 
6111   return offset;
6112 }
6113 
6114 
6115 static const per_sequence_t GNSS_RTK_ReferenceStationInfoSupport_r15_sequence[] = {
6116   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6117 };
6118 
6119 static int
dissect_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6120 dissect_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6121   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6122                                    ett_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15, GNSS_RTK_ReferenceStationInfoSupport_r15_sequence);
6123 
6124   return offset;
6125 }
6126 
6127 
6128 static const per_sequence_t GNSS_RTK_AuxiliaryStationDataSupport_r15_sequence[] = {
6129   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6130 };
6131 
6132 static int
dissect_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6133 dissect_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6134   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6135                                    ett_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15, GNSS_RTK_AuxiliaryStationDataSupport_r15_sequence);
6136 
6137   return offset;
6138 }
6139 
6140 
6141 static const per_sequence_t GNSS_CommonAssistanceDataSupport_eag_1_sequence[] = {
6142   { &hf_lpp_gnss_RTK_ReferenceStationInfoSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15 },
6143   { &hf_lpp_gnss_RTK_AuxiliaryStationDataSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15 },
6144   { NULL, 0, 0, NULL }
6145 };
6146 
6147 static int
dissect_lpp_GNSS_CommonAssistanceDataSupport_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6148 dissect_lpp_GNSS_CommonAssistanceDataSupport_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6149   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_CommonAssistanceDataSupport_eag_1_sequence);
6150 
6151   return offset;
6152 }
6153 
6154 
6155 static const per_sequence_t GNSS_CommonAssistanceDataSupport_sequence[] = {
6156   { &hf_lpp_gnss_ReferenceTimeSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceTimeSupport },
6157   { &hf_lpp_gnss_ReferenceLocationSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceLocationSupport },
6158   { &hf_lpp_gnss_IonosphericModelSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_IonosphericModelSupport },
6159   { &hf_lpp_gnss_EarthOrientationParametersSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_EarthOrientationParametersSupport },
6160   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistanceDataSupport_eag_1 },
6161   { NULL, 0, 0, NULL }
6162 };
6163 
6164 static int
dissect_lpp_GNSS_CommonAssistanceDataSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6165 dissect_lpp_GNSS_CommonAssistanceDataSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6166   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6167                                    ett_lpp_GNSS_CommonAssistanceDataSupport, GNSS_CommonAssistanceDataSupport_sequence);
6168 
6169   return offset;
6170 }
6171 
6172 
6173 static const value_string lpp_T_sbas_id_vals[] = {
6174   {   0, "waas" },
6175   {   1, "egnos" },
6176   {   2, "msas" },
6177   {   3, "gagan" },
6178   { 0, NULL }
6179 };
6180 
6181 
6182 static int
dissect_lpp_T_sbas_id(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6183 dissect_lpp_T_sbas_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6184   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6185                                      4, NULL, TRUE, 0, NULL);
6186 
6187   return offset;
6188 }
6189 
6190 
6191 static const per_sequence_t SBAS_ID_sequence[] = {
6192   { &hf_lpp_sbas_id         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_sbas_id },
6193   { NULL, 0, 0, NULL }
6194 };
6195 
6196 static int
dissect_lpp_SBAS_ID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6197 dissect_lpp_SBAS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6198   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6199                                    ett_lpp_SBAS_ID, SBAS_ID_sequence);
6200 
6201   return offset;
6202 }
6203 
6204 
6205 static const per_sequence_t GNSS_TimeModelListSupport_sequence[] = {
6206   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6207 };
6208 
6209 static int
dissect_lpp_GNSS_TimeModelListSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6210 dissect_lpp_GNSS_TimeModelListSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6211   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6212                                    ett_lpp_GNSS_TimeModelListSupport, GNSS_TimeModelListSupport_sequence);
6213 
6214   return offset;
6215 }
6216 
6217 
6218 static const per_sequence_t GNSS_DifferentialCorrectionsSupport_sequence[] = {
6219   { &hf_lpp_gnssSignalIDs   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
6220   { &hf_lpp_dgnss_ValidityTimeSup, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6221   { NULL, 0, 0, NULL }
6222 };
6223 
6224 static int
dissect_lpp_GNSS_DifferentialCorrectionsSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6225 dissect_lpp_GNSS_DifferentialCorrectionsSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6226   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6227                                    ett_lpp_GNSS_DifferentialCorrectionsSupport, GNSS_DifferentialCorrectionsSupport_sequence);
6228 
6229   return offset;
6230 }
6231 
6232 
6233 static int * const T_clockModel_bits[] = {
6234   &hf_lpp_T_clockModel_model_1,
6235   &hf_lpp_T_clockModel_model_2,
6236   &hf_lpp_T_clockModel_model_3,
6237   &hf_lpp_T_clockModel_model_4,
6238   &hf_lpp_T_clockModel_model_5,
6239   &hf_lpp_T_clockModel_model_6,
6240   &hf_lpp_T_clockModel_model_7_r16,
6241   &hf_lpp_T_clockModel_model_8_r16,
6242   NULL
6243 };
6244 
6245 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_)6246 dissect_lpp_T_clockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6247   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6248                                      1, 8, FALSE, T_clockModel_bits, 8, NULL, NULL);
6249 
6250   return offset;
6251 }
6252 
6253 
6254 static int * const T_orbitModel_bits[] = {
6255   &hf_lpp_T_orbitModel_model_1,
6256   &hf_lpp_T_orbitModel_model_2,
6257   &hf_lpp_T_orbitModel_model_3,
6258   &hf_lpp_T_orbitModel_model_4,
6259   &hf_lpp_T_orbitModel_model_5,
6260   &hf_lpp_T_orbitModel_model_6,
6261   &hf_lpp_T_orbitModel_model_7_r16,
6262   &hf_lpp_T_orbitModel_model_8_r16,
6263   NULL
6264 };
6265 
6266 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_)6267 dissect_lpp_T_orbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6268   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6269                                      1, 8, FALSE, T_orbitModel_bits, 8, NULL, NULL);
6270 
6271   return offset;
6272 }
6273 
6274 
6275 static const per_sequence_t GNSS_NavigationModelSupport_sequence[] = {
6276   { &hf_lpp_clockModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_clockModel },
6277   { &hf_lpp_orbitModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_orbitModel },
6278   { NULL, 0, 0, NULL }
6279 };
6280 
6281 static int
dissect_lpp_GNSS_NavigationModelSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6282 dissect_lpp_GNSS_NavigationModelSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6283   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6284                                    ett_lpp_GNSS_NavigationModelSupport, GNSS_NavigationModelSupport_sequence);
6285 
6286   return offset;
6287 }
6288 
6289 
6290 static const per_sequence_t GNSS_RealTimeIntegritySupport_sequence[] = {
6291   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6292 };
6293 
6294 static int
dissect_lpp_GNSS_RealTimeIntegritySupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6295 dissect_lpp_GNSS_RealTimeIntegritySupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6296   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6297                                    ett_lpp_GNSS_RealTimeIntegritySupport, GNSS_RealTimeIntegritySupport_sequence);
6298 
6299   return offset;
6300 }
6301 
6302 
6303 static const per_sequence_t GNSS_DataBitAssistanceSupport_sequence[] = {
6304   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6305 };
6306 
6307 static int
dissect_lpp_GNSS_DataBitAssistanceSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6308 dissect_lpp_GNSS_DataBitAssistanceSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6309   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6310                                    ett_lpp_GNSS_DataBitAssistanceSupport, GNSS_DataBitAssistanceSupport_sequence);
6311 
6312   return offset;
6313 }
6314 
6315 
6316 static const value_string lpp_T_confidenceSupport_r10_vals[] = {
6317   {   0, "true" },
6318   { 0, NULL }
6319 };
6320 
6321 
6322 static int
dissect_lpp_T_confidenceSupport_r10(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6323 dissect_lpp_T_confidenceSupport_r10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6324   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6325                                      1, NULL, FALSE, 0, NULL);
6326 
6327   return offset;
6328 }
6329 
6330 
6331 static const value_string lpp_T_dopplerUncertaintyExtSupport_r10_vals[] = {
6332   {   0, "true" },
6333   { 0, NULL }
6334 };
6335 
6336 
6337 static int
dissect_lpp_T_dopplerUncertaintyExtSupport_r10(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6338 dissect_lpp_T_dopplerUncertaintyExtSupport_r10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6339   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6340                                      1, NULL, FALSE, 0, NULL);
6341 
6342   return offset;
6343 }
6344 
6345 
6346 static const per_sequence_t GNSS_AcquisitionAssistanceSupport_sequence[] = {
6347   { &hf_lpp_confidenceSupport_r10, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_confidenceSupport_r10 },
6348   { &hf_lpp_dopplerUncertaintyExtSupport_r10, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_dopplerUncertaintyExtSupport_r10 },
6349   { NULL, 0, 0, NULL }
6350 };
6351 
6352 static int
dissect_lpp_GNSS_AcquisitionAssistanceSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6353 dissect_lpp_GNSS_AcquisitionAssistanceSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6354   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6355                                    ett_lpp_GNSS_AcquisitionAssistanceSupport, GNSS_AcquisitionAssistanceSupport_sequence);
6356 
6357   return offset;
6358 }
6359 
6360 
6361 static int * const T_almanacModel_bits[] = {
6362   &hf_lpp_T_almanacModel_model_1,
6363   &hf_lpp_T_almanacModel_model_2,
6364   &hf_lpp_T_almanacModel_model_3,
6365   &hf_lpp_T_almanacModel_model_4,
6366   &hf_lpp_T_almanacModel_model_5,
6367   &hf_lpp_T_almanacModel_model_6,
6368   &hf_lpp_T_almanacModel_model_7,
6369   NULL
6370 };
6371 
6372 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_)6373 dissect_lpp_T_almanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6374   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6375                                      1, 8, FALSE, T_almanacModel_bits, 7, NULL, NULL);
6376 
6377   return offset;
6378 }
6379 
6380 
6381 static const per_sequence_t GNSS_AlmanacSupport_sequence[] = {
6382   { &hf_lpp_almanacModel    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_almanacModel },
6383   { NULL, 0, 0, NULL }
6384 };
6385 
6386 static int
dissect_lpp_GNSS_AlmanacSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6387 dissect_lpp_GNSS_AlmanacSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6388   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6389                                    ett_lpp_GNSS_AlmanacSupport, GNSS_AlmanacSupport_sequence);
6390 
6391   return offset;
6392 }
6393 
6394 
6395 static int * const T_utc_Model_bits[] = {
6396   &hf_lpp_T_utc_Model_model_1,
6397   &hf_lpp_T_utc_Model_model_2,
6398   &hf_lpp_T_utc_Model_model_3,
6399   &hf_lpp_T_utc_Model_model_4,
6400   &hf_lpp_T_utc_Model_model_5,
6401   NULL
6402 };
6403 
6404 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_)6405 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_) {
6406   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6407                                      1, 8, FALSE, T_utc_Model_bits, 5, NULL, NULL);
6408 
6409   return offset;
6410 }
6411 
6412 
6413 static const per_sequence_t GNSS_UTC_ModelSupport_sequence[] = {
6414   { &hf_lpp_utc_Model       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_utc_Model },
6415   { NULL, 0, 0, NULL }
6416 };
6417 
6418 static int
dissect_lpp_GNSS_UTC_ModelSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6419 dissect_lpp_GNSS_UTC_ModelSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6420   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6421                                    ett_lpp_GNSS_UTC_ModelSupport, GNSS_UTC_ModelSupport_sequence);
6422 
6423   return offset;
6424 }
6425 
6426 
6427 static const per_sequence_t GNSS_AuxiliaryInformationSupport_sequence[] = {
6428   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6429 };
6430 
6431 static int
dissect_lpp_GNSS_AuxiliaryInformationSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6432 dissect_lpp_GNSS_AuxiliaryInformationSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6433   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6434                                    ett_lpp_GNSS_AuxiliaryInformationSupport, GNSS_AuxiliaryInformationSupport_sequence);
6435 
6436   return offset;
6437 }
6438 
6439 
6440 static const per_sequence_t BDS_DifferentialCorrectionsSupport_r12_sequence[] = {
6441   { &hf_lpp_gnssSignalIDs   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
6442   { NULL, 0, 0, NULL }
6443 };
6444 
6445 static int
dissect_lpp_BDS_DifferentialCorrectionsSupport_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6446 dissect_lpp_BDS_DifferentialCorrectionsSupport_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6447   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6448                                    ett_lpp_BDS_DifferentialCorrectionsSupport_r12, BDS_DifferentialCorrectionsSupport_r12_sequence);
6449 
6450   return offset;
6451 }
6452 
6453 
6454 static const per_sequence_t BDS_GridModelSupport_r12_sequence[] = {
6455   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6456 };
6457 
6458 static int
dissect_lpp_BDS_GridModelSupport_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6459 dissect_lpp_BDS_GridModelSupport_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6460   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6461                                    ett_lpp_BDS_GridModelSupport_r12, BDS_GridModelSupport_r12_sequence);
6462 
6463   return offset;
6464 }
6465 
6466 
6467 static const per_sequence_t GNSS_GenericAssistDataSupportElement_eag_1_sequence[] = {
6468   { &hf_lpp_bds_DifferentialCorrectionsSupport_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BDS_DifferentialCorrectionsSupport_r12 },
6469   { &hf_lpp_bds_GridModelSupport_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BDS_GridModelSupport_r12 },
6470   { NULL, 0, 0, NULL }
6471 };
6472 
6473 static int
dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6474 dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6475   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataSupportElement_eag_1_sequence);
6476 
6477   return offset;
6478 }
6479 
6480 
6481 static const per_sequence_t GNSS_RTK_ObservationsSupport_r15_sequence[] = {
6482   { &hf_lpp_gnssSignalIDs_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
6483   { NULL, 0, 0, NULL }
6484 };
6485 
6486 static int
dissect_lpp_GNSS_RTK_ObservationsSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6487 dissect_lpp_GNSS_RTK_ObservationsSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6488   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6489                                    ett_lpp_GNSS_RTK_ObservationsSupport_r15, GNSS_RTK_ObservationsSupport_r15_sequence);
6490 
6491   return offset;
6492 }
6493 
6494 
6495 static const per_sequence_t GLO_RTK_BiasInformationSupport_r15_sequence[] = {
6496   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6497 };
6498 
6499 static int
dissect_lpp_GLO_RTK_BiasInformationSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6500 dissect_lpp_GLO_RTK_BiasInformationSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6501   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6502                                    ett_lpp_GLO_RTK_BiasInformationSupport_r15, GLO_RTK_BiasInformationSupport_r15_sequence);
6503 
6504   return offset;
6505 }
6506 
6507 
6508 
6509 static int
dissect_lpp_INTEGER_0_7(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6510 dissect_lpp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6511   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6512                                                             0U, 7U, NULL, FALSE);
6513 
6514   return offset;
6515 }
6516 
6517 
6518 static const per_sequence_t GNSS_FrequencyID_r15_sequence[] = {
6519   { &hf_lpp_gnss_FrequencyID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
6520   { NULL, 0, 0, NULL }
6521 };
6522 
6523 static int
dissect_lpp_GNSS_FrequencyID_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6524 dissect_lpp_GNSS_FrequencyID_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6525   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6526                                    ett_lpp_GNSS_FrequencyID_r15, GNSS_FrequencyID_r15_sequence);
6527 
6528   return offset;
6529 }
6530 
6531 
6532 static const per_sequence_t GNSS_Link_Combinations_r15_sequence[] = {
6533   { &hf_lpp_l1_r15          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_FrequencyID_r15 },
6534   { &hf_lpp_l2_r15          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_FrequencyID_r15 },
6535   { NULL, 0, 0, NULL }
6536 };
6537 
6538 static int
dissect_lpp_GNSS_Link_Combinations_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6539 dissect_lpp_GNSS_Link_Combinations_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6540   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6541                                    ett_lpp_GNSS_Link_Combinations_r15, GNSS_Link_Combinations_r15_sequence);
6542 
6543   return offset;
6544 }
6545 
6546 
6547 static const per_sequence_t GNSS_Link_CombinationsList_r15_sequence_of[1] = {
6548   { &hf_lpp_GNSS_Link_CombinationsList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_Link_Combinations_r15 },
6549 };
6550 
6551 static int
dissect_lpp_GNSS_Link_CombinationsList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6552 dissect_lpp_GNSS_Link_CombinationsList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6553   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6554                                                   ett_lpp_GNSS_Link_CombinationsList_r15, GNSS_Link_CombinationsList_r15_sequence_of,
6555                                                   1, 8, FALSE);
6556 
6557   return offset;
6558 }
6559 
6560 
6561 static const per_sequence_t GNSS_RTK_MAC_CorrectionDifferencesSupport_r15_sequence[] = {
6562   { &hf_lpp_link_combinations_support_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_Link_CombinationsList_r15 },
6563   { NULL, 0, 0, NULL }
6564 };
6565 
6566 static int
dissect_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6567 dissect_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6568   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6569                                    ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15, GNSS_RTK_MAC_CorrectionDifferencesSupport_r15_sequence);
6570 
6571   return offset;
6572 }
6573 
6574 
6575 static const per_sequence_t GNSS_RTK_ResidualsSupport_r15_sequence[] = {
6576   { &hf_lpp_link_combinations_support_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_Link_CombinationsList_r15 },
6577   { NULL, 0, 0, NULL }
6578 };
6579 
6580 static int
dissect_lpp_GNSS_RTK_ResidualsSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6581 dissect_lpp_GNSS_RTK_ResidualsSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6582   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6583                                    ett_lpp_GNSS_RTK_ResidualsSupport_r15, GNSS_RTK_ResidualsSupport_r15_sequence);
6584 
6585   return offset;
6586 }
6587 
6588 
6589 static const per_sequence_t GNSS_RTK_FKP_GradientsSupport_r15_sequence[] = {
6590   { &hf_lpp_link_combinations_support_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_Link_CombinationsList_r15 },
6591   { NULL, 0, 0, NULL }
6592 };
6593 
6594 static int
dissect_lpp_GNSS_RTK_FKP_GradientsSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6595 dissect_lpp_GNSS_RTK_FKP_GradientsSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6596   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6597                                    ett_lpp_GNSS_RTK_FKP_GradientsSupport_r15, GNSS_RTK_FKP_GradientsSupport_r15_sequence);
6598 
6599   return offset;
6600 }
6601 
6602 
6603 static const per_sequence_t GNSS_SSR_OrbitCorrectionsSupport_r15_sequence[] = {
6604   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6605 };
6606 
6607 static int
dissect_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6608 dissect_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6609   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6610                                    ett_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15, GNSS_SSR_OrbitCorrectionsSupport_r15_sequence);
6611 
6612   return offset;
6613 }
6614 
6615 
6616 static const per_sequence_t GNSS_SSR_ClockCorrectionsSupport_r15_sequence[] = {
6617   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6618 };
6619 
6620 static int
dissect_lpp_GNSS_SSR_ClockCorrectionsSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6621 dissect_lpp_GNSS_SSR_ClockCorrectionsSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6622   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6623                                    ett_lpp_GNSS_SSR_ClockCorrectionsSupport_r15, GNSS_SSR_ClockCorrectionsSupport_r15_sequence);
6624 
6625   return offset;
6626 }
6627 
6628 
6629 static const per_sequence_t GNSS_SSR_CodeBiasSupport_r15_sequence[] = {
6630   { &hf_lpp_signal_and_tracking_mode_ID_Sup_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
6631   { NULL, 0, 0, NULL }
6632 };
6633 
6634 static int
dissect_lpp_GNSS_SSR_CodeBiasSupport_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6635 dissect_lpp_GNSS_SSR_CodeBiasSupport_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6636   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6637                                    ett_lpp_GNSS_SSR_CodeBiasSupport_r15, GNSS_SSR_CodeBiasSupport_r15_sequence);
6638 
6639   return offset;
6640 }
6641 
6642 
6643 static const per_sequence_t GNSS_GenericAssistDataSupportElement_eag_2_sequence[] = {
6644   { &hf_lpp_gnss_RTK_ObservationsSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ObservationsSupport_r15 },
6645   { &hf_lpp_glo_RTK_BiasInformationSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GLO_RTK_BiasInformationSupport_r15 },
6646   { &hf_lpp_gnss_RTK_MAC_CorrectionDifferencesSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15 },
6647   { &hf_lpp_gnss_RTK_ResidualsSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ResidualsSupport_r15 },
6648   { &hf_lpp_gnss_RTK_FKP_GradientsSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_FKP_GradientsSupport_r15 },
6649   { &hf_lpp_gnss_SSR_OrbitCorrectionsSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15 },
6650   { &hf_lpp_gnss_SSR_ClockCorrectionsSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_ClockCorrectionsSupport_r15 },
6651   { &hf_lpp_gnss_SSR_CodeBiasSupport_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_CodeBiasSupport_r15 },
6652   { NULL, 0, 0, NULL }
6653 };
6654 
6655 static int
dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6656 dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6657   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataSupportElement_eag_2_sequence);
6658 
6659   return offset;
6660 }
6661 
6662 
6663 static const per_sequence_t GNSS_SSR_URA_Support_r16_sequence[] = {
6664   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6665 };
6666 
6667 static int
dissect_lpp_GNSS_SSR_URA_Support_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6668 dissect_lpp_GNSS_SSR_URA_Support_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6669   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6670                                    ett_lpp_GNSS_SSR_URA_Support_r16, GNSS_SSR_URA_Support_r16_sequence);
6671 
6672   return offset;
6673 }
6674 
6675 
6676 static const per_sequence_t GNSS_SSR_PhaseBiasSupport_r16_sequence[] = {
6677   { &hf_lpp_signal_and_tracking_mode_ID_Sup_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
6678   { NULL, 0, 0, NULL }
6679 };
6680 
6681 static int
dissect_lpp_GNSS_SSR_PhaseBiasSupport_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6682 dissect_lpp_GNSS_SSR_PhaseBiasSupport_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6683   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6684                                    ett_lpp_GNSS_SSR_PhaseBiasSupport_r16, GNSS_SSR_PhaseBiasSupport_r16_sequence);
6685 
6686   return offset;
6687 }
6688 
6689 
6690 static const per_sequence_t GNSS_SSR_STEC_CorrectionSupport_r16_sequence[] = {
6691   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6692 };
6693 
6694 static int
dissect_lpp_GNSS_SSR_STEC_CorrectionSupport_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6695 dissect_lpp_GNSS_SSR_STEC_CorrectionSupport_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6696   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6697                                    ett_lpp_GNSS_SSR_STEC_CorrectionSupport_r16, GNSS_SSR_STEC_CorrectionSupport_r16_sequence);
6698 
6699   return offset;
6700 }
6701 
6702 
6703 static const per_sequence_t GNSS_SSR_GriddedCorrectionSupport_r16_sequence[] = {
6704   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6705 };
6706 
6707 static int
dissect_lpp_GNSS_SSR_GriddedCorrectionSupport_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6708 dissect_lpp_GNSS_SSR_GriddedCorrectionSupport_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6709   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6710                                    ett_lpp_GNSS_SSR_GriddedCorrectionSupport_r16, GNSS_SSR_GriddedCorrectionSupport_r16_sequence);
6711 
6712   return offset;
6713 }
6714 
6715 
6716 static const per_sequence_t NavIC_DifferentialCorrectionsSupport_r16_sequence[] = {
6717   { &hf_lpp_gnssSignalIDs_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
6718   { NULL, 0, 0, NULL }
6719 };
6720 
6721 static int
dissect_lpp_NavIC_DifferentialCorrectionsSupport_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6722 dissect_lpp_NavIC_DifferentialCorrectionsSupport_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6723   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6724                                    ett_lpp_NavIC_DifferentialCorrectionsSupport_r16, NavIC_DifferentialCorrectionsSupport_r16_sequence);
6725 
6726   return offset;
6727 }
6728 
6729 
6730 static const per_sequence_t NavIC_GridModelSupport_r16_sequence[] = {
6731   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6732 };
6733 
6734 static int
dissect_lpp_NavIC_GridModelSupport_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6735 dissect_lpp_NavIC_GridModelSupport_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6737                                    ett_lpp_NavIC_GridModelSupport_r16, NavIC_GridModelSupport_r16_sequence);
6738 
6739   return offset;
6740 }
6741 
6742 
6743 static const per_sequence_t GNSS_GenericAssistDataSupportElement_eag_3_sequence[] = {
6744   { &hf_lpp_gnss_SSR_URA_Support_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_URA_Support_r16 },
6745   { &hf_lpp_gnss_SSR_PhaseBiasSupport_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_PhaseBiasSupport_r16 },
6746   { &hf_lpp_gnss_SSR_STEC_CorrectionSupport_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_STEC_CorrectionSupport_r16 },
6747   { &hf_lpp_gnss_SSR_GriddedCorrectionSupport_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_GriddedCorrectionSupport_r16 },
6748   { &hf_lpp_navic_DifferentialCorrectionsSupport_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NavIC_DifferentialCorrectionsSupport_r16 },
6749   { &hf_lpp_navic_GridModelSupport_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NavIC_GridModelSupport_r16 },
6750   { NULL, 0, 0, NULL }
6751 };
6752 
6753 static int
dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6754 dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6755   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataSupportElement_eag_3_sequence);
6756 
6757   return offset;
6758 }
6759 
6760 
6761 static const per_sequence_t GNSS_GenericAssistDataSupportElement_sequence[] = {
6762   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
6763   { &hf_lpp_sbas_ID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_ID },
6764   { &hf_lpp_gnss_TimeModelsSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_TimeModelListSupport },
6765   { &hf_lpp_gnss_DifferentialCorrectionsSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DifferentialCorrectionsSupport },
6766   { &hf_lpp_gnss_NavigationModelSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavigationModelSupport },
6767   { &hf_lpp_gnss_RealTimeIntegritySupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_RealTimeIntegritySupport },
6768   { &hf_lpp_gnss_DataBitAssistanceSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitAssistanceSupport },
6769   { &hf_lpp_gnss_AcquisitionAssistanceSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AcquisitionAssistanceSupport },
6770   { &hf_lpp_gnss_AlmanacSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AlmanacSupport },
6771   { &hf_lpp_gnss_UTC_ModelSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_UTC_ModelSupport },
6772   { &hf_lpp_gnss_AuxiliaryInformationSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AuxiliaryInformationSupport },
6773   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_1 },
6774   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_2 },
6775   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataSupportElement_eag_3 },
6776   { NULL, 0, 0, NULL }
6777 };
6778 
6779 static int
dissect_lpp_GNSS_GenericAssistDataSupportElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6780 dissect_lpp_GNSS_GenericAssistDataSupportElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6781   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6782                                    ett_lpp_GNSS_GenericAssistDataSupportElement, GNSS_GenericAssistDataSupportElement_sequence);
6783 
6784   return offset;
6785 }
6786 
6787 
6788 static const per_sequence_t GNSS_GenericAssistanceDataSupport_sequence_of[1] = {
6789   { &hf_lpp_GNSS_GenericAssistanceDataSupport_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataSupportElement },
6790 };
6791 
6792 static int
dissect_lpp_GNSS_GenericAssistanceDataSupport(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6793 dissect_lpp_GNSS_GenericAssistanceDataSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6794   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6795                                                   ett_lpp_GNSS_GenericAssistanceDataSupport, GNSS_GenericAssistanceDataSupport_sequence_of,
6796                                                   1, 16, FALSE);
6797 
6798   return offset;
6799 }
6800 
6801 
6802 static const per_sequence_t AssistanceDataSupportList_sequence[] = {
6803   { &hf_lpp_gnss_CommonAssistanceDataSupport, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistanceDataSupport },
6804   { &hf_lpp_gnss_GenericAssistanceDataSupport, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistanceDataSupport },
6805   { NULL, 0, 0, NULL }
6806 };
6807 
6808 static int
dissect_lpp_AssistanceDataSupportList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6809 dissect_lpp_AssistanceDataSupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6810   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6811                                    ett_lpp_AssistanceDataSupportList, AssistanceDataSupportList_sequence);
6812 
6813   return offset;
6814 }
6815 
6816 
6817 static const per_sequence_t LocationCoordinateTypes_eag_1_sequence[] = {
6818   { &hf_lpp_highAccuracyEllipsoidPointWithUncertaintyEllipse_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
6819   { &hf_lpp_highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
6820   { NULL, 0, 0, NULL }
6821 };
6822 
6823 static int
dissect_lpp_LocationCoordinateTypes_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6824 dissect_lpp_LocationCoordinateTypes_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6825   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, LocationCoordinateTypes_eag_1_sequence);
6826 
6827   return offset;
6828 }
6829 
6830 
6831 static const per_sequence_t LocationCoordinateTypes_sequence[] = {
6832   { &hf_lpp_ellipsoidPoint  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6833   { &hf_lpp_ellipsoidPointWithUncertaintyCircle, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6834   { &hf_lpp_ellipsoidPointWithUncertaintyEllipse, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6835   { &hf_lpp_polygon         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6836   { &hf_lpp_ellipsoidPointWithAltitude, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6837   { &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6838   { &hf_lpp_ellipsoidArc    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6839   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_LocationCoordinateTypes_eag_1 },
6840   { NULL, 0, 0, NULL }
6841 };
6842 
6843 static int
dissect_lpp_LocationCoordinateTypes(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6844 dissect_lpp_LocationCoordinateTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6845   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6846                                    ett_lpp_LocationCoordinateTypes, LocationCoordinateTypes_sequence);
6847 
6848   return offset;
6849 }
6850 
6851 
6852 static const per_sequence_t VelocityTypes_sequence[] = {
6853   { &hf_lpp_horizontalVelocity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6854   { &hf_lpp_horizontalWithVerticalVelocity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6855   { &hf_lpp_horizontalVelocityWithUncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6856   { &hf_lpp_horizontalWithVerticalVelocityAndUncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6857   { NULL, 0, 0, NULL }
6858 };
6859 
6860 static int
dissect_lpp_VelocityTypes(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6861 dissect_lpp_VelocityTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6862   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6863                                    ett_lpp_VelocityTypes, VelocityTypes_sequence);
6864 
6865   return offset;
6866 }
6867 
6868 
6869 static const value_string lpp_T_idleStateForMeasurements_r14_01_vals[] = {
6870   {   0, "required" },
6871   { 0, NULL }
6872 };
6873 
6874 
6875 static int
dissect_lpp_T_idleStateForMeasurements_r14_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6876 dissect_lpp_T_idleStateForMeasurements_r14_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6877   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6878                                      1, NULL, FALSE, 0, NULL);
6879 
6880   return offset;
6881 }
6882 
6883 
6884 static const per_sequence_t A_GNSS_ProvideCapabilities_eag_1_sequence[] = {
6885   { &hf_lpp_periodicalReportingNotSupported_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
6886   { &hf_lpp_idleStateForMeasurements_r14_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_idleStateForMeasurements_r14_01 },
6887   { NULL, 0, 0, NULL }
6888 };
6889 
6890 static int
dissect_lpp_A_GNSS_ProvideCapabilities_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6891 dissect_lpp_A_GNSS_ProvideCapabilities_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6892   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, A_GNSS_ProvideCapabilities_eag_1_sequence);
6893 
6894   return offset;
6895 }
6896 
6897 
6898 static int * const T_periodicAssistanceData_r15_bits[] = {
6899   &hf_lpp_T_periodicAssistanceData_r15_solicited,
6900   &hf_lpp_T_periodicAssistanceData_r15_unsolicited,
6901   NULL
6902 };
6903 
6904 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_)6905 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_) {
6906   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6907                                      1, 8, FALSE, T_periodicAssistanceData_r15_bits, 2, NULL, NULL);
6908 
6909   return offset;
6910 }
6911 
6912 
6913 static const per_sequence_t A_GNSS_ProvideCapabilities_eag_2_sequence[] = {
6914   { &hf_lpp_periodicAssistanceData_r15_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_periodicAssistanceData_r15 },
6915   { NULL, 0, 0, NULL }
6916 };
6917 
6918 static int
dissect_lpp_A_GNSS_ProvideCapabilities_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6919 dissect_lpp_A_GNSS_ProvideCapabilities_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6920   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, A_GNSS_ProvideCapabilities_eag_2_sequence);
6921 
6922   return offset;
6923 }
6924 
6925 
6926 static const per_sequence_t A_GNSS_ProvideCapabilities_sequence[] = {
6927   { &hf_lpp_gnss_SupportList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SupportList },
6928   { &hf_lpp_assistanceDataSupportList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AssistanceDataSupportList },
6929   { &hf_lpp_locationCoordinateTypes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationCoordinateTypes },
6930   { &hf_lpp_velocityTypes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VelocityTypes },
6931   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_A_GNSS_ProvideCapabilities_eag_1 },
6932   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_A_GNSS_ProvideCapabilities_eag_2 },
6933   { NULL, 0, 0, NULL }
6934 };
6935 
6936 static int
dissect_lpp_A_GNSS_ProvideCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6937 dissect_lpp_A_GNSS_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6938   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6939                                    ett_lpp_A_GNSS_ProvideCapabilities, A_GNSS_ProvideCapabilities_sequence);
6940 
6941   return offset;
6942 }
6943 
6944 
6945 static int * const T_otdoa_Mode_bits[] = {
6946   &hf_lpp_T_otdoa_Mode_ue_assisted,
6947   &hf_lpp_T_otdoa_Mode_ue_assisted_NB_r14,
6948   &hf_lpp_T_otdoa_Mode_ue_assisted_NB_TDD_r15,
6949   NULL
6950 };
6951 
6952 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_)6953 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_) {
6954   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6955                                      1, 8, FALSE, T_otdoa_Mode_bits, 3, NULL, NULL);
6956 
6957   return offset;
6958 }
6959 
6960 
6961 
6962 static int
dissect_lpp_INTEGER_1_maxFBI(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6963 dissect_lpp_INTEGER_1_maxFBI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6964   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6965                                                             1U, maxFBI, NULL, FALSE);
6966 
6967   return offset;
6968 }
6969 
6970 
6971 static const per_sequence_t SupportedBandEUTRA_sequence[] = {
6972   { &hf_lpp_bandEUTRA       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_maxFBI },
6973   { NULL, 0, 0, NULL }
6974 };
6975 
6976 static int
dissect_lpp_SupportedBandEUTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6977 dissect_lpp_SupportedBandEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6978   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6979                                    ett_lpp_SupportedBandEUTRA, SupportedBandEUTRA_sequence);
6980 
6981   return offset;
6982 }
6983 
6984 
6985 static const per_sequence_t SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_sequence_of[1] = {
6986   { &hf_lpp_supportedBandListEUTRA_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SupportedBandEUTRA },
6987 };
6988 
6989 static int
dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6990 dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6991   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6992                                                   ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA, SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_sequence_of,
6993                                                   1, maxBands, FALSE);
6994 
6995   return offset;
6996 }
6997 
6998 
6999 
7000 static int
dissect_lpp_INTEGER_maxFBI_Plus1_maxFBI2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7001 dissect_lpp_INTEGER_maxFBI_Plus1_maxFBI2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7002   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7003                                                             maxFBI_Plus1, maxFBI2, NULL, FALSE);
7004 
7005   return offset;
7006 }
7007 
7008 
7009 static const per_sequence_t SupportedBandEUTRA_v9a0_sequence[] = {
7010   { &hf_lpp_bandEUTRA_v9a0  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_maxFBI_Plus1_maxFBI2 },
7011   { NULL, 0, 0, NULL }
7012 };
7013 
7014 static int
dissect_lpp_SupportedBandEUTRA_v9a0(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7015 dissect_lpp_SupportedBandEUTRA_v9a0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7016   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7017                                    ett_lpp_SupportedBandEUTRA_v9a0, SupportedBandEUTRA_v9a0_sequence);
7018 
7019   return offset;
7020 }
7021 
7022 
7023 static const per_sequence_t SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0_sequence_of[1] = {
7024   { &hf_lpp_supportedBandListEUTRA_v9a0_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SupportedBandEUTRA_v9a0 },
7025 };
7026 
7027 static int
dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7028 dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7029   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7030                                                   ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0, SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0_sequence_of,
7031                                                   1, maxBands, FALSE);
7032 
7033   return offset;
7034 }
7035 
7036 
7037 static const value_string lpp_T_interFreqRSTDmeasurement_r10_vals[] = {
7038   {   0, "supported" },
7039   { 0, NULL }
7040 };
7041 
7042 
7043 static int
dissect_lpp_T_interFreqRSTDmeasurement_r10(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7044 dissect_lpp_T_interFreqRSTDmeasurement_r10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7045   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7046                                      1, NULL, FALSE, 0, NULL);
7047 
7048   return offset;
7049 }
7050 
7051 
7052 static const value_string lpp_T_additionalNeighbourCellInfoList_r10_vals[] = {
7053   {   0, "supported" },
7054   { 0, NULL }
7055 };
7056 
7057 
7058 static int
dissect_lpp_T_additionalNeighbourCellInfoList_r10(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7059 dissect_lpp_T_additionalNeighbourCellInfoList_r10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7060   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7061                                      1, NULL, FALSE, 0, NULL);
7062 
7063   return offset;
7064 }
7065 
7066 
7067 static const value_string lpp_T_prs_id_r14_vals[] = {
7068   {   0, "supported" },
7069   { 0, NULL }
7070 };
7071 
7072 
7073 static int
dissect_lpp_T_prs_id_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7074 dissect_lpp_T_prs_id_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7075   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7076                                      1, NULL, FALSE, 0, NULL);
7077 
7078   return offset;
7079 }
7080 
7081 
7082 static const value_string lpp_T_tp_separation_via_muting_r14_vals[] = {
7083   {   0, "supported" },
7084   { 0, NULL }
7085 };
7086 
7087 
7088 static int
dissect_lpp_T_tp_separation_via_muting_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7089 dissect_lpp_T_tp_separation_via_muting_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7090   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7091                                      1, NULL, FALSE, 0, NULL);
7092 
7093   return offset;
7094 }
7095 
7096 
7097 static const value_string lpp_T_additional_prs_config_r14_vals[] = {
7098   {   0, "supported" },
7099   { 0, NULL }
7100 };
7101 
7102 
7103 static int
dissect_lpp_T_additional_prs_config_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7104 dissect_lpp_T_additional_prs_config_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7105   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7106                                      1, NULL, FALSE, 0, NULL);
7107 
7108   return offset;
7109 }
7110 
7111 
7112 static const value_string lpp_T_prs_based_tbs_r14_vals[] = {
7113   {   0, "supported" },
7114   { 0, NULL }
7115 };
7116 
7117 
7118 static int
dissect_lpp_T_prs_based_tbs_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7119 dissect_lpp_T_prs_based_tbs_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7120   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7121                                      1, NULL, FALSE, 0, NULL);
7122 
7123   return offset;
7124 }
7125 
7126 
7127 static const value_string lpp_T_additionalPathsReport_r14_vals[] = {
7128   {   0, "supported" },
7129   { 0, NULL }
7130 };
7131 
7132 
7133 static int
dissect_lpp_T_additionalPathsReport_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7134 dissect_lpp_T_additionalPathsReport_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7135   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7136                                      1, NULL, FALSE, 0, NULL);
7137 
7138   return offset;
7139 }
7140 
7141 
7142 static const value_string lpp_T_densePrsConfig_r14_vals[] = {
7143   {   0, "supported" },
7144   { 0, NULL }
7145 };
7146 
7147 
7148 static int
dissect_lpp_T_densePrsConfig_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7149 dissect_lpp_T_densePrsConfig_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7150   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7151                                      1, NULL, FALSE, 0, NULL);
7152 
7153   return offset;
7154 }
7155 
7156 
7157 static const value_string lpp_T_maxSupportedPrsBandwidth_r14_vals[] = {
7158   {   0, "n6" },
7159   {   1, "n15" },
7160   {   2, "n25" },
7161   {   3, "n50" },
7162   {   4, "n75" },
7163   {   5, "n100" },
7164   { 0, NULL }
7165 };
7166 
7167 
7168 static int
dissect_lpp_T_maxSupportedPrsBandwidth_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7169 dissect_lpp_T_maxSupportedPrsBandwidth_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7170   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7171                                      6, NULL, TRUE, 0, NULL);
7172 
7173   return offset;
7174 }
7175 
7176 
7177 static const value_string lpp_T_prsOccGroup_r14_vals[] = {
7178   {   0, "supported" },
7179   { 0, NULL }
7180 };
7181 
7182 
7183 static int
dissect_lpp_T_prsOccGroup_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7184 dissect_lpp_T_prsOccGroup_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7185   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7186                                      1, NULL, FALSE, 0, NULL);
7187 
7188   return offset;
7189 }
7190 
7191 
7192 static const value_string lpp_T_prsFrequencyHopping_r14_vals[] = {
7193   {   0, "supported" },
7194   { 0, NULL }
7195 };
7196 
7197 
7198 static int
dissect_lpp_T_prsFrequencyHopping_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7199 dissect_lpp_T_prsFrequencyHopping_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7200   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7201                                      1, NULL, FALSE, 0, NULL);
7202 
7203   return offset;
7204 }
7205 
7206 
7207 static const value_string lpp_T_maxSupportedPrsConfigs_r14_vals[] = {
7208   {   0, "c2" },
7209   {   1, "c3" },
7210   { 0, NULL }
7211 };
7212 
7213 
7214 static int
dissect_lpp_T_maxSupportedPrsConfigs_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7215 dissect_lpp_T_maxSupportedPrsConfigs_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7216   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7217                                      2, NULL, FALSE, 0, NULL);
7218 
7219   return offset;
7220 }
7221 
7222 
7223 static const value_string lpp_T_periodicalReporting_r14_vals[] = {
7224   {   0, "supported" },
7225   { 0, NULL }
7226 };
7227 
7228 
7229 static int
dissect_lpp_T_periodicalReporting_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7230 dissect_lpp_T_periodicalReporting_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7231   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7232                                      1, NULL, FALSE, 0, NULL);
7233 
7234   return offset;
7235 }
7236 
7237 
7238 static const value_string lpp_T_multiPrbNprs_r14_vals[] = {
7239   {   0, "supported" },
7240   { 0, NULL }
7241 };
7242 
7243 
7244 static int
dissect_lpp_T_multiPrbNprs_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7245 dissect_lpp_T_multiPrbNprs_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7246   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7247                                      1, NULL, FALSE, 0, NULL);
7248 
7249   return offset;
7250 }
7251 
7252 
7253 static const value_string lpp_T_idleStateForMeasurements_r14_vals[] = {
7254   {   0, "required" },
7255   { 0, NULL }
7256 };
7257 
7258 
7259 static int
dissect_lpp_T_idleStateForMeasurements_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7260 dissect_lpp_T_idleStateForMeasurements_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7261   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7262                                      1, NULL, FALSE, 0, NULL);
7263 
7264   return offset;
7265 }
7266 
7267 
7268 static const value_string lpp_T_numberOfRXantennas_r14_vals[] = {
7269   {   0, "rx1" },
7270   { 0, NULL }
7271 };
7272 
7273 
7274 static int
dissect_lpp_T_numberOfRXantennas_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7275 dissect_lpp_T_numberOfRXantennas_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7276   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7277                                      1, NULL, TRUE, 0, NULL);
7278 
7279   return offset;
7280 }
7281 
7282 
7283 static const value_string lpp_T_motionMeasurements_r15_01_vals[] = {
7284   {   0, "supported" },
7285   { 0, NULL }
7286 };
7287 
7288 
7289 static int
dissect_lpp_T_motionMeasurements_r15_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7290 dissect_lpp_T_motionMeasurements_r15_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7291   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7292                                      1, NULL, FALSE, 0, NULL);
7293 
7294   return offset;
7295 }
7296 
7297 
7298 static const value_string lpp_T_interRAT_RSTDmeasurement_r15_vals[] = {
7299   {   0, "supported" },
7300   { 0, NULL }
7301 };
7302 
7303 
7304 static int
dissect_lpp_T_interRAT_RSTDmeasurement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7305 dissect_lpp_T_interRAT_RSTDmeasurement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7306   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7307                                      1, NULL, FALSE, 0, NULL);
7308 
7309   return offset;
7310 }
7311 
7312 
7313 static const per_sequence_t OTDOA_ProvideCapabilities_sequence[] = {
7314   { &hf_lpp_otdoa_Mode      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_otdoa_Mode },
7315   { &hf_lpp_supportedBandListEUTRA, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA },
7316   { &hf_lpp_supportedBandListEUTRA_v9a0, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0 },
7317   { &hf_lpp_interFreqRSTDmeasurement_r10, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_interFreqRSTDmeasurement_r10 },
7318   { &hf_lpp_additionalNeighbourCellInfoList_r10, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_additionalNeighbourCellInfoList_r10 },
7319   { &hf_lpp_prs_id_r14      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_prs_id_r14 },
7320   { &hf_lpp_tp_separation_via_muting_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_tp_separation_via_muting_r14 },
7321   { &hf_lpp_additional_prs_config_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_additional_prs_config_r14 },
7322   { &hf_lpp_prs_based_tbs_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_prs_based_tbs_r14 },
7323   { &hf_lpp_additionalPathsReport_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_additionalPathsReport_r14 },
7324   { &hf_lpp_densePrsConfig_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_densePrsConfig_r14 },
7325   { &hf_lpp_maxSupportedPrsBandwidth_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_maxSupportedPrsBandwidth_r14 },
7326   { &hf_lpp_prsOccGroup_r14 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_prsOccGroup_r14 },
7327   { &hf_lpp_prsFrequencyHopping_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_prsFrequencyHopping_r14 },
7328   { &hf_lpp_maxSupportedPrsConfigs_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_maxSupportedPrsConfigs_r14 },
7329   { &hf_lpp_periodicalReporting_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_periodicalReporting_r14 },
7330   { &hf_lpp_multiPrbNprs_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_multiPrbNprs_r14 },
7331   { &hf_lpp_idleStateForMeasurements_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_idleStateForMeasurements_r14 },
7332   { &hf_lpp_numberOfRXantennas_r14, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_numberOfRXantennas_r14 },
7333   { &hf_lpp_motionMeasurements_r15_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_motionMeasurements_r15_01 },
7334   { &hf_lpp_interRAT_RSTDmeasurement_r15, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_interRAT_RSTDmeasurement_r15 },
7335   { NULL, 0, 0, NULL }
7336 };
7337 
7338 static int
dissect_lpp_OTDOA_ProvideCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7339 dissect_lpp_OTDOA_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7340   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7341                                    ett_lpp_OTDOA_ProvideCapabilities, OTDOA_ProvideCapabilities_sequence);
7342 
7343   return offset;
7344 }
7345 
7346 
7347 static int * const T_ecid_MeasSupported_bits[] = {
7348   &hf_lpp_T_ecid_MeasSupported_rsrpSup,
7349   &hf_lpp_T_ecid_MeasSupported_rsrqSup,
7350   &hf_lpp_T_ecid_MeasSupported_ueRxTxSup,
7351   &hf_lpp_T_ecid_MeasSupported_nrsrpSup_r14,
7352   &hf_lpp_T_ecid_MeasSupported_nrsrqSup_r14,
7353   NULL
7354 };
7355 
7356 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_)7357 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_) {
7358   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7359                                      1, 8, FALSE, T_ecid_MeasSupported_bits, 5, NULL, NULL);
7360 
7361   return offset;
7362 }
7363 
7364 
7365 static const value_string lpp_T_ueRxTxSupTDD_r13_vals[] = {
7366   {   0, "true" },
7367   { 0, NULL }
7368 };
7369 
7370 
7371 static int
dissect_lpp_T_ueRxTxSupTDD_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7372 dissect_lpp_T_ueRxTxSupTDD_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7373   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7374                                      1, NULL, FALSE, 0, NULL);
7375 
7376   return offset;
7377 }
7378 
7379 
7380 static const per_sequence_t ECID_ProvideCapabilities_eag_1_sequence[] = {
7381   { &hf_lpp_ueRxTxSupTDD_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_ueRxTxSupTDD_r13 },
7382   { NULL, 0, 0, NULL }
7383 };
7384 
7385 static int
dissect_lpp_ECID_ProvideCapabilities_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7386 dissect_lpp_ECID_ProvideCapabilities_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7387   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ECID_ProvideCapabilities_eag_1_sequence);
7388 
7389   return offset;
7390 }
7391 
7392 
7393 static const value_string lpp_T_periodicalReporting_r14_01_vals[] = {
7394   {   0, "supported" },
7395   { 0, NULL }
7396 };
7397 
7398 
7399 static int
dissect_lpp_T_periodicalReporting_r14_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7400 dissect_lpp_T_periodicalReporting_r14_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7401   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7402                                      1, NULL, FALSE, 0, NULL);
7403 
7404   return offset;
7405 }
7406 
7407 
7408 static const value_string lpp_T_triggeredReporting_r14_vals[] = {
7409   {   0, "supported" },
7410   { 0, NULL }
7411 };
7412 
7413 
7414 static int
dissect_lpp_T_triggeredReporting_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7415 dissect_lpp_T_triggeredReporting_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7416   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7417                                      1, NULL, FALSE, 0, NULL);
7418 
7419   return offset;
7420 }
7421 
7422 
7423 static const value_string lpp_T_idleStateForMeasurements_r14_02_vals[] = {
7424   {   0, "required" },
7425   { 0, NULL }
7426 };
7427 
7428 
7429 static int
dissect_lpp_T_idleStateForMeasurements_r14_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7430 dissect_lpp_T_idleStateForMeasurements_r14_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7431   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7432                                      1, NULL, FALSE, 0, NULL);
7433 
7434   return offset;
7435 }
7436 
7437 
7438 static const per_sequence_t ECID_ProvideCapabilities_eag_2_sequence[] = {
7439   { &hf_lpp_periodicalReporting_r14_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_periodicalReporting_r14_01 },
7440   { &hf_lpp_triggeredReporting_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_triggeredReporting_r14 },
7441   { &hf_lpp_idleStateForMeasurements_r14_02, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_idleStateForMeasurements_r14_02 },
7442   { NULL, 0, 0, NULL }
7443 };
7444 
7445 static int
dissect_lpp_ECID_ProvideCapabilities_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7446 dissect_lpp_ECID_ProvideCapabilities_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7447   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ECID_ProvideCapabilities_eag_2_sequence);
7448 
7449   return offset;
7450 }
7451 
7452 
7453 static const per_sequence_t ECID_ProvideCapabilities_sequence[] = {
7454   { &hf_lpp_ecid_MeasSupported, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_ecid_MeasSupported },
7455   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ECID_ProvideCapabilities_eag_1 },
7456   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ECID_ProvideCapabilities_eag_2 },
7457   { NULL, 0, 0, NULL }
7458 };
7459 
7460 static int
dissect_lpp_ECID_ProvideCapabilities(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7461 dissect_lpp_ECID_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7462   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7463                                    ett_lpp_ECID_ProvideCapabilities, ECID_ProvideCapabilities_sequence);
7464 
7465   return offset;
7466 }
7467 
7468 
7469 static int * const T_sensor_Modes_r13_bits[] = {
7470   &hf_lpp_T_sensor_Modes_r13_standalone,
7471   &hf_lpp_T_sensor_Modes_r13_ue_assisted,
7472   &hf_lpp_T_sensor_Modes_r13_ue_based,
7473   NULL
7474 };
7475 
7476 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_)7477 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_) {
7478   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7479                                      1, 8, FALSE, T_sensor_Modes_r13_bits, 3, NULL, NULL);
7480 
7481   return offset;
7482 }
7483 
7484 
7485 static const value_string lpp_T_validityPeriodSupported_v1520_vals[] = {
7486   {   0, "true" },
7487   { 0, NULL }
7488 };
7489 
7490 
7491 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_)7492 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_) {
7493   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7494                                      1, NULL, FALSE, 0, NULL);
7495 
7496   return offset;
7497 }
7498 
7499 
7500 static const value_string lpp_T_validityAreaSupported_v1520_vals[] = {
7501   {   0, "true" },
7502   { 0, NULL }
7503 };
7504 
7505 
7506 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_)7507 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_) {
7508   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7509                                      1, NULL, FALSE, 0, NULL);
7510 
7511   return offset;
7512 }
7513 
7514 
7515 static const per_sequence_t Sensor_AssistanceDataSupportList_r14_eag_1_sequence[] = {
7516   { &hf_lpp_validityPeriodSupported_v1520, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_validityPeriodSupported_v1520 },
7517   { &hf_lpp_validityAreaSupported_v1520, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_validityAreaSupported_v1520 },
7518   { NULL, 0, 0, NULL }
7519 };
7520 
7521 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_)7522 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_) {
7523   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_AssistanceDataSupportList_r14_eag_1_sequence);
7524 
7525   return offset;
7526 }
7527 
7528 
7529 static const per_sequence_t Sensor_AssistanceDataSupportList_r14_sequence[] = {
7530   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_AssistanceDataSupportList_r14_eag_1 },
7531   { NULL, 0, 0, NULL }
7532 };
7533 
7534 static int
dissect_lpp_Sensor_AssistanceDataSupportList_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7535 dissect_lpp_Sensor_AssistanceDataSupportList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7536   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7537                                    ett_lpp_Sensor_AssistanceDataSupportList_r14, Sensor_AssistanceDataSupportList_r14_sequence);
7538 
7539   return offset;
7540 }
7541 
7542 
7543 static const value_string lpp_T_idleStateForMeasurements_r14_03_vals[] = {
7544   {   0, "required" },
7545   { 0, NULL }
7546 };
7547 
7548 
7549 static int
dissect_lpp_T_idleStateForMeasurements_r14_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7550 dissect_lpp_T_idleStateForMeasurements_r14_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7551   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7552                                      1, NULL, FALSE, 0, NULL);
7553 
7554   return offset;
7555 }
7556 
7557 
7558 static const per_sequence_t Sensor_ProvideCapabilities_r13_eag_1_sequence[] = {
7559   { &hf_lpp_sensor_AssistanceDataSupportList_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_AssistanceDataSupportList_r14 },
7560   { &hf_lpp_periodicalReportingSupported_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
7561   { &hf_lpp_idleStateForMeasurements_r14_03, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_idleStateForMeasurements_r14_03 },
7562   { NULL, 0, 0, NULL }
7563 };
7564 
7565 static int
dissect_lpp_Sensor_ProvideCapabilities_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7566 dissect_lpp_Sensor_ProvideCapabilities_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7567   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_ProvideCapabilities_r13_eag_1_sequence);
7568 
7569   return offset;
7570 }
7571 
7572 
7573 static const value_string lpp_T_sensor_MotionInformationSup_r15_vals[] = {
7574   {   0, "true" },
7575   { 0, NULL }
7576 };
7577 
7578 
7579 static int
dissect_lpp_T_sensor_MotionInformationSup_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7580 dissect_lpp_T_sensor_MotionInformationSup_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7581   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7582                                      1, NULL, FALSE, 0, NULL);
7583 
7584   return offset;
7585 }
7586 
7587 
7588 static const per_sequence_t Sensor_ProvideCapabilities_r13_eag_2_sequence[] = {
7589   { &hf_lpp_sensor_MotionInformationSup_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_sensor_MotionInformationSup_r15 },
7590   { NULL, 0, 0, NULL }
7591 };
7592 
7593 static int
dissect_lpp_Sensor_ProvideCapabilities_r13_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7594 dissect_lpp_Sensor_ProvideCapabilities_r13_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7595   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_ProvideCapabilities_r13_eag_2_sequence);
7596 
7597   return offset;
7598 }
7599 
7600 
7601 static const value_string lpp_T_adjustmentSupported_r16_vals[] = {
7602   {   0, "true" },
7603   { 0, NULL }
7604 };
7605 
7606 
7607 static int
dissect_lpp_T_adjustmentSupported_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7608 dissect_lpp_T_adjustmentSupported_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7609   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7610                                      1, NULL, FALSE, 0, NULL);
7611 
7612   return offset;
7613 }
7614 
7615 
7616 static const per_sequence_t Sensor_ProvideCapabilities_r13_eag_3_sequence[] = {
7617   { &hf_lpp_adjustmentSupported_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_adjustmentSupported_r16 },
7618   { NULL, 0, 0, NULL }
7619 };
7620 
7621 static int
dissect_lpp_Sensor_ProvideCapabilities_r13_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7622 dissect_lpp_Sensor_ProvideCapabilities_r13_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7623   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_ProvideCapabilities_r13_eag_3_sequence);
7624 
7625   return offset;
7626 }
7627 
7628 
7629 static const per_sequence_t Sensor_ProvideCapabilities_r13_sequence[] = {
7630   { &hf_lpp_sensor_Modes_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_sensor_Modes_r13 },
7631   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_ProvideCapabilities_r13_eag_1 },
7632   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_ProvideCapabilities_r13_eag_2 },
7633   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_ProvideCapabilities_r13_eag_3 },
7634   { NULL, 0, 0, NULL }
7635 };
7636 
7637 static int
dissect_lpp_Sensor_ProvideCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7638 dissect_lpp_Sensor_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7639   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7640                                    ett_lpp_Sensor_ProvideCapabilities_r13, Sensor_ProvideCapabilities_r13_sequence);
7641 
7642   return offset;
7643 }
7644 
7645 
7646 static int * const T_tbs_Modes_r13_bits[] = {
7647   &hf_lpp_T_tbs_Modes_r13_standalone,
7648   &hf_lpp_T_tbs_Modes_r13_ue_assisted,
7649   &hf_lpp_T_tbs_Modes_r13_ue_based,
7650   NULL
7651 };
7652 
7653 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_)7654 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_) {
7655   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7656                                      1, 8, FALSE, T_tbs_Modes_r13_bits, 3, NULL, NULL);
7657 
7658   return offset;
7659 }
7660 
7661 
7662 static const per_sequence_t MBS_AssistanceDataSupportList_r14_sequence[] = {
7663   { &hf_lpp_mbs_AcquisitionAssistanceDataSupport_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
7664   { &hf_lpp_mbs_AlmanacAssistanceDataSupport_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
7665   { NULL, 0, 0, NULL }
7666 };
7667 
7668 static int
dissect_lpp_MBS_AssistanceDataSupportList_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7669 dissect_lpp_MBS_AssistanceDataSupportList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7670   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7671                                    ett_lpp_MBS_AssistanceDataSupportList_r14, MBS_AssistanceDataSupportList_r14_sequence);
7672 
7673   return offset;
7674 }
7675 
7676 
7677 static int * const T_mbs_ConfigSupport_r14_bits[] = {
7678   &hf_lpp_T_mbs_ConfigSupport_r14_tb1,
7679   &hf_lpp_T_mbs_ConfigSupport_r14_tb2,
7680   &hf_lpp_T_mbs_ConfigSupport_r14_tb3,
7681   &hf_lpp_T_mbs_ConfigSupport_r14_tb4,
7682   NULL
7683 };
7684 
7685 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_)7686 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_) {
7687   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7688                                      1, 8, FALSE, T_mbs_ConfigSupport_r14_bits, 4, NULL, NULL);
7689 
7690   return offset;
7691 }
7692 
7693 
7694 static const value_string lpp_T_mbs_IdleStateForMeasurements_r14_vals[] = {
7695   {   0, "required" },
7696   { 0, NULL }
7697 };
7698 
7699 
7700 static int
dissect_lpp_T_mbs_IdleStateForMeasurements_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7701 dissect_lpp_T_mbs_IdleStateForMeasurements_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7702   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7703                                      1, NULL, FALSE, 0, NULL);
7704 
7705   return offset;
7706 }
7707 
7708 
7709 static const per_sequence_t TBS_ProvideCapabilities_r13_eag_1_sequence[] = {
7710   { &hf_lpp_mbs_AssistanceDataSupportList_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_MBS_AssistanceDataSupportList_r14 },
7711   { &hf_lpp_periodicalReportingSupported_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
7712   { &hf_lpp_mbs_ConfigSupport_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_mbs_ConfigSupport_r14 },
7713   { &hf_lpp_mbs_IdleStateForMeasurements_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_mbs_IdleStateForMeasurements_r14 },
7714   { NULL, 0, 0, NULL }
7715 };
7716 
7717 static int
dissect_lpp_TBS_ProvideCapabilities_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7718 dissect_lpp_TBS_ProvideCapabilities_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7719   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, TBS_ProvideCapabilities_r13_eag_1_sequence);
7720 
7721   return offset;
7722 }
7723 
7724 
7725 static const per_sequence_t TBS_ProvideCapabilities_r13_sequence[] = {
7726   { &hf_lpp_tbs_Modes_r13   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_tbs_Modes_r13 },
7727   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_TBS_ProvideCapabilities_r13_eag_1 },
7728   { NULL, 0, 0, NULL }
7729 };
7730 
7731 static int
dissect_lpp_TBS_ProvideCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7732 dissect_lpp_TBS_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7734                                    ett_lpp_TBS_ProvideCapabilities_r13, TBS_ProvideCapabilities_r13_sequence);
7735 
7736   return offset;
7737 }
7738 
7739 
7740 static int * const T_wlan_Modes_r13_bits[] = {
7741   &hf_lpp_T_wlan_Modes_r13_standalone,
7742   &hf_lpp_T_wlan_Modes_r13_ue_assisted,
7743   &hf_lpp_T_wlan_Modes_r13_ue_based,
7744   NULL
7745 };
7746 
7747 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_)7748 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_) {
7749   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7750                                      1, 8, FALSE, T_wlan_Modes_r13_bits, 3, NULL, NULL);
7751 
7752   return offset;
7753 }
7754 
7755 
7756 static int * const T_wlan_MeasSupported_r13_bits[] = {
7757   &hf_lpp_T_wlan_MeasSupported_r13_rssi_r13,
7758   &hf_lpp_T_wlan_MeasSupported_r13_rtt_r13,
7759   NULL
7760 };
7761 
7762 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_)7763 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_) {
7764   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7765                                      1, 8, FALSE, T_wlan_MeasSupported_r13_bits, 2, NULL, NULL);
7766 
7767   return offset;
7768 }
7769 
7770 
7771 static int * const T_wlan_AP_AD_Supported_r14_bits[] = {
7772   &hf_lpp_T_wlan_AP_AD_Supported_r14_ap_identifier,
7773   &hf_lpp_T_wlan_AP_AD_Supported_r14_ap_location,
7774   NULL
7775 };
7776 
7777 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_)7778 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_) {
7779   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7780                                      1, 8, FALSE, T_wlan_AP_AD_Supported_r14_bits, 2, NULL, NULL);
7781 
7782   return offset;
7783 }
7784 
7785 
7786 static const value_string lpp_T_idleStateForMeasurements_r14_04_vals[] = {
7787   {   0, "required" },
7788   { 0, NULL }
7789 };
7790 
7791 
7792 static int
dissect_lpp_T_idleStateForMeasurements_r14_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7793 dissect_lpp_T_idleStateForMeasurements_r14_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7794   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7795                                      1, NULL, FALSE, 0, NULL);
7796 
7797   return offset;
7798 }
7799 
7800 
7801 static const per_sequence_t WLAN_ProvideCapabilities_r13_eag_1_sequence[] = {
7802   { &hf_lpp_wlan_AP_AD_Supported_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_wlan_AP_AD_Supported_r14 },
7803   { &hf_lpp_periodicalReportingSupported_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
7804   { &hf_lpp_idleStateForMeasurements_r14_04, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_idleStateForMeasurements_r14_04 },
7805   { NULL, 0, 0, NULL }
7806 };
7807 
7808 static int
dissect_lpp_WLAN_ProvideCapabilities_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7809 dissect_lpp_WLAN_ProvideCapabilities_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7810   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, WLAN_ProvideCapabilities_r13_eag_1_sequence);
7811 
7812   return offset;
7813 }
7814 
7815 
7816 static const per_sequence_t WLAN_ProvideCapabilities_r13_sequence[] = {
7817   { &hf_lpp_wlan_Modes_r13  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_wlan_Modes_r13 },
7818   { &hf_lpp_wlan_MeasSupported_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_wlan_MeasSupported_r13 },
7819   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_ProvideCapabilities_r13_eag_1 },
7820   { NULL, 0, 0, NULL }
7821 };
7822 
7823 static int
dissect_lpp_WLAN_ProvideCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7824 dissect_lpp_WLAN_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7825   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7826                                    ett_lpp_WLAN_ProvideCapabilities_r13, WLAN_ProvideCapabilities_r13_sequence);
7827 
7828   return offset;
7829 }
7830 
7831 
7832 static int * const T_bt_Modes_r13_bits[] = {
7833   &hf_lpp_T_bt_Modes_r13_standalone,
7834   &hf_lpp_T_bt_Modes_r13_ue_assisted,
7835   NULL
7836 };
7837 
7838 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_)7839 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_) {
7840   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7841                                      1, 8, FALSE, T_bt_Modes_r13_bits, 2, NULL, NULL);
7842 
7843   return offset;
7844 }
7845 
7846 
7847 static int * const T_bt_MeasSupported_r13_bits[] = {
7848   &hf_lpp_T_bt_MeasSupported_r13_rssi_r13,
7849   NULL
7850 };
7851 
7852 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_)7853 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_) {
7854   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7855                                      1, 8, FALSE, T_bt_MeasSupported_r13_bits, 1, NULL, NULL);
7856 
7857   return offset;
7858 }
7859 
7860 
7861 static const value_string lpp_T_idleStateForMeasurements_r14_05_vals[] = {
7862   {   0, "required" },
7863   { 0, NULL }
7864 };
7865 
7866 
7867 static int
dissect_lpp_T_idleStateForMeasurements_r14_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7868 dissect_lpp_T_idleStateForMeasurements_r14_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7869   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7870                                      1, NULL, FALSE, 0, NULL);
7871 
7872   return offset;
7873 }
7874 
7875 
7876 static const per_sequence_t BT_ProvideCapabilities_r13_eag_1_sequence[] = {
7877   { &hf_lpp_idleStateForMeasurements_r14_05, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_idleStateForMeasurements_r14_05 },
7878   { &hf_lpp_periodicalReportingSupported_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
7879   { NULL, 0, 0, NULL }
7880 };
7881 
7882 static int
dissect_lpp_BT_ProvideCapabilities_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7883 dissect_lpp_BT_ProvideCapabilities_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7884   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, BT_ProvideCapabilities_r13_eag_1_sequence);
7885 
7886   return offset;
7887 }
7888 
7889 
7890 static const per_sequence_t BT_ProvideCapabilities_r13_sequence[] = {
7891   { &hf_lpp_bt_Modes_r13    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_bt_Modes_r13 },
7892   { &hf_lpp_bt_MeasSupported_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_bt_MeasSupported_r13 },
7893   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_BT_ProvideCapabilities_r13_eag_1 },
7894   { NULL, 0, 0, NULL }
7895 };
7896 
7897 static int
dissect_lpp_BT_ProvideCapabilities_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7898 dissect_lpp_BT_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7899   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7900                                    ett_lpp_BT_ProvideCapabilities_r13, BT_ProvideCapabilities_r13_sequence);
7901 
7902   return offset;
7903 }
7904 
7905 
7906 static const per_sequence_t ProvideCapabilities_r9_IEs_eag_1_sequence[] = {
7907   { &hf_lpp_sensor_ProvideCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_ProvideCapabilities_r13 },
7908   { &hf_lpp_tbs_ProvideCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TBS_ProvideCapabilities_r13 },
7909   { &hf_lpp_wlan_ProvideCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_WLAN_ProvideCapabilities_r13 },
7910   { &hf_lpp_bt_ProvideCapabilities_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BT_ProvideCapabilities_r13 },
7911   { NULL, 0, 0, NULL }
7912 };
7913 
7914 static int
dissect_lpp_ProvideCapabilities_r9_IEs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7915 dissect_lpp_ProvideCapabilities_r9_IEs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7916   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ProvideCapabilities_r9_IEs_eag_1_sequence);
7917 
7918   return offset;
7919 }
7920 
7921 
7922 static int * const T_nr_ECID_MeasSupported_r16_bits[] = {
7923   &hf_lpp_T_nr_ECID_MeasSupported_r16_ssrsrpSup,
7924   &hf_lpp_T_nr_ECID_MeasSupported_r16_ssrsrqSup,
7925   &hf_lpp_T_nr_ECID_MeasSupported_r16_csirsrpSup,
7926   &hf_lpp_T_nr_ECID_MeasSupported_r16_csirsrqSup,
7927   NULL
7928 };
7929 
7930 static int
dissect_lpp_T_nr_ECID_MeasSupported_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7931 dissect_lpp_T_nr_ECID_MeasSupported_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7932   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7933                                      1, 8, FALSE, T_nr_ECID_MeasSupported_r16_bits, 4, NULL, NULL);
7934 
7935   return offset;
7936 }
7937 
7938 
7939 static const value_string lpp_T_periodicalReporting_r16_vals[] = {
7940   {   0, "supported" },
7941   { 0, NULL }
7942 };
7943 
7944 
7945 static int
dissect_lpp_T_periodicalReporting_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7946 dissect_lpp_T_periodicalReporting_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7947   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7948                                      1, NULL, FALSE, 0, NULL);
7949 
7950   return offset;
7951 }
7952 
7953 
7954 static const value_string lpp_T_triggeredReporting_r16_vals[] = {
7955   {   0, "supported" },
7956   { 0, NULL }
7957 };
7958 
7959 
7960 static int
dissect_lpp_T_triggeredReporting_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7961 dissect_lpp_T_triggeredReporting_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7962   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7963                                      1, NULL, FALSE, 0, NULL);
7964 
7965   return offset;
7966 }
7967 
7968 
7969 static const per_sequence_t NR_ECID_ProvideCapabilities_r16_sequence[] = {
7970   { &hf_lpp_nr_ECID_MeasSupported_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_ECID_MeasSupported_r16 },
7971   { &hf_lpp_periodicalReporting_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_periodicalReporting_r16 },
7972   { &hf_lpp_triggeredReporting_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_triggeredReporting_r16 },
7973   { NULL, 0, 0, NULL }
7974 };
7975 
7976 static int
dissect_lpp_NR_ECID_ProvideCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7977 dissect_lpp_NR_ECID_ProvideCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7978   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7979                                    ett_lpp_NR_ECID_ProvideCapabilities_r16, NR_ECID_ProvideCapabilities_r16_sequence);
7980 
7981   return offset;
7982 }
7983 
7984 
7985 
7986 static int
dissect_lpp_INTEGER_1_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7987 dissect_lpp_INTEGER_1_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7988   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7989                                                             1U, 2U, NULL, FALSE);
7990 
7991   return offset;
7992 }
7993 
7994 
7995 static const value_string lpp_T_maxNrOfTRP_AcrossFreqs_r16_vals[] = {
7996   {   0, "n4" },
7997   {   1, "n6" },
7998   {   2, "n12" },
7999   {   3, "n16" },
8000   {   4, "n32" },
8001   {   5, "n64" },
8002   {   6, "n128" },
8003   {   7, "n256" },
8004   { 0, NULL }
8005 };
8006 
8007 
8008 static int
dissect_lpp_T_maxNrOfTRP_AcrossFreqs_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8009 dissect_lpp_T_maxNrOfTRP_AcrossFreqs_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8010   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8011                                      8, NULL, TRUE, 0, NULL);
8012 
8013   return offset;
8014 }
8015 
8016 
8017 
8018 static int
dissect_lpp_INTEGER_1_4(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8019 dissect_lpp_INTEGER_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8020   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8021                                                             1U, 4U, NULL, FALSE);
8022 
8023   return offset;
8024 }
8025 
8026 
8027 
8028 static int
dissect_lpp_FreqBandIndicatorNR_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8029 dissect_lpp_FreqBandIndicatorNR_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8030   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8031                                                             1U, 1024U, NULL, FALSE);
8032 
8033   return offset;
8034 }
8035 
8036 
8037 static const value_string lpp_T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16_vals[] = {
8038   {   0, "n1" },
8039   {   1, "n2" },
8040   {   2, "n4" },
8041   {   3, "n8" },
8042   {   4, "n16" },
8043   {   5, "n32" },
8044   {   6, "n64" },
8045   { 0, NULL }
8046 };
8047 
8048 
8049 static int
dissect_lpp_T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8050 dissect_lpp_T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8051   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8052                                      7, NULL, TRUE, 0, NULL);
8053 
8054   return offset;
8055 }
8056 
8057 
8058 static const value_string lpp_T_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16_vals[] = {
8059   {   0, "n6" },
8060   {   1, "n24" },
8061   {   2, "n32" },
8062   {   3, "n64" },
8063   {   4, "n96" },
8064   {   5, "n128" },
8065   {   6, "n256" },
8066   {   7, "n512" },
8067   {   8, "n1024" },
8068   { 0, NULL }
8069 };
8070 
8071 
8072 static int
dissect_lpp_T_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8073 dissect_lpp_T_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8074   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8075                                      9, NULL, TRUE, 0, NULL);
8076 
8077   return offset;
8078 }
8079 
8080 
8081 static const per_sequence_t DL_PRS_ResourcesCapabilityPerBand_r16_sequence[] = {
8082   { &hf_lpp_freqBandIndicatorNR_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
8083   { &hf_lpp_maxNrOfDL_PRS_ResourcesPerResourceSet_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16 },
8084   { &hf_lpp_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16 },
8085   { NULL, 0, 0, NULL }
8086 };
8087 
8088 static int
dissect_lpp_DL_PRS_ResourcesCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8089 dissect_lpp_DL_PRS_ResourcesCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8090   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8091                                    ett_lpp_DL_PRS_ResourcesCapabilityPerBand_r16, DL_PRS_ResourcesCapabilityPerBand_r16_sequence);
8092 
8093   return offset;
8094 }
8095 
8096 
8097 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16_sequence_of[1] = {
8098   { &hf_lpp_dl_PRS_ResourcesCapabilityBandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_ResourcesCapabilityPerBand_r16 },
8099 };
8100 
8101 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8102 dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8103   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8104                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16, SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16_sequence_of,
8105                                                   1, nrMaxBands_r16, FALSE);
8106 
8107   return offset;
8108 }
8109 
8110 
8111 static const per_sequence_t SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16_sequence_of[1] = {
8112   { &hf_lpp_bandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
8113 };
8114 
8115 static int
dissect_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8116 dissect_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8117   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8118                                                   ett_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16, SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16_sequence_of,
8119                                                   1, maxSimultaneousBands_r16, FALSE);
8120 
8121   return offset;
8122 }
8123 
8124 
8125 static const value_string lpp_T_fr1_Only_r16_vals[] = {
8126   {   0, "n6" },
8127   {   1, "n24" },
8128   {   2, "n64" },
8129   {   3, "n128" },
8130   {   4, "n192" },
8131   {   5, "n256" },
8132   {   6, "n512" },
8133   {   7, "n1024" },
8134   {   8, "n2048" },
8135   { 0, NULL }
8136 };
8137 
8138 
8139 static int
dissect_lpp_T_fr1_Only_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8140 dissect_lpp_T_fr1_Only_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8141   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8142                                      9, NULL, FALSE, 0, NULL);
8143 
8144   return offset;
8145 }
8146 
8147 
8148 static const value_string lpp_T_fr2_Only_r16_vals[] = {
8149   {   0, "n24" },
8150   {   1, "n64" },
8151   {   2, "n96" },
8152   {   3, "n128" },
8153   {   4, "n192" },
8154   {   5, "n256" },
8155   {   6, "n512" },
8156   {   7, "n1024" },
8157   {   8, "n2048" },
8158   { 0, NULL }
8159 };
8160 
8161 
8162 static int
dissect_lpp_T_fr2_Only_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8163 dissect_lpp_T_fr2_Only_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8164   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8165                                      9, NULL, FALSE, 0, NULL);
8166 
8167   return offset;
8168 }
8169 
8170 
8171 static const value_string lpp_T_fr1_r16_vals[] = {
8172   {   0, "n6" },
8173   {   1, "n24" },
8174   {   2, "n64" },
8175   {   3, "n96" },
8176   {   4, "n128" },
8177   {   5, "n192" },
8178   {   6, "n256" },
8179   {   7, "n512" },
8180   {   8, "n1024" },
8181   {   9, "n2048" },
8182   { 0, NULL }
8183 };
8184 
8185 
8186 static int
dissect_lpp_T_fr1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8187 dissect_lpp_T_fr1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8188   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8189                                      10, NULL, FALSE, 0, NULL);
8190 
8191   return offset;
8192 }
8193 
8194 
8195 static const value_string lpp_T_fr2_r16_vals[] = {
8196   {   0, "n24" },
8197   {   1, "n64" },
8198   {   2, "n96" },
8199   {   3, "n128" },
8200   {   4, "n192" },
8201   {   5, "n256" },
8202   {   6, "n512" },
8203   {   7, "n1024" },
8204   {   8, "n2048" },
8205   { 0, NULL }
8206 };
8207 
8208 
8209 static int
dissect_lpp_T_fr2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8210 dissect_lpp_T_fr2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8211   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8212                                      9, NULL, FALSE, 0, NULL);
8213 
8214   return offset;
8215 }
8216 
8217 
8218 static const per_sequence_t T_fr1_FR2Mix_r16_sequence[] = {
8219   { &hf_lpp_fr1_r16         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_fr1_r16 },
8220   { &hf_lpp_fr2_r16         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_fr2_r16 },
8221   { NULL, 0, 0, NULL }
8222 };
8223 
8224 static int
dissect_lpp_T_fr1_FR2Mix_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8225 dissect_lpp_T_fr1_FR2Mix_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8226   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8227                                    ett_lpp_T_fr1_FR2Mix_r16, T_fr1_FR2Mix_r16_sequence);
8228 
8229   return offset;
8230 }
8231 
8232 
8233 static const value_string lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16_vals[] = {
8234   {   0, "fr1-Only-r16" },
8235   {   1, "fr2-Only-r16" },
8236   {   2, "fr1-FR2Mix-r16" },
8237   { 0, NULL }
8238 };
8239 
8240 static const per_choice_t T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16_choice[] = {
8241   {   0, &hf_lpp_fr1_Only_r16    , ASN1_EXTENSION_ROOT    , dissect_lpp_T_fr1_Only_r16 },
8242   {   1, &hf_lpp_fr2_Only_r16    , ASN1_EXTENSION_ROOT    , dissect_lpp_T_fr2_Only_r16 },
8243   {   2, &hf_lpp_fr1_FR2Mix_r16  , ASN1_EXTENSION_ROOT    , dissect_lpp_T_fr1_FR2Mix_r16 },
8244   { 0, NULL, 0, NULL }
8245 };
8246 
8247 static int
dissect_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8248 dissect_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8249   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8250                                  ett_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16, T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16_choice,
8251                                  NULL);
8252 
8253   return offset;
8254 }
8255 
8256 
8257 static const per_sequence_t DL_PRS_ResourcesBandCombination_r16_sequence[] = {
8258   { &hf_lpp_bandList_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16 },
8259   { &hf_lpp_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16 },
8260   { NULL, 0, 0, NULL }
8261 };
8262 
8263 static int
dissect_lpp_DL_PRS_ResourcesBandCombination_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8264 dissect_lpp_DL_PRS_ResourcesBandCombination_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8265   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8266                                    ett_lpp_DL_PRS_ResourcesBandCombination_r16, DL_PRS_ResourcesBandCombination_r16_sequence);
8267 
8268   return offset;
8269 }
8270 
8271 
8272 static const per_sequence_t DL_PRS_ResourcesBandCombinationList_r16_sequence_of[1] = {
8273   { &hf_lpp_DL_PRS_ResourcesBandCombinationList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_ResourcesBandCombination_r16 },
8274 };
8275 
8276 static int
dissect_lpp_DL_PRS_ResourcesBandCombinationList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8277 dissect_lpp_DL_PRS_ResourcesBandCombinationList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8278   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8279                                                   ett_lpp_DL_PRS_ResourcesBandCombinationList_r16, DL_PRS_ResourcesBandCombinationList_r16_sequence_of,
8280                                                   1, maxBandComb_r16, FALSE);
8281 
8282   return offset;
8283 }
8284 
8285 
8286 static const per_sequence_t NR_DL_PRS_ResourcesCapability_r16_sequence[] = {
8287   { &hf_lpp_maxNrOfDL_PRS_ResourceSetPerTrpPerFrequencyLayer_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_2 },
8288   { &hf_lpp_maxNrOfTRP_AcrossFreqs_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNrOfTRP_AcrossFreqs_r16 },
8289   { &hf_lpp_maxNrOfPosLayer_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_4 },
8290   { &hf_lpp_dl_PRS_ResourcesCapabilityBandList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16 },
8291   { &hf_lpp_dl_PRS_ResourcesBandCombinationList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_ResourcesBandCombinationList_r16 },
8292   { NULL, 0, 0, NULL }
8293 };
8294 
8295 static int
dissect_lpp_NR_DL_PRS_ResourcesCapability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8296 dissect_lpp_NR_DL_PRS_ResourcesCapability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8297   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8298                                    ett_lpp_NR_DL_PRS_ResourcesCapability_r16, NR_DL_PRS_ResourcesCapability_r16_sequence);
8299 
8300   return offset;
8301 }
8302 
8303 
8304 static const value_string lpp_T_supportOfRSRP_MeasFR1_r16_vals[] = {
8305   {   0, "supported" },
8306   { 0, NULL }
8307 };
8308 
8309 
8310 static int
dissect_lpp_T_supportOfRSRP_MeasFR1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8311 dissect_lpp_T_supportOfRSRP_MeasFR1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8312   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8313                                      1, NULL, FALSE, 0, NULL);
8314 
8315   return offset;
8316 }
8317 
8318 
8319 static const value_string lpp_T_supportOfRSRP_MeasFR2_r16_vals[] = {
8320   {   0, "supported" },
8321   { 0, NULL }
8322 };
8323 
8324 
8325 static int
dissect_lpp_T_supportOfRSRP_MeasFR2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8326 dissect_lpp_T_supportOfRSRP_MeasFR2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8327   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8328                                      1, NULL, FALSE, 0, NULL);
8329 
8330   return offset;
8331 }
8332 
8333 
8334 static const value_string lpp_T_srs_AssocPRS_MultiLayersFR1_r16_vals[] = {
8335   {   0, "supported" },
8336   { 0, NULL }
8337 };
8338 
8339 
8340 static int
dissect_lpp_T_srs_AssocPRS_MultiLayersFR1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8341 dissect_lpp_T_srs_AssocPRS_MultiLayersFR1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8342   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8343                                      1, NULL, FALSE, 0, NULL);
8344 
8345   return offset;
8346 }
8347 
8348 
8349 static const value_string lpp_T_srs_AssocPRS_MultiLayersFR2_r16_vals[] = {
8350   {   0, "supported" },
8351   { 0, NULL }
8352 };
8353 
8354 
8355 static int
dissect_lpp_T_srs_AssocPRS_MultiLayersFR2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8356 dissect_lpp_T_srs_AssocPRS_MultiLayersFR2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8357   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8358                                      1, NULL, FALSE, 0, NULL);
8359 
8360   return offset;
8361 }
8362 
8363 
8364 static const per_sequence_t NR_Multi_RTT_MeasurementCapability_r16_sequence[] = {
8365   { &hf_lpp_maxNrOfRx_TX_MeasFR1_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_4 },
8366   { &hf_lpp_maxNrOfRx_TX_MeasFR2_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_4 },
8367   { &hf_lpp_supportOfRSRP_MeasFR1_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_supportOfRSRP_MeasFR1_r16 },
8368   { &hf_lpp_supportOfRSRP_MeasFR2_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_supportOfRSRP_MeasFR2_r16 },
8369   { &hf_lpp_srs_AssocPRS_MultiLayersFR1_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_srs_AssocPRS_MultiLayersFR1_r16 },
8370   { &hf_lpp_srs_AssocPRS_MultiLayersFR2_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_srs_AssocPRS_MultiLayersFR2_r16 },
8371   { NULL, 0, 0, NULL }
8372 };
8373 
8374 static int
dissect_lpp_NR_Multi_RTT_MeasurementCapability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8375 dissect_lpp_NR_Multi_RTT_MeasurementCapability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8376   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8377                                    ett_lpp_NR_Multi_RTT_MeasurementCapability_r16, NR_Multi_RTT_MeasurementCapability_r16_sequence);
8378 
8379   return offset;
8380 }
8381 
8382 
8383 static const value_string lpp_T_ssb_FromNeighCellAsQCL_r16_vals[] = {
8384   {   0, "supported" },
8385   { 0, NULL }
8386 };
8387 
8388 
8389 static int
dissect_lpp_T_ssb_FromNeighCellAsQCL_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8390 dissect_lpp_T_ssb_FromNeighCellAsQCL_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8391   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8392                                      1, NULL, FALSE, 0, NULL);
8393 
8394   return offset;
8395 }
8396 
8397 
8398 static const value_string lpp_T_prs_FromServNeighCellAsQCL_r16_vals[] = {
8399   {   0, "supported" },
8400   { 0, NULL }
8401 };
8402 
8403 
8404 static int
dissect_lpp_T_prs_FromServNeighCellAsQCL_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8405 dissect_lpp_T_prs_FromServNeighCellAsQCL_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8406   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8407                                      1, NULL, FALSE, 0, NULL);
8408 
8409   return offset;
8410 }
8411 
8412 
8413 static const per_sequence_t DL_PRS_QCL_ProcessingCapabilityPerBand_r16_sequence[] = {
8414   { &hf_lpp_freqBandIndicatorNR_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
8415   { &hf_lpp_ssb_FromNeighCellAsQCL_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_ssb_FromNeighCellAsQCL_r16 },
8416   { &hf_lpp_prs_FromServNeighCellAsQCL_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_prs_FromServNeighCellAsQCL_r16 },
8417   { NULL, 0, 0, NULL }
8418 };
8419 
8420 static int
dissect_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8421 dissect_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8422   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8423                                    ett_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16, DL_PRS_QCL_ProcessingCapabilityPerBand_r16_sequence);
8424 
8425   return offset;
8426 }
8427 
8428 
8429 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16_sequence_of[1] = {
8430   { &hf_lpp_dl_PRS_QCL_ProcessingCapabilityBandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16 },
8431 };
8432 
8433 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8434 dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8435   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8436                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16, SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16_sequence_of,
8437                                                   1, nrMaxBands_r16, FALSE);
8438 
8439   return offset;
8440 }
8441 
8442 
8443 static const per_sequence_t NR_DL_PRS_QCL_ProcessingCapability_r16_sequence[] = {
8444   { &hf_lpp_dl_PRS_QCL_ProcessingCapabilityBandList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16 },
8445   { NULL, 0, 0, NULL }
8446 };
8447 
8448 static int
dissect_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8449 dissect_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8450   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8451                                    ett_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16, NR_DL_PRS_QCL_ProcessingCapability_r16_sequence);
8452 
8453   return offset;
8454 }
8455 
8456 
8457 static const value_string lpp_T_fr1_vals[] = {
8458   {   0, "mhz5" },
8459   {   1, "mhz10" },
8460   {   2, "mhz20" },
8461   {   3, "mhz40" },
8462   {   4, "mhz50" },
8463   {   5, "mhz80" },
8464   {   6, "mhz100" },
8465   { 0, NULL }
8466 };
8467 
8468 
8469 static int
dissect_lpp_T_fr1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8470 dissect_lpp_T_fr1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8471   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8472                                      7, NULL, FALSE, 0, NULL);
8473 
8474   return offset;
8475 }
8476 
8477 
8478 static const value_string lpp_T_fr2_vals[] = {
8479   {   0, "mhz50" },
8480   {   1, "mhz100" },
8481   {   2, "mhz200" },
8482   {   3, "mhz400" },
8483   { 0, NULL }
8484 };
8485 
8486 
8487 static int
dissect_lpp_T_fr2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8488 dissect_lpp_T_fr2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8489   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8490                                      4, NULL, FALSE, 0, NULL);
8491 
8492   return offset;
8493 }
8494 
8495 
8496 static const value_string lpp_T_supportedBandwidthPRS_r16_vals[] = {
8497   {   0, "fr1" },
8498   {   1, "fr2" },
8499   { 0, NULL }
8500 };
8501 
8502 static const per_choice_t T_supportedBandwidthPRS_r16_choice[] = {
8503   {   0, &hf_lpp_fr1             , ASN1_EXTENSION_ROOT    , dissect_lpp_T_fr1 },
8504   {   1, &hf_lpp_fr2             , ASN1_EXTENSION_ROOT    , dissect_lpp_T_fr2 },
8505   { 0, NULL, 0, NULL }
8506 };
8507 
8508 static int
dissect_lpp_T_supportedBandwidthPRS_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8509 dissect_lpp_T_supportedBandwidthPRS_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8510   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8511                                  ett_lpp_T_supportedBandwidthPRS_r16, T_supportedBandwidthPRS_r16_choice,
8512                                  NULL);
8513 
8514   return offset;
8515 }
8516 
8517 
8518 static const value_string lpp_T_dl_PRS_BufferType_r16_vals[] = {
8519   {   0, "type1" },
8520   {   1, "type2" },
8521   { 0, NULL }
8522 };
8523 
8524 
8525 static int
dissect_lpp_T_dl_PRS_BufferType_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8526 dissect_lpp_T_dl_PRS_BufferType_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8527   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8528                                      2, NULL, TRUE, 0, NULL);
8529 
8530   return offset;
8531 }
8532 
8533 
8534 static const value_string lpp_T_durationOfPRS_ProcessingSymbols_r16_vals[] = {
8535   {   0, "nDot125" },
8536   {   1, "nDot25" },
8537   {   2, "nDot5" },
8538   {   3, "n1" },
8539   {   4, "n2" },
8540   {   5, "n4" },
8541   {   6, "n6" },
8542   {   7, "n8" },
8543   {   8, "n12" },
8544   {   9, "n16" },
8545   {  10, "n20" },
8546   {  11, "n25" },
8547   {  12, "n30" },
8548   {  13, "n32" },
8549   {  14, "n35" },
8550   {  15, "n40" },
8551   {  16, "n45" },
8552   {  17, "n50" },
8553   { 0, NULL }
8554 };
8555 
8556 
8557 static int
dissect_lpp_T_durationOfPRS_ProcessingSymbols_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8558 dissect_lpp_T_durationOfPRS_ProcessingSymbols_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8559   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8560                                      18, NULL, FALSE, 0, NULL);
8561 
8562   return offset;
8563 }
8564 
8565 
8566 static const value_string lpp_T_durationOfPRS_ProcessingSymbolsInEveryTms_r16_vals[] = {
8567   {   0, "n8" },
8568   {   1, "n16" },
8569   {   2, "n20" },
8570   {   3, "n30" },
8571   {   4, "n40" },
8572   {   5, "n80" },
8573   {   6, "n160" },
8574   {   7, "n320" },
8575   {   8, "n640" },
8576   {   9, "n1280" },
8577   { 0, NULL }
8578 };
8579 
8580 
8581 static int
dissect_lpp_T_durationOfPRS_ProcessingSymbolsInEveryTms_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8582 dissect_lpp_T_durationOfPRS_ProcessingSymbolsInEveryTms_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8583   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8584                                      10, NULL, FALSE, 0, NULL);
8585 
8586   return offset;
8587 }
8588 
8589 
8590 static const per_sequence_t T_durationOfPRS_Processing_r16_sequence[] = {
8591   { &hf_lpp_durationOfPRS_ProcessingSymbols_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_durationOfPRS_ProcessingSymbols_r16 },
8592   { &hf_lpp_durationOfPRS_ProcessingSymbolsInEveryTms_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_durationOfPRS_ProcessingSymbolsInEveryTms_r16 },
8593   { NULL, 0, 0, NULL }
8594 };
8595 
8596 static int
dissect_lpp_T_durationOfPRS_Processing_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8597 dissect_lpp_T_durationOfPRS_Processing_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8598   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8599                                    ett_lpp_T_durationOfPRS_Processing_r16, T_durationOfPRS_Processing_r16_sequence);
8600 
8601   return offset;
8602 }
8603 
8604 
8605 static const value_string lpp_T_scs15_r16_01_vals[] = {
8606   {   0, "n1" },
8607   {   1, "n2" },
8608   {   2, "n4" },
8609   {   3, "n8" },
8610   {   4, "n16" },
8611   {   5, "n24" },
8612   {   6, "n32" },
8613   {   7, "n48" },
8614   {   8, "n64" },
8615   { 0, NULL }
8616 };
8617 
8618 
8619 static int
dissect_lpp_T_scs15_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8620 dissect_lpp_T_scs15_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8621   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8622                                      9, NULL, FALSE, 0, NULL);
8623 
8624   return offset;
8625 }
8626 
8627 
8628 static const value_string lpp_T_scs30_r16_01_vals[] = {
8629   {   0, "n1" },
8630   {   1, "n2" },
8631   {   2, "n4" },
8632   {   3, "n8" },
8633   {   4, "n16" },
8634   {   5, "n24" },
8635   {   6, "n32" },
8636   {   7, "n48" },
8637   {   8, "n64" },
8638   { 0, NULL }
8639 };
8640 
8641 
8642 static int
dissect_lpp_T_scs30_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8643 dissect_lpp_T_scs30_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8644   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8645                                      9, NULL, FALSE, 0, NULL);
8646 
8647   return offset;
8648 }
8649 
8650 
8651 static const value_string lpp_T_scs60_r16_01_vals[] = {
8652   {   0, "n1" },
8653   {   1, "n2" },
8654   {   2, "n4" },
8655   {   3, "n8" },
8656   {   4, "n16" },
8657   {   5, "n24" },
8658   {   6, "n32" },
8659   {   7, "n48" },
8660   {   8, "n64" },
8661   { 0, NULL }
8662 };
8663 
8664 
8665 static int
dissect_lpp_T_scs60_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8666 dissect_lpp_T_scs60_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8667   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8668                                      9, NULL, FALSE, 0, NULL);
8669 
8670   return offset;
8671 }
8672 
8673 
8674 static const value_string lpp_T_scs120_r16_01_vals[] = {
8675   {   0, "n1" },
8676   {   1, "n2" },
8677   {   2, "n4" },
8678   {   3, "n8" },
8679   {   4, "n16" },
8680   {   5, "n24" },
8681   {   6, "n32" },
8682   {   7, "n48" },
8683   {   8, "n64" },
8684   { 0, NULL }
8685 };
8686 
8687 
8688 static int
dissect_lpp_T_scs120_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8689 dissect_lpp_T_scs120_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8690   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8691                                      9, NULL, FALSE, 0, NULL);
8692 
8693   return offset;
8694 }
8695 
8696 
8697 static const per_sequence_t T_maxNumOfDL_PRS_ResProcessedPerSlot_r16_sequence[] = {
8698   { &hf_lpp_scs15_r16_01    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_scs15_r16_01 },
8699   { &hf_lpp_scs30_r16_01    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_scs30_r16_01 },
8700   { &hf_lpp_scs60_r16_01    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_scs60_r16_01 },
8701   { &hf_lpp_scs120_r16_01   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_scs120_r16_01 },
8702   { NULL, 0, 0, NULL }
8703 };
8704 
8705 static int
dissect_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8706 dissect_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8707   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8708                                    ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16, T_maxNumOfDL_PRS_ResProcessedPerSlot_r16_sequence);
8709 
8710   return offset;
8711 }
8712 
8713 
8714 static const per_sequence_t PRS_ProcessingCapabilityPerBand_r16_sequence[] = {
8715   { &hf_lpp_freqBandIndicatorNR_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
8716   { &hf_lpp_supportedBandwidthPRS_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_supportedBandwidthPRS_r16 },
8717   { &hf_lpp_dl_PRS_BufferType_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dl_PRS_BufferType_r16 },
8718   { &hf_lpp_durationOfPRS_Processing_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_durationOfPRS_Processing_r16 },
8719   { &hf_lpp_maxNumOfDL_PRS_ResProcessedPerSlot_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16 },
8720   { NULL, 0, 0, NULL }
8721 };
8722 
8723 static int
dissect_lpp_PRS_ProcessingCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8724 dissect_lpp_PRS_ProcessingCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8725   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8726                                    ett_lpp_PRS_ProcessingCapabilityPerBand_r16, PRS_ProcessingCapabilityPerBand_r16_sequence);
8727 
8728   return offset;
8729 }
8730 
8731 
8732 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16_sequence_of[1] = {
8733   { &hf_lpp_prs_ProcessingCapabilityBandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_PRS_ProcessingCapabilityPerBand_r16 },
8734 };
8735 
8736 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8737 dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8738   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8739                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16, SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16_sequence_of,
8740                                                   1, nrMaxBands_r16, FALSE);
8741 
8742   return offset;
8743 }
8744 
8745 
8746 static const value_string lpp_T_simulLTE_NR_PRS_r16_vals[] = {
8747   {   0, "supported" },
8748   { 0, NULL }
8749 };
8750 
8751 
8752 static int
dissect_lpp_T_simulLTE_NR_PRS_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8753 dissect_lpp_T_simulLTE_NR_PRS_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8754   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8755                                      1, NULL, FALSE, 0, NULL);
8756 
8757   return offset;
8758 }
8759 
8760 
8761 static const per_sequence_t NR_DL_PRS_ProcessingCapability_r16_sequence[] = {
8762   { &hf_lpp_prs_ProcessingCapabilityBandList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16 },
8763   { &hf_lpp_maxSupportedFreqLayers_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_4 },
8764   { &hf_lpp_simulLTE_NR_PRS_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_simulLTE_NR_PRS_r16 },
8765   { NULL, 0, 0, NULL }
8766 };
8767 
8768 static int
dissect_lpp_NR_DL_PRS_ProcessingCapability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8769 dissect_lpp_NR_DL_PRS_ProcessingCapability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8770   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8771                                    ett_lpp_NR_DL_PRS_ProcessingCapability_r16, NR_DL_PRS_ProcessingCapability_r16_sequence);
8772 
8773   return offset;
8774 }
8775 
8776 
8777 static const value_string lpp_T_olpc_SRS_PosBasedOnPRS_Serving_r16_vals[] = {
8778   {   0, "supported" },
8779   { 0, NULL }
8780 };
8781 
8782 
8783 static int
dissect_lpp_T_olpc_SRS_PosBasedOnPRS_Serving_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8784 dissect_lpp_T_olpc_SRS_PosBasedOnPRS_Serving_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8785   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8786                                      1, NULL, FALSE, 0, NULL);
8787 
8788   return offset;
8789 }
8790 
8791 
8792 static const value_string lpp_T_olpc_SRS_PosBasedOnSSB_Neigh_r16_vals[] = {
8793   {   0, "supported" },
8794   { 0, NULL }
8795 };
8796 
8797 
8798 static int
dissect_lpp_T_olpc_SRS_PosBasedOnSSB_Neigh_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8799 dissect_lpp_T_olpc_SRS_PosBasedOnSSB_Neigh_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8800   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8801                                      1, NULL, FALSE, 0, NULL);
8802 
8803   return offset;
8804 }
8805 
8806 
8807 static const value_string lpp_T_olpc_SRS_PosBasedOnPRS_Neigh_r16_vals[] = {
8808   {   0, "supported" },
8809   { 0, NULL }
8810 };
8811 
8812 
8813 static int
dissect_lpp_T_olpc_SRS_PosBasedOnPRS_Neigh_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8814 dissect_lpp_T_olpc_SRS_PosBasedOnPRS_Neigh_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8815   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8816                                      1, NULL, FALSE, 0, NULL);
8817 
8818   return offset;
8819 }
8820 
8821 
8822 static const value_string lpp_T_maxNumberPathLossEstimatePerServing_r16_vals[] = {
8823   {   0, "n1" },
8824   {   1, "n4" },
8825   {   2, "n8" },
8826   {   3, "n16" },
8827   { 0, NULL }
8828 };
8829 
8830 
8831 static int
dissect_lpp_T_maxNumberPathLossEstimatePerServing_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8832 dissect_lpp_T_maxNumberPathLossEstimatePerServing_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8833   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8834                                      4, NULL, FALSE, 0, NULL);
8835 
8836   return offset;
8837 }
8838 
8839 
8840 static const per_sequence_t OLPC_SRS_Pos_r16_sequence[] = {
8841   { &hf_lpp_olpc_SRS_PosBasedOnPRS_Serving_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_olpc_SRS_PosBasedOnPRS_Serving_r16 },
8842   { &hf_lpp_olpc_SRS_PosBasedOnSSB_Neigh_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_olpc_SRS_PosBasedOnSSB_Neigh_r16 },
8843   { &hf_lpp_olpc_SRS_PosBasedOnPRS_Neigh_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_olpc_SRS_PosBasedOnPRS_Neigh_r16 },
8844   { &hf_lpp_maxNumberPathLossEstimatePerServing_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_maxNumberPathLossEstimatePerServing_r16 },
8845   { NULL, 0, 0, NULL }
8846 };
8847 
8848 static int
dissect_lpp_OLPC_SRS_Pos_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8849 dissect_lpp_OLPC_SRS_Pos_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8850   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8851                                    ett_lpp_OLPC_SRS_Pos_r16, OLPC_SRS_Pos_r16_sequence);
8852 
8853   return offset;
8854 }
8855 
8856 
8857 static const value_string lpp_T_spatialRelation_SRS_PosBasedOnSSB_Serving_r16_vals[] = {
8858   {   0, "supported" },
8859   { 0, NULL }
8860 };
8861 
8862 
8863 static int
dissect_lpp_T_spatialRelation_SRS_PosBasedOnSSB_Serving_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8864 dissect_lpp_T_spatialRelation_SRS_PosBasedOnSSB_Serving_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8865   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8866                                      1, NULL, FALSE, 0, NULL);
8867 
8868   return offset;
8869 }
8870 
8871 
8872 static const value_string lpp_T_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16_vals[] = {
8873   {   0, "supported" },
8874   { 0, NULL }
8875 };
8876 
8877 
8878 static int
dissect_lpp_T_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8879 dissect_lpp_T_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8880   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8881                                      1, NULL, FALSE, 0, NULL);
8882 
8883   return offset;
8884 }
8885 
8886 
8887 static const value_string lpp_T_spatialRelation_SRS_PosBasedOnPRS_Serving_r16_vals[] = {
8888   {   0, "supported" },
8889   { 0, NULL }
8890 };
8891 
8892 
8893 static int
dissect_lpp_T_spatialRelation_SRS_PosBasedOnPRS_Serving_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8894 dissect_lpp_T_spatialRelation_SRS_PosBasedOnPRS_Serving_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8895   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8896                                      1, NULL, FALSE, 0, NULL);
8897 
8898   return offset;
8899 }
8900 
8901 
8902 static const value_string lpp_T_spatialRelation_SRS_PosBasedOnSRS_r16_vals[] = {
8903   {   0, "supported" },
8904   { 0, NULL }
8905 };
8906 
8907 
8908 static int
dissect_lpp_T_spatialRelation_SRS_PosBasedOnSRS_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8909 dissect_lpp_T_spatialRelation_SRS_PosBasedOnSRS_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8910   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8911                                      1, NULL, FALSE, 0, NULL);
8912 
8913   return offset;
8914 }
8915 
8916 
8917 static const value_string lpp_T_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16_vals[] = {
8918   {   0, "supported" },
8919   { 0, NULL }
8920 };
8921 
8922 
8923 static int
dissect_lpp_T_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8924 dissect_lpp_T_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8925   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8926                                      1, NULL, FALSE, 0, NULL);
8927 
8928   return offset;
8929 }
8930 
8931 
8932 static const value_string lpp_T_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16_vals[] = {
8933   {   0, "supported" },
8934   { 0, NULL }
8935 };
8936 
8937 
8938 static int
dissect_lpp_T_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8939 dissect_lpp_T_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8940   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8941                                      1, NULL, FALSE, 0, NULL);
8942 
8943   return offset;
8944 }
8945 
8946 
8947 static const per_sequence_t SpatialRelationsSRS_Pos_r16_sequence[] = {
8948   { &hf_lpp_spatialRelation_SRS_PosBasedOnSSB_Serving_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_spatialRelation_SRS_PosBasedOnSSB_Serving_r16 },
8949   { &hf_lpp_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16 },
8950   { &hf_lpp_spatialRelation_SRS_PosBasedOnPRS_Serving_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_spatialRelation_SRS_PosBasedOnPRS_Serving_r16 },
8951   { &hf_lpp_spatialRelation_SRS_PosBasedOnSRS_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_spatialRelation_SRS_PosBasedOnSRS_r16 },
8952   { &hf_lpp_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16 },
8953   { &hf_lpp_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16 },
8954   { NULL, 0, 0, NULL }
8955 };
8956 
8957 static int
dissect_lpp_SpatialRelationsSRS_Pos_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8958 dissect_lpp_SpatialRelationsSRS_Pos_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8959   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8960                                    ett_lpp_SpatialRelationsSRS_Pos_r16, SpatialRelationsSRS_Pos_r16_sequence);
8961 
8962   return offset;
8963 }
8964 
8965 
8966 static const per_sequence_t SRS_CapabilityPerBand_r16_sequence[] = {
8967   { &hf_lpp_freqBandIndicatorNR_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
8968   { &hf_lpp_olpc_SRS_Pos_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OLPC_SRS_Pos_r16 },
8969   { &hf_lpp_spatialRelationsSRS_Pos_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SpatialRelationsSRS_Pos_r16 },
8970   { NULL, 0, 0, NULL }
8971 };
8972 
8973 static int
dissect_lpp_SRS_CapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8974 dissect_lpp_SRS_CapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8975   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8976                                    ett_lpp_SRS_CapabilityPerBand_r16, SRS_CapabilityPerBand_r16_sequence);
8977 
8978   return offset;
8979 }
8980 
8981 
8982 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16_sequence_of[1] = {
8983   { &hf_lpp_srs_CapabilityBandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SRS_CapabilityPerBand_r16 },
8984 };
8985 
8986 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8987 dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8988   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8989                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16, SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16_sequence_of,
8990                                                   1, nrMaxBands_r16, FALSE);
8991 
8992   return offset;
8993 }
8994 
8995 
8996 static const value_string lpp_T_maxNumberSRS_PosResourceSetsPerBWP_r16_vals[] = {
8997   {   0, "n1" },
8998   {   1, "n2" },
8999   {   2, "n4" },
9000   {   3, "n8" },
9001   {   4, "n12" },
9002   {   5, "n16" },
9003   { 0, NULL }
9004 };
9005 
9006 
9007 static int
dissect_lpp_T_maxNumberSRS_PosResourceSetsPerBWP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9008 dissect_lpp_T_maxNumberSRS_PosResourceSetsPerBWP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9009   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9010                                      6, NULL, FALSE, 0, NULL);
9011 
9012   return offset;
9013 }
9014 
9015 
9016 static const value_string lpp_T_maxNumberSRS_PosResourcesPerBWP_r16_vals[] = {
9017   {   0, "n1" },
9018   {   1, "n2" },
9019   {   2, "n4" },
9020   {   3, "n8" },
9021   {   4, "n16" },
9022   {   5, "n32" },
9023   {   6, "n64" },
9024   { 0, NULL }
9025 };
9026 
9027 
9028 static int
dissect_lpp_T_maxNumberSRS_PosResourcesPerBWP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9029 dissect_lpp_T_maxNumberSRS_PosResourcesPerBWP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9030   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9031                                      7, NULL, FALSE, 0, NULL);
9032 
9033   return offset;
9034 }
9035 
9036 
9037 static const value_string lpp_T_maxNumberPeriodicSRS_PosResourcesPerBWP_r16_vals[] = {
9038   {   0, "n1" },
9039   {   1, "n2" },
9040   {   2, "n4" },
9041   {   3, "n8" },
9042   {   4, "n16" },
9043   {   5, "n32" },
9044   {   6, "n64" },
9045   { 0, NULL }
9046 };
9047 
9048 
9049 static int
dissect_lpp_T_maxNumberPeriodicSRS_PosResourcesPerBWP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9050 dissect_lpp_T_maxNumberPeriodicSRS_PosResourcesPerBWP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9051   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9052                                      7, NULL, FALSE, 0, NULL);
9053 
9054   return offset;
9055 }
9056 
9057 
9058 static const value_string lpp_T_maxNumberAP_SRS_PosResourcesPerBWP_r16_vals[] = {
9059   {   0, "n1" },
9060   {   1, "n2" },
9061   {   2, "n4" },
9062   {   3, "n8" },
9063   {   4, "n16" },
9064   {   5, "n32" },
9065   {   6, "n64" },
9066   { 0, NULL }
9067 };
9068 
9069 
9070 static int
dissect_lpp_T_maxNumberAP_SRS_PosResourcesPerBWP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9071 dissect_lpp_T_maxNumberAP_SRS_PosResourcesPerBWP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9072   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9073                                      7, NULL, FALSE, 0, NULL);
9074 
9075   return offset;
9076 }
9077 
9078 
9079 static const value_string lpp_T_maxNumberSP_SRS_PosResourcesPerBWP_r16_vals[] = {
9080   {   0, "n1" },
9081   {   1, "n2" },
9082   {   2, "n4" },
9083   {   3, "n8" },
9084   {   4, "n16" },
9085   {   5, "n32" },
9086   {   6, "n64" },
9087   { 0, NULL }
9088 };
9089 
9090 
9091 static int
dissect_lpp_T_maxNumberSP_SRS_PosResourcesPerBWP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9092 dissect_lpp_T_maxNumberSP_SRS_PosResourcesPerBWP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9093   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9094                                      7, NULL, FALSE, 0, NULL);
9095 
9096   return offset;
9097 }
9098 
9099 
9100 static const per_sequence_t SRS_PosResourcesPerBand_r16_sequence[] = {
9101   { &hf_lpp_freqBandIndicatorNR_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
9102   { &hf_lpp_maxNumberSRS_PosResourceSetsPerBWP_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNumberSRS_PosResourceSetsPerBWP_r16 },
9103   { &hf_lpp_maxNumberSRS_PosResourcesPerBWP_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNumberSRS_PosResourcesPerBWP_r16 },
9104   { &hf_lpp_maxNumberPeriodicSRS_PosResourcesPerBWP_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_maxNumberPeriodicSRS_PosResourcesPerBWP_r16 },
9105   { &hf_lpp_maxNumberAP_SRS_PosResourcesPerBWP_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_maxNumberAP_SRS_PosResourcesPerBWP_r16 },
9106   { &hf_lpp_maxNumberSP_SRS_PosResourcesPerBWP_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_maxNumberSP_SRS_PosResourcesPerBWP_r16 },
9107   { NULL, 0, 0, NULL }
9108 };
9109 
9110 static int
dissect_lpp_SRS_PosResourcesPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9111 dissect_lpp_SRS_PosResourcesPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9112   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9113                                    ett_lpp_SRS_PosResourcesPerBand_r16, SRS_PosResourcesPerBand_r16_sequence);
9114 
9115   return offset;
9116 }
9117 
9118 
9119 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16_sequence_of[1] = {
9120   { &hf_lpp_srs_PosResourceConfigCA_BandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SRS_PosResourcesPerBand_r16 },
9121 };
9122 
9123 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9124 dissect_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9125   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9126                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16, SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16_sequence_of,
9127                                                   1, nrMaxConfiguredBands_r16, FALSE);
9128 
9129   return offset;
9130 }
9131 
9132 
9133 static const value_string lpp_T_maxNumberSRS_PosPathLossEstimateAllServingCells_r16_vals[] = {
9134   {   0, "n1" },
9135   {   1, "n4" },
9136   {   2, "n8" },
9137   {   3, "n16" },
9138   { 0, NULL }
9139 };
9140 
9141 
9142 static int
dissect_lpp_T_maxNumberSRS_PosPathLossEstimateAllServingCells_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9143 dissect_lpp_T_maxNumberSRS_PosPathLossEstimateAllServingCells_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9144   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9145                                      4, NULL, FALSE, 0, NULL);
9146 
9147   return offset;
9148 }
9149 
9150 
9151 static const value_string lpp_T_maxNumberSRS_PosSpatialRelationsAllServingCells_r16_vals[] = {
9152   {   0, "n0" },
9153   {   1, "n1" },
9154   {   2, "n2" },
9155   {   3, "n4" },
9156   {   4, "n8" },
9157   {   5, "n16" },
9158   { 0, NULL }
9159 };
9160 
9161 
9162 static int
dissect_lpp_T_maxNumberSRS_PosSpatialRelationsAllServingCells_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9163 dissect_lpp_T_maxNumberSRS_PosSpatialRelationsAllServingCells_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9164   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9165                                      6, NULL, FALSE, 0, NULL);
9166 
9167   return offset;
9168 }
9169 
9170 
9171 static const per_sequence_t NR_UL_SRS_Capability_r16_sequence[] = {
9172   { &hf_lpp_srs_CapabilityBandList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16 },
9173   { &hf_lpp_srs_PosResourceConfigCA_BandList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16 },
9174   { &hf_lpp_maxNumberSRS_PosPathLossEstimateAllServingCells_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_maxNumberSRS_PosPathLossEstimateAllServingCells_r16 },
9175   { &hf_lpp_maxNumberSRS_PosSpatialRelationsAllServingCells_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_maxNumberSRS_PosSpatialRelationsAllServingCells_r16 },
9176   { NULL, 0, 0, NULL }
9177 };
9178 
9179 static int
dissect_lpp_NR_UL_SRS_Capability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9180 dissect_lpp_NR_UL_SRS_Capability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9181   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9182                                    ett_lpp_NR_UL_SRS_Capability_r16, NR_UL_SRS_Capability_r16_sequence);
9183 
9184   return offset;
9185 }
9186 
9187 
9188 static const value_string lpp_T_additionalPathsReport_r16_01_vals[] = {
9189   {   0, "supported" },
9190   { 0, NULL }
9191 };
9192 
9193 
9194 static int
dissect_lpp_T_additionalPathsReport_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9195 dissect_lpp_T_additionalPathsReport_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9196   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9197                                      1, NULL, FALSE, 0, NULL);
9198 
9199   return offset;
9200 }
9201 
9202 
9203 static const value_string lpp_T_periodicalReporting_r16_01_vals[] = {
9204   {   0, "supported" },
9205   { 0, NULL }
9206 };
9207 
9208 
9209 static int
dissect_lpp_T_periodicalReporting_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9210 dissect_lpp_T_periodicalReporting_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9211   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9212                                      1, NULL, FALSE, 0, NULL);
9213 
9214   return offset;
9215 }
9216 
9217 
9218 static const per_sequence_t NR_Multi_RTT_ProvideCapabilities_r16_sequence[] = {
9219   { &hf_lpp_nr_Multi_RTT_PRS_Capability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourcesCapability_r16 },
9220   { &hf_lpp_nr_Multi_RTT_MeasurementCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_Multi_RTT_MeasurementCapability_r16 },
9221   { &hf_lpp_nr_DL_PRS_QCL_ProcessingCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16 },
9222   { &hf_lpp_nr_DL_PRS_ProcessingCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ProcessingCapability_r16 },
9223   { &hf_lpp_nr_UL_SRS_Capability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_UL_SRS_Capability_r16 },
9224   { &hf_lpp_additionalPathsReport_r16_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_additionalPathsReport_r16_01 },
9225   { &hf_lpp_periodicalReporting_r16_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_periodicalReporting_r16_01 },
9226   { NULL, 0, 0, NULL }
9227 };
9228 
9229 static int
dissect_lpp_NR_Multi_RTT_ProvideCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9230 dissect_lpp_NR_Multi_RTT_ProvideCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9231   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9232                                    ett_lpp_NR_Multi_RTT_ProvideCapabilities_r16, NR_Multi_RTT_ProvideCapabilities_r16_sequence);
9233 
9234   return offset;
9235 }
9236 
9237 
9238 
9239 static int
dissect_lpp_INTEGER_1_8(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9240 dissect_lpp_INTEGER_1_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9241   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
9242                                                             1U, 8U, NULL, FALSE);
9243 
9244   return offset;
9245 }
9246 
9247 
9248 static const value_string lpp_T_simul_NR_DL_AoD_DL_TDOA_r16_vals[] = {
9249   {   0, "supported" },
9250   { 0, NULL }
9251 };
9252 
9253 
9254 static int
dissect_lpp_T_simul_NR_DL_AoD_DL_TDOA_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9255 dissect_lpp_T_simul_NR_DL_AoD_DL_TDOA_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9256   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9257                                      1, NULL, FALSE, 0, NULL);
9258 
9259   return offset;
9260 }
9261 
9262 
9263 static const value_string lpp_T_simul_NR_DL_AoD_Multi_RTT_r16_vals[] = {
9264   {   0, "supported" },
9265   { 0, NULL }
9266 };
9267 
9268 
9269 static int
dissect_lpp_T_simul_NR_DL_AoD_Multi_RTT_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9270 dissect_lpp_T_simul_NR_DL_AoD_Multi_RTT_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9271   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9272                                      1, NULL, FALSE, 0, NULL);
9273 
9274   return offset;
9275 }
9276 
9277 
9278 static const per_sequence_t DL_AoD_MeasCapabilityPerBand_r16_sequence[] = {
9279   { &hf_lpp_freqBandIndicatorNR_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FreqBandIndicatorNR_r16 },
9280   { &hf_lpp_simul_NR_DL_AoD_DL_TDOA_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_simul_NR_DL_AoD_DL_TDOA_r16 },
9281   { &hf_lpp_simul_NR_DL_AoD_Multi_RTT_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_simul_NR_DL_AoD_Multi_RTT_r16 },
9282   { NULL, 0, 0, NULL }
9283 };
9284 
9285 static int
dissect_lpp_DL_AoD_MeasCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9286 dissect_lpp_DL_AoD_MeasCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9287   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9288                                    ett_lpp_DL_AoD_MeasCapabilityPerBand_r16, DL_AoD_MeasCapabilityPerBand_r16_sequence);
9289 
9290   return offset;
9291 }
9292 
9293 
9294 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16_sequence_of[1] = {
9295   { &hf_lpp_dl_AoD_MeasCapabilityBandList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_AoD_MeasCapabilityPerBand_r16 },
9296 };
9297 
9298 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9299 dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9300   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9301                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16, SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16_sequence_of,
9302                                                   1, nrMaxBands_r16, FALSE);
9303 
9304   return offset;
9305 }
9306 
9307 
9308 static const per_sequence_t NR_DL_AoD_MeasurementCapability_r16_sequence[] = {
9309   { &hf_lpp_maxDL_PRS_RSRP_MeasurementFR1_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_8 },
9310   { &hf_lpp_maxDL_PRS_RSRP_MeasurementFR2_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_8 },
9311   { &hf_lpp_dl_AoD_MeasCapabilityBandList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16 },
9312   { NULL, 0, 0, NULL }
9313 };
9314 
9315 static int
dissect_lpp_NR_DL_AoD_MeasurementCapability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9316 dissect_lpp_NR_DL_AoD_MeasurementCapability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9317   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9318                                    ett_lpp_NR_DL_AoD_MeasurementCapability_r16, NR_DL_AoD_MeasurementCapability_r16_sequence);
9319 
9320   return offset;
9321 }
9322 
9323 
9324 static const per_sequence_t NR_DL_AoD_ProvideCapabilities_r16_sequence[] = {
9325   { &hf_lpp_nr_DL_AoD_Mode_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PositioningModes },
9326   { &hf_lpp_nr_DL_AoD_PRS_Capability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourcesCapability_r16 },
9327   { &hf_lpp_nr_DL_AoD_MeasurementCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_AoD_MeasurementCapability_r16 },
9328   { &hf_lpp_nr_DL_PRS_QCL_ProcessingCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16 },
9329   { &hf_lpp_nr_DL_PRS_ProcessingCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ProcessingCapability_r16 },
9330   { &hf_lpp_periodicalReporting_r16_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
9331   { NULL, 0, 0, NULL }
9332 };
9333 
9334 static int
dissect_lpp_NR_DL_AoD_ProvideCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9335 dissect_lpp_NR_DL_AoD_ProvideCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9336   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9337                                    ett_lpp_NR_DL_AoD_ProvideCapabilities_r16, NR_DL_AoD_ProvideCapabilities_r16_sequence);
9338 
9339   return offset;
9340 }
9341 
9342 
9343 static const value_string lpp_T_supportOfDL_PRS_RSRP_MeasFR1_r16_vals[] = {
9344   {   0, "supported" },
9345   { 0, NULL }
9346 };
9347 
9348 
9349 static int
dissect_lpp_T_supportOfDL_PRS_RSRP_MeasFR1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9350 dissect_lpp_T_supportOfDL_PRS_RSRP_MeasFR1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9351   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9352                                      1, NULL, FALSE, 0, NULL);
9353 
9354   return offset;
9355 }
9356 
9357 
9358 static const value_string lpp_T_supportOfDL_PRS_RSRP_MeasFR2_r16_vals[] = {
9359   {   0, "supported" },
9360   { 0, NULL }
9361 };
9362 
9363 
9364 static int
dissect_lpp_T_supportOfDL_PRS_RSRP_MeasFR2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9365 dissect_lpp_T_supportOfDL_PRS_RSRP_MeasFR2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9366   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9367                                      1, NULL, FALSE, 0, NULL);
9368 
9369   return offset;
9370 }
9371 
9372 
9373 static const per_sequence_t NR_DL_TDOA_MeasurementCapability_r16_sequence[] = {
9374   { &hf_lpp_dl_RSTD_MeasurementPerPairOfTRP_FR1_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_4 },
9375   { &hf_lpp_dl_RSTD_MeasurementPerPairOfTRP_FR2_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_4 },
9376   { &hf_lpp_supportOfDL_PRS_RSRP_MeasFR1_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_supportOfDL_PRS_RSRP_MeasFR1_r16 },
9377   { &hf_lpp_supportOfDL_PRS_RSRP_MeasFR2_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_supportOfDL_PRS_RSRP_MeasFR2_r16 },
9378   { NULL, 0, 0, NULL }
9379 };
9380 
9381 static int
dissect_lpp_NR_DL_TDOA_MeasurementCapability_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9382 dissect_lpp_NR_DL_TDOA_MeasurementCapability_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9383   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9384                                    ett_lpp_NR_DL_TDOA_MeasurementCapability_r16, NR_DL_TDOA_MeasurementCapability_r16_sequence);
9385 
9386   return offset;
9387 }
9388 
9389 
9390 static const value_string lpp_T_additionalPathsReport_r16_vals[] = {
9391   {   0, "supported" },
9392   { 0, NULL }
9393 };
9394 
9395 
9396 static int
dissect_lpp_T_additionalPathsReport_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9397 dissect_lpp_T_additionalPathsReport_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9398   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9399                                      1, NULL, FALSE, 0, NULL);
9400 
9401   return offset;
9402 }
9403 
9404 
9405 static const per_sequence_t NR_DL_TDOA_ProvideCapabilities_r16_sequence[] = {
9406   { &hf_lpp_nr_DL_TDOA_Mode_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PositioningModes },
9407   { &hf_lpp_nr_DL_TDOA_PRS_Capability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourcesCapability_r16 },
9408   { &hf_lpp_nr_DL_TDOA_MeasurementCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_TDOA_MeasurementCapability_r16 },
9409   { &hf_lpp_nr_DL_PRS_QCL_ProcessingCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16 },
9410   { &hf_lpp_nr_DL_PRS_ProcessingCapability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ProcessingCapability_r16 },
9411   { &hf_lpp_additionalPathsReport_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_additionalPathsReport_r16 },
9412   { &hf_lpp_periodicalReporting_r16_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PositioningModes },
9413   { NULL, 0, 0, NULL }
9414 };
9415 
9416 static int
dissect_lpp_NR_DL_TDOA_ProvideCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9417 dissect_lpp_NR_DL_TDOA_ProvideCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9418   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9419                                    ett_lpp_NR_DL_TDOA_ProvideCapabilities_r16, NR_DL_TDOA_ProvideCapabilities_r16_sequence);
9420 
9421   return offset;
9422 }
9423 
9424 
9425 static const per_sequence_t NR_UL_ProvideCapabilities_r16_sequence[] = {
9426   { &hf_lpp_nr_UL_SRS_Capability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_UL_SRS_Capability_r16 },
9427   { NULL, 0, 0, NULL }
9428 };
9429 
9430 static int
dissect_lpp_NR_UL_ProvideCapabilities_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9431 dissect_lpp_NR_UL_ProvideCapabilities_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9432   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9433                                    ett_lpp_NR_UL_ProvideCapabilities_r16, NR_UL_ProvideCapabilities_r16_sequence);
9434 
9435   return offset;
9436 }
9437 
9438 
9439 static const per_sequence_t ProvideCapabilities_r9_IEs_eag_2_sequence[] = {
9440   { &hf_lpp_nr_ECID_ProvideCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_ECID_ProvideCapabilities_r16 },
9441   { &hf_lpp_nr_Multi_RTT_ProvideCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_ProvideCapabilities_r16 },
9442   { &hf_lpp_nr_DL_AoD_ProvideCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_ProvideCapabilities_r16 },
9443   { &hf_lpp_nr_DL_TDOA_ProvideCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_ProvideCapabilities_r16 },
9444   { &hf_lpp_nr_UL_ProvideCapabilities_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_UL_ProvideCapabilities_r16 },
9445   { NULL, 0, 0, NULL }
9446 };
9447 
9448 static int
dissect_lpp_ProvideCapabilities_r9_IEs_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9449 dissect_lpp_ProvideCapabilities_r9_IEs_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9450   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ProvideCapabilities_r9_IEs_eag_2_sequence);
9451 
9452   return offset;
9453 }
9454 
9455 
9456 static const per_sequence_t ProvideCapabilities_r9_IEs_sequence[] = {
9457   { &hf_lpp_commonIEsProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsProvideCapabilities },
9458   { &hf_lpp_a_gnss_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_ProvideCapabilities },
9459   { &hf_lpp_otdoa_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ProvideCapabilities },
9460   { &hf_lpp_ecid_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_ProvideCapabilities },
9461   { &hf_lpp_epdu_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
9462   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ProvideCapabilities_r9_IEs_eag_1 },
9463   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ProvideCapabilities_r9_IEs_eag_2 },
9464   { NULL, 0, 0, NULL }
9465 };
9466 
9467 static int
dissect_lpp_ProvideCapabilities_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9468 dissect_lpp_ProvideCapabilities_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9469   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9470                                    ett_lpp_ProvideCapabilities_r9_IEs, ProvideCapabilities_r9_IEs_sequence);
9471 
9472   return offset;
9473 }
9474 
9475 
9476 static const value_string lpp_T_c1_02_vals[] = {
9477   {   0, "provideCapabilities-r9" },
9478   {   1, "spare3" },
9479   {   2, "spare2" },
9480   {   3, "spare1" },
9481   { 0, NULL }
9482 };
9483 
9484 static const per_choice_t T_c1_02_choice[] = {
9485   {   0, &hf_lpp_provideCapabilities_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideCapabilities_r9_IEs },
9486   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
9487   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
9488   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
9489   { 0, NULL, 0, NULL }
9490 };
9491 
9492 static int
dissect_lpp_T_c1_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9493 dissect_lpp_T_c1_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9494   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9495                                  ett_lpp_T_c1_02, T_c1_02_choice,
9496                                  NULL);
9497 
9498   return offset;
9499 }
9500 
9501 
9502 static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = {
9503   { NULL, 0, 0, NULL }
9504 };
9505 
9506 static int
dissect_lpp_T_criticalExtensionsFuture_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9507 dissect_lpp_T_criticalExtensionsFuture_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9508   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9509                                    ett_lpp_T_criticalExtensionsFuture_01, T_criticalExtensionsFuture_01_sequence);
9510 
9511   return offset;
9512 }
9513 
9514 
9515 static const value_string lpp_T_criticalExtensions_01_vals[] = {
9516   {   0, "c1" },
9517   {   1, "criticalExtensionsFuture" },
9518   { 0, NULL }
9519 };
9520 
9521 static const per_choice_t T_criticalExtensions_01_choice[] = {
9522   {   0, &hf_lpp_c1_02           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_02 },
9523   {   1, &hf_lpp_criticalExtensionsFuture_01, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_01 },
9524   { 0, NULL, 0, NULL }
9525 };
9526 
9527 static int
dissect_lpp_T_criticalExtensions_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9528 dissect_lpp_T_criticalExtensions_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9529   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9530                                  ett_lpp_T_criticalExtensions_01, T_criticalExtensions_01_choice,
9531                                  NULL);
9532 
9533   return offset;
9534 }
9535 
9536 
9537 static const per_sequence_t ProvideCapabilities_sequence[] = {
9538   { &hf_lpp_criticalExtensions_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_01 },
9539   { NULL, 0, 0, NULL }
9540 };
9541 
9542 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_)9543 dissect_lpp_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9544 #line 128 "./asn1/lpp/lpp.cnf"
9545   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities");
9546 
9547 
9548   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9549                                    ett_lpp_ProvideCapabilities, ProvideCapabilities_sequence);
9550 
9551   return offset;
9552 }
9553 
9554 
9555 
9556 static int
dissect_lpp_INTEGER_0_9(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9557 dissect_lpp_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9558   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
9559                                                             0U, 9U, NULL, FALSE);
9560 
9561   return offset;
9562 }
9563 
9564 
9565 static const per_sequence_t T_mcc_02_sequence_of[1] = {
9566   { &hf_lpp_mcc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
9567 };
9568 
9569 static int
dissect_lpp_T_mcc_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9570 dissect_lpp_T_mcc_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9571   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9572                                                   ett_lpp_T_mcc_02, T_mcc_02_sequence_of,
9573                                                   3, 3, FALSE);
9574 
9575   return offset;
9576 }
9577 
9578 
9579 static const per_sequence_t T_mnc_02_sequence_of[1] = {
9580   { &hf_lpp_mnc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
9581 };
9582 
9583 static int
dissect_lpp_T_mnc_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9584 dissect_lpp_T_mnc_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9585   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9586                                                   ett_lpp_T_mnc_02, T_mnc_02_sequence_of,
9587                                                   2, 3, FALSE);
9588 
9589   return offset;
9590 }
9591 
9592 
9593 
9594 static int
dissect_lpp_BIT_STRING_SIZE_28(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9595 dissect_lpp_BIT_STRING_SIZE_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9596   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
9597                                      28, 28, FALSE, NULL, 0, NULL, NULL);
9598 
9599   return offset;
9600 }
9601 
9602 
9603 static const per_sequence_t ECGI_sequence[] = {
9604   { &hf_lpp_mcc_02          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc_02 },
9605   { &hf_lpp_mnc_02          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc_02 },
9606   { &hf_lpp_cellidentity    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_28 },
9607   { NULL, 0, 0, NULL }
9608 };
9609 
9610 static int
dissect_lpp_ECGI(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9611 dissect_lpp_ECGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9612   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9613                                    ett_lpp_ECGI, ECGI_sequence);
9614 
9615   return offset;
9616 }
9617 
9618 
9619 static const per_sequence_t CommonIEsRequestAssistanceData_eag_1_sequence[] = {
9620   { &hf_lpp_segmentationInfo_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SegmentationInfo_r14 },
9621   { NULL, 0, 0, NULL }
9622 };
9623 
9624 static int
dissect_lpp_CommonIEsRequestAssistanceData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9625 dissect_lpp_CommonIEsRequestAssistanceData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9626   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsRequestAssistanceData_eag_1_sequence);
9627 
9628   return offset;
9629 }
9630 
9631 
9632 static const value_string lpp_T_periodicSessionInitiator_r15_vals[] = {
9633   {   0, "locationServer" },
9634   {   1, "targetDevice" },
9635   { 0, NULL }
9636 };
9637 
9638 
9639 static int
dissect_lpp_T_periodicSessionInitiator_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9640 dissect_lpp_T_periodicSessionInitiator_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9641   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
9642                                      2, NULL, TRUE, 0, NULL);
9643 
9644   return offset;
9645 }
9646 
9647 
9648 
9649 static int
dissect_lpp_INTEGER_0_255(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9650 dissect_lpp_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9651   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
9652                                                             0U, 255U, NULL, FALSE);
9653 
9654   return offset;
9655 }
9656 
9657 
9658 static const per_sequence_t PeriodicSessionID_r15_sequence[] = {
9659   { &hf_lpp_periodicSessionInitiator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_periodicSessionInitiator_r15 },
9660   { &hf_lpp_periodicSessionNumber_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
9661   { NULL, 0, 0, NULL }
9662 };
9663 
9664 static int
dissect_lpp_PeriodicSessionID_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9665 dissect_lpp_PeriodicSessionID_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9666   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9667                                    ett_lpp_PeriodicSessionID_r15, PeriodicSessionID_r15_sequence);
9668 
9669   return offset;
9670 }
9671 
9672 
9673 static int * const UpdateCapabilities_r15_bits[] = {
9674   &hf_lpp_UpdateCapabilities_r15_primaryCellID_r15,
9675   NULL
9676 };
9677 
9678 static int
dissect_lpp_UpdateCapabilities_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9679 dissect_lpp_UpdateCapabilities_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9680   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
9681                                      1, 8, FALSE, UpdateCapabilities_r15_bits, 1, NULL, NULL);
9682 
9683   return offset;
9684 }
9685 
9686 
9687 static const per_sequence_t PeriodicAssistanceDataControlParameters_r15_eag_1_sequence[] = {
9688   { &hf_lpp_updateCapabilities_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_UpdateCapabilities_r15 },
9689   { NULL, 0, 0, NULL }
9690 };
9691 
9692 static int
dissect_lpp_PeriodicAssistanceDataControlParameters_r15_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9693 dissect_lpp_PeriodicAssistanceDataControlParameters_r15_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9694   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, PeriodicAssistanceDataControlParameters_r15_eag_1_sequence);
9695 
9696   return offset;
9697 }
9698 
9699 
9700 static const per_sequence_t PeriodicAssistanceDataControlParameters_r15_sequence[] = {
9701   { &hf_lpp_periodicSessionID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PeriodicSessionID_r15 },
9702   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_PeriodicAssistanceDataControlParameters_r15_eag_1 },
9703   { NULL, 0, 0, NULL }
9704 };
9705 
9706 static int
dissect_lpp_PeriodicAssistanceDataControlParameters_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9707 dissect_lpp_PeriodicAssistanceDataControlParameters_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9708   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9709                                    ett_lpp_PeriodicAssistanceDataControlParameters_r15, PeriodicAssistanceDataControlParameters_r15_sequence);
9710 
9711   return offset;
9712 }
9713 
9714 
9715 static const per_sequence_t T_mcc_r15_sequence_of[1] = {
9716   { &hf_lpp_mcc_r15_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
9717 };
9718 
9719 static int
dissect_lpp_T_mcc_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9720 dissect_lpp_T_mcc_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9721   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9722                                                   ett_lpp_T_mcc_r15, T_mcc_r15_sequence_of,
9723                                                   3, 3, FALSE);
9724 
9725   return offset;
9726 }
9727 
9728 
9729 static const per_sequence_t T_mnc_r15_sequence_of[1] = {
9730   { &hf_lpp_mnc_r15_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
9731 };
9732 
9733 static int
dissect_lpp_T_mnc_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9734 dissect_lpp_T_mnc_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9735   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9736                                                   ett_lpp_T_mnc_r15, T_mnc_r15_sequence_of,
9737                                                   2, 3, FALSE);
9738 
9739   return offset;
9740 }
9741 
9742 
9743 
9744 static int
dissect_lpp_BIT_STRING_SIZE_36(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9745 dissect_lpp_BIT_STRING_SIZE_36(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9746   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
9747                                      36, 36, FALSE, NULL, 0, NULL, NULL);
9748 
9749   return offset;
9750 }
9751 
9752 
9753 static const per_sequence_t NCGI_r15_sequence[] = {
9754   { &hf_lpp_mcc_r15         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc_r15 },
9755   { &hf_lpp_mnc_r15         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc_r15 },
9756   { &hf_lpp_nr_cellidentity_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_36 },
9757   { NULL, 0, 0, NULL }
9758 };
9759 
9760 static int
dissect_lpp_NCGI_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9761 dissect_lpp_NCGI_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9762   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9763                                    ett_lpp_NCGI_r15, NCGI_r15_sequence);
9764 
9765   return offset;
9766 }
9767 
9768 
9769 static const per_sequence_t CommonIEsRequestAssistanceData_eag_2_sequence[] = {
9770   { &hf_lpp_periodicAssistanceDataReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PeriodicAssistanceDataControlParameters_r15 },
9771   { &hf_lpp_primaryCellID_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
9772   { NULL, 0, 0, NULL }
9773 };
9774 
9775 static int
dissect_lpp_CommonIEsRequestAssistanceData_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9776 dissect_lpp_CommonIEsRequestAssistanceData_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9777   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsRequestAssistanceData_eag_2_sequence);
9778 
9779   return offset;
9780 }
9781 
9782 
9783 static const per_sequence_t CommonIEsRequestAssistanceData_sequence[] = {
9784   { &hf_lpp_primaryCellID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
9785   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsRequestAssistanceData_eag_1 },
9786   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsRequestAssistanceData_eag_2 },
9787   { NULL, 0, 0, NULL }
9788 };
9789 
9790 static int
dissect_lpp_CommonIEsRequestAssistanceData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9791 dissect_lpp_CommonIEsRequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9792   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9793                                    ett_lpp_CommonIEsRequestAssistanceData, CommonIEsRequestAssistanceData_sequence);
9794 
9795   return offset;
9796 }
9797 
9798 
9799 static const per_sequence_t SEQUENCE_SIZE_1_8_OF_GNSS_ID_sequence_of[1] = {
9800   { &hf_lpp_gnss_TimeReqPrefList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
9801 };
9802 
9803 static int
dissect_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9804 dissect_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9805   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
9806                                                   ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID, SEQUENCE_SIZE_1_8_OF_GNSS_ID_sequence_of,
9807                                                   1, 8, FALSE);
9808 
9809   return offset;
9810 }
9811 
9812 
9813 static const per_sequence_t GNSS_ReferenceTimeReq_sequence[] = {
9814   { &hf_lpp_gnss_TimeReqPrefList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID },
9815   { &hf_lpp_gps_TOW_assistReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
9816   { &hf_lpp_notOfLeapSecReq , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
9817   { NULL, 0, 0, NULL }
9818 };
9819 
9820 static int
dissect_lpp_GNSS_ReferenceTimeReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9821 dissect_lpp_GNSS_ReferenceTimeReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9822   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9823                                    ett_lpp_GNSS_ReferenceTimeReq, GNSS_ReferenceTimeReq_sequence);
9824 
9825   return offset;
9826 }
9827 
9828 
9829 static const per_sequence_t GNSS_ReferenceLocationReq_sequence[] = {
9830   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
9831 };
9832 
9833 static int
dissect_lpp_GNSS_ReferenceLocationReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9834 dissect_lpp_GNSS_ReferenceLocationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9835   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9836                                    ett_lpp_GNSS_ReferenceLocationReq, GNSS_ReferenceLocationReq_sequence);
9837 
9838   return offset;
9839 }
9840 
9841 
9842 
9843 static int
dissect_lpp_BIT_STRING_SIZE_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9844 dissect_lpp_BIT_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9845   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
9846                                      2, 2, FALSE, NULL, 0, NULL, NULL);
9847 
9848   return offset;
9849 }
9850 
9851 
9852 static const per_sequence_t GNSS_IonosphericModelReq_eag_1_sequence[] = {
9853   { &hf_lpp_klobucharModel2Req_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NULL },
9854   { NULL, 0, 0, NULL }
9855 };
9856 
9857 static int
dissect_lpp_GNSS_IonosphericModelReq_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9858 dissect_lpp_GNSS_IonosphericModelReq_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9859   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_IonosphericModelReq_eag_1_sequence);
9860 
9861   return offset;
9862 }
9863 
9864 
9865 static const per_sequence_t GNSS_IonosphericModelReq_sequence[] = {
9866   { &hf_lpp_klobucharModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_2 },
9867   { &hf_lpp_neQuickModelReq , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
9868   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_IonosphericModelReq_eag_1 },
9869   { NULL, 0, 0, NULL }
9870 };
9871 
9872 static int
dissect_lpp_GNSS_IonosphericModelReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9873 dissect_lpp_GNSS_IonosphericModelReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9874   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9875                                    ett_lpp_GNSS_IonosphericModelReq, GNSS_IonosphericModelReq_sequence);
9876 
9877   return offset;
9878 }
9879 
9880 
9881 static const per_sequence_t GNSS_EarthOrientationParametersReq_sequence[] = {
9882   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
9883 };
9884 
9885 static int
dissect_lpp_GNSS_EarthOrientationParametersReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9886 dissect_lpp_GNSS_EarthOrientationParametersReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9887   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9888                                    ett_lpp_GNSS_EarthOrientationParametersReq, GNSS_EarthOrientationParametersReq_sequence);
9889 
9890   return offset;
9891 }
9892 
9893 
9894 
9895 static int
dissect_lpp_INTEGER_0_65535(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9896 dissect_lpp_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9897   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
9898                                                             0U, 65535U, NULL, FALSE);
9899 
9900   return offset;
9901 }
9902 
9903 
9904 
9905 static int
dissect_lpp_VisibleString_SIZE_1_32(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9906 dissect_lpp_VisibleString_SIZE_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9907   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
9908                                           1, 32, FALSE);
9909 
9910   return offset;
9911 }
9912 
9913 
9914 static const per_sequence_t GNSS_ReferenceStationID_r15_sequence[] = {
9915   { &hf_lpp_referenceStationID_r15_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
9916   { &hf_lpp_providerName_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VisibleString_SIZE_1_32 },
9917   { NULL, 0, 0, NULL }
9918 };
9919 
9920 static int
dissect_lpp_GNSS_ReferenceStationID_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9921 dissect_lpp_GNSS_ReferenceStationID_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9922   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9923                                    ett_lpp_GNSS_ReferenceStationID_r15, GNSS_ReferenceStationID_r15_sequence);
9924 
9925   return offset;
9926 }
9927 
9928 
9929 static const per_sequence_t GNSS_RTK_ReferenceStationInfoReq_r15_sequence[] = {
9930   { &hf_lpp_antennaDescriptionReq_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
9931   { &hf_lpp_antennaHeightReq_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
9932   { &hf_lpp_physicalReferenceStationReq_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
9933   { &hf_lpp_stationID_r15   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
9934   { NULL, 0, 0, NULL }
9935 };
9936 
9937 static int
dissect_lpp_GNSS_RTK_ReferenceStationInfoReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9938 dissect_lpp_GNSS_RTK_ReferenceStationInfoReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9939   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9940                                    ett_lpp_GNSS_RTK_ReferenceStationInfoReq_r15, GNSS_RTK_ReferenceStationInfoReq_r15_sequence);
9941 
9942   return offset;
9943 }
9944 
9945 
9946 static const per_sequence_t GNSS_RTK_AuxiliaryStationDataReq_r15_sequence[] = {
9947   { &hf_lpp_master_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
9948   { NULL, 0, 0, NULL }
9949 };
9950 
9951 static int
dissect_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9952 dissect_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9953   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9954                                    ett_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15, GNSS_RTK_AuxiliaryStationDataReq_r15_sequence);
9955 
9956   return offset;
9957 }
9958 
9959 
9960 static const per_sequence_t GNSS_CommonAssistDataReq_eag_1_sequence[] = {
9961   { &hf_lpp_gnss_RTK_ReferenceStationInfoReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ReferenceStationInfoReq_r15 },
9962   { &hf_lpp_gnss_RTK_AuxiliaryStationDataReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15 },
9963   { NULL, 0, 0, NULL }
9964 };
9965 
9966 static int
dissect_lpp_GNSS_CommonAssistDataReq_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9967 dissect_lpp_GNSS_CommonAssistDataReq_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9968   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_CommonAssistDataReq_eag_1_sequence);
9969 
9970   return offset;
9971 }
9972 
9973 
9974 
9975 static int
dissect_lpp_INTEGER_0_16383(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9976 dissect_lpp_INTEGER_0_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9977   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
9978                                                             0U, 16383U, NULL, FALSE);
9979 
9980   return offset;
9981 }
9982 
9983 
9984 static const per_sequence_t GNSS_SSR_CorrectionPointsReq_r16_sequence[] = {
9985   { &hf_lpp_correctionPointSetID_Req_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_16383 },
9986   { NULL, 0, 0, NULL }
9987 };
9988 
9989 static int
dissect_lpp_GNSS_SSR_CorrectionPointsReq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)9990 dissect_lpp_GNSS_SSR_CorrectionPointsReq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9991   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9992                                    ett_lpp_GNSS_SSR_CorrectionPointsReq_r16, GNSS_SSR_CorrectionPointsReq_r16_sequence);
9993 
9994   return offset;
9995 }
9996 
9997 
9998 static const per_sequence_t GNSS_CommonAssistDataReq_eag_2_sequence[] = {
9999   { &hf_lpp_gnss_SSR_CorrectionPointsReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_CorrectionPointsReq_r16 },
10000   { NULL, 0, 0, NULL }
10001 };
10002 
10003 static int
dissect_lpp_GNSS_CommonAssistDataReq_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10004 dissect_lpp_GNSS_CommonAssistDataReq_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10005   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_CommonAssistDataReq_eag_2_sequence);
10006 
10007   return offset;
10008 }
10009 
10010 
10011 static const per_sequence_t GNSS_CommonAssistDataReq_sequence[] = {
10012   { &hf_lpp_gnss_ReferenceTimeReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceTimeReq },
10013   { &hf_lpp_gnss_ReferenceLocationReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceLocationReq },
10014   { &hf_lpp_gnss_IonosphericModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_IonosphericModelReq },
10015   { &hf_lpp_gnss_EarthOrientationParametersReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_EarthOrientationParametersReq },
10016   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistDataReq_eag_1 },
10017   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistDataReq_eag_2 },
10018   { NULL, 0, 0, NULL }
10019 };
10020 
10021 static int
dissect_lpp_GNSS_CommonAssistDataReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10022 dissect_lpp_GNSS_CommonAssistDataReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10023   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10024                                    ett_lpp_GNSS_CommonAssistDataReq, GNSS_CommonAssistDataReq_sequence);
10025 
10026   return offset;
10027 }
10028 
10029 
10030 
10031 static int
dissect_lpp_INTEGER_1_15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10032 dissect_lpp_INTEGER_1_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10033   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10034                                                             1U, 15U, NULL, FALSE);
10035 
10036   return offset;
10037 }
10038 
10039 
10040 static const per_sequence_t GNSS_TimeModelElementReq_sequence[] = {
10041   { &hf_lpp_gnss_TO_IDsReq  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_15 },
10042   { &hf_lpp_deltaTreq       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
10043   { NULL, 0, 0, NULL }
10044 };
10045 
10046 static int
dissect_lpp_GNSS_TimeModelElementReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10047 dissect_lpp_GNSS_TimeModelElementReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10048   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10049                                    ett_lpp_GNSS_TimeModelElementReq, GNSS_TimeModelElementReq_sequence);
10050 
10051   return offset;
10052 }
10053 
10054 
10055 static const per_sequence_t GNSS_TimeModelListReq_sequence_of[1] = {
10056   { &hf_lpp_GNSS_TimeModelListReq_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_TimeModelElementReq },
10057 };
10058 
10059 static int
dissect_lpp_GNSS_TimeModelListReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10060 dissect_lpp_GNSS_TimeModelListReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10061   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10062                                                   ett_lpp_GNSS_TimeModelListReq, GNSS_TimeModelListReq_sequence_of,
10063                                                   1, 15, FALSE);
10064 
10065   return offset;
10066 }
10067 
10068 
10069 static const per_sequence_t GNSS_DifferentialCorrectionsReq_sequence[] = {
10070   { &hf_lpp_dgnss_SignalsReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10071   { &hf_lpp_dgnss_ValidityTimeReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
10072   { NULL, 0, 0, NULL }
10073 };
10074 
10075 static int
dissect_lpp_GNSS_DifferentialCorrectionsReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10076 dissect_lpp_GNSS_DifferentialCorrectionsReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10077   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10078                                    ett_lpp_GNSS_DifferentialCorrectionsReq, GNSS_DifferentialCorrectionsReq_sequence);
10079 
10080   return offset;
10081 }
10082 
10083 
10084 
10085 static int
dissect_lpp_T_gnss_WeekOrDay(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10086 dissect_lpp_T_gnss_WeekOrDay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10087   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10088                                                             0U, 4095U, NULL, FALSE);
10089 
10090 #line 1570 "./asn1/lpp/lpp.cnf"
10091   proto_item_append_text(actx->created_item, " (days for glonass, weeks otherwise)");
10092 
10093 
10094   return offset;
10095 }
10096 
10097 
10098 
10099 static int
dissect_lpp_T_gnss_Toe(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10100 dissect_lpp_T_gnss_Toe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10101   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10102                                                             0U, 255U, NULL, FALSE);
10103 
10104 #line 1573 "./asn1/lpp/lpp.cnf"
10105   proto_item_append_text(actx->created_item, " (units of 15 mns for glonass, hours otherwise)");
10106 
10107 
10108   return offset;
10109 }
10110 
10111 
10112 
10113 static int
dissect_lpp_T_t_toeLimit(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10114 dissect_lpp_T_t_toeLimit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10115   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10116                                                             0U, 15U, NULL, FALSE);
10117 
10118 #line 1576 "./asn1/lpp/lpp.cnf"
10119   proto_item_append_text(actx->created_item, " (units of 30 mns for glonass, hours otherwise)");
10120 
10121 
10122   return offset;
10123 }
10124 
10125 
10126 
10127 static int
dissect_lpp_INTEGER_0_63(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10128 dissect_lpp_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10129   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10130                                                             0U, 63U, NULL, FALSE);
10131 
10132   return offset;
10133 }
10134 
10135 
10136 static const per_sequence_t SV_ID_sequence[] = {
10137   { &hf_lpp_satellite_id    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
10138   { NULL, 0, 0, NULL }
10139 };
10140 
10141 int
dissect_lpp_SV_ID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10142 dissect_lpp_SV_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10143   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10144                                    ett_lpp_SV_ID, SV_ID_sequence);
10145 
10146   return offset;
10147 }
10148 
10149 
10150 
10151 static int
dissect_lpp_BIT_STRING_SIZE_11(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10152 dissect_lpp_BIT_STRING_SIZE_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10153   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
10154                                      11, 11, FALSE, NULL, 0, NULL, NULL);
10155 
10156   return offset;
10157 }
10158 
10159 
10160 static const per_sequence_t SatListRelatedDataElement_sequence[] = {
10161   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
10162   { &hf_lpp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
10163   { &hf_lpp_clockModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
10164   { &hf_lpp_orbitModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
10165   { NULL, 0, 0, NULL }
10166 };
10167 
10168 static int
dissect_lpp_SatListRelatedDataElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10169 dissect_lpp_SatListRelatedDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10170   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10171                                    ett_lpp_SatListRelatedDataElement, SatListRelatedDataElement_sequence);
10172 
10173   return offset;
10174 }
10175 
10176 
10177 static const per_sequence_t SatListRelatedDataList_sequence_of[1] = {
10178   { &hf_lpp_SatListRelatedDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SatListRelatedDataElement },
10179 };
10180 
10181 static int
dissect_lpp_SatListRelatedDataList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10182 dissect_lpp_SatListRelatedDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10183   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10184                                                   ett_lpp_SatListRelatedDataList, SatListRelatedDataList_sequence_of,
10185                                                   1, 64, FALSE);
10186 
10187   return offset;
10188 }
10189 
10190 
10191 static const per_sequence_t StoredNavListInfo_sequence[] = {
10192   { &hf_lpp_gnss_WeekOrDay  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gnss_WeekOrDay },
10193   { &hf_lpp_gnss_Toe        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gnss_Toe },
10194   { &hf_lpp_t_toeLimit      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_t_toeLimit },
10195   { &hf_lpp_satListRelatedDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SatListRelatedDataList },
10196   { NULL, 0, 0, NULL }
10197 };
10198 
10199 static int
dissect_lpp_StoredNavListInfo(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10200 dissect_lpp_StoredNavListInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10201   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10202                                    ett_lpp_StoredNavListInfo, StoredNavListInfo_sequence);
10203 
10204   return offset;
10205 }
10206 
10207 
10208 
10209 static int
dissect_lpp_BIT_STRING_SIZE_64(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10210 dissect_lpp_BIT_STRING_SIZE_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10211   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
10212                                      64, 64, FALSE, NULL, 0, NULL, NULL);
10213 
10214   return offset;
10215 }
10216 
10217 
10218 static const per_sequence_t T_clockModelID_PrefList_sequence_of[1] = {
10219   { &hf_lpp_clockModelID_PrefList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_8 },
10220 };
10221 
10222 static int
dissect_lpp_T_clockModelID_PrefList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10223 dissect_lpp_T_clockModelID_PrefList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10224   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10225                                                   ett_lpp_T_clockModelID_PrefList, T_clockModelID_PrefList_sequence_of,
10226                                                   1, 8, FALSE);
10227 
10228   return offset;
10229 }
10230 
10231 
10232 static const per_sequence_t T_orbitModelID_PrefList_sequence_of[1] = {
10233   { &hf_lpp_orbitModelID_PrefList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_8 },
10234 };
10235 
10236 static int
dissect_lpp_T_orbitModelID_PrefList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10237 dissect_lpp_T_orbitModelID_PrefList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10238   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10239                                                   ett_lpp_T_orbitModelID_PrefList, T_orbitModelID_PrefList_sequence_of,
10240                                                   1, 8, FALSE);
10241 
10242   return offset;
10243 }
10244 
10245 
10246 static const per_sequence_t ReqNavListInfo_sequence[] = {
10247   { &hf_lpp_svReqList       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_64 },
10248   { &hf_lpp_clockModelID_PrefList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_clockModelID_PrefList },
10249   { &hf_lpp_orbitModelID_PrefList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_orbitModelID_PrefList },
10250   { &hf_lpp_addNavparamReq  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
10251   { NULL, 0, 0, NULL }
10252 };
10253 
10254 static int
dissect_lpp_ReqNavListInfo(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10255 dissect_lpp_ReqNavListInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10256   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10257                                    ett_lpp_ReqNavListInfo, ReqNavListInfo_sequence);
10258 
10259   return offset;
10260 }
10261 
10262 
10263 static const value_string lpp_GNSS_NavigationModelReq_vals[] = {
10264   {   0, "storedNavList" },
10265   {   1, "reqNavList" },
10266   { 0, NULL }
10267 };
10268 
10269 static const per_choice_t GNSS_NavigationModelReq_choice[] = {
10270   {   0, &hf_lpp_storedNavList   , ASN1_EXTENSION_ROOT    , dissect_lpp_StoredNavListInfo },
10271   {   1, &hf_lpp_reqNavList      , ASN1_EXTENSION_ROOT    , dissect_lpp_ReqNavListInfo },
10272   { 0, NULL, 0, NULL }
10273 };
10274 
10275 static int
dissect_lpp_GNSS_NavigationModelReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10276 dissect_lpp_GNSS_NavigationModelReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10277   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10278                                  ett_lpp_GNSS_NavigationModelReq, GNSS_NavigationModelReq_choice,
10279                                  NULL);
10280 
10281   return offset;
10282 }
10283 
10284 
10285 static const per_sequence_t GNSS_RealTimeIntegrityReq_sequence[] = {
10286   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10287 };
10288 
10289 static int
dissect_lpp_GNSS_RealTimeIntegrityReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10290 dissect_lpp_GNSS_RealTimeIntegrityReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10291   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10292                                    ett_lpp_GNSS_RealTimeIntegrityReq, GNSS_RealTimeIntegrityReq_sequence);
10293 
10294   return offset;
10295 }
10296 
10297 
10298 
10299 static int
dissect_lpp_INTEGER_0_3599(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10300 dissect_lpp_INTEGER_0_3599(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10301   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10302                                                             0U, 3599U, NULL, FALSE);
10303 
10304   return offset;
10305 }
10306 
10307 
10308 
10309 static int
dissect_lpp_INTEGER_0_999(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10310 dissect_lpp_INTEGER_0_999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10311   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10312                                                             0U, 999U, NULL, FALSE);
10313 
10314   return offset;
10315 }
10316 
10317 
10318 
10319 static int
dissect_lpp_INTEGER_0_15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10320 dissect_lpp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10321   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10322                                                             0U, 15U, NULL, FALSE);
10323 
10324   return offset;
10325 }
10326 
10327 
10328 static const per_sequence_t GNSS_DataBitsReqSatElement_sequence[] = {
10329   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
10330   { NULL, 0, 0, NULL }
10331 };
10332 
10333 static int
dissect_lpp_GNSS_DataBitsReqSatElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10334 dissect_lpp_GNSS_DataBitsReqSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10335   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10336                                    ett_lpp_GNSS_DataBitsReqSatElement, GNSS_DataBitsReqSatElement_sequence);
10337 
10338   return offset;
10339 }
10340 
10341 
10342 static const per_sequence_t GNSS_DataBitsReqSatList_sequence_of[1] = {
10343   { &hf_lpp_GNSS_DataBitsReqSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsReqSatElement },
10344 };
10345 
10346 static int
dissect_lpp_GNSS_DataBitsReqSatList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10347 dissect_lpp_GNSS_DataBitsReqSatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10348   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10349                                                   ett_lpp_GNSS_DataBitsReqSatList, GNSS_DataBitsReqSatList_sequence_of,
10350                                                   1, 64, FALSE);
10351 
10352   return offset;
10353 }
10354 
10355 
10356 static const per_sequence_t GNSS_DataBitAssistanceReq_sequence[] = {
10357   { &hf_lpp_gnss_TOD_Req    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
10358   { &hf_lpp_gnss_TOD_FracReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_999 },
10359   { &hf_lpp_dataBitInterval , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
10360   { &hf_lpp_gnss_SignalType_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10361   { &hf_lpp_gnss_DataBitsReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitsReqSatList },
10362   { NULL, 0, 0, NULL }
10363 };
10364 
10365 static int
dissect_lpp_GNSS_DataBitAssistanceReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10366 dissect_lpp_GNSS_DataBitAssistanceReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10367   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10368                                    ett_lpp_GNSS_DataBitAssistanceReq, GNSS_DataBitAssistanceReq_sequence);
10369 
10370   return offset;
10371 }
10372 
10373 
10374 
10375 static int
dissect_lpp_INTEGER_8_23(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10376 dissect_lpp_INTEGER_8_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10377   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10378                                                             8U, 23U, NULL, FALSE);
10379 
10380   return offset;
10381 }
10382 
10383 
10384 static const per_sequence_t GNSS_SignalID_eag_1_sequence[] = {
10385   { &hf_lpp_gnss_SignalID_Ext_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_8_23 },
10386   { NULL, 0, 0, NULL }
10387 };
10388 
10389 static int
dissect_lpp_GNSS_SignalID_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10390 dissect_lpp_GNSS_SignalID_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10391   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_SignalID_eag_1_sequence);
10392 
10393   return offset;
10394 }
10395 
10396 
10397 static const per_sequence_t GNSS_SignalID_sequence[] = {
10398   { &hf_lpp_gnss_SignalID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
10399   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID_eag_1 },
10400   { NULL, 0, 0, NULL }
10401 };
10402 
10403 int
dissect_lpp_GNSS_SignalID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10404 dissect_lpp_GNSS_SignalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10405   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10406                                    ett_lpp_GNSS_SignalID, GNSS_SignalID_sequence);
10407 
10408   return offset;
10409 }
10410 
10411 
10412 static const per_sequence_t GNSS_AcquisitionAssistanceReq_sequence[] = {
10413   { &hf_lpp_gnss_SignalID_Req, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
10414   { NULL, 0, 0, NULL }
10415 };
10416 
10417 static int
dissect_lpp_GNSS_AcquisitionAssistanceReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10418 dissect_lpp_GNSS_AcquisitionAssistanceReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10419   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10420                                    ett_lpp_GNSS_AcquisitionAssistanceReq, GNSS_AcquisitionAssistanceReq_sequence);
10421 
10422   return offset;
10423 }
10424 
10425 
10426 static const per_sequence_t GNSS_AlmanacReq_sequence[] = {
10427   { &hf_lpp_modelID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
10428   { NULL, 0, 0, NULL }
10429 };
10430 
10431 static int
dissect_lpp_GNSS_AlmanacReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10432 dissect_lpp_GNSS_AlmanacReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10433   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10434                                    ett_lpp_GNSS_AlmanacReq, GNSS_AlmanacReq_sequence);
10435 
10436   return offset;
10437 }
10438 
10439 
10440 static const per_sequence_t GNSS_UTC_ModelReq_sequence[] = {
10441   { &hf_lpp_modelID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
10442   { NULL, 0, 0, NULL }
10443 };
10444 
10445 static int
dissect_lpp_GNSS_UTC_ModelReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10446 dissect_lpp_GNSS_UTC_ModelReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10447   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10448                                    ett_lpp_GNSS_UTC_ModelReq, GNSS_UTC_ModelReq_sequence);
10449 
10450   return offset;
10451 }
10452 
10453 
10454 static const per_sequence_t GNSS_AuxiliaryInformationReq_sequence[] = {
10455   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10456 };
10457 
10458 static int
dissect_lpp_GNSS_AuxiliaryInformationReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10459 dissect_lpp_GNSS_AuxiliaryInformationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10460   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10461                                    ett_lpp_GNSS_AuxiliaryInformationReq, GNSS_AuxiliaryInformationReq_sequence);
10462 
10463   return offset;
10464 }
10465 
10466 
10467 static const per_sequence_t BDS_DifferentialCorrectionsReq_r12_sequence[] = {
10468   { &hf_lpp_dgnss_SignalsReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10469   { NULL, 0, 0, NULL }
10470 };
10471 
10472 static int
dissect_lpp_BDS_DifferentialCorrectionsReq_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10473 dissect_lpp_BDS_DifferentialCorrectionsReq_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10474   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10475                                    ett_lpp_BDS_DifferentialCorrectionsReq_r12, BDS_DifferentialCorrectionsReq_r12_sequence);
10476 
10477   return offset;
10478 }
10479 
10480 
10481 static const per_sequence_t BDS_GridModelReq_r12_sequence[] = {
10482   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10483 };
10484 
10485 static int
dissect_lpp_BDS_GridModelReq_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10486 dissect_lpp_BDS_GridModelReq_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10487   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10488                                    ett_lpp_BDS_GridModelReq_r12, BDS_GridModelReq_r12_sequence);
10489 
10490   return offset;
10491 }
10492 
10493 
10494 static const per_sequence_t GNSS_GenericAssistDataReqElement_eag_1_sequence[] = {
10495   { &hf_lpp_bds_DifferentialCorrectionsReq_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BDS_DifferentialCorrectionsReq_r12 },
10496   { &hf_lpp_bds_GridModelReq_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BDS_GridModelReq_r12 },
10497   { NULL, 0, 0, NULL }
10498 };
10499 
10500 static int
dissect_lpp_GNSS_GenericAssistDataReqElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10501 dissect_lpp_GNSS_GenericAssistDataReqElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10502   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataReqElement_eag_1_sequence);
10503 
10504   return offset;
10505 }
10506 
10507 
10508 static const per_sequence_t GNSS_RTK_ObservationsReq_r15_sequence[] = {
10509   { &hf_lpp_gnss_RTK_SignalsReq_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10510   { &hf_lpp_gnss_RTK_Integer_ms_Req_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
10511   { &hf_lpp_gnss_RTK_PhaseRangeRateReq_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
10512   { &hf_lpp_gnss_RTK_CNR_Req_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
10513   { &hf_lpp_stationID_r15   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
10514   { NULL, 0, 0, NULL }
10515 };
10516 
10517 static int
dissect_lpp_GNSS_RTK_ObservationsReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10518 dissect_lpp_GNSS_RTK_ObservationsReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10519   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10520                                    ett_lpp_GNSS_RTK_ObservationsReq_r15, GNSS_RTK_ObservationsReq_r15_sequence);
10521 
10522   return offset;
10523 }
10524 
10525 
10526 static const per_sequence_t GLO_RTK_BiasInformationReq_r15_sequence[] = {
10527   { &hf_lpp_stationID_r15   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
10528   { NULL, 0, 0, NULL }
10529 };
10530 
10531 static int
dissect_lpp_GLO_RTK_BiasInformationReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10532 dissect_lpp_GLO_RTK_BiasInformationReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10533   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10534                                    ett_lpp_GLO_RTK_BiasInformationReq_r15, GLO_RTK_BiasInformationReq_r15_sequence);
10535 
10536   return offset;
10537 }
10538 
10539 
10540 static const per_sequence_t AUX_ReferenceStationID_Element_r15_sequence[] = {
10541   { &hf_lpp_aux_stationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
10542   { NULL, 0, 0, NULL }
10543 };
10544 
10545 static int
dissect_lpp_AUX_ReferenceStationID_Element_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10546 dissect_lpp_AUX_ReferenceStationID_Element_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10547   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10548                                    ett_lpp_AUX_ReferenceStationID_Element_r15, AUX_ReferenceStationID_Element_r15_sequence);
10549 
10550   return offset;
10551 }
10552 
10553 
10554 static const per_sequence_t AUX_ReferenceStationList_r15_sequence_of[1] = {
10555   { &hf_lpp_AUX_ReferenceStationList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_AUX_ReferenceStationID_Element_r15 },
10556 };
10557 
10558 static int
dissect_lpp_AUX_ReferenceStationList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10559 dissect_lpp_AUX_ReferenceStationList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10560   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10561                                                   ett_lpp_AUX_ReferenceStationList_r15, AUX_ReferenceStationList_r15_sequence_of,
10562                                                   1, 32, FALSE);
10563 
10564   return offset;
10565 }
10566 
10567 
10568 static const per_sequence_t GNSS_RTK_MAC_CorrectionDifferencesReq_r15_sequence[] = {
10569   { &hf_lpp_master_ReferenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
10570   { &hf_lpp_aux_ReferenceStationList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AUX_ReferenceStationList_r15 },
10571   { &hf_lpp_linkCombinations_PrefList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_Link_CombinationsList_r15 },
10572   { NULL, 0, 0, NULL }
10573 };
10574 
10575 static int
dissect_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10576 dissect_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10577   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10578                                    ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15, GNSS_RTK_MAC_CorrectionDifferencesReq_r15_sequence);
10579 
10580   return offset;
10581 }
10582 
10583 
10584 static const per_sequence_t GNSS_RTK_ResidualsReq_r15_sequence[] = {
10585   { &hf_lpp_stationID_r15   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
10586   { &hf_lpp_linkCombinations_PrefList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_Link_CombinationsList_r15 },
10587   { NULL, 0, 0, NULL }
10588 };
10589 
10590 static int
dissect_lpp_GNSS_RTK_ResidualsReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10591 dissect_lpp_GNSS_RTK_ResidualsReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10592   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10593                                    ett_lpp_GNSS_RTK_ResidualsReq_r15, GNSS_RTK_ResidualsReq_r15_sequence);
10594 
10595   return offset;
10596 }
10597 
10598 
10599 static const per_sequence_t GNSS_RTK_FKP_GradientsReq_r15_sequence[] = {
10600   { &hf_lpp_stationID_r15   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceStationID_r15 },
10601   { &hf_lpp_linkCombinations_PrefList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_Link_CombinationsList_r15 },
10602   { NULL, 0, 0, NULL }
10603 };
10604 
10605 static int
dissect_lpp_GNSS_RTK_FKP_GradientsReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10606 dissect_lpp_GNSS_RTK_FKP_GradientsReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10607   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10608                                    ett_lpp_GNSS_RTK_FKP_GradientsReq_r15, GNSS_RTK_FKP_GradientsReq_r15_sequence);
10609 
10610   return offset;
10611 }
10612 
10613 
10614 static const per_sequence_t SatListElement_r15_sequence[] = {
10615   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
10616   { &hf_lpp_iod_r15         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
10617   { NULL, 0, 0, NULL }
10618 };
10619 
10620 static int
dissect_lpp_SatListElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10621 dissect_lpp_SatListElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10622   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10623                                    ett_lpp_SatListElement_r15, SatListElement_r15_sequence);
10624 
10625   return offset;
10626 }
10627 
10628 
10629 static const per_sequence_t GNSS_NavListInfo_r15_sequence_of[1] = {
10630   { &hf_lpp_GNSS_NavListInfo_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SatListElement_r15 },
10631 };
10632 
10633 static int
dissect_lpp_GNSS_NavListInfo_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10634 dissect_lpp_GNSS_NavListInfo_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10635   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10636                                                   ett_lpp_GNSS_NavListInfo_r15, GNSS_NavListInfo_r15_sequence_of,
10637                                                   1, 64, FALSE);
10638 
10639   return offset;
10640 }
10641 
10642 
10643 static const per_sequence_t GNSS_SSR_OrbitCorrectionsReq_r15_sequence[] = {
10644   { &hf_lpp_storedNavList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavListInfo_r15 },
10645   { NULL, 0, 0, NULL }
10646 };
10647 
10648 static int
dissect_lpp_GNSS_SSR_OrbitCorrectionsReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10649 dissect_lpp_GNSS_SSR_OrbitCorrectionsReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10650   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10651                                    ett_lpp_GNSS_SSR_OrbitCorrectionsReq_r15, GNSS_SSR_OrbitCorrectionsReq_r15_sequence);
10652 
10653   return offset;
10654 }
10655 
10656 
10657 static const per_sequence_t GNSS_SSR_ClockCorrectionsReq_r15_sequence[] = {
10658   { &hf_lpp_storedNavList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavListInfo_r15 },
10659   { NULL, 0, 0, NULL }
10660 };
10661 
10662 static int
dissect_lpp_GNSS_SSR_ClockCorrectionsReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10663 dissect_lpp_GNSS_SSR_ClockCorrectionsReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10664   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10665                                    ett_lpp_GNSS_SSR_ClockCorrectionsReq_r15, GNSS_SSR_ClockCorrectionsReq_r15_sequence);
10666 
10667   return offset;
10668 }
10669 
10670 
10671 static const per_sequence_t GNSS_SSR_CodeBiasReq_r15_sequence[] = {
10672   { &hf_lpp_signal_and_tracking_mode_ID_Map_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10673   { &hf_lpp_storedNavList_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavListInfo_r15 },
10674   { NULL, 0, 0, NULL }
10675 };
10676 
10677 static int
dissect_lpp_GNSS_SSR_CodeBiasReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10678 dissect_lpp_GNSS_SSR_CodeBiasReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10679   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10680                                    ett_lpp_GNSS_SSR_CodeBiasReq_r15, GNSS_SSR_CodeBiasReq_r15_sequence);
10681 
10682   return offset;
10683 }
10684 
10685 
10686 static const per_sequence_t GNSS_GenericAssistDataReqElement_eag_2_sequence[] = {
10687   { &hf_lpp_gnss_RTK_ObservationsReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ObservationsReq_r15 },
10688   { &hf_lpp_glo_RTK_BiasInformationReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GLO_RTK_BiasInformationReq_r15 },
10689   { &hf_lpp_gnss_RTK_MAC_CorrectionDifferencesReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15 },
10690   { &hf_lpp_gnss_RTK_ResidualsReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ResidualsReq_r15 },
10691   { &hf_lpp_gnss_RTK_FKP_GradientsReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_FKP_GradientsReq_r15 },
10692   { &hf_lpp_gnss_SSR_OrbitCorrectionsReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_OrbitCorrectionsReq_r15 },
10693   { &hf_lpp_gnss_SSR_ClockCorrectionsReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_ClockCorrectionsReq_r15 },
10694   { &hf_lpp_gnss_SSR_CodeBiasReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_CodeBiasReq_r15 },
10695   { NULL, 0, 0, NULL }
10696 };
10697 
10698 static int
dissect_lpp_GNSS_GenericAssistDataReqElement_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10699 dissect_lpp_GNSS_GenericAssistDataReqElement_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10700   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataReqElement_eag_2_sequence);
10701 
10702   return offset;
10703 }
10704 
10705 
10706 static const per_sequence_t GNSS_SSR_URA_Req_r16_sequence[] = {
10707   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10708 };
10709 
10710 static int
dissect_lpp_GNSS_SSR_URA_Req_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10711 dissect_lpp_GNSS_SSR_URA_Req_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10712   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10713                                    ett_lpp_GNSS_SSR_URA_Req_r16, GNSS_SSR_URA_Req_r16_sequence);
10714 
10715   return offset;
10716 }
10717 
10718 
10719 static const per_sequence_t GNSS_SSR_PhaseBiasReq_r16_sequence[] = {
10720   { &hf_lpp_signal_and_tracking_mode_ID_Map_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10721   { &hf_lpp_storedNavList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavListInfo_r15 },
10722   { NULL, 0, 0, NULL }
10723 };
10724 
10725 static int
dissect_lpp_GNSS_SSR_PhaseBiasReq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10726 dissect_lpp_GNSS_SSR_PhaseBiasReq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10727   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10728                                    ett_lpp_GNSS_SSR_PhaseBiasReq_r16, GNSS_SSR_PhaseBiasReq_r16_sequence);
10729 
10730   return offset;
10731 }
10732 
10733 
10734 static const per_sequence_t GNSS_SSR_STEC_CorrectionReq_r16_sequence[] = {
10735   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10736 };
10737 
10738 static int
dissect_lpp_GNSS_SSR_STEC_CorrectionReq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10739 dissect_lpp_GNSS_SSR_STEC_CorrectionReq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10740   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10741                                    ett_lpp_GNSS_SSR_STEC_CorrectionReq_r16, GNSS_SSR_STEC_CorrectionReq_r16_sequence);
10742 
10743   return offset;
10744 }
10745 
10746 
10747 static const per_sequence_t GNSS_SSR_GriddedCorrectionReq_r16_sequence[] = {
10748   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10749 };
10750 
10751 static int
dissect_lpp_GNSS_SSR_GriddedCorrectionReq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10752 dissect_lpp_GNSS_SSR_GriddedCorrectionReq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10753   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10754                                    ett_lpp_GNSS_SSR_GriddedCorrectionReq_r16, GNSS_SSR_GriddedCorrectionReq_r16_sequence);
10755 
10756   return offset;
10757 }
10758 
10759 
10760 static const per_sequence_t NavIC_DifferentialCorrectionsReq_r16_sequence[] = {
10761   { &hf_lpp_dgnss_SignalsReq_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
10762   { NULL, 0, 0, NULL }
10763 };
10764 
10765 static int
dissect_lpp_NavIC_DifferentialCorrectionsReq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10766 dissect_lpp_NavIC_DifferentialCorrectionsReq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10767   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10768                                    ett_lpp_NavIC_DifferentialCorrectionsReq_r16, NavIC_DifferentialCorrectionsReq_r16_sequence);
10769 
10770   return offset;
10771 }
10772 
10773 
10774 static const per_sequence_t NavIC_GridModelReq_r16_sequence[] = {
10775   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10776 };
10777 
10778 static int
dissect_lpp_NavIC_GridModelReq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10779 dissect_lpp_NavIC_GridModelReq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10780   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10781                                    ett_lpp_NavIC_GridModelReq_r16, NavIC_GridModelReq_r16_sequence);
10782 
10783   return offset;
10784 }
10785 
10786 
10787 static const per_sequence_t GNSS_GenericAssistDataReqElement_eag_3_sequence[] = {
10788   { &hf_lpp_gnss_SSR_URA_Req_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_URA_Req_r16 },
10789   { &hf_lpp_gnss_SSR_PhaseBiasReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_PhaseBiasReq_r16 },
10790   { &hf_lpp_gnss_SSR_STEC_CorrectionReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_STEC_CorrectionReq_r16 },
10791   { &hf_lpp_gnss_SSR_GriddedCorrectionReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_GriddedCorrectionReq_r16 },
10792   { &hf_lpp_navic_DifferentialCorrectionsReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NavIC_DifferentialCorrectionsReq_r16 },
10793   { &hf_lpp_navic_GridModelReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NavIC_GridModelReq_r16 },
10794   { NULL, 0, 0, NULL }
10795 };
10796 
10797 static int
dissect_lpp_GNSS_GenericAssistDataReqElement_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10798 dissect_lpp_GNSS_GenericAssistDataReqElement_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10799   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataReqElement_eag_3_sequence);
10800 
10801   return offset;
10802 }
10803 
10804 
10805 static const per_sequence_t GNSS_GenericAssistDataReqElement_sequence[] = {
10806   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
10807   { &hf_lpp_sbas_ID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_ID },
10808   { &hf_lpp_gnss_TimeModelsReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_TimeModelListReq },
10809   { &hf_lpp_gnss_DifferentialCorrectionsReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DifferentialCorrectionsReq },
10810   { &hf_lpp_gnss_NavigationModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavigationModelReq },
10811   { &hf_lpp_gnss_RealTimeIntegrityReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_RealTimeIntegrityReq },
10812   { &hf_lpp_gnss_DataBitAssistanceReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitAssistanceReq },
10813   { &hf_lpp_gnss_AcquisitionAssistanceReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AcquisitionAssistanceReq },
10814   { &hf_lpp_gnss_AlmanacReq , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AlmanacReq },
10815   { &hf_lpp_gnss_UTCModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_UTC_ModelReq },
10816   { &hf_lpp_gnss_AuxiliaryInformationReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AuxiliaryInformationReq },
10817   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataReqElement_eag_1 },
10818   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataReqElement_eag_2 },
10819   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataReqElement_eag_3 },
10820   { NULL, 0, 0, NULL }
10821 };
10822 
10823 static int
dissect_lpp_GNSS_GenericAssistDataReqElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10824 dissect_lpp_GNSS_GenericAssistDataReqElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10825   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10826                                    ett_lpp_GNSS_GenericAssistDataReqElement, GNSS_GenericAssistDataReqElement_sequence);
10827 
10828   return offset;
10829 }
10830 
10831 
10832 static const per_sequence_t GNSS_GenericAssistDataReq_sequence_of[1] = {
10833   { &hf_lpp_GNSS_GenericAssistDataReq_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataReqElement },
10834 };
10835 
10836 static int
dissect_lpp_GNSS_GenericAssistDataReq(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10837 dissect_lpp_GNSS_GenericAssistDataReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10838   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10839                                                   ett_lpp_GNSS_GenericAssistDataReq, GNSS_GenericAssistDataReq_sequence_of,
10840                                                   1, 16, FALSE);
10841 
10842   return offset;
10843 }
10844 
10845 
10846 
10847 static int
dissect_lpp_INTEGER_1_32(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10848 dissect_lpp_INTEGER_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10849   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10850                                                             1U, 32U, NULL, FALSE);
10851 
10852   return offset;
10853 }
10854 
10855 
10856 
10857 static int
dissect_lpp_INTEGER_1_64(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10858 dissect_lpp_INTEGER_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10859   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10860                                                             1U, 64U, NULL, FALSE);
10861 
10862   return offset;
10863 }
10864 
10865 
10866 static const per_sequence_t GNSS_PeriodicControlParam_r15_sequence[] = {
10867   { &hf_lpp_deliveryAmount_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_32 },
10868   { &hf_lpp_deliveryInterval_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_64 },
10869   { NULL, 0, 0, NULL }
10870 };
10871 
10872 static int
dissect_lpp_GNSS_PeriodicControlParam_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10873 dissect_lpp_GNSS_PeriodicControlParam_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10874   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10875                                    ett_lpp_GNSS_PeriodicControlParam_r15, GNSS_PeriodicControlParam_r15_sequence);
10876 
10877   return offset;
10878 }
10879 
10880 
10881 static const per_sequence_t GNSS_PeriodicAssistDataReq_r15_eag_1_sequence[] = {
10882   { &hf_lpp_gnss_SSR_PeriodicURA_Req_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10883   { &hf_lpp_gnss_SSR_PeriodicPhaseBiasReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10884   { &hf_lpp_gnss_SSR_PeriodicSTEC_CorrectionReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10885   { &hf_lpp_gnss_SSR_PeriodicGriddedCorrectionReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10886   { NULL, 0, 0, NULL }
10887 };
10888 
10889 static int
dissect_lpp_GNSS_PeriodicAssistDataReq_r15_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10890 dissect_lpp_GNSS_PeriodicAssistDataReq_r15_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10891   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_PeriodicAssistDataReq_r15_eag_1_sequence);
10892 
10893   return offset;
10894 }
10895 
10896 
10897 static const per_sequence_t GNSS_PeriodicAssistDataReq_r15_sequence[] = {
10898   { &hf_lpp_gnss_RTK_PeriodicObservationsReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10899   { &hf_lpp_glo_RTK_PeriodicBiasInformationReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10900   { &hf_lpp_gnss_RTK_MAC_PeriodicCorrectionDifferencesReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10901   { &hf_lpp_gnss_RTK_PeriodicResidualsReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10902   { &hf_lpp_gnss_RTK_FKP_PeriodicGradientsReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10903   { &hf_lpp_gnss_SSR_PeriodicOrbitCorrectionsReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10904   { &hf_lpp_gnss_SSR_PeriodicClockCorrectionsReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10905   { &hf_lpp_gnss_SSR_PeriodicCodeBiasReq_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
10906   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_PeriodicAssistDataReq_r15_eag_1 },
10907   { NULL, 0, 0, NULL }
10908 };
10909 
10910 static int
dissect_lpp_GNSS_PeriodicAssistDataReq_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10911 dissect_lpp_GNSS_PeriodicAssistDataReq_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10912   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10913                                    ett_lpp_GNSS_PeriodicAssistDataReq_r15, GNSS_PeriodicAssistDataReq_r15_sequence);
10914 
10915   return offset;
10916 }
10917 
10918 
10919 static const per_sequence_t A_GNSS_RequestAssistanceData_eag_1_sequence[] = {
10920   { &hf_lpp_gnss_PeriodicAssistDataReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicAssistDataReq_r15 },
10921   { NULL, 0, 0, NULL }
10922 };
10923 
10924 static int
dissect_lpp_A_GNSS_RequestAssistanceData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10925 dissect_lpp_A_GNSS_RequestAssistanceData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10926   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, A_GNSS_RequestAssistanceData_eag_1_sequence);
10927 
10928   return offset;
10929 }
10930 
10931 
10932 static const per_sequence_t A_GNSS_RequestAssistanceData_sequence[] = {
10933   { &hf_lpp_gnss_CommonAssistDataReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_CommonAssistDataReq },
10934   { &hf_lpp_gnss_GenericAssistDataReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_GenericAssistDataReq },
10935   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_A_GNSS_RequestAssistanceData_eag_1 },
10936   { NULL, 0, 0, NULL }
10937 };
10938 
10939 static int
dissect_lpp_A_GNSS_RequestAssistanceData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10940 dissect_lpp_A_GNSS_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10941   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10942                                    ett_lpp_A_GNSS_RequestAssistanceData, A_GNSS_RequestAssistanceData_sequence);
10943 
10944   return offset;
10945 }
10946 
10947 
10948 
10949 static int
dissect_lpp_INTEGER_0_503(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10950 dissect_lpp_INTEGER_0_503(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10951   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10952                                                             0U, 503U, NULL, FALSE);
10953 
10954   return offset;
10955 }
10956 
10957 
10958 static int * const T_adType_r14_bits[] = {
10959   &hf_lpp_T_adType_r14_prs,
10960   &hf_lpp_T_adType_r14_nprs,
10961   NULL
10962 };
10963 
10964 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_)10965 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_) {
10966   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
10967                                      1, 8, FALSE, T_adType_r14_bits, 2, NULL, NULL);
10968 
10969   return offset;
10970 }
10971 
10972 
10973 static const per_sequence_t OTDOA_RequestAssistanceData_eag_1_sequence[] = {
10974   { &hf_lpp_adType_r14      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_adType_r14 },
10975   { NULL, 0, 0, NULL }
10976 };
10977 
10978 static int
dissect_lpp_OTDOA_RequestAssistanceData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10979 dissect_lpp_OTDOA_RequestAssistanceData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10980   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_RequestAssistanceData_eag_1_sequence);
10981 
10982   return offset;
10983 }
10984 
10985 
10986 
10987 static int
dissect_lpp_INTEGER_0_1007(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)10988 dissect_lpp_INTEGER_0_1007(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10989   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10990                                                             0U, 1007U, NULL, FALSE);
10991 
10992   return offset;
10993 }
10994 
10995 
10996 static const per_sequence_t OTDOA_RequestAssistanceData_eag_2_sequence[] = {
10997   { &hf_lpp_nrPhysCellId_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1007 },
10998   { NULL, 0, 0, NULL }
10999 };
11000 
11001 static int
dissect_lpp_OTDOA_RequestAssistanceData_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11002 dissect_lpp_OTDOA_RequestAssistanceData_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11003   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_RequestAssistanceData_eag_2_sequence);
11004 
11005   return offset;
11006 }
11007 
11008 
11009 static const per_sequence_t OTDOA_RequestAssistanceData_sequence[] = {
11010   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
11011   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_RequestAssistanceData_eag_1 },
11012   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_RequestAssistanceData_eag_2 },
11013   { NULL, 0, 0, NULL }
11014 };
11015 
11016 static int
dissect_lpp_OTDOA_RequestAssistanceData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11017 dissect_lpp_OTDOA_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11018   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11019                                    ett_lpp_OTDOA_RequestAssistanceData, OTDOA_RequestAssistanceData_sequence);
11020 
11021   return offset;
11022 }
11023 
11024 
11025 static const per_sequence_t Sensor_RequestAssistanceData_r14_sequence[] = {
11026   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
11027 };
11028 
11029 static int
dissect_lpp_Sensor_RequestAssistanceData_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11030 dissect_lpp_Sensor_RequestAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11031   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11032                                    ett_lpp_Sensor_RequestAssistanceData_r14, Sensor_RequestAssistanceData_r14_sequence);
11033 
11034   return offset;
11035 }
11036 
11037 
11038 static const per_sequence_t TBS_RequestAssistanceData_r14_sequence[] = {
11039   { &hf_lpp_mbs_AlmanacAssistanceDataReq_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
11040   { &hf_lpp_mbs_AcquisitionAssistanceDataReq_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
11041   { NULL, 0, 0, NULL }
11042 };
11043 
11044 static int
dissect_lpp_TBS_RequestAssistanceData_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11045 dissect_lpp_TBS_RequestAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11046   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11047                                    ett_lpp_TBS_RequestAssistanceData_r14, TBS_RequestAssistanceData_r14_sequence);
11048 
11049   return offset;
11050 }
11051 
11052 
11053 static int * const T_requestedAD_r14_bits[] = {
11054   &hf_lpp_T_requestedAD_r14_ap_identifier,
11055   &hf_lpp_T_requestedAD_r14_ap_location,
11056   NULL
11057 };
11058 
11059 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_)11060 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_) {
11061   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
11062                                      1, 8, FALSE, T_requestedAD_r14_bits, 2, NULL, NULL);
11063 
11064   return offset;
11065 }
11066 
11067 
11068 
11069 static int
dissect_lpp_OCTET_STRING_SIZE_6(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11070 dissect_lpp_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11071   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
11072                                        6, 6, FALSE, NULL);
11073 
11074   return offset;
11075 }
11076 
11077 
11078 
11079 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_)11080 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_) {
11081 #line 1779 "./asn1/lpp/lpp.cnf"
11082   tvbuff_t *ssid_tvb = NULL;
11083 
11084   offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
11085                                        1, 32, FALSE, &ssid_tvb);
11086 
11087   actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
11088 
11089 
11090 
11091   return offset;
11092 }
11093 
11094 
11095 static const per_sequence_t WLAN_AP_Identifier_r13_sequence[] = {
11096   { &hf_lpp_bssid_r13       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_OCTET_STRING_SIZE_6 },
11097   { &hf_lpp_ssid_r13        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_ssid_r13 },
11098   { NULL, 0, 0, NULL }
11099 };
11100 
11101 static int
dissect_lpp_WLAN_AP_Identifier_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11102 dissect_lpp_WLAN_AP_Identifier_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11103   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11104                                    ett_lpp_WLAN_AP_Identifier_r13, WLAN_AP_Identifier_r13_sequence);
11105 
11106   return offset;
11107 }
11108 
11109 
11110 static const per_sequence_t SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13_sequence_of[1] = {
11111   { &hf_lpp_visibleAPs_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_AP_Identifier_r13 },
11112 };
11113 
11114 static int
dissect_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11115 dissect_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11116   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11117                                                   ett_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13, SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13_sequence_of,
11118                                                   1, maxVisibleAPs_r14, FALSE);
11119 
11120   return offset;
11121 }
11122 
11123 
11124 static const per_sequence_t SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13_sequence_of[1] = {
11125   { &hf_lpp_wlan_AP_StoredData_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_AP_Identifier_r13 },
11126 };
11127 
11128 static int
dissect_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11129 dissect_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11130   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11131                                                   ett_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13, SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13_sequence_of,
11132                                                   1, maxKnownAPs_r14, FALSE);
11133 
11134   return offset;
11135 }
11136 
11137 
11138 static const per_sequence_t WLAN_RequestAssistanceData_r14_sequence[] = {
11139   { &hf_lpp_requestedAD_r14 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_requestedAD_r14 },
11140   { &hf_lpp_visibleAPs_r14  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13 },
11141   { &hf_lpp_wlan_AP_StoredData_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13 },
11142   { NULL, 0, 0, NULL }
11143 };
11144 
11145 static int
dissect_lpp_WLAN_RequestAssistanceData_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11146 dissect_lpp_WLAN_RequestAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11147   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11148                                    ett_lpp_WLAN_RequestAssistanceData_r14, WLAN_RequestAssistanceData_r14_sequence);
11149 
11150   return offset;
11151 }
11152 
11153 
11154 static const per_sequence_t RequestAssistanceData_r9_IEs_eag_1_sequence[] = {
11155   { &hf_lpp_sensor_RequestAssistanceData_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_RequestAssistanceData_r14 },
11156   { &hf_lpp_tbs_RequestAssistanceData_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TBS_RequestAssistanceData_r14 },
11157   { &hf_lpp_wlan_RequestAssistanceData_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_WLAN_RequestAssistanceData_r14 },
11158   { NULL, 0, 0, NULL }
11159 };
11160 
11161 static int
dissect_lpp_RequestAssistanceData_r9_IEs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11162 dissect_lpp_RequestAssistanceData_r9_IEs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11163   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RequestAssistanceData_r9_IEs_eag_1_sequence);
11164 
11165   return offset;
11166 }
11167 
11168 
11169 
11170 static int
dissect_lpp_NR_PhysCellID_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11171 dissect_lpp_NR_PhysCellID_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11172   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11173                                                             0U, 1007U, NULL, FALSE);
11174 
11175   return offset;
11176 }
11177 
11178 
11179 static int * const T_nr_AdType_r16_02_bits[] = {
11180   &hf_lpp_T_nr_AdType_r16_02_dl_prs,
11181   &hf_lpp_T_nr_AdType_r16_02_ul_srs,
11182   NULL
11183 };
11184 
11185 static int
dissect_lpp_T_nr_AdType_r16_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11186 dissect_lpp_T_nr_AdType_r16_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11187   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
11188                                      1, 8, FALSE, T_nr_AdType_r16_02_bits, 2, NULL, NULL);
11189 
11190   return offset;
11191 }
11192 
11193 
11194 static const per_sequence_t NR_Multi_RTT_RequestAssistanceData_r16_sequence[] = {
11195   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
11196   { &hf_lpp_nr_AdType_r16_02, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_AdType_r16_02 },
11197   { NULL, 0, 0, NULL }
11198 };
11199 
11200 static int
dissect_lpp_NR_Multi_RTT_RequestAssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11201 dissect_lpp_NR_Multi_RTT_RequestAssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11202   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11203                                    ett_lpp_NR_Multi_RTT_RequestAssistanceData_r16, NR_Multi_RTT_RequestAssistanceData_r16_sequence);
11204 
11205   return offset;
11206 }
11207 
11208 
11209 static int * const T_nr_AdType_r16_01_bits[] = {
11210   &hf_lpp_T_nr_AdType_r16_01_dl_prs,
11211   &hf_lpp_T_nr_AdType_r16_01_posCalc,
11212   NULL
11213 };
11214 
11215 static int
dissect_lpp_T_nr_AdType_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11216 dissect_lpp_T_nr_AdType_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11217   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
11218                                      1, 8, FALSE, T_nr_AdType_r16_01_bits, 2, NULL, NULL);
11219 
11220   return offset;
11221 }
11222 
11223 
11224 static const per_sequence_t NR_DL_AoD_RequestAssistanceData_r16_sequence[] = {
11225   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
11226   { &hf_lpp_nr_AdType_r16_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_AdType_r16_01 },
11227   { NULL, 0, 0, NULL }
11228 };
11229 
11230 static int
dissect_lpp_NR_DL_AoD_RequestAssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11231 dissect_lpp_NR_DL_AoD_RequestAssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11232   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11233                                    ett_lpp_NR_DL_AoD_RequestAssistanceData_r16, NR_DL_AoD_RequestAssistanceData_r16_sequence);
11234 
11235   return offset;
11236 }
11237 
11238 
11239 static int * const T_nr_AdType_r16_bits[] = {
11240   &hf_lpp_T_nr_AdType_r16_dl_prs,
11241   &hf_lpp_T_nr_AdType_r16_posCalc,
11242   NULL
11243 };
11244 
11245 static int
dissect_lpp_T_nr_AdType_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11246 dissect_lpp_T_nr_AdType_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11247   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
11248                                      1, 8, FALSE, T_nr_AdType_r16_bits, 2, NULL, NULL);
11249 
11250   return offset;
11251 }
11252 
11253 
11254 static const per_sequence_t NR_DL_TDOA_RequestAssistanceData_r16_sequence[] = {
11255   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
11256   { &hf_lpp_nr_AdType_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_AdType_r16 },
11257   { NULL, 0, 0, NULL }
11258 };
11259 
11260 static int
dissect_lpp_NR_DL_TDOA_RequestAssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11261 dissect_lpp_NR_DL_TDOA_RequestAssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11262   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11263                                    ett_lpp_NR_DL_TDOA_RequestAssistanceData_r16, NR_DL_TDOA_RequestAssistanceData_r16_sequence);
11264 
11265   return offset;
11266 }
11267 
11268 
11269 static const per_sequence_t RequestAssistanceData_r9_IEs_eag_2_sequence[] = {
11270   { &hf_lpp_nr_Multi_RTT_RequestAssistanceData_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_RequestAssistanceData_r16 },
11271   { &hf_lpp_nr_DL_AoD_RequestAssistanceData_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_RequestAssistanceData_r16 },
11272   { &hf_lpp_nr_DL_TDOA_RequestAssistanceData_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_RequestAssistanceData_r16 },
11273   { NULL, 0, 0, NULL }
11274 };
11275 
11276 static int
dissect_lpp_RequestAssistanceData_r9_IEs_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11277 dissect_lpp_RequestAssistanceData_r9_IEs_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11278   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RequestAssistanceData_r9_IEs_eag_2_sequence);
11279 
11280   return offset;
11281 }
11282 
11283 
11284 static const per_sequence_t RequestAssistanceData_r9_IEs_sequence[] = {
11285   { &hf_lpp_commonIEsRequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsRequestAssistanceData },
11286   { &hf_lpp_a_gnss_RequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_RequestAssistanceData },
11287   { &hf_lpp_otdoa_RequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_RequestAssistanceData },
11288   { &hf_lpp_epdu_RequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
11289   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_RequestAssistanceData_r9_IEs_eag_1 },
11290   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_RequestAssistanceData_r9_IEs_eag_2 },
11291   { NULL, 0, 0, NULL }
11292 };
11293 
11294 static int
dissect_lpp_RequestAssistanceData_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11295 dissect_lpp_RequestAssistanceData_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11296   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11297                                    ett_lpp_RequestAssistanceData_r9_IEs, RequestAssistanceData_r9_IEs_sequence);
11298 
11299   return offset;
11300 }
11301 
11302 
11303 static const value_string lpp_T_c1_03_vals[] = {
11304   {   0, "requestAssistanceData-r9" },
11305   {   1, "spare3" },
11306   {   2, "spare2" },
11307   {   3, "spare1" },
11308   { 0, NULL }
11309 };
11310 
11311 static const per_choice_t T_c1_03_choice[] = {
11312   {   0, &hf_lpp_requestAssistanceData_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestAssistanceData_r9_IEs },
11313   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
11314   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
11315   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
11316   { 0, NULL, 0, NULL }
11317 };
11318 
11319 static int
dissect_lpp_T_c1_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11320 dissect_lpp_T_c1_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11321   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11322                                  ett_lpp_T_c1_03, T_c1_03_choice,
11323                                  NULL);
11324 
11325   return offset;
11326 }
11327 
11328 
11329 static const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = {
11330   { NULL, 0, 0, NULL }
11331 };
11332 
11333 static int
dissect_lpp_T_criticalExtensionsFuture_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11334 dissect_lpp_T_criticalExtensionsFuture_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11335   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11336                                    ett_lpp_T_criticalExtensionsFuture_02, T_criticalExtensionsFuture_02_sequence);
11337 
11338   return offset;
11339 }
11340 
11341 
11342 static const value_string lpp_T_criticalExtensions_02_vals[] = {
11343   {   0, "c1" },
11344   {   1, "criticalExtensionsFuture" },
11345   { 0, NULL }
11346 };
11347 
11348 static const per_choice_t T_criticalExtensions_02_choice[] = {
11349   {   0, &hf_lpp_c1_03           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_03 },
11350   {   1, &hf_lpp_criticalExtensionsFuture_02, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_02 },
11351   { 0, NULL, 0, NULL }
11352 };
11353 
11354 static int
dissect_lpp_T_criticalExtensions_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11355 dissect_lpp_T_criticalExtensions_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11356   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11357                                  ett_lpp_T_criticalExtensions_02, T_criticalExtensions_02_choice,
11358                                  NULL);
11359 
11360   return offset;
11361 }
11362 
11363 
11364 static const per_sequence_t RequestAssistanceData_sequence[] = {
11365   { &hf_lpp_criticalExtensions_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_02 },
11366   { NULL, 0, 0, NULL }
11367 };
11368 
11369 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_)11370 dissect_lpp_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11371 #line 131 "./asn1/lpp/lpp.cnf"
11372   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data");
11373 
11374 
11375   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11376                                    ett_lpp_RequestAssistanceData, RequestAssistanceData_sequence);
11377 
11378   return offset;
11379 }
11380 
11381 
11382 static const per_sequence_t CommonIEsProvideAssistanceData_eag_1_sequence[] = {
11383   { &hf_lpp_segmentationInfo_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SegmentationInfo_r14 },
11384   { NULL, 0, 0, NULL }
11385 };
11386 
11387 static int
dissect_lpp_CommonIEsProvideAssistanceData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11388 dissect_lpp_CommonIEsProvideAssistanceData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11389   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsProvideAssistanceData_eag_1_sequence);
11390 
11391   return offset;
11392 }
11393 
11394 
11395 static const per_sequence_t CommonIEsProvideAssistanceData_eag_2_sequence[] = {
11396   { &hf_lpp_periodicAssistanceData_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PeriodicAssistanceDataControlParameters_r15 },
11397   { NULL, 0, 0, NULL }
11398 };
11399 
11400 static int
dissect_lpp_CommonIEsProvideAssistanceData_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11401 dissect_lpp_CommonIEsProvideAssistanceData_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11402   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsProvideAssistanceData_eag_2_sequence);
11403 
11404   return offset;
11405 }
11406 
11407 
11408 static const per_sequence_t CommonIEsProvideAssistanceData_sequence[] = {
11409   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsProvideAssistanceData_eag_1 },
11410   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsProvideAssistanceData_eag_2 },
11411   { NULL, 0, 0, NULL }
11412 };
11413 
11414 static int
dissect_lpp_CommonIEsProvideAssistanceData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11415 dissect_lpp_CommonIEsProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11416   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11417                                    ett_lpp_CommonIEsProvideAssistanceData, CommonIEsProvideAssistanceData_sequence);
11418 
11419   return offset;
11420 }
11421 
11422 
11423 
11424 static int
dissect_lpp_INTEGER_0_32767(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11425 dissect_lpp_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11426   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11427                                                             0U, 32767U, NULL, FALSE);
11428 
11429   return offset;
11430 }
11431 
11432 
11433 
11434 static int
dissect_lpp_INTEGER_0_86399(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11435 dissect_lpp_INTEGER_0_86399(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11436   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11437                                                             0U, 86399U, NULL, FALSE);
11438 
11439   return offset;
11440 }
11441 
11442 
11443 
11444 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_)11445 dissect_lpp_T_notificationOfLeapSecond(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11446 #line 405 "./asn1/lpp/lpp.cnf"
11447   tvbuff_t *notificationOfLeapSecond_tvb = NULL;
11448   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
11449                                      2, 2, FALSE, NULL, 0, &notificationOfLeapSecond_tvb, NULL);
11450 
11451 
11452 
11453 
11454 #line 409 "./asn1/lpp/lpp.cnf"
11455   if (notificationOfLeapSecond_tvb) {
11456     guint bitvalue = tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2);
11457     actx->created_item = proto_tree_add_uint(tree, hf_index, notificationOfLeapSecond_tvb, 0, 1, bitvalue);
11458   }
11459 
11460 
11461   return offset;
11462 }
11463 
11464 
11465 
11466 static int
dissect_lpp_INTEGER_0_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11467 dissect_lpp_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11468   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11469                                                             0U, 1U, NULL, FALSE);
11470 
11471   return offset;
11472 }
11473 
11474 
11475 
11476 static int
dissect_lpp_INTEGER_0_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11477 dissect_lpp_INTEGER_0_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11478   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11479                                                             0U, 3U, NULL, FALSE);
11480 
11481   return offset;
11482 }
11483 
11484 
11485 static const per_sequence_t GPS_TOW_AssistElement_sequence[] = {
11486   { &hf_lpp_satelliteID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_64 },
11487   { &hf_lpp_tlmWord         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
11488   { &hf_lpp_antiSpoof       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
11489   { &hf_lpp_alert           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
11490   { &hf_lpp_tlmRsvdBits     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
11491   { NULL, 0, 0, NULL }
11492 };
11493 
11494 static int
dissect_lpp_GPS_TOW_AssistElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11495 dissect_lpp_GPS_TOW_AssistElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11496   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11497                                    ett_lpp_GPS_TOW_AssistElement, GPS_TOW_AssistElement_sequence);
11498 
11499   return offset;
11500 }
11501 
11502 
11503 static const per_sequence_t GPS_TOW_Assist_sequence_of[1] = {
11504   { &hf_lpp_GPS_TOW_Assist_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GPS_TOW_AssistElement },
11505 };
11506 
11507 static int
dissect_lpp_GPS_TOW_Assist(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11508 dissect_lpp_GPS_TOW_Assist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11509   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11510                                                   ett_lpp_GPS_TOW_Assist, GPS_TOW_Assist_sequence_of,
11511                                                   1, 64, FALSE);
11512 
11513   return offset;
11514 }
11515 
11516 
11517 static const per_sequence_t GNSS_SystemTime_sequence[] = {
11518   { &hf_lpp_gnss_TimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
11519   { &hf_lpp_gnss_DayNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
11520   { &hf_lpp_gnss_TimeOfDay  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_86399 },
11521   { &hf_lpp_gnss_TimeOfDayFrac_msec, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_999 },
11522   { &hf_lpp_notificationOfLeapSecond, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_notificationOfLeapSecond },
11523   { &hf_lpp_gps_TOW_Assist  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GPS_TOW_Assist },
11524   { NULL, 0, 0, NULL }
11525 };
11526 
11527 int
dissect_lpp_GNSS_SystemTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11528 dissect_lpp_GNSS_SystemTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11529   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11530                                    ett_lpp_GNSS_SystemTime, GNSS_SystemTime_sequence);
11531 
11532   return offset;
11533 }
11534 
11535 
11536 
11537 static int
dissect_lpp_INTEGER_0_127(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11538 dissect_lpp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11539   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11540                                                             0U, 127U, NULL, FALSE);
11541 
11542   return offset;
11543 }
11544 
11545 
11546 
11547 static int
dissect_lpp_INTEGER_0_12533(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11548 dissect_lpp_INTEGER_0_12533(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11549   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11550                                                             0U, 12533U, NULL, FALSE);
11551 
11552   return offset;
11553 }
11554 
11555 
11556 
11557 static int
dissect_lpp_INTEGER_0_3999999(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11558 dissect_lpp_INTEGER_0_3999999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11559   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11560                                                             0U, 3999999U, NULL, FALSE);
11561 
11562   return offset;
11563 }
11564 
11565 
11566 
11567 static int
dissect_lpp_INTEGER_M64_63(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11568 dissect_lpp_INTEGER_M64_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11569   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11570                                                             -64, 63U, NULL, FALSE);
11571 
11572   return offset;
11573 }
11574 
11575 
11576 static const per_sequence_t T_mcc_sequence_of[1] = {
11577   { &hf_lpp_mcc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
11578 };
11579 
11580 static int
dissect_lpp_T_mcc(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11581 dissect_lpp_T_mcc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11582   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11583                                                   ett_lpp_T_mcc, T_mcc_sequence_of,
11584                                                   3, 3, FALSE);
11585 
11586   return offset;
11587 }
11588 
11589 
11590 static const per_sequence_t T_mnc_sequence_of[1] = {
11591   { &hf_lpp_mnc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
11592 };
11593 
11594 static int
dissect_lpp_T_mnc(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11595 dissect_lpp_T_mnc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11596   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11597                                                   ett_lpp_T_mnc, T_mnc_sequence_of,
11598                                                   2, 3, FALSE);
11599 
11600   return offset;
11601 }
11602 
11603 
11604 static const per_sequence_t T_plmn_Identity_sequence[] = {
11605   { &hf_lpp_mcc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc },
11606   { &hf_lpp_mnc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc },
11607   { NULL, 0, 0, NULL }
11608 };
11609 
11610 static int
dissect_lpp_T_plmn_Identity(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11611 dissect_lpp_T_plmn_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11612   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11613                                    ett_lpp_T_plmn_Identity, T_plmn_Identity_sequence);
11614 
11615   return offset;
11616 }
11617 
11618 
11619 
11620 static int
dissect_lpp_BIT_STRING_SIZE_32(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11621 dissect_lpp_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11622   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
11623                                      32, 32, FALSE, NULL, 0, NULL, NULL);
11624 
11625   return offset;
11626 }
11627 
11628 
11629 static const value_string lpp_T_cellIdentity_vals[] = {
11630   {   0, "eutra" },
11631   {   1, "utra" },
11632   { 0, NULL }
11633 };
11634 
11635 static const per_choice_t T_cellIdentity_choice[] = {
11636   {   0, &hf_lpp_eutra           , ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_28 },
11637   {   1, &hf_lpp_utra            , ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_32 },
11638   { 0, NULL, 0, NULL }
11639 };
11640 
11641 static int
dissect_lpp_T_cellIdentity(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11642 dissect_lpp_T_cellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11643   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11644                                  ett_lpp_T_cellIdentity, T_cellIdentity_choice,
11645                                  NULL);
11646 
11647   return offset;
11648 }
11649 
11650 
11651 static const per_sequence_t CellGlobalIdEUTRA_AndUTRA_sequence[] = {
11652   { &hf_lpp_plmn_Identity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_plmn_Identity },
11653   { &hf_lpp_cellIdentity    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cellIdentity },
11654   { NULL, 0, 0, NULL }
11655 };
11656 
11657 int
dissect_lpp_CellGlobalIdEUTRA_AndUTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11658 dissect_lpp_CellGlobalIdEUTRA_AndUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11659   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11660                                    ett_lpp_CellGlobalIdEUTRA_AndUTRA, CellGlobalIdEUTRA_AndUTRA_sequence);
11661 
11662   return offset;
11663 }
11664 
11665 
11666 
11667 int
dissect_lpp_ARFCN_ValueEUTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11668 dissect_lpp_ARFCN_ValueEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11669   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11670                                                             0U, maxEARFCN, NULL, FALSE);
11671 
11672   return offset;
11673 }
11674 
11675 
11676 
11677 int
dissect_lpp_ARFCN_ValueEUTRA_v9a0(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11678 dissect_lpp_ARFCN_ValueEUTRA_v9a0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11679   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11680                                                             maxEARFCN_Plus1, maxEARFCN2, NULL, FALSE);
11681 
11682   return offset;
11683 }
11684 
11685 
11686 static const per_sequence_t T_eag_1_01_sequence[] = {
11687   { &hf_lpp_earfcn_v9a0     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_v9a0 },
11688   { NULL, 0, 0, NULL }
11689 };
11690 
11691 static int
dissect_lpp_T_eag_1_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11692 dissect_lpp_T_eag_1_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11693   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, T_eag_1_01_sequence);
11694 
11695   return offset;
11696 }
11697 
11698 
11699 static const per_sequence_t T_eUTRA_sequence[] = {
11700   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
11701   { &hf_lpp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
11702   { &hf_lpp_earfcn          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueEUTRA },
11703   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_T_eag_1_01 },
11704   { NULL, 0, 0, NULL }
11705 };
11706 
11707 static int
dissect_lpp_T_eUTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11708 dissect_lpp_T_eUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11709   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11710                                    ett_lpp_T_eUTRA, T_eUTRA_sequence);
11711 
11712   return offset;
11713 }
11714 
11715 
11716 
11717 static int
dissect_lpp_INTEGER_0_511(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11718 dissect_lpp_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11719   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11720                                                             0U, 511U, NULL, FALSE);
11721 
11722   return offset;
11723 }
11724 
11725 
11726 static const per_sequence_t T_fdd_sequence[] = {
11727   { &hf_lpp_primary_CPICH_Info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
11728   { NULL, 0, 0, NULL }
11729 };
11730 
11731 static int
dissect_lpp_T_fdd(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11732 dissect_lpp_T_fdd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11734                                    ett_lpp_T_fdd, T_fdd_sequence);
11735 
11736   return offset;
11737 }
11738 
11739 
11740 static const per_sequence_t T_tdd_sequence[] = {
11741   { &hf_lpp_cellParameters  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
11742   { NULL, 0, 0, NULL }
11743 };
11744 
11745 static int
dissect_lpp_T_tdd(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11746 dissect_lpp_T_tdd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11747   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11748                                    ett_lpp_T_tdd, T_tdd_sequence);
11749 
11750   return offset;
11751 }
11752 
11753 
11754 static const value_string lpp_T_mode_vals[] = {
11755   {   0, "fdd" },
11756   {   1, "tdd" },
11757   { 0, NULL }
11758 };
11759 
11760 static const per_choice_t T_mode_choice[] = {
11761   {   0, &hf_lpp_fdd             , ASN1_NO_EXTENSIONS     , dissect_lpp_T_fdd },
11762   {   1, &hf_lpp_tdd             , ASN1_NO_EXTENSIONS     , dissect_lpp_T_tdd },
11763   { 0, NULL, 0, NULL }
11764 };
11765 
11766 static int
dissect_lpp_T_mode(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11767 dissect_lpp_T_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11768   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11769                                  ett_lpp_T_mode, T_mode_choice,
11770                                  NULL);
11771 
11772   return offset;
11773 }
11774 
11775 
11776 
11777 int
dissect_lpp_ARFCN_ValueUTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11778 dissect_lpp_ARFCN_ValueUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11779   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11780                                                             0U, 16383U, NULL, FALSE);
11781 
11782   return offset;
11783 }
11784 
11785 
11786 static const per_sequence_t T_uTRA_sequence[] = {
11787   { &hf_lpp_mode            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_mode },
11788   { &hf_lpp_cellGlobalIdUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
11789   { &hf_lpp_uarfcn          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueUTRA },
11790   { NULL, 0, 0, NULL }
11791 };
11792 
11793 static int
dissect_lpp_T_uTRA(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11794 dissect_lpp_T_uTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11795   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11796                                    ett_lpp_T_uTRA, T_uTRA_sequence);
11797 
11798   return offset;
11799 }
11800 
11801 
11802 
11803 static int
dissect_lpp_INTEGER_0_1023(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11804 dissect_lpp_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11805   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11806                                                             0U, 1023U, NULL, FALSE);
11807 
11808   return offset;
11809 }
11810 
11811 
11812 static const per_sequence_t T_mcc_01_sequence_of[1] = {
11813   { &hf_lpp_mcc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
11814 };
11815 
11816 static int
dissect_lpp_T_mcc_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11817 dissect_lpp_T_mcc_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11818   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11819                                                   ett_lpp_T_mcc_01, T_mcc_01_sequence_of,
11820                                                   3, 3, FALSE);
11821 
11822   return offset;
11823 }
11824 
11825 
11826 static const per_sequence_t T_mnc_01_sequence_of[1] = {
11827   { &hf_lpp_mnc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
11828 };
11829 
11830 static int
dissect_lpp_T_mnc_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11831 dissect_lpp_T_mnc_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11832   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
11833                                                   ett_lpp_T_mnc_01, T_mnc_01_sequence_of,
11834                                                   2, 3, FALSE);
11835 
11836   return offset;
11837 }
11838 
11839 
11840 static const per_sequence_t T_plmn_Identity_01_sequence[] = {
11841   { &hf_lpp_mcc_01          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc_01 },
11842   { &hf_lpp_mnc_01          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc_01 },
11843   { NULL, 0, 0, NULL }
11844 };
11845 
11846 static int
dissect_lpp_T_plmn_Identity_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11847 dissect_lpp_T_plmn_Identity_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11848   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11849                                    ett_lpp_T_plmn_Identity_01, T_plmn_Identity_01_sequence);
11850 
11851   return offset;
11852 }
11853 
11854 
11855 static const per_sequence_t CellGlobalIdGERAN_sequence[] = {
11856   { &hf_lpp_plmn_Identity_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_plmn_Identity_01 },
11857   { &hf_lpp_locationAreaCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_16 },
11858   { &hf_lpp_cellGlobalIdGERAN_cellIdentity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_16 },
11859   { NULL, 0, 0, NULL }
11860 };
11861 
11862 int
dissect_lpp_CellGlobalIdGERAN(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11863 dissect_lpp_CellGlobalIdGERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11864   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11865                                    ett_lpp_CellGlobalIdGERAN, CellGlobalIdGERAN_sequence);
11866 
11867   return offset;
11868 }
11869 
11870 
11871 static const per_sequence_t T_gSM_sequence[] = {
11872   { &hf_lpp_bcchCarrier     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
11873   { &hf_lpp_bsic            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
11874   { &hf_lpp_cellGlobalIdGERAN, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdGERAN },
11875   { NULL, 0, 0, NULL }
11876 };
11877 
11878 static int
dissect_lpp_T_gSM(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11879 dissect_lpp_T_gSM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11880   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11881                                    ett_lpp_T_gSM, T_gSM_sequence);
11882 
11883   return offset;
11884 }
11885 
11886 
11887 
11888 static int
dissect_lpp_ARFCN_ValueEUTRA_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11889 dissect_lpp_ARFCN_ValueEUTRA_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11890   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11891                                                             0U, maxEARFCN2, NULL, FALSE);
11892 
11893   return offset;
11894 }
11895 
11896 
11897 static const value_string lpp_CarrierFreqOffsetNB_r14_vals[] = {
11898   {   0, "v-10" },
11899   {   1, "v-9" },
11900   {   2, "v-8" },
11901   {   3, "v-7" },
11902   {   4, "v-6" },
11903   {   5, "v-5" },
11904   {   6, "v-4" },
11905   {   7, "v-3" },
11906   {   8, "v-2" },
11907   {   9, "v-1" },
11908   {  10, "v-0dot5" },
11909   {  11, "v0" },
11910   {  12, "v1" },
11911   {  13, "v2" },
11912   {  14, "v3" },
11913   {  15, "v4" },
11914   {  16, "v5" },
11915   {  17, "v6" },
11916   {  18, "v7" },
11917   {  19, "v8" },
11918   {  20, "v9" },
11919   { 0, NULL }
11920 };
11921 
11922 static value_string_ext lpp_CarrierFreqOffsetNB_r14_vals_ext = VALUE_STRING_EXT_INIT(lpp_CarrierFreqOffsetNB_r14_vals);
11923 
11924 
11925 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_)11926 dissect_lpp_CarrierFreqOffsetNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11927   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
11928                                      21, NULL, FALSE, 0, NULL);
11929 
11930   return offset;
11931 }
11932 
11933 
11934 static const per_sequence_t CarrierFreq_NB_r14_sequence[] = {
11935   { &hf_lpp_carrierFreq_r14 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueEUTRA_r14 },
11936   { &hf_lpp_carrierFreqOffset_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CarrierFreqOffsetNB_r14 },
11937   { NULL, 0, 0, NULL }
11938 };
11939 
11940 static int
dissect_lpp_CarrierFreq_NB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11941 dissect_lpp_CarrierFreq_NB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11942   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11943                                    ett_lpp_CarrierFreq_NB_r14, CarrierFreq_NB_r14_sequence);
11944 
11945   return offset;
11946 }
11947 
11948 
11949 static const per_sequence_t T_nBIoT_r14_sequence[] = {
11950   { &hf_lpp_nbPhysCellId_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
11951   { &hf_lpp_nbCellGlobalId_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
11952   { &hf_lpp_nbCarrierFreq_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_CarrierFreq_NB_r14 },
11953   { NULL, 0, 0, NULL }
11954 };
11955 
11956 static int
dissect_lpp_T_nBIoT_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11957 dissect_lpp_T_nBIoT_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11958   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11959                                    ett_lpp_T_nBIoT_r14, T_nBIoT_r14_sequence);
11960 
11961   return offset;
11962 }
11963 
11964 
11965 
11966 static int
dissect_lpp_ARFCN_ValueNR_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11967 dissect_lpp_ARFCN_ValueNR_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11968   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
11969                                                             0U, 3279165U, NULL, FALSE);
11970 
11971   return offset;
11972 }
11973 
11974 
11975 static const per_sequence_t T_nr_r15_sequence[] = {
11976   { &hf_lpp_nrPhysCellId_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1007 },
11977   { &hf_lpp_nrCellGlobalID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
11978   { &hf_lpp_nrARFCN_r15     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueNR_r15 },
11979   { NULL, 0, 0, NULL }
11980 };
11981 
11982 static int
dissect_lpp_T_nr_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)11983 dissect_lpp_T_nr_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11984   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11985                                    ett_lpp_T_nr_r15, T_nr_r15_sequence);
11986 
11987   return offset;
11988 }
11989 
11990 
11991 static const value_string lpp_T_cellID_vals[] = {
11992   {   0, "eUTRA" },
11993   {   1, "uTRA" },
11994   {   2, "gSM" },
11995   {   3, "nBIoT-r14" },
11996   {   4, "nr-r15" },
11997   { 0, NULL }
11998 };
11999 
12000 static const per_choice_t T_cellID_choice[] = {
12001   {   0, &hf_lpp_eUTRA           , ASN1_EXTENSION_ROOT    , dissect_lpp_T_eUTRA },
12002   {   1, &hf_lpp_uTRA            , ASN1_EXTENSION_ROOT    , dissect_lpp_T_uTRA },
12003   {   2, &hf_lpp_gSM             , ASN1_EXTENSION_ROOT    , dissect_lpp_T_gSM },
12004   {   3, &hf_lpp_nBIoT_r14       , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_T_nBIoT_r14 },
12005   {   4, &hf_lpp_nr_r15          , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_T_nr_r15 },
12006   { 0, NULL, 0, NULL }
12007 };
12008 
12009 static int
dissect_lpp_T_cellID(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12010 dissect_lpp_T_cellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12011   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12012                                  ett_lpp_T_cellID, T_cellID_choice,
12013                                  NULL);
12014 
12015   return offset;
12016 }
12017 
12018 
12019 static const per_sequence_t NetworkTime_sequence[] = {
12020   { &hf_lpp_secondsFromFrameStructureStart, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_12533 },
12021   { &hf_lpp_fractionalSecondsFromFrameStructureStart, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3999999 },
12022   { &hf_lpp_frameDrift      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M64_63 },
12023   { &hf_lpp_cellID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cellID },
12024   { NULL, 0, 0, NULL }
12025 };
12026 
12027 int
dissect_lpp_NetworkTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12028 dissect_lpp_NetworkTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12029   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12030                                    ett_lpp_NetworkTime, NetworkTime_sequence);
12031 
12032   return offset;
12033 }
12034 
12035 
12036 static const value_string lpp_T_bsAlign_vals[] = {
12037   {   0, "true" },
12038   { 0, NULL }
12039 };
12040 
12041 
12042 static int
dissect_lpp_T_bsAlign(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12043 dissect_lpp_T_bsAlign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12044   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12045                                      1, NULL, FALSE, 0, NULL);
12046 
12047   return offset;
12048 }
12049 
12050 
12051 static const per_sequence_t GNSS_ReferenceTimeForOneCell_sequence[] = {
12052   { &hf_lpp_networkTime     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NetworkTime },
12053   { &hf_lpp_referenceTimeUnc, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
12054   { &hf_lpp_bsAlign         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_bsAlign },
12055   { NULL, 0, 0, NULL }
12056 };
12057 
12058 static int
dissect_lpp_GNSS_ReferenceTimeForOneCell(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12059 dissect_lpp_GNSS_ReferenceTimeForOneCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12060   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12061                                    ett_lpp_GNSS_ReferenceTimeForOneCell, GNSS_ReferenceTimeForOneCell_sequence);
12062 
12063   return offset;
12064 }
12065 
12066 
12067 static const per_sequence_t SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell_sequence_of[1] = {
12068   { &hf_lpp_gnss_ReferenceTimeForCells_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceTimeForOneCell },
12069 };
12070 
12071 static int
dissect_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12072 dissect_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12073   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12074                                                   ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell, SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell_sequence_of,
12075                                                   1, 16, FALSE);
12076 
12077   return offset;
12078 }
12079 
12080 
12081 static const per_sequence_t GNSS_ReferenceTime_sequence[] = {
12082   { &hf_lpp_gnss_SystemTime , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
12083   { &hf_lpp_referenceTimeUnc, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
12084   { &hf_lpp_gnss_ReferenceTimeForCells, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell },
12085   { NULL, 0, 0, NULL }
12086 };
12087 
12088 static int
dissect_lpp_GNSS_ReferenceTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12089 dissect_lpp_GNSS_ReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12090   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12091                                    ett_lpp_GNSS_ReferenceTime, GNSS_ReferenceTime_sequence);
12092 
12093   return offset;
12094 }
12095 
12096 
12097 static const value_string lpp_T_latitudeSign_04_vals[] = {
12098   {   0, "north" },
12099   {   1, "south" },
12100   { 0, NULL }
12101 };
12102 
12103 
12104 static int
dissect_lpp_T_latitudeSign_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12105 dissect_lpp_T_latitudeSign_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12106   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12107                                      2, NULL, FALSE, 0, NULL);
12108 
12109   return offset;
12110 }
12111 
12112 
12113 
12114 static int
dissect_lpp_INTEGER_0_8388607(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12115 dissect_lpp_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12116   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12117                                                             0U, 8388607U, NULL, FALSE);
12118 
12119   return offset;
12120 }
12121 
12122 
12123 
12124 static int
dissect_lpp_INTEGER_M8388608_8388607(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12125 dissect_lpp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12126   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12127                                                             -8388608, 8388607U, NULL, FALSE);
12128 
12129   return offset;
12130 }
12131 
12132 
12133 static const value_string lpp_T_altitudeDirection_01_vals[] = {
12134   {   0, "height" },
12135   {   1, "depth" },
12136   { 0, NULL }
12137 };
12138 
12139 
12140 static int
dissect_lpp_T_altitudeDirection_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12141 dissect_lpp_T_altitudeDirection_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12142   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12143                                      2, NULL, FALSE, 0, NULL);
12144 
12145   return offset;
12146 }
12147 
12148 
12149 
12150 static int
dissect_lpp_INTEGER_0_179(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12151 dissect_lpp_INTEGER_0_179(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12152   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12153                                                             0U, 179U, NULL, FALSE);
12154 
12155   return offset;
12156 }
12157 
12158 
12159 
12160 static int
dissect_lpp_INTEGER_0_100(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12161 dissect_lpp_INTEGER_0_100(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12162   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12163                                                             0U, 100U, NULL, FALSE);
12164 
12165   return offset;
12166 }
12167 
12168 
12169 static const per_sequence_t EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_sequence[] = {
12170   { &hf_lpp_latitudeSign_04 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_04 },
12171   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
12172   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
12173   { &hf_lpp_altitudeDirection_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_altitudeDirection_01 },
12174   { &hf_lpp_altitude        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
12175   { &hf_lpp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
12176   { &hf_lpp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
12177   { &hf_lpp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
12178   { &hf_lpp_uncertaintyAltitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
12179   { &hf_lpp_confidence      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
12180   { NULL, 0, 0, NULL }
12181 };
12182 
12183 int
dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12184 dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12185   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12186                                    ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid, EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_sequence);
12187 
12188   return offset;
12189 }
12190 
12191 
12192 static const per_sequence_t GNSS_ReferenceLocation_sequence[] = {
12193   { &hf_lpp_threeDlocation  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
12194   { NULL, 0, 0, NULL }
12195 };
12196 
12197 static int
dissect_lpp_GNSS_ReferenceLocation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12198 dissect_lpp_GNSS_ReferenceLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12199   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12200                                    ett_lpp_GNSS_ReferenceLocation, GNSS_ReferenceLocation_sequence);
12201 
12202   return offset;
12203 }
12204 
12205 
12206 
12207 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_)12208 dissect_lpp_T_dataID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12209 #line 424 "./asn1/lpp/lpp.cnf"
12210   tvbuff_t *dataID_tvb = NULL;
12211   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
12212                                      2, 2, FALSE, NULL, 0, &dataID_tvb, NULL);
12213 
12214 
12215 
12216 
12217 #line 428 "./asn1/lpp/lpp.cnf"
12218   if (dataID_tvb) {
12219     guint bitvalue = tvb_get_bits8(dataID_tvb, 0, 2);
12220     actx->created_item = proto_tree_add_uint(tree, hf_index, dataID_tvb, 0, 1, bitvalue);
12221   }
12222 
12223 
12224   return offset;
12225 }
12226 
12227 
12228 
12229 static int
dissect_lpp_INTEGER_M128_127(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12230 dissect_lpp_INTEGER_M128_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12231   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12232                                                             -128, 127U, NULL, FALSE);
12233 
12234   return offset;
12235 }
12236 
12237 
12238 static const per_sequence_t KlobucharModelParameter_sequence[] = {
12239   { &hf_lpp_dataID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dataID },
12240   { &hf_lpp_alfa0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12241   { &hf_lpp_alfa1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12242   { &hf_lpp_alfa2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12243   { &hf_lpp_alfa3           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12244   { &hf_lpp_beta0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12245   { &hf_lpp_beta1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12246   { &hf_lpp_beta2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12247   { &hf_lpp_beta3           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12248   { NULL, 0, 0, NULL }
12249 };
12250 
12251 static int
dissect_lpp_KlobucharModelParameter(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12252 dissect_lpp_KlobucharModelParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12253   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12254                                    ett_lpp_KlobucharModelParameter, KlobucharModelParameter_sequence);
12255 
12256   return offset;
12257 }
12258 
12259 
12260 
12261 static int
dissect_lpp_INTEGER_0_2047(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12262 dissect_lpp_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12263   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12264                                                             0U, 2047U, NULL, FALSE);
12265 
12266   return offset;
12267 }
12268 
12269 
12270 
12271 static int
dissect_lpp_INTEGER_M1024_1023(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12272 dissect_lpp_INTEGER_M1024_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12273   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12274                                                             -1024, 1023U, NULL, FALSE);
12275 
12276   return offset;
12277 }
12278 
12279 
12280 
12281 static int
dissect_lpp_INTEGER_M8192_8191(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12282 dissect_lpp_INTEGER_M8192_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12283   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12284                                                             -8192, 8191U, NULL, FALSE);
12285 
12286   return offset;
12287 }
12288 
12289 
12290 static const per_sequence_t NeQuickModelParameter_sequence[] = {
12291   { &hf_lpp_ai0             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
12292   { &hf_lpp_ai1             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
12293   { &hf_lpp_ai2             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
12294   { &hf_lpp_ionoStormFlag1  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
12295   { &hf_lpp_ionoStormFlag2  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
12296   { &hf_lpp_ionoStormFlag3  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
12297   { &hf_lpp_ionoStormFlag4  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
12298   { &hf_lpp_ionoStormFlag5  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
12299   { NULL, 0, 0, NULL }
12300 };
12301 
12302 static int
dissect_lpp_NeQuickModelParameter(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12303 dissect_lpp_NeQuickModelParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12304   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12305                                    ett_lpp_NeQuickModelParameter, NeQuickModelParameter_sequence);
12306 
12307   return offset;
12308 }
12309 
12310 
12311 static const per_sequence_t KlobucharModel2Parameter_r16_sequence[] = {
12312   { &hf_lpp_alfa1_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
12313   { &hf_lpp_alfa2_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12314   { &hf_lpp_alfa3_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12315   { &hf_lpp_alfa4_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12316   { &hf_lpp_alfa5_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12317   { &hf_lpp_alfa6_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12318   { &hf_lpp_alfa7_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12319   { &hf_lpp_alfa8_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12320   { &hf_lpp_alfa9_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
12321   { NULL, 0, 0, NULL }
12322 };
12323 
12324 static int
dissect_lpp_KlobucharModel2Parameter_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12325 dissect_lpp_KlobucharModel2Parameter_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12326   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12327                                    ett_lpp_KlobucharModel2Parameter_r16, KlobucharModel2Parameter_r16_sequence);
12328 
12329   return offset;
12330 }
12331 
12332 
12333 static const per_sequence_t GNSS_IonosphericModel_eag_1_sequence[] = {
12334   { &hf_lpp_klobucharModel2_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_KlobucharModel2Parameter_r16 },
12335   { NULL, 0, 0, NULL }
12336 };
12337 
12338 static int
dissect_lpp_GNSS_IonosphericModel_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12339 dissect_lpp_GNSS_IonosphericModel_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12340   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_IonosphericModel_eag_1_sequence);
12341 
12342   return offset;
12343 }
12344 
12345 
12346 static const per_sequence_t GNSS_IonosphericModel_sequence[] = {
12347   { &hf_lpp_klobucharModel  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_KlobucharModelParameter },
12348   { &hf_lpp_neQuickModel    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NeQuickModelParameter },
12349   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_IonosphericModel_eag_1 },
12350   { NULL, 0, 0, NULL }
12351 };
12352 
12353 static int
dissect_lpp_GNSS_IonosphericModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12354 dissect_lpp_GNSS_IonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12355   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12356                                    ett_lpp_GNSS_IonosphericModel, GNSS_IonosphericModel_sequence);
12357 
12358   return offset;
12359 }
12360 
12361 
12362 
12363 static int
dissect_lpp_INTEGER_M1048576_1048575(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12364 dissect_lpp_INTEGER_M1048576_1048575(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12365   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12366                                                             -1048576, 1048575U, NULL, FALSE);
12367 
12368   return offset;
12369 }
12370 
12371 
12372 
12373 static int
dissect_lpp_INTEGER_M16384_16383(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12374 dissect_lpp_INTEGER_M16384_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12375   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12376                                                             -16384, 16383U, NULL, FALSE);
12377 
12378   return offset;
12379 }
12380 
12381 
12382 
12383 static int
dissect_lpp_INTEGER_M1073741824_1073741823(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12384 dissect_lpp_INTEGER_M1073741824_1073741823(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12385   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12386                                                             -1073741824, 1073741823U, NULL, FALSE);
12387 
12388   return offset;
12389 }
12390 
12391 
12392 
12393 static int
dissect_lpp_INTEGER_M262144_262143(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12394 dissect_lpp_INTEGER_M262144_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12395   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12396                                                             -262144, 262143U, NULL, FALSE);
12397 
12398   return offset;
12399 }
12400 
12401 
12402 static const per_sequence_t GNSS_EarthOrientationParameters_sequence[] = {
12403   { &hf_lpp_teop            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
12404   { &hf_lpp_pmX             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
12405   { &hf_lpp_pmXdot          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
12406   { &hf_lpp_pmY             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
12407   { &hf_lpp_pmYdot          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
12408   { &hf_lpp_deltaUT1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1073741824_1073741823 },
12409   { &hf_lpp_deltaUT1dot     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M262144_262143 },
12410   { NULL, 0, 0, NULL }
12411 };
12412 
12413 static int
dissect_lpp_GNSS_EarthOrientationParameters(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12414 dissect_lpp_GNSS_EarthOrientationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12415   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12416                                    ett_lpp_GNSS_EarthOrientationParameters, GNSS_EarthOrientationParameters_sequence);
12417 
12418   return offset;
12419 }
12420 
12421 
12422 static const value_string lpp_T_referenceStationIndicator_r15_vals[] = {
12423   {   0, "physical" },
12424   {   1, "non-physical" },
12425   { 0, NULL }
12426 };
12427 
12428 
12429 static int
dissect_lpp_T_referenceStationIndicator_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12430 dissect_lpp_T_referenceStationIndicator_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12431   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12432                                      2, NULL, FALSE, 0, NULL);
12433 
12434   return offset;
12435 }
12436 
12437 
12438 
12439 static int
dissect_lpp_INTEGER_M137438953472_137438953471(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12440 dissect_lpp_INTEGER_M137438953472_137438953471(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12441   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
12442                                                             G_GINT64_CONSTANT(-137438953472), G_GUINT64_CONSTANT(137438953471), NULL, FALSE);
12443 
12444   return offset;
12445 }
12446 
12447 
12448 
12449 static int
dissect_lpp_VisibleString_SIZE_1_256(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12450 dissect_lpp_VisibleString_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12451   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
12452                                           1, 256, FALSE);
12453 
12454   return offset;
12455 }
12456 
12457 
12458 static const value_string lpp_T_antennaSetUpID_r15_vals[] = {
12459   {   0, "non-zero" },
12460   { 0, NULL }
12461 };
12462 
12463 
12464 static int
dissect_lpp_T_antennaSetUpID_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12465 dissect_lpp_T_antennaSetUpID_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12466   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
12467                                      1, NULL, FALSE, 0, NULL);
12468 
12469   return offset;
12470 }
12471 
12472 
12473 static const per_sequence_t AntennaDescription_r15_sequence[] = {
12474   { &hf_lpp_antennaDescriptor_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_VisibleString_SIZE_1_256 },
12475   { &hf_lpp_antennaSetUpID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_antennaSetUpID_r15 },
12476   { NULL, 0, 0, NULL }
12477 };
12478 
12479 static int
dissect_lpp_AntennaDescription_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12480 dissect_lpp_AntennaDescription_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12481   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12482                                    ett_lpp_AntennaDescription_r15, AntennaDescription_r15_sequence);
12483 
12484   return offset;
12485 }
12486 
12487 
12488 static const per_sequence_t AntennaReferencePointUnc_r15_sequence[] = {
12489   { &hf_lpp_uncertainty_X_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12490   { &hf_lpp_confidence_X_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
12491   { &hf_lpp_uncertainty_Y_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12492   { &hf_lpp_confidence_Y_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
12493   { &hf_lpp_uncertainty_Z_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12494   { &hf_lpp_confidence_Z_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
12495   { NULL, 0, 0, NULL }
12496 };
12497 
12498 static int
dissect_lpp_AntennaReferencePointUnc_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12499 dissect_lpp_AntennaReferencePointUnc_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12500   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12501                                    ett_lpp_AntennaReferencePointUnc_r15, AntennaReferencePointUnc_r15_sequence);
12502 
12503   return offset;
12504 }
12505 
12506 
12507 static const per_sequence_t PhysicalReferenceStationInfo_r15_sequence[] = {
12508   { &hf_lpp_physicalReferenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
12509   { &hf_lpp_physical_ARP_ECEF_X_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M137438953472_137438953471 },
12510   { &hf_lpp_physical_ARP_ECEF_Y_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M137438953472_137438953471 },
12511   { &hf_lpp_physical_ARP_ECEF_Z_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M137438953472_137438953471 },
12512   { &hf_lpp_physical_ARP_unc_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AntennaReferencePointUnc_r15 },
12513   { NULL, 0, 0, NULL }
12514 };
12515 
12516 static int
dissect_lpp_PhysicalReferenceStationInfo_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12517 dissect_lpp_PhysicalReferenceStationInfo_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12518   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12519                                    ett_lpp_PhysicalReferenceStationInfo_r15, PhysicalReferenceStationInfo_r15_sequence);
12520 
12521   return offset;
12522 }
12523 
12524 
12525 static const per_sequence_t ReferenceStationList_r16_sequence_of[1] = {
12526   { &hf_lpp_ReferenceStationList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
12527 };
12528 
12529 static int
dissect_lpp_ReferenceStationList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12530 dissect_lpp_ReferenceStationList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12531   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12532                                                   ett_lpp_ReferenceStationList_r16, ReferenceStationList_r16_sequence_of,
12533                                                   1, 16, FALSE);
12534 
12535   return offset;
12536 }
12537 
12538 
12539 static const value_string lpp_EqualIntegerAmbiguityLevel_r16_vals[] = {
12540   {   0, "allReferenceStations-r16" },
12541   {   1, "referenceStationList-r16" },
12542   { 0, NULL }
12543 };
12544 
12545 static const per_choice_t EqualIntegerAmbiguityLevel_r16_choice[] = {
12546   {   0, &hf_lpp_allReferenceStations_r16, ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
12547   {   1, &hf_lpp_referenceStationList_r16, ASN1_NO_EXTENSIONS     , dissect_lpp_ReferenceStationList_r16 },
12548   { 0, NULL, 0, NULL }
12549 };
12550 
12551 static int
dissect_lpp_EqualIntegerAmbiguityLevel_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12552 dissect_lpp_EqualIntegerAmbiguityLevel_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12553   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12554                                  ett_lpp_EqualIntegerAmbiguityLevel_r16, EqualIntegerAmbiguityLevel_r16_choice,
12555                                  NULL);
12556 
12557   return offset;
12558 }
12559 
12560 
12561 static const per_sequence_t GNSS_RTK_ReferenceStationInfo_r15_eag_1_sequence[] = {
12562   { &hf_lpp_equalIntegerAmbiguityLevel_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_EqualIntegerAmbiguityLevel_r16 },
12563   { NULL, 0, 0, NULL }
12564 };
12565 
12566 static int
dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12567 dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12568   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_RTK_ReferenceStationInfo_r15_eag_1_sequence);
12569 
12570   return offset;
12571 }
12572 
12573 
12574 static const per_sequence_t GNSS_RTK_ReferenceStationInfo_r15_sequence[] = {
12575   { &hf_lpp_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
12576   { &hf_lpp_referenceStationIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_referenceStationIndicator_r15 },
12577   { &hf_lpp_antenna_reference_point_ECEF_X_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M137438953472_137438953471 },
12578   { &hf_lpp_antenna_reference_point_ECEF_Y_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M137438953472_137438953471 },
12579   { &hf_lpp_antenna_reference_point_ECEF_Z_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M137438953472_137438953471 },
12580   { &hf_lpp_antennaHeight_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_65535 },
12581   { &hf_lpp_antennaDescription_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AntennaDescription_r15 },
12582   { &hf_lpp_antenna_reference_point_unc_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AntennaReferencePointUnc_r15 },
12583   { &hf_lpp_physical_reference_station_info_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PhysicalReferenceStationInfo_r15 },
12584   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15_eag_1 },
12585   { NULL, 0, 0, NULL }
12586 };
12587 
12588 static int
dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12589 dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12590   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12591                                    ett_lpp_GNSS_RTK_ReferenceStationInfo_r15, GNSS_RTK_ReferenceStationInfo_r15_sequence);
12592 
12593   return offset;
12594 }
12595 
12596 
12597 
12598 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_)12599 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_) {
12600 #line 530 "./asn1/lpp/lpp.cnf"
12601   tvbuff_t *param_tvb = NULL;
12602   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
12603                                      1, 1, FALSE, NULL, 0, &param_tvb, NULL);
12604 
12605 
12606 
12607 
12608 #line 534 "./asn1/lpp/lpp.cnf"
12609   if (param_tvb) {
12610     guint bitvalue = tvb_get_bits8(param_tvb, 0, 1);
12611     actx->created_item = proto_tree_add_uint(tree, hf_index, param_tvb, 0, 1, bitvalue);
12612   }
12613 
12614 
12615   return offset;
12616 }
12617 
12618 
12619 
12620 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_)12621 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_) {
12622 #line 543 "./asn1/lpp/lpp.cnf"
12623   tvbuff_t *param_tvb = NULL;
12624   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
12625                                      3, 3, FALSE, NULL, 0, &param_tvb, NULL);
12626 
12627 
12628 
12629 
12630 #line 547 "./asn1/lpp/lpp.cnf"
12631   if (param_tvb) {
12632     guint bitvalue = tvb_get_bits8(param_tvb, 0, 3);
12633     actx->created_item = proto_tree_add_uint(tree, hf_index, param_tvb, 0, 1, bitvalue);
12634   }
12635 
12636 
12637   return offset;
12638 }
12639 
12640 
12641 static const per_sequence_t GNSS_RTK_CommonObservationInfo_r15_sequence[] = {
12642   { &hf_lpp_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
12643   { &hf_lpp_clockSteeringIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
12644   { &hf_lpp_externalClockIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
12645   { &hf_lpp_smoothingIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_smoothingIndicator_r15 },
12646   { &hf_lpp_smoothingInterval_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_smoothingInterval_r15 },
12647   { NULL, 0, 0, NULL }
12648 };
12649 
12650 static int
dissect_lpp_GNSS_RTK_CommonObservationInfo_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12651 dissect_lpp_GNSS_RTK_CommonObservationInfo_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12652   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12653                                    ett_lpp_GNSS_RTK_CommonObservationInfo_r15, GNSS_RTK_CommonObservationInfo_r15_sequence);
12654 
12655   return offset;
12656 }
12657 
12658 
12659 static const per_sequence_t GNSS_NetworkID_r15_sequence[] = {
12660   { &hf_lpp_networkID_r15_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12661   { NULL, 0, 0, NULL }
12662 };
12663 
12664 static int
dissect_lpp_GNSS_NetworkID_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12665 dissect_lpp_GNSS_NetworkID_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12666   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12667                                    ett_lpp_GNSS_NetworkID_r15, GNSS_NetworkID_r15_sequence);
12668 
12669   return offset;
12670 }
12671 
12672 
12673 static const per_sequence_t GNSS_SubNetworkID_r15_sequence[] = {
12674   { &hf_lpp_subNetworkID_r15_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
12675   { NULL, 0, 0, NULL }
12676 };
12677 
12678 static int
dissect_lpp_GNSS_SubNetworkID_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12679 dissect_lpp_GNSS_SubNetworkID_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12680   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12681                                    ett_lpp_GNSS_SubNetworkID_r15, GNSS_SubNetworkID_r15_sequence);
12682 
12683   return offset;
12684 }
12685 
12686 
12687 
12688 static int
dissect_lpp_INTEGER_M524288_524287(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12689 dissect_lpp_INTEGER_M524288_524287(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12690   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12691                                                             -524288, 524287U, NULL, FALSE);
12692 
12693   return offset;
12694 }
12695 
12696 
12697 
12698 static int
dissect_lpp_INTEGER_M4194304_4194303(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12699 dissect_lpp_INTEGER_M4194304_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12700   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12701                                                             -4194304, 4194303U, NULL, FALSE);
12702 
12703   return offset;
12704 }
12705 
12706 
12707 static const per_sequence_t Aux_ARP_Unc_r15_sequence[] = {
12708   { &hf_lpp_horizontalUncertainty_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
12709   { &hf_lpp_horizontalConfidence_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
12710   { &hf_lpp_verticalUncertainty_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
12711   { &hf_lpp_verticalConfidence_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_100 },
12712   { NULL, 0, 0, NULL }
12713 };
12714 
12715 static int
dissect_lpp_Aux_ARP_Unc_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12716 dissect_lpp_Aux_ARP_Unc_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12717   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12718                                    ett_lpp_Aux_ARP_Unc_r15, Aux_ARP_Unc_r15_sequence);
12719 
12720   return offset;
12721 }
12722 
12723 
12724 static const per_sequence_t AuxiliaryStationElement_r15_sequence[] = {
12725   { &hf_lpp_aux_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
12726   { &hf_lpp_aux_master_delta_latitude_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M524288_524287 },
12727   { &hf_lpp_aux_master_delta_longitude_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
12728   { &hf_lpp_aux_master_delta_height_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4194304_4194303 },
12729   { &hf_lpp_aux_ARP_unc_r15 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Aux_ARP_Unc_r15 },
12730   { NULL, 0, 0, NULL }
12731 };
12732 
12733 static int
dissect_lpp_AuxiliaryStationElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12734 dissect_lpp_AuxiliaryStationElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12735   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12736                                    ett_lpp_AuxiliaryStationElement_r15, AuxiliaryStationElement_r15_sequence);
12737 
12738   return offset;
12739 }
12740 
12741 
12742 static const per_sequence_t AuxiliaryStationList_r15_sequence_of[1] = {
12743   { &hf_lpp_AuxiliaryStationList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_AuxiliaryStationElement_r15 },
12744 };
12745 
12746 static int
dissect_lpp_AuxiliaryStationList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12747 dissect_lpp_AuxiliaryStationList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12748   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12749                                                   ett_lpp_AuxiliaryStationList_r15, AuxiliaryStationList_r15_sequence_of,
12750                                                   1, 32, FALSE);
12751 
12752   return offset;
12753 }
12754 
12755 
12756 static const per_sequence_t GNSS_RTK_AuxiliaryStationData_r15_sequence[] = {
12757   { &hf_lpp_networkID_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NetworkID_r15 },
12758   { &hf_lpp_subNetworkID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SubNetworkID_r15 },
12759   { &hf_lpp_master_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
12760   { &hf_lpp_auxiliaryStationList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_AuxiliaryStationList_r15 },
12761   { NULL, 0, 0, NULL }
12762 };
12763 
12764 static int
dissect_lpp_GNSS_RTK_AuxiliaryStationData_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12765 dissect_lpp_GNSS_RTK_AuxiliaryStationData_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12766   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12767                                    ett_lpp_GNSS_RTK_AuxiliaryStationData_r15, GNSS_RTK_AuxiliaryStationData_r15_sequence);
12768 
12769   return offset;
12770 }
12771 
12772 
12773 static const per_sequence_t GNSS_CommonAssistData_eag_1_sequence[] = {
12774   { &hf_lpp_gnss_RTK_ReferenceStationInfo_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15 },
12775   { &hf_lpp_gnss_RTK_CommonObservationInfo_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_CommonObservationInfo_r15 },
12776   { &hf_lpp_gnss_RTK_AuxiliaryStationData_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_AuxiliaryStationData_r15 },
12777   { NULL, 0, 0, NULL }
12778 };
12779 
12780 static int
dissect_lpp_GNSS_CommonAssistData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12781 dissect_lpp_GNSS_CommonAssistData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12782   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_CommonAssistData_eag_1_sequence);
12783 
12784   return offset;
12785 }
12786 
12787 
12788 
12789 static int
dissect_lpp_INTEGER_M32768_32767(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12790 dissect_lpp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12791   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12792                                                             -32768, 32767U, NULL, FALSE);
12793 
12794   return offset;
12795 }
12796 
12797 
12798 
12799 static int
dissect_lpp_INTEGER_M512_511(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12800 dissect_lpp_INTEGER_M512_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12801   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12802                                                             -512, 511U, NULL, FALSE);
12803 
12804   return offset;
12805 }
12806 
12807 
12808 static const per_sequence_t RelativeLocationElement_r16_sequence[] = {
12809   { &hf_lpp_deltaLatitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
12810   { &hf_lpp_deltaLongitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
12811   { NULL, 0, 0, NULL }
12812 };
12813 
12814 static int
dissect_lpp_RelativeLocationElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12815 dissect_lpp_RelativeLocationElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12816   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12817                                    ett_lpp_RelativeLocationElement_r16, RelativeLocationElement_r16_sequence);
12818 
12819   return offset;
12820 }
12821 
12822 
12823 static const per_sequence_t SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16_sequence_of[1] = {
12824   { &hf_lpp_relativeLocationsList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_RelativeLocationElement_r16 },
12825 };
12826 
12827 static int
dissect_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12828 dissect_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12829   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
12830                                                   ett_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16, SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16_sequence_of,
12831                                                   0, 63, FALSE);
12832 
12833   return offset;
12834 }
12835 
12836 
12837 static const per_sequence_t GNSS_SSR_ListOfCorrectionPoints_r16_sequence[] = {
12838   { &hf_lpp_referencePointLatitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
12839   { &hf_lpp_referencePointLongitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
12840   { &hf_lpp_relativeLocationsList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16 },
12841   { NULL, 0, 0, NULL }
12842 };
12843 
12844 static int
dissect_lpp_GNSS_SSR_ListOfCorrectionPoints_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12845 dissect_lpp_GNSS_SSR_ListOfCorrectionPoints_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12846   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12847                                    ett_lpp_GNSS_SSR_ListOfCorrectionPoints_r16, GNSS_SSR_ListOfCorrectionPoints_r16_sequence);
12848 
12849   return offset;
12850 }
12851 
12852 
12853 
12854 static int
dissect_lpp_INTEGER_1_511(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12855 dissect_lpp_INTEGER_1_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12856   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12857                                                             1U, 511U, NULL, FALSE);
12858 
12859   return offset;
12860 }
12861 
12862 
12863 
12864 static int
dissect_lpp_INTEGER_1_1023(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12865 dissect_lpp_INTEGER_1_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12866   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12867                                                             1U, 1023U, NULL, FALSE);
12868 
12869   return offset;
12870 }
12871 
12872 
12873 static const per_sequence_t GNSS_SSR_ArrayOfCorrectionPoints_r16_sequence[] = {
12874   { &hf_lpp_referencePointLatitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
12875   { &hf_lpp_referencePointLongitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
12876   { &hf_lpp_numberOfStepsLatitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
12877   { &hf_lpp_numberOfStepsLongitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
12878   { &hf_lpp_stepOfLatitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_511 },
12879   { &hf_lpp_stepOfLongitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_1023 },
12880   { &hf_lpp_bitmaskOfGrids_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_64 },
12881   { NULL, 0, 0, NULL }
12882 };
12883 
12884 static int
dissect_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12885 dissect_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12886   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12887                                    ett_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16, GNSS_SSR_ArrayOfCorrectionPoints_r16_sequence);
12888 
12889   return offset;
12890 }
12891 
12892 
12893 static const value_string lpp_T_correctionPoints_r16_vals[] = {
12894   {   0, "listOfCorrectionPoints-r16" },
12895   {   1, "arrayOfCorrectionPoints-r16" },
12896   { 0, NULL }
12897 };
12898 
12899 static const per_choice_t T_correctionPoints_r16_choice[] = {
12900   {   0, &hf_lpp_listOfCorrectionPoints_r16, ASN1_NO_EXTENSIONS     , dissect_lpp_GNSS_SSR_ListOfCorrectionPoints_r16 },
12901   {   1, &hf_lpp_arrayOfCorrectionPoints_r16, ASN1_NO_EXTENSIONS     , dissect_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16 },
12902   { 0, NULL, 0, NULL }
12903 };
12904 
12905 static int
dissect_lpp_T_correctionPoints_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12906 dissect_lpp_T_correctionPoints_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12907   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12908                                  ett_lpp_T_correctionPoints_r16, T_correctionPoints_r16_choice,
12909                                  NULL);
12910 
12911   return offset;
12912 }
12913 
12914 
12915 static const per_sequence_t GNSS_SSR_CorrectionPoints_r16_sequence[] = {
12916   { &hf_lpp_correctionPointSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
12917   { &hf_lpp_correctionPoints_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_correctionPoints_r16 },
12918   { NULL, 0, 0, NULL }
12919 };
12920 
12921 static int
dissect_lpp_GNSS_SSR_CorrectionPoints_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12922 dissect_lpp_GNSS_SSR_CorrectionPoints_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12923   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12924                                    ett_lpp_GNSS_SSR_CorrectionPoints_r16, GNSS_SSR_CorrectionPoints_r16_sequence);
12925 
12926   return offset;
12927 }
12928 
12929 
12930 static const per_sequence_t GNSS_CommonAssistData_eag_2_sequence[] = {
12931   { &hf_lpp_gnss_SSR_CorrectionPoints_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_CorrectionPoints_r16 },
12932   { NULL, 0, 0, NULL }
12933 };
12934 
12935 static int
dissect_lpp_GNSS_CommonAssistData_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12936 dissect_lpp_GNSS_CommonAssistData_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12937   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_CommonAssistData_eag_2_sequence);
12938 
12939   return offset;
12940 }
12941 
12942 
12943 static const per_sequence_t GNSS_CommonAssistData_sequence[] = {
12944   { &hf_lpp_gnss_ReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceTime },
12945   { &hf_lpp_gnss_ReferenceLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceLocation },
12946   { &hf_lpp_gnss_IonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_IonosphericModel },
12947   { &hf_lpp_gnss_EarthOrientationParameters, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_EarthOrientationParameters },
12948   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistData_eag_1 },
12949   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistData_eag_2 },
12950   { NULL, 0, 0, NULL }
12951 };
12952 
12953 static int
dissect_lpp_GNSS_CommonAssistData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12954 dissect_lpp_GNSS_CommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12955   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12956                                    ett_lpp_GNSS_CommonAssistData, GNSS_CommonAssistData_sequence);
12957 
12958   return offset;
12959 }
12960 
12961 
12962 
12963 static int
dissect_lpp_INTEGER_M67108864_67108863(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12964 dissect_lpp_INTEGER_M67108864_67108863(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12965   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12966                                                             -67108864, 67108863U, NULL, FALSE);
12967 
12968   return offset;
12969 }
12970 
12971 
12972 
12973 static int
dissect_lpp_INTEGER_M4096_4095(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12974 dissect_lpp_INTEGER_M4096_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12975   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12976                                                             -4096, 4095U, NULL, FALSE);
12977 
12978   return offset;
12979 }
12980 
12981 
12982 
12983 static int
dissect_lpp_INTEGER_0_8191(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)12984 dissect_lpp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12985   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12986                                                             0U, 8191U, NULL, FALSE);
12987 
12988   return offset;
12989 }
12990 
12991 
12992 static const per_sequence_t GNSS_TimeModelElement_sequence[] = {
12993   { &hf_lpp_gnss_TimeModelRefTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
12994   { &hf_lpp_tA0             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
12995   { &hf_lpp_tA1             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
12996   { &hf_lpp_tA2             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M64_63 },
12997   { &hf_lpp_gnss_TO_ID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_15 },
12998   { &hf_lpp_weekNumber      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_8191 },
12999   { &hf_lpp_deltaT          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M128_127 },
13000   { NULL, 0, 0, NULL }
13001 };
13002 
13003 static int
dissect_lpp_GNSS_TimeModelElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13004 dissect_lpp_GNSS_TimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13005   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13006                                    ett_lpp_GNSS_TimeModelElement, GNSS_TimeModelElement_sequence);
13007 
13008   return offset;
13009 }
13010 
13011 
13012 static const per_sequence_t GNSS_TimeModelList_sequence_of[1] = {
13013   { &hf_lpp_GNSS_TimeModelList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_TimeModelElement },
13014 };
13015 
13016 static int
dissect_lpp_GNSS_TimeModelList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13017 dissect_lpp_GNSS_TimeModelList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13018   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13019                                                   ett_lpp_GNSS_TimeModelList, GNSS_TimeModelList_sequence_of,
13020                                                   1, 15, FALSE);
13021 
13022   return offset;
13023 }
13024 
13025 
13026 
13027 static int
dissect_lpp_INTEGER_M2047_2047(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13028 dissect_lpp_INTEGER_M2047_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13029   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13030                                                             -2047, 2047U, NULL, FALSE);
13031 
13032   return offset;
13033 }
13034 
13035 
13036 
13037 static int
dissect_lpp_INTEGER_M127_127(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13038 dissect_lpp_INTEGER_M127_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13039   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13040                                                             -127, 127U, NULL, FALSE);
13041 
13042   return offset;
13043 }
13044 
13045 
13046 static const per_sequence_t DGNSS_CorrectionsElement_sequence[] = {
13047   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
13048   { &hf_lpp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
13049   { &hf_lpp_udre            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
13050   { &hf_lpp_pseudoRangeCor  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2047_2047 },
13051   { &hf_lpp_rangeRateCor    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M127_127 },
13052   { &hf_lpp_udreGrowthRate  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_7 },
13053   { &hf_lpp_udreValidityTime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_7 },
13054   { NULL, 0, 0, NULL }
13055 };
13056 
13057 static int
dissect_lpp_DGNSS_CorrectionsElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13058 dissect_lpp_DGNSS_CorrectionsElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13059   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13060                                    ett_lpp_DGNSS_CorrectionsElement, DGNSS_CorrectionsElement_sequence);
13061 
13062   return offset;
13063 }
13064 
13065 
13066 static const per_sequence_t DGNSS_SatList_sequence_of[1] = {
13067   { &hf_lpp_DGNSS_SatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_CorrectionsElement },
13068 };
13069 
13070 static int
dissect_lpp_DGNSS_SatList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13071 dissect_lpp_DGNSS_SatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13072   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13073                                                   ett_lpp_DGNSS_SatList, DGNSS_SatList_sequence_of,
13074                                                   1, 64, FALSE);
13075 
13076   return offset;
13077 }
13078 
13079 
13080 static const per_sequence_t DGNSS_SgnTypeElement_sequence[] = {
13081   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
13082   { &hf_lpp_gnss_StatusHealth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
13083   { &hf_lpp_dgnss_SatList   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_SatList },
13084   { NULL, 0, 0, NULL }
13085 };
13086 
13087 static int
dissect_lpp_DGNSS_SgnTypeElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13088 dissect_lpp_DGNSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13089   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13090                                    ett_lpp_DGNSS_SgnTypeElement, DGNSS_SgnTypeElement_sequence);
13091 
13092   return offset;
13093 }
13094 
13095 
13096 static const per_sequence_t DGNSS_SgnTypeList_sequence_of[1] = {
13097   { &hf_lpp_DGNSS_SgnTypeList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_SgnTypeElement },
13098 };
13099 
13100 static int
dissect_lpp_DGNSS_SgnTypeList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13101 dissect_lpp_DGNSS_SgnTypeList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13102   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13103                                                   ett_lpp_DGNSS_SgnTypeList, DGNSS_SgnTypeList_sequence_of,
13104                                                   1, 3, FALSE);
13105 
13106   return offset;
13107 }
13108 
13109 
13110 static const per_sequence_t GNSS_DifferentialCorrections_sequence[] = {
13111   { &hf_lpp_dgnss_RefTime   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
13112   { &hf_lpp_dgnss_SgnTypeList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_SgnTypeList },
13113   { NULL, 0, 0, NULL }
13114 };
13115 
13116 static int
dissect_lpp_GNSS_DifferentialCorrections(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13117 dissect_lpp_GNSS_DifferentialCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13118   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13119                                    ett_lpp_GNSS_DifferentialCorrections, GNSS_DifferentialCorrections_sequence);
13120 
13121   return offset;
13122 }
13123 
13124 
13125 
13126 static int
dissect_lpp_INTEGER_M32_31(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13127 dissect_lpp_INTEGER_M32_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13128   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13129                                                             -32, 31U, NULL, FALSE);
13130 
13131   return offset;
13132 }
13133 
13134 
13135 static const per_sequence_t StandardClockModelElement_sequence[] = {
13136   { &hf_lpp_stanClockToc    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
13137   { &hf_lpp_stanClockAF2    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32_31 },
13138   { &hf_lpp_stanClockAF1    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
13139   { &hf_lpp_stanClockAF0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1073741824_1073741823 },
13140   { &hf_lpp_stanClockTgd    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M512_511 },
13141   { &hf_lpp_sisa            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
13142   { &hf_lpp_stanModelID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
13143   { NULL, 0, 0, NULL }
13144 };
13145 
13146 static int
dissect_lpp_StandardClockModelElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13147 dissect_lpp_StandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13148   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13149                                    ett_lpp_StandardClockModelElement, StandardClockModelElement_sequence);
13150 
13151   return offset;
13152 }
13153 
13154 
13155 static const per_sequence_t StandardClockModelList_sequence_of[1] = {
13156   { &hf_lpp_StandardClockModelList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_StandardClockModelElement },
13157 };
13158 
13159 static int
dissect_lpp_StandardClockModelList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13160 dissect_lpp_StandardClockModelList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13161   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
13162                                                   ett_lpp_StandardClockModelList, StandardClockModelList_sequence_of,
13163                                                   1, 2, FALSE);
13164 
13165   return offset;
13166 }
13167 
13168 
13169 
13170 static int
dissect_lpp_INTEGER_0_37799(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13171 dissect_lpp_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13172   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13173                                                             0U, 37799U, NULL, FALSE);
13174 
13175   return offset;
13176 }
13177 
13178 
13179 
13180 static int
dissect_lpp_INTEGER_M2097152_2097151(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13181 dissect_lpp_INTEGER_M2097152_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13182   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13183                                                             -2097152, 2097151U, NULL, FALSE);
13184 
13185   return offset;
13186 }
13187 
13188 
13189 static const per_sequence_t NAV_ClockModel_sequence[] = {
13190   { &hf_lpp_navToc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_37799 },
13191   { &hf_lpp_navaf2          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
13192   { &hf_lpp_navaf1          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13193   { &hf_lpp_navaf0          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
13194   { &hf_lpp_navTgd          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
13195   { NULL, 0, 0, NULL }
13196 };
13197 
13198 static int
dissect_lpp_NAV_ClockModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13199 dissect_lpp_NAV_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13200   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13201                                    ett_lpp_NAV_ClockModel, NAV_ClockModel_sequence);
13202 
13203   return offset;
13204 }
13205 
13206 
13207 
13208 static int
dissect_lpp_INTEGER_0_2015(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13209 dissect_lpp_INTEGER_0_2015(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13210   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13211                                                             0U, 2015U, NULL, FALSE);
13212 
13213   return offset;
13214 }
13215 
13216 
13217 
13218 static int
dissect_lpp_INTEGER_M16_15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13219 dissect_lpp_INTEGER_M16_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13220   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13221                                                             -16, 15U, NULL, FALSE);
13222 
13223   return offset;
13224 }
13225 
13226 
13227 
13228 static int
dissect_lpp_INTEGER_M33554432_33554431(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13229 dissect_lpp_INTEGER_M33554432_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13230   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13231                                                             -33554432, 33554431U, NULL, FALSE);
13232 
13233   return offset;
13234 }
13235 
13236 
13237 static const per_sequence_t CNAV_ClockModel_sequence[] = {
13238   { &hf_lpp_cnavToc         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2015 },
13239   { &hf_lpp_cnavTop         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2015 },
13240   { &hf_lpp_cnavURA0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
13241   { &hf_lpp_cnavURA1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
13242   { &hf_lpp_cnavURA2        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
13243   { &hf_lpp_cnavAf2         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
13244   { &hf_lpp_cnavAf1         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M524288_524287 },
13245   { &hf_lpp_cnavAf0         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M33554432_33554431 },
13246   { &hf_lpp_cnavTgd         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
13247   { &hf_lpp_cnavISCl1cp     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
13248   { &hf_lpp_cnavISCl1cd     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
13249   { &hf_lpp_cnavISCl1ca     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
13250   { &hf_lpp_cnavISCl2c      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
13251   { &hf_lpp_cnavISCl5i5     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
13252   { &hf_lpp_cnavISCl5q5     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
13253   { NULL, 0, 0, NULL }
13254 };
13255 
13256 static int
dissect_lpp_CNAV_ClockModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13257 dissect_lpp_CNAV_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13258   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13259                                    ett_lpp_CNAV_ClockModel, CNAV_ClockModel_sequence);
13260 
13261   return offset;
13262 }
13263 
13264 
13265 static const per_sequence_t GLONASS_ClockModel_sequence[] = {
13266   { &hf_lpp_gloTau          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
13267   { &hf_lpp_gloGamma        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
13268   { &hf_lpp_gloDeltaTau     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M16_15 },
13269   { NULL, 0, 0, NULL }
13270 };
13271 
13272 static int
dissect_lpp_GLONASS_ClockModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13273 dissect_lpp_GLONASS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13274   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13275                                    ett_lpp_GLONASS_ClockModel, GLONASS_ClockModel_sequence);
13276 
13277   return offset;
13278 }
13279 
13280 
13281 
13282 static int
dissect_lpp_INTEGER_0_5399(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13283 dissect_lpp_INTEGER_0_5399(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13284   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13285                                                             0U, 5399U, NULL, FALSE);
13286 
13287   return offset;
13288 }
13289 
13290 
13291 
13292 static int
dissect_lpp_INTEGER_M2048_2047(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13293 dissect_lpp_INTEGER_M2048_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13294   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13295                                                             -2048, 2047U, NULL, FALSE);
13296 
13297   return offset;
13298 }
13299 
13300 
13301 static const per_sequence_t SBAS_ClockModel_sequence[] = {
13302   { &hf_lpp_sbasTo          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_5399 },
13303   { &hf_lpp_sbasAgfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
13304   { &hf_lpp_sbasAgf1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
13305   { NULL, 0, 0, NULL }
13306 };
13307 
13308 static int
dissect_lpp_SBAS_ClockModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13309 dissect_lpp_SBAS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13310   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13311                                    ett_lpp_SBAS_ClockModel, SBAS_ClockModel_sequence);
13312 
13313   return offset;
13314 }
13315 
13316 
13317 
13318 static int
dissect_lpp_INTEGER_0_31(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13319 dissect_lpp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13320   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13321                                                             0U, 31U, NULL, FALSE);
13322 
13323   return offset;
13324 }
13325 
13326 
13327 
13328 static int
dissect_lpp_INTEGER_0_131071(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13329 dissect_lpp_INTEGER_0_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13330   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13331                                                             0U, 131071U, NULL, FALSE);
13332 
13333   return offset;
13334 }
13335 
13336 
13337 static const per_sequence_t BDS_ClockModel_r12_sequence[] = {
13338   { &hf_lpp_bdsAODC_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
13339   { &hf_lpp_bdsToc_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_131071 },
13340   { &hf_lpp_bdsA0_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13341   { &hf_lpp_bdsA1_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
13342   { &hf_lpp_bdsA2_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
13343   { &hf_lpp_bdsTgd1_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
13344   { NULL, 0, 0, NULL }
13345 };
13346 
13347 static int
dissect_lpp_BDS_ClockModel_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13348 dissect_lpp_BDS_ClockModel_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13349   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13350                                    ett_lpp_BDS_ClockModel_r12, BDS_ClockModel_r12_sequence);
13351 
13352   return offset;
13353 }
13354 
13355 
13356 
13357 static int
dissect_lpp_INTEGER_M16777216_16777215(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13358 dissect_lpp_INTEGER_M16777216_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13359   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13360                                                             -16777216, 16777215U, NULL, FALSE);
13361 
13362   return offset;
13363 }
13364 
13365 
13366 static const per_sequence_t BDS_ClockModel2_r16_sequence[] = {
13367   { &hf_lpp_bdsToc_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
13368   { &hf_lpp_bdsA0_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16777216_16777215 },
13369   { &hf_lpp_bdsA1_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
13370   { &hf_lpp_bdsA2_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
13371   { &hf_lpp_bdsTgdB1Cp_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
13372   { &hf_lpp_bdsIscB1Cd_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
13373   { NULL, 0, 0, NULL }
13374 };
13375 
13376 static int
dissect_lpp_BDS_ClockModel2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13377 dissect_lpp_BDS_ClockModel2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13378   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13379                                    ett_lpp_BDS_ClockModel2_r16, BDS_ClockModel2_r16_sequence);
13380 
13381   return offset;
13382 }
13383 
13384 
13385 static const per_sequence_t NavIC_ClockModel_r16_sequence[] = {
13386   { &hf_lpp_navic_Toc_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
13387   { &hf_lpp_navic_af2_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
13388   { &hf_lpp_navic_af1_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13389   { &hf_lpp_navic_af0_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
13390   { &hf_lpp_navic_Tgd_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
13391   { NULL, 0, 0, NULL }
13392 };
13393 
13394 static int
dissect_lpp_NavIC_ClockModel_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13395 dissect_lpp_NavIC_ClockModel_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13396   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13397                                    ett_lpp_NavIC_ClockModel_r16, NavIC_ClockModel_r16_sequence);
13398 
13399   return offset;
13400 }
13401 
13402 
13403 static const value_string lpp_GNSS_ClockModel_vals[] = {
13404   {   0, "standardClockModelList" },
13405   {   1, "nav-ClockModel" },
13406   {   2, "cnav-ClockModel" },
13407   {   3, "glonass-ClockModel" },
13408   {   4, "sbas-ClockModel" },
13409   {   5, "bds-ClockModel-r12" },
13410   {   6, "bds-ClockModel2-r16" },
13411   {   7, "navic-ClockModel-r16" },
13412   { 0, NULL }
13413 };
13414 
13415 static const per_choice_t GNSS_ClockModel_choice[] = {
13416   {   0, &hf_lpp_standardClockModelList, ASN1_EXTENSION_ROOT    , dissect_lpp_StandardClockModelList },
13417   {   1, &hf_lpp_nav_ClockModel  , ASN1_EXTENSION_ROOT    , dissect_lpp_NAV_ClockModel },
13418   {   2, &hf_lpp_cnav_ClockModel , ASN1_EXTENSION_ROOT    , dissect_lpp_CNAV_ClockModel },
13419   {   3, &hf_lpp_glonass_ClockModel, ASN1_EXTENSION_ROOT    , dissect_lpp_GLONASS_ClockModel },
13420   {   4, &hf_lpp_sbas_ClockModel , ASN1_EXTENSION_ROOT    , dissect_lpp_SBAS_ClockModel },
13421   {   5, &hf_lpp_bds_ClockModel_r12, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BDS_ClockModel_r12 },
13422   {   6, &hf_lpp_bds_ClockModel2_r16, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BDS_ClockModel2_r16 },
13423   {   7, &hf_lpp_navic_ClockModel_r16, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_NavIC_ClockModel_r16 },
13424   { 0, NULL, 0, NULL }
13425 };
13426 
13427 static int
dissect_lpp_GNSS_ClockModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13428 dissect_lpp_GNSS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13429   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13430                                  ett_lpp_GNSS_ClockModel, GNSS_ClockModel_choice,
13431                                  NULL);
13432 
13433   return offset;
13434 }
13435 
13436 
13437 
13438 static int
dissect_lpp_INTEGER_M2147483648_2147483647(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13439 dissect_lpp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13440   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13441                                                             G_MININT32, 2147483647U, NULL, FALSE);
13442 
13443   return offset;
13444 }
13445 
13446 
13447 
13448 static int
dissect_lpp_INTEGER_0_4294967295(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13449 dissect_lpp_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13450   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13451                                                             0U, 4294967295U, NULL, FALSE);
13452 
13453   return offset;
13454 }
13455 
13456 
13457 static const per_sequence_t NavModelKeplerianSet_sequence[] = {
13458   { &hf_lpp_keplerToe       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
13459   { &hf_lpp_keplerW         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13460   { &hf_lpp_keplerDeltaN    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13461   { &hf_lpp_keplerM0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13462   { &hf_lpp_keplerOmegaDot  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13463   { &hf_lpp_keplerE         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13464   { &hf_lpp_keplerIDot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
13465   { &hf_lpp_keplerAPowerHalf, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13466   { &hf_lpp_keplerI0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13467   { &hf_lpp_keplerOmega0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13468   { &hf_lpp_keplerCrs       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13469   { &hf_lpp_keplerCis       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13470   { &hf_lpp_keplerCus       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13471   { &hf_lpp_keplerCrc       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13472   { &hf_lpp_keplerCic       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13473   { &hf_lpp_keplerCuc       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13474   { NULL, 0, 0, NULL }
13475 };
13476 
13477 static int
dissect_lpp_NavModelKeplerianSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13478 dissect_lpp_NavModelKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13479   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13480                                    ett_lpp_NavModelKeplerianSet, NavModelKeplerianSet_sequence);
13481 
13482   return offset;
13483 }
13484 
13485 
13486 
13487 static int
dissect_lpp_INTEGER_0_16777215(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13488 dissect_lpp_INTEGER_0_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13489   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13490                                                             0U, 16777215U, NULL, FALSE);
13491 
13492   return offset;
13493 }
13494 
13495 
13496 static const per_sequence_t T_ephemSF1Rsvd_sequence[] = {
13497   { &hf_lpp_reserved1       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
13498   { &hf_lpp_reserved2       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
13499   { &hf_lpp_reserved3       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
13500   { &hf_lpp_reserved4       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
13501   { NULL, 0, 0, NULL }
13502 };
13503 
13504 static int
dissect_lpp_T_ephemSF1Rsvd(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13505 dissect_lpp_T_ephemSF1Rsvd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13506   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13507                                    ett_lpp_T_ephemSF1Rsvd, T_ephemSF1Rsvd_sequence);
13508 
13509   return offset;
13510 }
13511 
13512 
13513 static const per_sequence_t T_addNAVparam_sequence[] = {
13514   { &hf_lpp_ephemCodeOnL2   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
13515   { &hf_lpp_ephemL2Pflag    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
13516   { &hf_lpp_ephemSF1Rsvd    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_ephemSF1Rsvd },
13517   { &hf_lpp_ephemAODA       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
13518   { NULL, 0, 0, NULL }
13519 };
13520 
13521 static int
dissect_lpp_T_addNAVparam(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13522 dissect_lpp_T_addNAVparam(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13523   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13524                                    ett_lpp_T_addNAVparam, T_addNAVparam_sequence);
13525 
13526   return offset;
13527 }
13528 
13529 
13530 static const per_sequence_t NavModelNAV_KeplerianSet_sequence[] = {
13531   { &hf_lpp_navURA          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
13532   { &hf_lpp_navFitFlag      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
13533   { &hf_lpp_navToe          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_37799 },
13534   { &hf_lpp_navOmega        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13535   { &hf_lpp_navDeltaN       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13536   { &hf_lpp_navM0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13537   { &hf_lpp_navOmegaADot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13538   { &hf_lpp_navE            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13539   { &hf_lpp_navIDot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
13540   { &hf_lpp_navAPowerHalf   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13541   { &hf_lpp_navI0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13542   { &hf_lpp_navOmegaA0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13543   { &hf_lpp_navCrs          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13544   { &hf_lpp_navCis          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13545   { &hf_lpp_navCus          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13546   { &hf_lpp_navCrc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13547   { &hf_lpp_navCic          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13548   { &hf_lpp_navCuc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13549   { &hf_lpp_addNAVparam     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_addNAVparam },
13550   { NULL, 0, 0, NULL }
13551 };
13552 
13553 static int
dissect_lpp_NavModelNAV_KeplerianSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13554 dissect_lpp_NavModelNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13555   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13556                                    ett_lpp_NavModelNAV_KeplerianSet, NavModelNAV_KeplerianSet_sequence);
13557 
13558   return offset;
13559 }
13560 
13561 
13562 
13563 static int
dissect_lpp_INTEGER_M65536_65535(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13564 dissect_lpp_INTEGER_M65536_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13565   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13566                                                             -65536, 65535U, NULL, FALSE);
13567 
13568   return offset;
13569 }
13570 
13571 
13572 
13573 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_)13574 dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13575 #line 838 "./asn1/lpp/lpp.cnf"
13576   gint64 cnavMo;
13577   int curr_offset = offset;
13578   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13579                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavMo, FALSE);
13580 
13581 
13582 
13583 
13584 #line 843 "./asn1/lpp/lpp.cnf"
13585   proto_item_set_hidden(actx->created_item);
13586   actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
13587                                                          cnavMo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
13588                                                          (double)cnavMo*pow(2, -32), cnavMo);
13589 
13590 
13591   return offset;
13592 }
13593 
13594 
13595 
13596 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_)13597 dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13598 #line 849 "./asn1/lpp/lpp.cnf"
13599   guint64 cnavE;
13600   int curr_offset = offset;
13601   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13602                                                             0U, G_GUINT64_CONSTANT(8589934591), &cnavE, FALSE);
13603 
13604 
13605 
13606 
13607 #line 854 "./asn1/lpp/lpp.cnf"
13608   proto_item_set_hidden(actx->created_item);
13609   actx->created_item = proto_tree_add_uint64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
13610                                                           cnavE, "%g (%"G_GINT64_MODIFIER"u)",
13611                                                           (double)cnavE*pow(2, -34), cnavE);
13612 
13613 
13614   return offset;
13615 }
13616 
13617 
13618 
13619 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_)13620 dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13621 #line 860 "./asn1/lpp/lpp.cnf"
13622   gint64 cnavOmega;
13623   int curr_offset = offset;
13624   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13625                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavOmega, FALSE);
13626 
13627 
13628 
13629 
13630 #line 865 "./asn1/lpp/lpp.cnf"
13631   proto_item_set_hidden(actx->created_item);
13632   actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
13633                                                          cnavOmega, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
13634                                                          (double)cnavOmega*pow(2, -32), cnavOmega);
13635 
13636 
13637   return offset;
13638 }
13639 
13640 
13641 
13642 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_)13643 dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13644 #line 871 "./asn1/lpp/lpp.cnf"
13645   gint64 cnavOMEGA0;
13646   int curr_offset = offset;
13647   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13648                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavOMEGA0, FALSE);
13649 
13650 
13651 
13652 
13653 #line 876 "./asn1/lpp/lpp.cnf"
13654   proto_item_set_hidden(actx->created_item);
13655   actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
13656                                                          cnavOMEGA0, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
13657                                                          (double)cnavOMEGA0*pow(2, -32), cnavOMEGA0);
13658 
13659 
13660   return offset;
13661 }
13662 
13663 
13664 
13665 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_)13666 dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13667 #line 885 "./asn1/lpp/lpp.cnf"
13668   gint64 cnavIo;
13669   int curr_offset = offset;
13670   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13671                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavIo, FALSE);
13672 
13673 
13674 
13675 
13676 #line 890 "./asn1/lpp/lpp.cnf"
13677   proto_item_set_hidden(actx->created_item);
13678   actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
13679                                                          cnavIo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
13680                                                          (double)cnavIo*pow(2, -32), cnavIo);
13681 
13682 
13683   return offset;
13684 }
13685 
13686 
13687 static const per_sequence_t NavModelCNAV_KeplerianSet_sequence[] = {
13688   { &hf_lpp_cnavTop         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2015 },
13689   { &hf_lpp_cnavURAindex    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
13690   { &hf_lpp_cnavDeltaA      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M33554432_33554431 },
13691   { &hf_lpp_cnavAdot        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16777216_16777215 },
13692   { &hf_lpp_cnavDeltaNo     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
13693   { &hf_lpp_cnavDeltaNoDot  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4194304_4194303 },
13694   { &hf_lpp_cnavMo          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavMo },
13695   { &hf_lpp_cnavE           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavE },
13696   { &hf_lpp_cnavOmega       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavOmega },
13697   { &hf_lpp_cnavOMEGA0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavOMEGA0 },
13698   { &hf_lpp_cnavDeltaOmegaDot, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
13699   { &hf_lpp_cnavIo          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavIo },
13700   { &hf_lpp_cnavIoDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
13701   { &hf_lpp_cnavCis         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13702   { &hf_lpp_cnavCic         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13703   { &hf_lpp_cnavCrs         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13704   { &hf_lpp_cnavCrc         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13705   { &hf_lpp_cnavCus         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
13706   { &hf_lpp_cnavCuc         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
13707   { NULL, 0, 0, NULL }
13708 };
13709 
13710 static int
dissect_lpp_NavModelCNAV_KeplerianSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13711 dissect_lpp_NavModelCNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13712   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13713                                    ett_lpp_NavModelCNAV_KeplerianSet, NavModelCNAV_KeplerianSet_sequence);
13714 
13715   return offset;
13716 }
13717 
13718 
13719 
13720 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_)13721 dissect_lpp_T_gloP1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13722 #line 920 "./asn1/lpp/lpp.cnf"
13723   tvbuff_t *gloP1_tvb = NULL;
13724   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
13725                                      2, 2, FALSE, NULL, 0, &gloP1_tvb, NULL);
13726 
13727 
13728 
13729 
13730 #line 924 "./asn1/lpp/lpp.cnf"
13731   if (gloP1_tvb) {
13732     guint bitvalue = tvb_get_bits8(gloP1_tvb, 0, 2);
13733     actx->created_item = proto_tree_add_uint(tree, hf_index, gloP1_tvb, 0, 1, bitvalue);
13734   }
13735 
13736 
13737   return offset;
13738 }
13739 
13740 
13741 static const per_sequence_t NavModel_GLONASS_ECEF_sequence[] = {
13742   { &hf_lpp_gloEn           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
13743   { &hf_lpp_gloP1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gloP1 },
13744   { &hf_lpp_gloP2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
13745   { &hf_lpp_gloM            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
13746   { &hf_lpp_gloX            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
13747   { &hf_lpp_gloXdot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13748   { &hf_lpp_gloXdotdot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
13749   { &hf_lpp_gloY            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
13750   { &hf_lpp_gloYdot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13751   { &hf_lpp_gloYdotdot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
13752   { &hf_lpp_gloZ            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
13753   { &hf_lpp_gloZdot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13754   { &hf_lpp_gloZdotdot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
13755   { NULL, 0, 0, NULL }
13756 };
13757 
13758 static int
dissect_lpp_NavModel_GLONASS_ECEF(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13759 dissect_lpp_NavModel_GLONASS_ECEF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13760   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13761                                    ett_lpp_NavModel_GLONASS_ECEF, NavModel_GLONASS_ECEF_sequence);
13762 
13763   return offset;
13764 }
13765 
13766 
13767 
13768 static int
dissect_lpp_BIT_STRING_SIZE_4(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13769 dissect_lpp_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13770   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
13771                                      4, 4, FALSE, NULL, 0, NULL, NULL);
13772 
13773   return offset;
13774 }
13775 
13776 
13777 
13778 static int
dissect_lpp_INTEGER_M536870912_536870911(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13779 dissect_lpp_INTEGER_M536870912_536870911(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13780   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13781                                                             -536870912, 536870911U, NULL, FALSE);
13782 
13783   return offset;
13784 }
13785 
13786 
13787 
13788 static int
dissect_lpp_INTEGER_M131072_131071(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13789 dissect_lpp_INTEGER_M131072_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13790   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13791                                                             -131072, 131071U, NULL, FALSE);
13792 
13793   return offset;
13794 }
13795 
13796 
13797 static const per_sequence_t NavModel_SBAS_ECEF_sequence[] = {
13798   { &hf_lpp_sbasTo          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_5399 },
13799   { &hf_lpp_sbasAccuracy    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_4 },
13800   { &hf_lpp_sbasXg          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M536870912_536870911 },
13801   { &hf_lpp_sbasYg          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M536870912_536870911 },
13802   { &hf_lpp_sbasZg          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16777216_16777215 },
13803   { &hf_lpp_sbasXgDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
13804   { &hf_lpp_sbasYgDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
13805   { &hf_lpp_sbasZgDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13806   { &hf_lpp_sbasXgDotDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
13807   { &hf_lpp_sbagYgDotDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
13808   { &hf_lpp_sbasZgDotDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
13809   { NULL, 0, 0, NULL }
13810 };
13811 
13812 static int
dissect_lpp_NavModel_SBAS_ECEF(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13813 dissect_lpp_NavModel_SBAS_ECEF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13814   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13815                                    ett_lpp_NavModel_SBAS_ECEF, NavModel_SBAS_ECEF_sequence);
13816 
13817   return offset;
13818 }
13819 
13820 
13821 static const per_sequence_t NavModel_BDS_KeplerianSet_r12_sequence[] = {
13822   { &hf_lpp_bdsAODE_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
13823   { &hf_lpp_bdsURAI_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
13824   { &hf_lpp_bdsToe_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_131071 },
13825   { &hf_lpp_bdsAPowerHalf_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13826   { &hf_lpp_bdsE_r12        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13827   { &hf_lpp_bdsW_r12        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13828   { &hf_lpp_bdsDeltaN_r12   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13829   { &hf_lpp_bdsM0_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13830   { &hf_lpp_bdsOmega0_r12   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13831   { &hf_lpp_bdsOmegaDot_r12 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13832   { &hf_lpp_bdsI0_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13833   { &hf_lpp_bdsIDot_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
13834   { &hf_lpp_bdsCuc_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13835   { &hf_lpp_bdsCus_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13836   { &hf_lpp_bdsCrc_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13837   { &hf_lpp_bdsCrs_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13838   { &hf_lpp_bdsCic_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13839   { &hf_lpp_bdsCis_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
13840   { NULL, 0, 0, NULL }
13841 };
13842 
13843 static int
dissect_lpp_NavModel_BDS_KeplerianSet_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13844 dissect_lpp_NavModel_BDS_KeplerianSet_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13845   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13846                                    ett_lpp_NavModel_BDS_KeplerianSet_r12, NavModel_BDS_KeplerianSet_r12_sequence);
13847 
13848   return offset;
13849 }
13850 
13851 
13852 
13853 static int
dissect_lpp_INTEGER_M16777216_16777216(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13854 dissect_lpp_INTEGER_M16777216_16777216(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13855   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13856                                                             -16777216, 16777216U, NULL, FALSE);
13857 
13858   return offset;
13859 }
13860 
13861 
13862 
13863 static int
dissect_lpp_INTEGER_M4294967296_4294967295(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13864 dissect_lpp_INTEGER_M4294967296_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13865   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13866                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
13867 
13868   return offset;
13869 }
13870 
13871 
13872 
13873 static int
dissect_lpp_INTEGER_0_8589934591(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13874 dissect_lpp_INTEGER_0_8589934591(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13875   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
13876                                                             0U, G_GUINT64_CONSTANT(8589934591), NULL, FALSE);
13877 
13878   return offset;
13879 }
13880 
13881 
13882 static const per_sequence_t NavModel_BDS_KeplerianSet2_r16_sequence[] = {
13883   { &hf_lpp_bdsIODE_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
13884   { &hf_lpp_bdsToe_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
13885   { &hf_lpp_bdsDeltaA_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M33554432_33554431 },
13886   { &hf_lpp_bdsAdot_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16777216_16777216 },
13887   { &hf_lpp_bdsDeltaN0_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
13888   { &hf_lpp_bdsDeltaN0dot_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4194304_4194303 },
13889   { &hf_lpp_bdsM0_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4294967296_4294967295 },
13890   { &hf_lpp_bdsE_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8589934591 },
13891   { &hf_lpp_bdsOmega_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4294967296_4294967295 },
13892   { &hf_lpp_bdsOmega0_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4294967296_4294967295 },
13893   { &hf_lpp_bdsI0_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4294967296_4294967295 },
13894   { &hf_lpp_bdsOmegaDot_r16 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M262144_262143 },
13895   { &hf_lpp_bdsI0Dot_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
13896   { &hf_lpp_bdsCuc_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
13897   { &hf_lpp_bdsCus_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
13898   { &hf_lpp_bdsCrc_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13899   { &hf_lpp_bdsCrs_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
13900   { &hf_lpp_bdsCic_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13901   { &hf_lpp_bdsCis_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13902   { NULL, 0, 0, NULL }
13903 };
13904 
13905 static int
dissect_lpp_NavModel_BDS_KeplerianSet2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13906 dissect_lpp_NavModel_BDS_KeplerianSet2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13907   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13908                                    ett_lpp_NavModel_BDS_KeplerianSet2_r16, NavModel_BDS_KeplerianSet2_r16_sequence);
13909 
13910   return offset;
13911 }
13912 
13913 
13914 
13915 static int
dissect_lpp_INTEGER_0_65536(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13916 dissect_lpp_INTEGER_0_65536(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13917   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13918                                                             0U, 65536U, NULL, FALSE);
13919 
13920   return offset;
13921 }
13922 
13923 
13924 static const per_sequence_t NavModel_NavIC_KeplerianSet_r16_sequence[] = {
13925   { &hf_lpp_navic_Toe_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65536 },
13926   { &hf_lpp_navic_URAI_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
13927   { &hf_lpp_navic_W_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13928   { &hf_lpp_navic_DeltaN_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
13929   { &hf_lpp_navic_M0_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13930   { &hf_lpp_navic_OmegaDot_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13931   { &hf_lpp_navic_E_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13932   { &hf_lpp_navic_IDot_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
13933   { &hf_lpp_navic_APowerHalf_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
13934   { &hf_lpp_navic_I0_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13935   { &hf_lpp_navic_Omega0_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
13936   { &hf_lpp_navic_Crs_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13937   { &hf_lpp_navic_Cis_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13938   { &hf_lpp_navic_Cus_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13939   { &hf_lpp_navic_Crc_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13940   { &hf_lpp_navic_Cic_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13941   { &hf_lpp_navic_Cuc_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
13942   { NULL, 0, 0, NULL }
13943 };
13944 
13945 static int
dissect_lpp_NavModel_NavIC_KeplerianSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13946 dissect_lpp_NavModel_NavIC_KeplerianSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13947   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13948                                    ett_lpp_NavModel_NavIC_KeplerianSet_r16, NavModel_NavIC_KeplerianSet_r16_sequence);
13949 
13950   return offset;
13951 }
13952 
13953 
13954 static const value_string lpp_GNSS_OrbitModel_vals[] = {
13955   {   0, "keplerianSet" },
13956   {   1, "nav-KeplerianSet" },
13957   {   2, "cnav-KeplerianSet" },
13958   {   3, "glonass-ECEF" },
13959   {   4, "sbas-ECEF" },
13960   {   5, "bds-KeplerianSet-r12" },
13961   {   6, "bds-KeplerianSet2-r16" },
13962   {   7, "navic-KeplerianSet-r16" },
13963   { 0, NULL }
13964 };
13965 
13966 static const per_choice_t GNSS_OrbitModel_choice[] = {
13967   {   0, &hf_lpp_keplerianSet    , ASN1_EXTENSION_ROOT    , dissect_lpp_NavModelKeplerianSet },
13968   {   1, &hf_lpp_nav_KeplerianSet, ASN1_EXTENSION_ROOT    , dissect_lpp_NavModelNAV_KeplerianSet },
13969   {   2, &hf_lpp_cnav_KeplerianSet, ASN1_EXTENSION_ROOT    , dissect_lpp_NavModelCNAV_KeplerianSet },
13970   {   3, &hf_lpp_glonass_ECEF    , ASN1_EXTENSION_ROOT    , dissect_lpp_NavModel_GLONASS_ECEF },
13971   {   4, &hf_lpp_sbas_ECEF       , ASN1_EXTENSION_ROOT    , dissect_lpp_NavModel_SBAS_ECEF },
13972   {   5, &hf_lpp_bds_KeplerianSet_r12, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_NavModel_BDS_KeplerianSet_r12 },
13973   {   6, &hf_lpp_bds_KeplerianSet2_r16, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_NavModel_BDS_KeplerianSet2_r16 },
13974   {   7, &hf_lpp_navic_KeplerianSet_r16, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_NavModel_NavIC_KeplerianSet_r16 },
13975   { 0, NULL, 0, NULL }
13976 };
13977 
13978 static int
dissect_lpp_GNSS_OrbitModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)13979 dissect_lpp_GNSS_OrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13980   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13981                                  ett_lpp_GNSS_OrbitModel, GNSS_OrbitModel_choice,
13982                                  NULL);
13983 
13984   return offset;
13985 }
13986 
13987 
13988 
13989 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_)13990 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_) {
13991 #line 607 "./asn1/lpp/lpp.cnf"
13992   tvbuff_t *svHealthExt_tvb = NULL;
13993   proto_tree *subtree;
13994   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
13995                                      4, 4, FALSE, NULL, 0, &svHealthExt_tvb, NULL);
13996 
13997 
13998 
13999 
14000 #line 612 "./asn1/lpp/lpp.cnf"
14001   if (svHealthExt_tvb) {
14002     subtree = proto_item_add_subtree(actx->created_item, ett_lpp_svHealthExt_v1240);
14003     proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e5bhs, svHealthExt_tvb, 0, 2, ENC_BIG_ENDIAN);
14004     proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e1_bhs, svHealthExt_tvb, 2, 2, ENC_BIG_ENDIAN);
14005   }
14006 
14007 
14008   return offset;
14009 }
14010 
14011 
14012 static const per_sequence_t GNSS_NavModelSatelliteElement_eag_1_sequence[] = {
14013   { &hf_lpp_svHealthExt_v1240, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_svHealthExt_v1240 },
14014   { NULL, 0, 0, NULL }
14015 };
14016 
14017 static int
dissect_lpp_GNSS_NavModelSatelliteElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14018 dissect_lpp_GNSS_NavModelSatelliteElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14019   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_NavModelSatelliteElement_eag_1_sequence);
14020 
14021   return offset;
14022 }
14023 
14024 
14025 static const per_sequence_t GNSS_NavModelSatelliteElement_sequence[] = {
14026   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14027   { &hf_lpp_svHealth        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
14028   { &hf_lpp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
14029   { &hf_lpp_gnss_ClockModel , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ClockModel },
14030   { &hf_lpp_gnss_OrbitModel , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_OrbitModel },
14031   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NavModelSatelliteElement_eag_1 },
14032   { NULL, 0, 0, NULL }
14033 };
14034 
14035 static int
dissect_lpp_GNSS_NavModelSatelliteElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14036 dissect_lpp_GNSS_NavModelSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14037   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14038                                    ett_lpp_GNSS_NavModelSatelliteElement, GNSS_NavModelSatelliteElement_sequence);
14039 
14040   return offset;
14041 }
14042 
14043 
14044 static const per_sequence_t GNSS_NavModelSatelliteList_sequence_of[1] = {
14045   { &hf_lpp_GNSS_NavModelSatelliteList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NavModelSatelliteElement },
14046 };
14047 
14048 static int
dissect_lpp_GNSS_NavModelSatelliteList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14049 dissect_lpp_GNSS_NavModelSatelliteList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14050   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
14051                                                   ett_lpp_GNSS_NavModelSatelliteList, GNSS_NavModelSatelliteList_sequence_of,
14052                                                   1, 64, FALSE);
14053 
14054   return offset;
14055 }
14056 
14057 
14058 static const per_sequence_t GNSS_NavigationModel_sequence[] = {
14059   { &hf_lpp_nonBroadcastIndFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
14060   { &hf_lpp_gnss_SatelliteList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NavModelSatelliteList },
14061   { NULL, 0, 0, NULL }
14062 };
14063 
14064 static int
dissect_lpp_GNSS_NavigationModel(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14065 dissect_lpp_GNSS_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14066   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14067                                    ett_lpp_GNSS_NavigationModel, GNSS_NavigationModel_sequence);
14068 
14069   return offset;
14070 }
14071 
14072 
14073 static const per_sequence_t BadSignalElement_sequence[] = {
14074   { &hf_lpp_badSVID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14075   { &hf_lpp_badSignalID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SignalIDs },
14076   { NULL, 0, 0, NULL }
14077 };
14078 
14079 static int
dissect_lpp_BadSignalElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14080 dissect_lpp_BadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14081   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14082                                    ett_lpp_BadSignalElement, BadSignalElement_sequence);
14083 
14084   return offset;
14085 }
14086 
14087 
14088 static const per_sequence_t GNSS_BadSignalList_sequence_of[1] = {
14089   { &hf_lpp_GNSS_BadSignalList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BadSignalElement },
14090 };
14091 
14092 static int
dissect_lpp_GNSS_BadSignalList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14093 dissect_lpp_GNSS_BadSignalList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14094   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
14095                                                   ett_lpp_GNSS_BadSignalList, GNSS_BadSignalList_sequence_of,
14096                                                   1, 64, FALSE);
14097 
14098   return offset;
14099 }
14100 
14101 
14102 static const per_sequence_t GNSS_RealTimeIntegrity_sequence[] = {
14103   { &hf_lpp_gnss_BadSignalList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_BadSignalList },
14104   { NULL, 0, 0, NULL }
14105 };
14106 
14107 static int
dissect_lpp_GNSS_RealTimeIntegrity(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14108 dissect_lpp_GNSS_RealTimeIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14109   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14110                                    ett_lpp_GNSS_RealTimeIntegrity, GNSS_RealTimeIntegrity_sequence);
14111 
14112   return offset;
14113 }
14114 
14115 
14116 
14117 static int
dissect_lpp_BIT_STRING_SIZE_1_1024(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14118 dissect_lpp_BIT_STRING_SIZE_1_1024(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14119   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
14120                                      1, 1024, FALSE, NULL, 0, NULL, NULL);
14121 
14122   return offset;
14123 }
14124 
14125 
14126 static const per_sequence_t GNSS_DataBitsSgnElement_sequence[] = {
14127   { &hf_lpp_gnss_SignalType , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
14128   { &hf_lpp_gnss_DataBits   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_1_1024 },
14129   { NULL, 0, 0, NULL }
14130 };
14131 
14132 static int
dissect_lpp_GNSS_DataBitsSgnElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14133 dissect_lpp_GNSS_DataBitsSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14134   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14135                                    ett_lpp_GNSS_DataBitsSgnElement, GNSS_DataBitsSgnElement_sequence);
14136 
14137   return offset;
14138 }
14139 
14140 
14141 static const per_sequence_t GNSS_DataBitsSgnList_sequence_of[1] = {
14142   { &hf_lpp_GNSS_DataBitsSgnList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSgnElement },
14143 };
14144 
14145 static int
dissect_lpp_GNSS_DataBitsSgnList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14146 dissect_lpp_GNSS_DataBitsSgnList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14147   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
14148                                                   ett_lpp_GNSS_DataBitsSgnList, GNSS_DataBitsSgnList_sequence_of,
14149                                                   1, 8, FALSE);
14150 
14151   return offset;
14152 }
14153 
14154 
14155 static const per_sequence_t GNSS_DataBitsSatElement_sequence[] = {
14156   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14157   { &hf_lpp_gnss_DataBitsSgnList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSgnList },
14158   { NULL, 0, 0, NULL }
14159 };
14160 
14161 static int
dissect_lpp_GNSS_DataBitsSatElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14162 dissect_lpp_GNSS_DataBitsSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14163   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14164                                    ett_lpp_GNSS_DataBitsSatElement, GNSS_DataBitsSatElement_sequence);
14165 
14166   return offset;
14167 }
14168 
14169 
14170 static const per_sequence_t GNSS_DataBitsSatList_sequence_of[1] = {
14171   { &hf_lpp_GNSS_DataBitsSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSatElement },
14172 };
14173 
14174 static int
dissect_lpp_GNSS_DataBitsSatList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14175 dissect_lpp_GNSS_DataBitsSatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14176   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
14177                                                   ett_lpp_GNSS_DataBitsSatList, GNSS_DataBitsSatList_sequence_of,
14178                                                   1, 64, FALSE);
14179 
14180   return offset;
14181 }
14182 
14183 
14184 static const per_sequence_t GNSS_DataBitAssistance_sequence[] = {
14185   { &hf_lpp_gnss_TOD        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
14186   { &hf_lpp_gnss_TODfrac    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_999 },
14187   { &hf_lpp_gnss_DataBitsSatList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSatList },
14188   { NULL, 0, 0, NULL }
14189 };
14190 
14191 static int
dissect_lpp_GNSS_DataBitAssistance(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14192 dissect_lpp_GNSS_DataBitAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14193   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14194                                    ett_lpp_GNSS_DataBitAssistance, GNSS_DataBitAssistance_sequence);
14195 
14196   return offset;
14197 }
14198 
14199 
14200 
14201 static int
dissect_lpp_INTEGER_0_4(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14202 dissect_lpp_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14203   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14204                                                             0U, 4U, NULL, FALSE);
14205 
14206   return offset;
14207 }
14208 
14209 
14210 
14211 static int
dissect_lpp_INTEGER_0_1022(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14212 dissect_lpp_INTEGER_0_1022(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14213   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14214                                                             0U, 1022U, NULL, FALSE);
14215 
14216   return offset;
14217 }
14218 
14219 
14220 static const value_string lpp_T_dopplerUncertaintyExt_r10_vals[] = {
14221   {   0, "d60" },
14222   {   1, "d80" },
14223   {   2, "d100" },
14224   {   3, "d120" },
14225   {   4, "noInformation" },
14226   { 0, NULL }
14227 };
14228 
14229 
14230 static int
dissect_lpp_T_dopplerUncertaintyExt_r10(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14231 dissect_lpp_T_dopplerUncertaintyExt_r10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14232   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
14233                                      5, NULL, TRUE, 0, NULL);
14234 
14235   return offset;
14236 }
14237 
14238 
14239 static const per_sequence_t GNSS_AcquisitionAssistElement_sequence[] = {
14240   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14241   { &hf_lpp_doppler0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
14242   { &hf_lpp_doppler1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
14243   { &hf_lpp_dopplerUncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4 },
14244   { &hf_lpp_codePhase       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1022 },
14245   { &hf_lpp_intCodePhase    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
14246   { &hf_lpp_codePhaseSearchWindow, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
14247   { &hf_lpp_azimuth         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
14248   { &hf_lpp_elevation       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
14249   { &hf_lpp_codePhase1023   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
14250   { &hf_lpp_dopplerUncertaintyExt_r10, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_dopplerUncertaintyExt_r10 },
14251   { NULL, 0, 0, NULL }
14252 };
14253 
14254 static int
dissect_lpp_GNSS_AcquisitionAssistElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14255 dissect_lpp_GNSS_AcquisitionAssistElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14256   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14257                                    ett_lpp_GNSS_AcquisitionAssistElement, GNSS_AcquisitionAssistElement_sequence);
14258 
14259   return offset;
14260 }
14261 
14262 
14263 static const per_sequence_t GNSS_AcquisitionAssistList_sequence_of[1] = {
14264   { &hf_lpp_GNSS_AcquisitionAssistList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AcquisitionAssistElement },
14265 };
14266 
14267 static int
dissect_lpp_GNSS_AcquisitionAssistList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14268 dissect_lpp_GNSS_AcquisitionAssistList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14269   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
14270                                                   ett_lpp_GNSS_AcquisitionAssistList, GNSS_AcquisitionAssistList_sequence_of,
14271                                                   1, 64, FALSE);
14272 
14273   return offset;
14274 }
14275 
14276 
14277 static const per_sequence_t GNSS_AcquisitionAssistance_sequence[] = {
14278   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
14279   { &hf_lpp_gnss_AcquisitionAssistList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AcquisitionAssistList },
14280   { &hf_lpp_confidence_r10  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_100 },
14281   { NULL, 0, 0, NULL }
14282 };
14283 
14284 static int
dissect_lpp_GNSS_AcquisitionAssistance(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14285 dissect_lpp_GNSS_AcquisitionAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14286   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14287                                    ett_lpp_GNSS_AcquisitionAssistance, GNSS_AcquisitionAssistance_sequence);
14288 
14289   return offset;
14290 }
14291 
14292 
14293 
14294 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_)14295 dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14296 #line 1077 "./asn1/lpp/lpp.cnf"
14297   guint32 toa, val;
14298   int len, old_offset = offset;
14299   T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
14300   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14301                                                             0U, 255U, &toa, FALSE);
14302 
14303 
14304 
14305 
14306 #line 1083 "./asn1/lpp/lpp.cnf"
14307   len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
14308   val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa : 4096*toa;
14309   actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa, tvb, old_offset, len,
14310                                                         toa, "%u s (%u)", val, toa);
14311 
14312 
14313   return offset;
14314 }
14315 
14316 
14317 
14318 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_)14319 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_) {
14320 #line 1110 "./asn1/lpp/lpp.cnf"
14321   tvbuff_t *statusINAV_tvb = NULL;
14322   proto_tree *subtree;
14323   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
14324                                      4, 4, FALSE, NULL, 0, &statusINAV_tvb, NULL);
14325 
14326 
14327 
14328 
14329 #line 1115 "./asn1/lpp/lpp.cnf"
14330   if (statusINAV_tvb) {
14331     subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusINAV);
14332     proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e5bhs, statusINAV_tvb, 0, 2, ENC_BIG_ENDIAN);
14333     proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e1_bhs, statusINAV_tvb, 2, 2, ENC_BIG_ENDIAN);
14334   }
14335 
14336 
14337   return offset;
14338 }
14339 
14340 
14341 
14342 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_)14343 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_) {
14344 #line 1122 "./asn1/lpp/lpp.cnf"
14345   tvbuff_t *statusFNAV_tvb = NULL;
14346   proto_tree *subtree;
14347   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
14348                                      2, 2, FALSE, NULL, 0, &statusFNAV_tvb, NULL);
14349 
14350 
14351 
14352 
14353 #line 1127 "./asn1/lpp/lpp.cnf"
14354   if (statusFNAV_tvb) {
14355     subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusFNAV);
14356     proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusFNAV_e5ahs, statusFNAV_tvb, 0, 2, ENC_BIG_ENDIAN);
14357   }
14358 
14359 
14360   return offset;
14361 }
14362 
14363 
14364 static const per_sequence_t AlmanacKeplerianSet_sequence[] = {
14365   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14366   { &hf_lpp_kepAlmanacE     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
14367   { &hf_lpp_kepAlmanacDeltaI, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14368   { &hf_lpp_kepAlmanacOmegaDot, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14369   { &hf_lpp_kepSV_StatusINAV, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_kepSV_StatusINAV },
14370   { &hf_lpp_kepSV_StatusFNAV, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_kepSV_StatusFNAV },
14371   { &hf_lpp_kepAlmanacAPowerHalf, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
14372   { &hf_lpp_kepAlmanacOmega0, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14373   { &hf_lpp_kepAlmanacW     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14374   { &hf_lpp_kepAlmanacM0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14375   { &hf_lpp_kepAlmanacAF0   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14376   { &hf_lpp_kepAlmanacAF1   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
14377   { NULL, 0, 0, NULL }
14378 };
14379 
14380 static int
dissect_lpp_AlmanacKeplerianSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14381 dissect_lpp_AlmanacKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14382   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14383                                    ett_lpp_AlmanacKeplerianSet, AlmanacKeplerianSet_sequence);
14384 
14385   return offset;
14386 }
14387 
14388 
14389 static const per_sequence_t AlmanacNAV_KeplerianSet_sequence[] = {
14390   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14391   { &hf_lpp_navAlmE         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
14392   { &hf_lpp_navAlmDeltaI    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14393   { &hf_lpp_navAlmOMEGADOT  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14394   { &hf_lpp_navAlmSVHealth  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14395   { &hf_lpp_navAlmSqrtA     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
14396   { &hf_lpp_navAlmOMEGAo    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14397   { &hf_lpp_navAlmOmega     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14398   { &hf_lpp_navAlmMo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14399   { &hf_lpp_navAlmaf0       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14400   { &hf_lpp_navAlmaf1       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14401   { NULL, 0, 0, NULL }
14402 };
14403 
14404 static int
dissect_lpp_AlmanacNAV_KeplerianSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14405 dissect_lpp_AlmanacNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14406   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14407                                    ett_lpp_AlmanacNAV_KeplerianSet, AlmanacNAV_KeplerianSet_sequence);
14408 
14409   return offset;
14410 }
14411 
14412 
14413 static const per_sequence_t AlmanacReducedKeplerianSet_sequence[] = {
14414   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14415   { &hf_lpp_redAlmDeltaA    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14416   { &hf_lpp_redAlmOmega0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
14417   { &hf_lpp_redAlmPhi0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
14418   { &hf_lpp_redAlmL1Health  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14419   { &hf_lpp_redAlmL2Health  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14420   { &hf_lpp_redAlmL5Health  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14421   { NULL, 0, 0, NULL }
14422 };
14423 
14424 static int
dissect_lpp_AlmanacReducedKeplerianSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14425 dissect_lpp_AlmanacReducedKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14426   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14427                                    ett_lpp_AlmanacReducedKeplerianSet, AlmanacReducedKeplerianSet_sequence);
14428 
14429   return offset;
14430 }
14431 
14432 
14433 static const per_sequence_t AlmanacMidiAlmanacSet_sequence[] = {
14434   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14435   { &hf_lpp_midiAlmE        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
14436   { &hf_lpp_midiAlmDeltaI   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14437   { &hf_lpp_midiAlmOmegaDot , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14438   { &hf_lpp_midiAlmSqrtA    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_131071 },
14439   { &hf_lpp_midiAlmOmega0   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14440   { &hf_lpp_midiAlmOmega    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14441   { &hf_lpp_midiAlmMo       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14442   { &hf_lpp_midiAlmaf0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14443   { &hf_lpp_midiAlmaf1      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
14444   { &hf_lpp_midiAlmL1Health , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14445   { &hf_lpp_midiAlmL2Health , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14446   { &hf_lpp_midiAlmL5Health , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14447   { NULL, 0, 0, NULL }
14448 };
14449 
14450 static int
dissect_lpp_AlmanacMidiAlmanacSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14451 dissect_lpp_AlmanacMidiAlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14452   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14453                                    ett_lpp_AlmanacMidiAlmanacSet, AlmanacMidiAlmanacSet_sequence);
14454 
14455   return offset;
14456 }
14457 
14458 
14459 
14460 static int
dissect_lpp_INTEGER_1_1461(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14461 dissect_lpp_INTEGER_1_1461(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14462   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14463                                                             1U, 1461U, NULL, FALSE);
14464 
14465   return offset;
14466 }
14467 
14468 
14469 
14470 static int
dissect_lpp_INTEGER_1_24(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14471 dissect_lpp_INTEGER_1_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14472   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14473                                                             1U, 24U, NULL, FALSE);
14474 
14475   return offset;
14476 }
14477 
14478 
14479 
14480 static int
dissect_lpp_INTEGER_0_2097151(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14481 dissect_lpp_INTEGER_0_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14482   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14483                                                             0U, 2097151U, NULL, FALSE);
14484 
14485   return offset;
14486 }
14487 
14488 
14489 static const per_sequence_t AlmanacGLONASS_AlmanacSet_sequence[] = {
14490   { &hf_lpp_gloAlm_NA       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_1461 },
14491   { &hf_lpp_gloAlmnA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_24 },
14492   { &hf_lpp_gloAlmHA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
14493   { &hf_lpp_gloAlmLambdaA   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
14494   { &hf_lpp_gloAlmtlambdaA  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2097151 },
14495   { &hf_lpp_gloAlmDeltaIa   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
14496   { &hf_lpp_gloAlmDeltaTA   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
14497   { &hf_lpp_gloAlmDeltaTdotA, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
14498   { &hf_lpp_gloAlmEpsilonA  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
14499   { &hf_lpp_gloAlmOmegaA    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14500   { &hf_lpp_gloAlmTauA      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
14501   { &hf_lpp_gloAlmCA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
14502   { &hf_lpp_gloAlmMA        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_2 },
14503   { NULL, 0, 0, NULL }
14504 };
14505 
14506 static int
dissect_lpp_AlmanacGLONASS_AlmanacSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14507 dissect_lpp_AlmanacGLONASS_AlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14508   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14509                                    ett_lpp_AlmanacGLONASS_AlmanacSet, AlmanacGLONASS_AlmanacSet_sequence);
14510 
14511   return offset;
14512 }
14513 
14514 
14515 
14516 static int
dissect_lpp_INTEGER_M256_255(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14517 dissect_lpp_INTEGER_M256_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14518   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14519                                                             -256, 255U, NULL, FALSE);
14520 
14521   return offset;
14522 }
14523 
14524 
14525 
14526 static int
dissect_lpp_INTEGER_M4_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14527 dissect_lpp_INTEGER_M4_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14528   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14529                                                             -4, 3U, NULL, FALSE);
14530 
14531   return offset;
14532 }
14533 
14534 
14535 
14536 static int
dissect_lpp_INTEGER_M8_7(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14537 dissect_lpp_INTEGER_M8_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14538   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14539                                                             -8, 7U, NULL, FALSE);
14540 
14541   return offset;
14542 }
14543 
14544 
14545 static const per_sequence_t AlmanacECEF_SBAS_AlmanacSet_sequence[] = {
14546   { &hf_lpp_sbasAlmDataID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
14547   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14548   { &hf_lpp_sbasAlmHealth   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
14549   { &hf_lpp_sbasAlmXg       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
14550   { &hf_lpp_sbasAlmYg       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
14551   { &hf_lpp_sbasAlmZg       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M256_255 },
14552   { &hf_lpp_sbasAlmXgdot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4_3 },
14553   { &hf_lpp_sbasAlmYgDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4_3 },
14554   { &hf_lpp_sbasAlmZgDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8_7 },
14555   { &hf_lpp_sbasAlmTo       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
14556   { NULL, 0, 0, NULL }
14557 };
14558 
14559 static int
dissect_lpp_AlmanacECEF_SBAS_AlmanacSet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14560 dissect_lpp_AlmanacECEF_SBAS_AlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14561   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14562                                    ett_lpp_AlmanacECEF_SBAS_AlmanacSet, AlmanacECEF_SBAS_AlmanacSet_sequence);
14563 
14564   return offset;
14565 }
14566 
14567 
14568 
14569 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_)14570 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_) {
14571 #line 1289 "./asn1/lpp/lpp.cnf"
14572   tvbuff_t *bdsSvHealth_tvb = NULL;
14573   proto_tree *subtree;
14574   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
14575                                      9, 9, FALSE, NULL, 0, &bdsSvHealth_tvb, NULL);
14576 
14577 
14578 
14579 
14580 #line 1294 "./asn1/lpp/lpp.cnf"
14581   if (bdsSvHealth_tvb) {
14582     guint16 bits;
14583     subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bdsSvHealth_r12);
14584     bits = tvb_get_bits16(bdsSvHealth_tvb, 0, 9,ENC_BIG_ENDIAN);
14585     if (bits == 0x1ff) {
14586       proto_tree_add_boolean_bits_format_value(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, 1,
14587                                                ENC_BIG_ENDIAN, "Satellite is in failure or permanently shut off (1)");
14588     } else if (bits == 0x100) {
14589       proto_tree_add_boolean_bits_format_value(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, 1,
14590                                                ENC_BIG_ENDIAN, "Satellite clock is unavailable (1)");
14591     } else {
14592       proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, ENC_BIG_ENDIAN);
14593       proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_b1i, bdsSvHealth_tvb, 1, 1, ENC_BIG_ENDIAN);
14594       proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_b2i, bdsSvHealth_tvb, 2, 1, ENC_BIG_ENDIAN);
14595       proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_nav, bdsSvHealth_tvb, 7, 1, ENC_BIG_ENDIAN);
14596     }
14597   }
14598 
14599 
14600   return offset;
14601 }
14602 
14603 
14604 static const per_sequence_t AlmanacBDS_AlmanacSet_r12_sequence[] = {
14605   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14606   { &hf_lpp_bdsAlmToa_r12   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
14607   { &hf_lpp_bdsAlmSqrtA_r12 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
14608   { &hf_lpp_bdsAlmE_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_131071 },
14609   { &hf_lpp_bdsAlmW_r12     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14610   { &hf_lpp_bdsAlmM0_r12    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14611   { &hf_lpp_bdsAlmOmega0_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14612   { &hf_lpp_bdsAlmOmegaDot_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
14613   { &hf_lpp_bdsAlmDeltaI_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14614   { &hf_lpp_bdsAlmA0_r12    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14615   { &hf_lpp_bdsAlmA1_r12    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14616   { &hf_lpp_bdsSvHealth_r12 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_bdsSvHealth_r12 },
14617   { NULL, 0, 0, NULL }
14618 };
14619 
14620 static int
dissect_lpp_AlmanacBDS_AlmanacSet_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14621 dissect_lpp_AlmanacBDS_AlmanacSet_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14622   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14623                                    ett_lpp_AlmanacBDS_AlmanacSet_r12, AlmanacBDS_AlmanacSet_r12_sequence);
14624 
14625   return offset;
14626 }
14627 
14628 
14629 static const per_sequence_t AlmanacNavIC_AlmanacSet_r16_sequence[] = {
14630   { &hf_lpp_svID_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14631   { &hf_lpp_navic_AlmToa_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_65535 },
14632   { &hf_lpp_navic_AlmE_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
14633   { &hf_lpp_navic_AlmOMEGADOT_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14634   { &hf_lpp_navic_AlmSqrtA_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
14635   { &hf_lpp_navic_AlmOMEGAo_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14636   { &hf_lpp_navic_AlmOmega_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14637   { &hf_lpp_navic_AlmMo_r16 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14638   { &hf_lpp_navic_Almaf0_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14639   { &hf_lpp_navic_Almaf1_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
14640   { NULL, 0, 0, NULL }
14641 };
14642 
14643 static int
dissect_lpp_AlmanacNavIC_AlmanacSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14644 dissect_lpp_AlmanacNavIC_AlmanacSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14645   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14646                                    ett_lpp_AlmanacNavIC_AlmanacSet_r16, AlmanacNavIC_AlmanacSet_r16_sequence);
14647 
14648   return offset;
14649 }
14650 
14651 
14652 static const value_string lpp_GNSS_AlmanacElement_vals[] = {
14653   {   0, "keplerianAlmanacSet" },
14654   {   1, "keplerianNAV-Almanac" },
14655   {   2, "keplerianReducedAlmanac" },
14656   {   3, "keplerianMidiAlmanac" },
14657   {   4, "keplerianGLONASS" },
14658   {   5, "ecef-SBAS-Almanac" },
14659   {   6, "keplerianBDS-Almanac-r12" },
14660   {   7, "keplerianNavIC-Almanac-r16" },
14661   { 0, NULL }
14662 };
14663 
14664 static const per_choice_t GNSS_AlmanacElement_choice[] = {
14665   {   0, &hf_lpp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacKeplerianSet },
14666   {   1, &hf_lpp_keplerianNAV_Almanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacNAV_KeplerianSet },
14667   {   2, &hf_lpp_keplerianReducedAlmanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacReducedKeplerianSet },
14668   {   3, &hf_lpp_keplerianMidiAlmanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacMidiAlmanacSet },
14669   {   4, &hf_lpp_keplerianGLONASS, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacGLONASS_AlmanacSet },
14670   {   5, &hf_lpp_ecef_SBAS_Almanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacECEF_SBAS_AlmanacSet },
14671   {   6, &hf_lpp_keplerianBDS_Almanac_r12, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_AlmanacBDS_AlmanacSet_r12 },
14672   {   7, &hf_lpp_keplerianNavIC_Almanac_r16, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_AlmanacNavIC_AlmanacSet_r16 },
14673   { 0, NULL, 0, NULL }
14674 };
14675 
14676 static int
dissect_lpp_GNSS_AlmanacElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14677 dissect_lpp_GNSS_AlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14678   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14679                                  ett_lpp_GNSS_AlmanacElement, GNSS_AlmanacElement_choice,
14680                                  NULL);
14681 
14682   return offset;
14683 }
14684 
14685 
14686 static const per_sequence_t GNSS_AlmanacList_sequence_of[1] = {
14687   { &hf_lpp_GNSS_AlmanacList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AlmanacElement },
14688 };
14689 
14690 static int
dissect_lpp_GNSS_AlmanacList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14691 dissect_lpp_GNSS_AlmanacList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14692   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
14693                                                   ett_lpp_GNSS_AlmanacList, GNSS_AlmanacList_sequence_of,
14694                                                   1, 64, FALSE);
14695 
14696   return offset;
14697 }
14698 
14699 
14700 
14701 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_)14702 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_) {
14703 #line 1089 "./asn1/lpp/lpp.cnf"
14704   guint32 toa_ext, val;
14705   int len, old_offset = offset;
14706   T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
14707   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14708                                                             256U, 1023U, &toa_ext, FALSE);
14709 
14710 
14711 
14712 
14713 #line 1095 "./asn1/lpp/lpp.cnf"
14714   len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
14715   val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa_ext : 4096*toa_ext;
14716   actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa_ext_v1240, tvb, old_offset, len,
14717                                                         toa_ext, "%u s (%u)", val, toa_ext);
14718 
14719 
14720   return offset;
14721 }
14722 
14723 
14724 
14725 static int
dissect_lpp_INTEGER_4_15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14726 dissect_lpp_INTEGER_4_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14727   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14728                                                             4U, 15U, NULL, FALSE);
14729 
14730   return offset;
14731 }
14732 
14733 
14734 static const per_sequence_t GNSS_Almanac_eag_1_sequence[] = {
14735   { &hf_lpp_toa_ext_v1240   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_toa_ext_v1240 },
14736   { &hf_lpp_ioda_ext_v1240  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_4_15 },
14737   { NULL, 0, 0, NULL }
14738 };
14739 
14740 static int
dissect_lpp_GNSS_Almanac_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14741 dissect_lpp_GNSS_Almanac_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14742   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_Almanac_eag_1_sequence);
14743 
14744   return offset;
14745 }
14746 
14747 
14748 
14749 static int
dissect_lpp_INTEGER_256_8191(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14750 dissect_lpp_INTEGER_256_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14751   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14752                                                             256U, 8191U, NULL, FALSE);
14753 
14754   return offset;
14755 }
14756 
14757 
14758 
14759 static int
dissect_lpp_INTEGER_256_65535(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14760 dissect_lpp_INTEGER_256_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14761   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
14762                                                             256U, 65535U, NULL, FALSE);
14763 
14764   return offset;
14765 }
14766 
14767 
14768 static const per_sequence_t GNSS_Almanac_eag_2_sequence[] = {
14769   { &hf_lpp_weekNumber_ext_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_256_8191 },
14770   { &hf_lpp_toa_ext2_r16    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_256_65535 },
14771   { NULL, 0, 0, NULL }
14772 };
14773 
14774 static int
dissect_lpp_GNSS_Almanac_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14775 dissect_lpp_GNSS_Almanac_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14776   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_Almanac_eag_2_sequence);
14777 
14778   return offset;
14779 }
14780 
14781 
14782 static const per_sequence_t GNSS_Almanac_sequence[] = {
14783   { &hf_lpp_weekNumber_01   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
14784   { &hf_lpp_toa             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_toa },
14785   { &hf_lpp_ioda            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3 },
14786   { &hf_lpp_completeAlmanacProvided, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
14787   { &hf_lpp_gnss_AlmanacList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AlmanacList },
14788   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_Almanac_eag_1 },
14789   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_Almanac_eag_2 },
14790   { NULL, 0, 0, NULL }
14791 };
14792 
14793 static int
dissect_lpp_GNSS_Almanac(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14794 dissect_lpp_GNSS_Almanac(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14795   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14796                                    ett_lpp_GNSS_Almanac, GNSS_Almanac_sequence);
14797 
14798   return offset;
14799 }
14800 
14801 
14802 static const per_sequence_t UTC_ModelSet1_sequence[] = {
14803   { &hf_lpp_gnss_Utc_A1     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14804   { &hf_lpp_gnss_Utc_A0     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
14805   { &hf_lpp_gnss_Utc_Tot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14806   { &hf_lpp_gnss_Utc_WNt    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14807   { &hf_lpp_gnss_Utc_DeltaTls, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14808   { &hf_lpp_gnss_Utc_WNlsf  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14809   { &hf_lpp_gnss_Utc_DN     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14810   { &hf_lpp_gnss_Utc_DeltaTlsf, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14811   { NULL, 0, 0, NULL }
14812 };
14813 
14814 static int
dissect_lpp_UTC_ModelSet1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14815 dissect_lpp_UTC_ModelSet1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14816   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14817                                    ett_lpp_UTC_ModelSet1, UTC_ModelSet1_sequence);
14818 
14819   return offset;
14820 }
14821 
14822 
14823 
14824 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_)14825 dissect_lpp_T_utcDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14826 #line 1358 "./asn1/lpp/lpp.cnf"
14827   tvbuff_t *utcDN_tvb = NULL;
14828   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
14829                                      4, 4, FALSE, NULL, 0, &utcDN_tvb, NULL);
14830 
14831 
14832 
14833 
14834 #line 1362 "./asn1/lpp/lpp.cnf"
14835   if (utcDN_tvb) {
14836     guint bitvalue = tvb_get_bits8(utcDN_tvb, 0, 4);
14837     actx->created_item = proto_tree_add_uint(tree, hf_index, utcDN_tvb, 0, 1, bitvalue);
14838   }
14839 
14840 
14841   return offset;
14842 }
14843 
14844 
14845 static const per_sequence_t UTC_ModelSet2_eag_1_sequence[] = {
14846   { &hf_lpp_utcWNlsf_ext_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_256_8191 },
14847   { NULL, 0, 0, NULL }
14848 };
14849 
14850 static int
dissect_lpp_UTC_ModelSet2_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14851 dissect_lpp_UTC_ModelSet2_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14852   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, UTC_ModelSet2_eag_1_sequence);
14853 
14854   return offset;
14855 }
14856 
14857 
14858 static const per_sequence_t UTC_ModelSet2_sequence[] = {
14859   { &hf_lpp_utcA0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
14860   { &hf_lpp_utcA1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
14861   { &hf_lpp_utcA2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
14862   { &hf_lpp_utcDeltaTls     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14863   { &hf_lpp_utcTot          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
14864   { &hf_lpp_utcWNot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8191 },
14865   { &hf_lpp_utcWNlsf        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14866   { &hf_lpp_utcDN           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_utcDN },
14867   { &hf_lpp_utcDeltaTlsf    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14868   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_UTC_ModelSet2_eag_1 },
14869   { NULL, 0, 0, NULL }
14870 };
14871 
14872 static int
dissect_lpp_UTC_ModelSet2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14873 dissect_lpp_UTC_ModelSet2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14874   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14875                                    ett_lpp_UTC_ModelSet2, UTC_ModelSet2_sequence);
14876 
14877   return offset;
14878 }
14879 
14880 
14881 
14882 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_)14883 dissect_lpp_T_kp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14884 #line 1386 "./asn1/lpp/lpp.cnf"
14885   tvbuff_t *kp_tvb = NULL;
14886   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
14887                                      2, 2, FALSE, NULL, 0, &kp_tvb, NULL);
14888 
14889 
14890 
14891 
14892 #line 1390 "./asn1/lpp/lpp.cnf"
14893   if (kp_tvb) {
14894     guint bitvalue = tvb_get_bits8(kp_tvb, 0, 2);
14895     actx->created_item = proto_tree_add_uint(tree, hf_index, kp_tvb, 0, 1, bitvalue);
14896   }
14897 
14898 
14899   return offset;
14900 }
14901 
14902 
14903 static const per_sequence_t UTC_ModelSet3_sequence[] = {
14904   { &hf_lpp_nA              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_1461 },
14905   { &hf_lpp_tauC            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
14906   { &hf_lpp_b1              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M1024_1023 },
14907   { &hf_lpp_b2              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M512_511 },
14908   { &hf_lpp_kp              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_kp },
14909   { NULL, 0, 0, NULL }
14910 };
14911 
14912 static int
dissect_lpp_UTC_ModelSet3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14913 dissect_lpp_UTC_ModelSet3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14914   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14915                                    ett_lpp_UTC_ModelSet3, UTC_ModelSet3_sequence);
14916 
14917   return offset;
14918 }
14919 
14920 
14921 static const per_sequence_t UTC_ModelSet4_sequence[] = {
14922   { &hf_lpp_utcA1wnt        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14923   { &hf_lpp_utcA0wnt        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
14924   { &hf_lpp_utcTot_01       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14925   { &hf_lpp_utcWNt          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14926   { &hf_lpp_utcDeltaTls     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14927   { &hf_lpp_utcWNlsf        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14928   { &hf_lpp_UTC_ModelSet4_utcDN, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14929   { &hf_lpp_utcDeltaTlsf    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14930   { &hf_lpp_utcStandardID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
14931   { NULL, 0, 0, NULL }
14932 };
14933 
14934 static int
dissect_lpp_UTC_ModelSet4(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14935 dissect_lpp_UTC_ModelSet4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14936   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14937                                    ett_lpp_UTC_ModelSet4, UTC_ModelSet4_sequence);
14938 
14939   return offset;
14940 }
14941 
14942 
14943 static const per_sequence_t UTC_ModelSet5_r12_sequence[] = {
14944   { &hf_lpp_utcA0_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
14945   { &hf_lpp_utcA1_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
14946   { &hf_lpp_utcDeltaTls_r12 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14947   { &hf_lpp_utcWNlsf_r12    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14948   { &hf_lpp_utcDN_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
14949   { &hf_lpp_utcDeltaTlsf_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
14950   { NULL, 0, 0, NULL }
14951 };
14952 
14953 static int
dissect_lpp_UTC_ModelSet5_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14954 dissect_lpp_UTC_ModelSet5_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14955   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14956                                    ett_lpp_UTC_ModelSet5_r12, UTC_ModelSet5_r12_sequence);
14957 
14958   return offset;
14959 }
14960 
14961 
14962 static const value_string lpp_GNSS_UTC_Model_vals[] = {
14963   {   0, "utcModel1" },
14964   {   1, "utcModel2" },
14965   {   2, "utcModel3" },
14966   {   3, "utcModel4" },
14967   {   4, "utcModel5-r12" },
14968   { 0, NULL }
14969 };
14970 
14971 static const per_choice_t GNSS_UTC_Model_choice[] = {
14972   {   0, &hf_lpp_utcModel1       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet1 },
14973   {   1, &hf_lpp_utcModel2       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet2 },
14974   {   2, &hf_lpp_utcModel3       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet3 },
14975   {   3, &hf_lpp_utcModel4       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet4 },
14976   {   4, &hf_lpp_utcModel5_r12   , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_UTC_ModelSet5_r12 },
14977   { 0, NULL, 0, NULL }
14978 };
14979 
14980 static int
dissect_lpp_GNSS_UTC_Model(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14981 dissect_lpp_GNSS_UTC_Model(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14982   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14983                                  ett_lpp_GNSS_UTC_Model, GNSS_UTC_Model_choice,
14984                                  NULL);
14985 
14986   return offset;
14987 }
14988 
14989 
14990 static const per_sequence_t GNSS_ID_GPS_SatElement_sequence[] = {
14991   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
14992   { &hf_lpp_signalsAvailable, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
14993   { NULL, 0, 0, NULL }
14994 };
14995 
14996 static int
dissect_lpp_GNSS_ID_GPS_SatElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)14997 dissect_lpp_GNSS_ID_GPS_SatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14998   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14999                                    ett_lpp_GNSS_ID_GPS_SatElement, GNSS_ID_GPS_SatElement_sequence);
15000 
15001   return offset;
15002 }
15003 
15004 
15005 static const per_sequence_t GNSS_ID_GPS_sequence_of[1] = {
15006   { &hf_lpp_GNSS_ID_GPS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_GPS_SatElement },
15007 };
15008 
15009 static int
dissect_lpp_GNSS_ID_GPS(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15010 dissect_lpp_GNSS_ID_GPS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15011   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15012                                                   ett_lpp_GNSS_ID_GPS, GNSS_ID_GPS_sequence_of,
15013                                                   1, 64, FALSE);
15014 
15015   return offset;
15016 }
15017 
15018 
15019 
15020 static int
dissect_lpp_INTEGER_M7_13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15021 dissect_lpp_INTEGER_M7_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15022   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
15023                                                             -7, 13U, NULL, FALSE);
15024 
15025   return offset;
15026 }
15027 
15028 
15029 static const per_sequence_t GNSS_ID_GLONASS_SatElement_sequence[] = {
15030   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15031   { &hf_lpp_signalsAvailable, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
15032   { &hf_lpp_channelNumber   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M7_13 },
15033   { NULL, 0, 0, NULL }
15034 };
15035 
15036 static int
dissect_lpp_GNSS_ID_GLONASS_SatElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15037 dissect_lpp_GNSS_ID_GLONASS_SatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15038   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15039                                    ett_lpp_GNSS_ID_GLONASS_SatElement, GNSS_ID_GLONASS_SatElement_sequence);
15040 
15041   return offset;
15042 }
15043 
15044 
15045 static const per_sequence_t GNSS_ID_GLONASS_sequence_of[1] = {
15046   { &hf_lpp_GNSS_ID_GLONASS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_GLONASS_SatElement },
15047 };
15048 
15049 static int
dissect_lpp_GNSS_ID_GLONASS(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15050 dissect_lpp_GNSS_ID_GLONASS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15051   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15052                                                   ett_lpp_GNSS_ID_GLONASS, GNSS_ID_GLONASS_sequence_of,
15053                                                   1, 64, FALSE);
15054 
15055   return offset;
15056 }
15057 
15058 
15059 static const per_sequence_t GNSS_ID_BDS_SatElement_r16_sequence[] = {
15060   { &hf_lpp_svID_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15061   { &hf_lpp_satType_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
15062   { NULL, 0, 0, NULL }
15063 };
15064 
15065 static int
dissect_lpp_GNSS_ID_BDS_SatElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15066 dissect_lpp_GNSS_ID_BDS_SatElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15067   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15068                                    ett_lpp_GNSS_ID_BDS_SatElement_r16, GNSS_ID_BDS_SatElement_r16_sequence);
15069 
15070   return offset;
15071 }
15072 
15073 
15074 static const per_sequence_t GNSS_ID_BDS_r16_sequence_of[1] = {
15075   { &hf_lpp_GNSS_ID_BDS_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_BDS_SatElement_r16 },
15076 };
15077 
15078 static int
dissect_lpp_GNSS_ID_BDS_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15079 dissect_lpp_GNSS_ID_BDS_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15080   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15081                                                   ett_lpp_GNSS_ID_BDS_r16, GNSS_ID_BDS_r16_sequence_of,
15082                                                   1, 64, FALSE);
15083 
15084   return offset;
15085 }
15086 
15087 
15088 static const value_string lpp_GNSS_AuxiliaryInformation_vals[] = {
15089   {   0, "gnss-ID-GPS" },
15090   {   1, "gnss-ID-GLONASS" },
15091   {   2, "gnss-ID-BDS-r16" },
15092   { 0, NULL }
15093 };
15094 
15095 static const per_choice_t GNSS_AuxiliaryInformation_choice[] = {
15096   {   0, &hf_lpp_gnss_ID_GPS     , ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_ID_GPS },
15097   {   1, &hf_lpp_gnss_ID_GLONASS , ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_ID_GLONASS },
15098   {   2, &hf_lpp_gnss_ID_BDS_r16 , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_GNSS_ID_BDS_r16 },
15099   { 0, NULL, 0, NULL }
15100 };
15101 
15102 static int
dissect_lpp_GNSS_AuxiliaryInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15103 dissect_lpp_GNSS_AuxiliaryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15104   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
15105                                  ett_lpp_GNSS_AuxiliaryInformation, GNSS_AuxiliaryInformation_choice,
15106                                  NULL);
15107 
15108   return offset;
15109 }
15110 
15111 
15112 static const per_sequence_t DBDS_CorrectionElement_r12_sequence[] = {
15113   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15114   { &hf_lpp_bds_UDREI_r12   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15115   { &hf_lpp_bds_RURAI_r12   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15116   { &hf_lpp_bds_ECC_DeltaT_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
15117   { NULL, 0, 0, NULL }
15118 };
15119 
15120 static int
dissect_lpp_DBDS_CorrectionElement_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15121 dissect_lpp_DBDS_CorrectionElement_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15122   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15123                                    ett_lpp_DBDS_CorrectionElement_r12, DBDS_CorrectionElement_r12_sequence);
15124 
15125   return offset;
15126 }
15127 
15128 
15129 static const per_sequence_t DBDS_CorrectionList_r12_sequence_of[1] = {
15130   { &hf_lpp_DBDS_CorrectionList_r12_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DBDS_CorrectionElement_r12 },
15131 };
15132 
15133 static int
dissect_lpp_DBDS_CorrectionList_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15134 dissect_lpp_DBDS_CorrectionList_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15135   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15136                                                   ett_lpp_DBDS_CorrectionList_r12, DBDS_CorrectionList_r12_sequence_of,
15137                                                   1, 64, FALSE);
15138 
15139   return offset;
15140 }
15141 
15142 
15143 static const per_sequence_t BDS_SgnTypeElement_r12_sequence[] = {
15144   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SignalID },
15145   { &hf_lpp_dbds_CorrectionList_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DBDS_CorrectionList_r12 },
15146   { NULL, 0, 0, NULL }
15147 };
15148 
15149 static int
dissect_lpp_BDS_SgnTypeElement_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15150 dissect_lpp_BDS_SgnTypeElement_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15151   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15152                                    ett_lpp_BDS_SgnTypeElement_r12, BDS_SgnTypeElement_r12_sequence);
15153 
15154   return offset;
15155 }
15156 
15157 
15158 static const per_sequence_t BDS_SgnTypeList_r12_sequence_of[1] = {
15159   { &hf_lpp_BDS_SgnTypeList_r12_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BDS_SgnTypeElement_r12 },
15160 };
15161 
15162 static int
dissect_lpp_BDS_SgnTypeList_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15163 dissect_lpp_BDS_SgnTypeList_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15164   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15165                                                   ett_lpp_BDS_SgnTypeList_r12, BDS_SgnTypeList_r12_sequence_of,
15166                                                   1, 3, FALSE);
15167 
15168   return offset;
15169 }
15170 
15171 
15172 static const per_sequence_t BDS_DifferentialCorrections_r12_sequence[] = {
15173   { &hf_lpp_dbds_RefTime_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
15174   { &hf_lpp_bds_SgnTypeList_r12, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BDS_SgnTypeList_r12 },
15175   { NULL, 0, 0, NULL }
15176 };
15177 
15178 static int
dissect_lpp_BDS_DifferentialCorrections_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15179 dissect_lpp_BDS_DifferentialCorrections_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15180   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15181                                    ett_lpp_BDS_DifferentialCorrections_r12, BDS_DifferentialCorrections_r12_sequence);
15182 
15183   return offset;
15184 }
15185 
15186 
15187 
15188 static int
dissect_lpp_INTEGER_1_320(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15189 dissect_lpp_INTEGER_1_320(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15190   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
15191                                                             1U, 320U, NULL, FALSE);
15192 
15193   return offset;
15194 }
15195 
15196 
15197 static const per_sequence_t GridIonElement_r12_sequence[] = {
15198   { &hf_lpp_igp_ID_r12      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_320 },
15199   { &hf_lpp_dt_r12          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
15200   { &hf_lpp_givei_r12       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15201   { NULL, 0, 0, NULL }
15202 };
15203 
15204 static int
dissect_lpp_GridIonElement_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15205 dissect_lpp_GridIonElement_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15206   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15207                                    ett_lpp_GridIonElement_r12, GridIonElement_r12_sequence);
15208 
15209   return offset;
15210 }
15211 
15212 
15213 static const per_sequence_t GridIonList_r12_sequence_of[1] = {
15214   { &hf_lpp_GridIonList_r12_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GridIonElement_r12 },
15215 };
15216 
15217 static int
dissect_lpp_GridIonList_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15218 dissect_lpp_GridIonList_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15219   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15220                                                   ett_lpp_GridIonList_r12, GridIonList_r12_sequence_of,
15221                                                   1, 320, FALSE);
15222 
15223   return offset;
15224 }
15225 
15226 
15227 static const per_sequence_t BDS_GridModelParameter_r12_sequence[] = {
15228   { &hf_lpp_bds_RefTime_r12 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
15229   { &hf_lpp_gridIonList_r12 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GridIonList_r12 },
15230   { NULL, 0, 0, NULL }
15231 };
15232 
15233 static int
dissect_lpp_BDS_GridModelParameter_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15234 dissect_lpp_BDS_GridModelParameter_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15235   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15236                                    ett_lpp_BDS_GridModelParameter_r12, BDS_GridModelParameter_r12_sequence);
15237 
15238   return offset;
15239 }
15240 
15241 
15242 static const per_sequence_t GNSS_GenericAssistDataElement_eag_1_sequence[] = {
15243   { &hf_lpp_bds_DifferentialCorrections_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BDS_DifferentialCorrections_r12 },
15244   { &hf_lpp_bds_GridModel_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BDS_GridModelParameter_r12 },
15245   { NULL, 0, 0, NULL }
15246 };
15247 
15248 static int
dissect_lpp_GNSS_GenericAssistDataElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15249 dissect_lpp_GNSS_GenericAssistDataElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15250   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataElement_eag_1_sequence);
15251 
15252   return offset;
15253 }
15254 
15255 
15256 
15257 static int
dissect_lpp_INTEGER_0_254(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15258 dissect_lpp_INTEGER_0_254(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15259   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
15260                                                             0U, 254U, NULL, FALSE);
15261 
15262   return offset;
15263 }
15264 
15265 
15266 
15267 static int
dissect_lpp_BIT_STRING_SIZE_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15268 dissect_lpp_BIT_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15269   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
15270                                      1, 1, FALSE, NULL, 0, NULL, NULL);
15271 
15272   return offset;
15273 }
15274 
15275 
15276 static const per_sequence_t GNSS_RTK_SatelliteSignalDataElement_r15_sequence[] = {
15277   { &hf_lpp_gnss_SignalID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
15278   { &hf_lpp_fine_PseudoRange_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M524288_524287 },
15279   { &hf_lpp_fine_PhaseRange_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
15280   { &hf_lpp_lockTimeIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
15281   { &hf_lpp_halfCycleAmbiguityIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_1 },
15282   { &hf_lpp_carrier_to_noise_ratio_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1023 },
15283   { &hf_lpp_fine_PhaseRangeRate_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M16384_16383 },
15284   { NULL, 0, 0, NULL }
15285 };
15286 
15287 static int
dissect_lpp_GNSS_RTK_SatelliteSignalDataElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15288 dissect_lpp_GNSS_RTK_SatelliteSignalDataElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15289   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15290                                    ett_lpp_GNSS_RTK_SatelliteSignalDataElement_r15, GNSS_RTK_SatelliteSignalDataElement_r15_sequence);
15291 
15292   return offset;
15293 }
15294 
15295 
15296 static const per_sequence_t GNSS_RTK_SatelliteSignalDataList_r15_sequence_of[1] = {
15297   { &hf_lpp_GNSS_RTK_SatelliteSignalDataList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_RTK_SatelliteSignalDataElement_r15 },
15298 };
15299 
15300 static int
dissect_lpp_GNSS_RTK_SatelliteSignalDataList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15301 dissect_lpp_GNSS_RTK_SatelliteSignalDataList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15302   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15303                                                   ett_lpp_GNSS_RTK_SatelliteSignalDataList_r15, GNSS_RTK_SatelliteSignalDataList_r15_sequence_of,
15304                                                   1, 24, FALSE);
15305 
15306   return offset;
15307 }
15308 
15309 
15310 static const per_sequence_t GNSS_RTK_SatelliteDataElement_r15_sequence[] = {
15311   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15312   { &hf_lpp_integer_ms_r15  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_254 },
15313   { &hf_lpp_rough_range_r15 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
15314   { &hf_lpp_rough_phase_range_rate_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M8192_8191 },
15315   { &hf_lpp_gnss_rtk_SatelliteSignalDataList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_RTK_SatelliteSignalDataList_r15 },
15316   { NULL, 0, 0, NULL }
15317 };
15318 
15319 static int
dissect_lpp_GNSS_RTK_SatelliteDataElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15320 dissect_lpp_GNSS_RTK_SatelliteDataElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15321   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15322                                    ett_lpp_GNSS_RTK_SatelliteDataElement_r15, GNSS_RTK_SatelliteDataElement_r15_sequence);
15323 
15324   return offset;
15325 }
15326 
15327 
15328 static const per_sequence_t GNSS_ObservationList_r15_sequence_of[1] = {
15329   { &hf_lpp_GNSS_ObservationList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_RTK_SatelliteDataElement_r15 },
15330 };
15331 
15332 static int
dissect_lpp_GNSS_ObservationList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15333 dissect_lpp_GNSS_ObservationList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15334   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15335                                                   ett_lpp_GNSS_ObservationList_r15, GNSS_ObservationList_r15_sequence_of,
15336                                                   1, 64, FALSE);
15337 
15338   return offset;
15339 }
15340 
15341 
15342 static const per_sequence_t GNSS_RTK_Observations_r15_sequence[] = {
15343   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15344   { &hf_lpp_gnss_ObservationList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ObservationList_r15 },
15345   { NULL, 0, 0, NULL }
15346 };
15347 
15348 static int
dissect_lpp_GNSS_RTK_Observations_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15349 dissect_lpp_GNSS_RTK_Observations_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15350   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15351                                    ett_lpp_GNSS_RTK_Observations_r15, GNSS_RTK_Observations_r15_sequence);
15352 
15353   return offset;
15354 }
15355 
15356 
15357 static const per_sequence_t GLO_RTK_BiasInformation_r15_sequence[] = {
15358   { &hf_lpp_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
15359   { &hf_lpp_cpbIndicator_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_1 },
15360   { &hf_lpp_l1_ca_cpBias_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M32768_32767 },
15361   { &hf_lpp_l1_p_cpBias_r15 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M32768_32767 },
15362   { &hf_lpp_l2_ca_cpBias_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M32768_32767 },
15363   { &hf_lpp_l2_p_cpBias_r15 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M32768_32767 },
15364   { NULL, 0, 0, NULL }
15365 };
15366 
15367 static int
dissect_lpp_GLO_RTK_BiasInformation_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15368 dissect_lpp_GLO_RTK_BiasInformation_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15369   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15370                                    ett_lpp_GLO_RTK_BiasInformation_r15, GLO_RTK_BiasInformation_r15_sequence);
15371 
15372   return offset;
15373 }
15374 
15375 
15376 static const per_sequence_t Geometric_Ionospheric_Corrections_Differences_Element_r15_sequence[] = {
15377   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15378   { &hf_lpp_ambiguityStatusFlag_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
15379   { &hf_lpp_non_synch_count_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
15380   { &hf_lpp_geometricCarrierPhaseCorrectionDifference_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
15381   { &hf_lpp_iod_r15         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
15382   { &hf_lpp_ionosphericCarrierPhaseCorrectionDifference_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
15383   { NULL, 0, 0, NULL }
15384 };
15385 
15386 static int
dissect_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15387 dissect_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15388   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15389                                    ett_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15, Geometric_Ionospheric_Corrections_Differences_Element_r15_sequence);
15390 
15391   return offset;
15392 }
15393 
15394 
15395 static const per_sequence_t Geometric_Ionospheric_Corrections_Differences_r15_sequence_of[1] = {
15396   { &hf_lpp_Geometric_Ionospheric_Corrections_Differences_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15 },
15397 };
15398 
15399 static int
dissect_lpp_Geometric_Ionospheric_Corrections_Differences_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15400 dissect_lpp_Geometric_Ionospheric_Corrections_Differences_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15401   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15402                                                   ett_lpp_Geometric_Ionospheric_Corrections_Differences_r15, Geometric_Ionospheric_Corrections_Differences_r15_sequence_of,
15403                                                   1, 64, FALSE);
15404 
15405   return offset;
15406 }
15407 
15408 
15409 static const per_sequence_t RTK_CorrectionDifferencesElement_r15_sequence[] = {
15410   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15411   { &hf_lpp_auxiliary_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
15412   { &hf_lpp_geometric_ionospheric_corrections_differences_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Geometric_Ionospheric_Corrections_Differences_r15 },
15413   { NULL, 0, 0, NULL }
15414 };
15415 
15416 static int
dissect_lpp_RTK_CorrectionDifferencesElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15417 dissect_lpp_RTK_CorrectionDifferencesElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15418   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15419                                    ett_lpp_RTK_CorrectionDifferencesElement_r15, RTK_CorrectionDifferencesElement_r15_sequence);
15420 
15421   return offset;
15422 }
15423 
15424 
15425 static const per_sequence_t RTK_CorrectionDifferencesList_r15_sequence_of[1] = {
15426   { &hf_lpp_RTK_CorrectionDifferencesList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_RTK_CorrectionDifferencesElement_r15 },
15427 };
15428 
15429 static int
dissect_lpp_RTK_CorrectionDifferencesList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15430 dissect_lpp_RTK_CorrectionDifferencesList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15431   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15432                                                   ett_lpp_RTK_CorrectionDifferencesList_r15, RTK_CorrectionDifferencesList_r15_sequence_of,
15433                                                   1, 32, FALSE);
15434 
15435   return offset;
15436 }
15437 
15438 
15439 static const per_sequence_t GNSS_RTK_MAC_CorrectionDifferences_r15_sequence[] = {
15440   { &hf_lpp_networkID_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NetworkID_r15 },
15441   { &hf_lpp_subNetworkID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SubNetworkID_r15 },
15442   { &hf_lpp_master_ReferenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
15443   { &hf_lpp_l1_r15          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_FrequencyID_r15 },
15444   { &hf_lpp_l2_r15          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_FrequencyID_r15 },
15445   { &hf_lpp_rtkCorrectionDifferencesList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_RTK_CorrectionDifferencesList_r15 },
15446   { NULL, 0, 0, NULL }
15447 };
15448 
15449 static int
dissect_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15450 dissect_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15451   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15452                                    ett_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15, GNSS_RTK_MAC_CorrectionDifferences_r15_sequence);
15453 
15454   return offset;
15455 }
15456 
15457 
15458 static const per_sequence_t RTK_Residuals_Element_r15_sequence[] = {
15459   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15460   { &hf_lpp_s_oc_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
15461   { &hf_lpp_s_od_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
15462   { &hf_lpp_s_oh_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
15463   { &hf_lpp_s_lc_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
15464   { &hf_lpp_s_ld_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
15465   { NULL, 0, 0, NULL }
15466 };
15467 
15468 static int
dissect_lpp_RTK_Residuals_Element_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15469 dissect_lpp_RTK_Residuals_Element_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15470   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15471                                    ett_lpp_RTK_Residuals_Element_r15, RTK_Residuals_Element_r15_sequence);
15472 
15473   return offset;
15474 }
15475 
15476 
15477 static const per_sequence_t RTK_Residuals_List_r15_sequence_of[1] = {
15478   { &hf_lpp_RTK_Residuals_List_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_RTK_Residuals_Element_r15 },
15479 };
15480 
15481 static int
dissect_lpp_RTK_Residuals_List_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15482 dissect_lpp_RTK_Residuals_List_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15483   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15484                                                   ett_lpp_RTK_Residuals_List_r15, RTK_Residuals_List_r15_sequence_of,
15485                                                   1, 64, FALSE);
15486 
15487   return offset;
15488 }
15489 
15490 
15491 static const per_sequence_t GNSS_RTK_Residuals_r15_sequence[] = {
15492   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15493   { &hf_lpp_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
15494   { &hf_lpp_n_Refs_r15      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
15495   { &hf_lpp_l1_r15          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_FrequencyID_r15 },
15496   { &hf_lpp_l2_r15          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_FrequencyID_r15 },
15497   { &hf_lpp_rtk_residuals_list_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_RTK_Residuals_List_r15 },
15498   { NULL, 0, 0, NULL }
15499 };
15500 
15501 static int
dissect_lpp_GNSS_RTK_Residuals_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15502 dissect_lpp_GNSS_RTK_Residuals_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15503   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15504                                    ett_lpp_GNSS_RTK_Residuals_r15, GNSS_RTK_Residuals_r15_sequence);
15505 
15506   return offset;
15507 }
15508 
15509 
15510 static const per_sequence_t FKP_Gradients_Element_r15_sequence[] = {
15511   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15512   { &hf_lpp_iod_r15         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
15513   { &hf_lpp_north_geometric_gradient_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
15514   { &hf_lpp_east_geometric_gradient_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
15515   { &hf_lpp_north_ionospheric_gradient_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
15516   { &hf_lpp_east_ionospheric_gradient_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
15517   { NULL, 0, 0, NULL }
15518 };
15519 
15520 static int
dissect_lpp_FKP_Gradients_Element_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15521 dissect_lpp_FKP_Gradients_Element_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15522   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15523                                    ett_lpp_FKP_Gradients_Element_r15, FKP_Gradients_Element_r15_sequence);
15524 
15525   return offset;
15526 }
15527 
15528 
15529 static const per_sequence_t FKP_Gradients_List_r15_sequence_of[1] = {
15530   { &hf_lpp_FKP_Gradients_List_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_FKP_Gradients_Element_r15 },
15531 };
15532 
15533 static int
dissect_lpp_FKP_Gradients_List_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15534 dissect_lpp_FKP_Gradients_List_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15535   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15536                                                   ett_lpp_FKP_Gradients_List_r15, FKP_Gradients_List_r15_sequence_of,
15537                                                   1, 64, FALSE);
15538 
15539   return offset;
15540 }
15541 
15542 
15543 static const per_sequence_t GNSS_RTK_FKP_Gradients_r15_sequence[] = {
15544   { &hf_lpp_referenceStationID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceStationID_r15 },
15545   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15546   { &hf_lpp_l1_r15          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_FrequencyID_r15 },
15547   { &hf_lpp_l2_r15          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_FrequencyID_r15 },
15548   { &hf_lpp_fkp_gradients_list_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_FKP_Gradients_List_r15 },
15549   { NULL, 0, 0, NULL }
15550 };
15551 
15552 static int
dissect_lpp_GNSS_RTK_FKP_Gradients_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15553 dissect_lpp_GNSS_RTK_FKP_Gradients_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15554   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15555                                    ett_lpp_GNSS_RTK_FKP_Gradients_r15, GNSS_RTK_FKP_Gradients_r15_sequence);
15556 
15557   return offset;
15558 }
15559 
15560 
15561 static const value_string lpp_T_satelliteReferenceDatum_r15_vals[] = {
15562   {   0, "itrf" },
15563   {   1, "regional" },
15564   { 0, NULL }
15565 };
15566 
15567 
15568 static int
dissect_lpp_T_satelliteReferenceDatum_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15569 dissect_lpp_T_satelliteReferenceDatum_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15570   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
15571                                      2, NULL, TRUE, 0, NULL);
15572 
15573   return offset;
15574 }
15575 
15576 
15577 static const per_sequence_t SSR_OrbitCorrectionSatelliteElement_r15_sequence[] = {
15578   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15579   { &hf_lpp_iod_r15         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
15580   { &hf_lpp_delta_radial_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
15581   { &hf_lpp_delta_AlongTrack_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M524288_524287 },
15582   { &hf_lpp_delta_CrossTrack_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M524288_524287 },
15583   { &hf_lpp_dot_delta_radial_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M1048576_1048575 },
15584   { &hf_lpp_dot_delta_AlongTrack_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M262144_262143 },
15585   { &hf_lpp_dot_delta_CrossTrack_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M262144_262143 },
15586   { NULL, 0, 0, NULL }
15587 };
15588 
15589 static int
dissect_lpp_SSR_OrbitCorrectionSatelliteElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15590 dissect_lpp_SSR_OrbitCorrectionSatelliteElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15591   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15592                                    ett_lpp_SSR_OrbitCorrectionSatelliteElement_r15, SSR_OrbitCorrectionSatelliteElement_r15_sequence);
15593 
15594   return offset;
15595 }
15596 
15597 
15598 static const per_sequence_t SSR_OrbitCorrectionList_r15_sequence_of[1] = {
15599   { &hf_lpp_SSR_OrbitCorrectionList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_OrbitCorrectionSatelliteElement_r15 },
15600 };
15601 
15602 static int
dissect_lpp_SSR_OrbitCorrectionList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15603 dissect_lpp_SSR_OrbitCorrectionList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15604   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15605                                                   ett_lpp_SSR_OrbitCorrectionList_r15, SSR_OrbitCorrectionList_r15_sequence_of,
15606                                                   1, 64, FALSE);
15607 
15608   return offset;
15609 }
15610 
15611 
15612 static const per_sequence_t GNSS_SSR_OrbitCorrections_r15_sequence[] = {
15613   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15614   { &hf_lpp_ssrUpdateInterval_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15615   { &hf_lpp_satelliteReferenceDatum_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_satelliteReferenceDatum_r15 },
15616   { &hf_lpp_iod_ssr_r15     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15617   { &hf_lpp_ssr_OrbitCorrectionList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_OrbitCorrectionList_r15 },
15618   { NULL, 0, 0, NULL }
15619 };
15620 
15621 static int
dissect_lpp_GNSS_SSR_OrbitCorrections_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15622 dissect_lpp_GNSS_SSR_OrbitCorrections_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15623   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15624                                    ett_lpp_GNSS_SSR_OrbitCorrections_r15, GNSS_SSR_OrbitCorrections_r15_sequence);
15625 
15626   return offset;
15627 }
15628 
15629 
15630 static const per_sequence_t SSR_ClockCorrectionSatelliteElement_r15_sequence[] = {
15631   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15632   { &hf_lpp_delta_Clock_C0_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
15633   { &hf_lpp_delta_Clock_C1_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M1048576_1048575 },
15634   { &hf_lpp_delta_Clock_C2_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M67108864_67108863 },
15635   { NULL, 0, 0, NULL }
15636 };
15637 
15638 static int
dissect_lpp_SSR_ClockCorrectionSatelliteElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15639 dissect_lpp_SSR_ClockCorrectionSatelliteElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15640   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15641                                    ett_lpp_SSR_ClockCorrectionSatelliteElement_r15, SSR_ClockCorrectionSatelliteElement_r15_sequence);
15642 
15643   return offset;
15644 }
15645 
15646 
15647 static const per_sequence_t SSR_ClockCorrectionList_r15_sequence_of[1] = {
15648   { &hf_lpp_SSR_ClockCorrectionList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_ClockCorrectionSatelliteElement_r15 },
15649 };
15650 
15651 static int
dissect_lpp_SSR_ClockCorrectionList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15652 dissect_lpp_SSR_ClockCorrectionList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15653   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15654                                                   ett_lpp_SSR_ClockCorrectionList_r15, SSR_ClockCorrectionList_r15_sequence_of,
15655                                                   1, 64, FALSE);
15656 
15657   return offset;
15658 }
15659 
15660 
15661 static const per_sequence_t GNSS_SSR_ClockCorrections_r15_sequence[] = {
15662   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15663   { &hf_lpp_ssrUpdateInterval_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15664   { &hf_lpp_iod_ssr_r15     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15665   { &hf_lpp_ssr_ClockCorrectionList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_ClockCorrectionList_r15 },
15666   { NULL, 0, 0, NULL }
15667 };
15668 
15669 static int
dissect_lpp_GNSS_SSR_ClockCorrections_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15670 dissect_lpp_GNSS_SSR_ClockCorrections_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15671   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15672                                    ett_lpp_GNSS_SSR_ClockCorrections_r15, GNSS_SSR_ClockCorrections_r15_sequence);
15673 
15674   return offset;
15675 }
15676 
15677 
15678 static const per_sequence_t SSR_CodeBiasSignalElement_r15_sequence[] = {
15679   { &hf_lpp_signal_and_tracking_mode_ID_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
15680   { &hf_lpp_codeBias_r15    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
15681   { NULL, 0, 0, NULL }
15682 };
15683 
15684 static int
dissect_lpp_SSR_CodeBiasSignalElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15685 dissect_lpp_SSR_CodeBiasSignalElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15686   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15687                                    ett_lpp_SSR_CodeBiasSignalElement_r15, SSR_CodeBiasSignalElement_r15_sequence);
15688 
15689   return offset;
15690 }
15691 
15692 
15693 static const per_sequence_t SSR_CodeBiasSignalList_r15_sequence_of[1] = {
15694   { &hf_lpp_SSR_CodeBiasSignalList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_CodeBiasSignalElement_r15 },
15695 };
15696 
15697 static int
dissect_lpp_SSR_CodeBiasSignalList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15698 dissect_lpp_SSR_CodeBiasSignalList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15699   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15700                                                   ett_lpp_SSR_CodeBiasSignalList_r15, SSR_CodeBiasSignalList_r15_sequence_of,
15701                                                   1, 16, FALSE);
15702 
15703   return offset;
15704 }
15705 
15706 
15707 static const per_sequence_t SSR_CodeBiasSatElement_r15_sequence[] = {
15708   { &hf_lpp_svID_r15        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15709   { &hf_lpp_ssr_CodeBiasSignalList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_CodeBiasSignalList_r15 },
15710   { NULL, 0, 0, NULL }
15711 };
15712 
15713 static int
dissect_lpp_SSR_CodeBiasSatElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15714 dissect_lpp_SSR_CodeBiasSatElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15715   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15716                                    ett_lpp_SSR_CodeBiasSatElement_r15, SSR_CodeBiasSatElement_r15_sequence);
15717 
15718   return offset;
15719 }
15720 
15721 
15722 static const per_sequence_t SSR_CodeBiasSatList_r15_sequence_of[1] = {
15723   { &hf_lpp_SSR_CodeBiasSatList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_CodeBiasSatElement_r15 },
15724 };
15725 
15726 static int
dissect_lpp_SSR_CodeBiasSatList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15727 dissect_lpp_SSR_CodeBiasSatList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15728   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15729                                                   ett_lpp_SSR_CodeBiasSatList_r15, SSR_CodeBiasSatList_r15_sequence_of,
15730                                                   1, 64, FALSE);
15731 
15732   return offset;
15733 }
15734 
15735 
15736 static const per_sequence_t GNSS_SSR_CodeBias_r15_sequence[] = {
15737   { &hf_lpp_epochTime_r15   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15738   { &hf_lpp_ssrUpdateInterval_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15739   { &hf_lpp_iod_ssr_r15     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15740   { &hf_lpp_ssr_CodeBiasSatList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_CodeBiasSatList_r15 },
15741   { NULL, 0, 0, NULL }
15742 };
15743 
15744 static int
dissect_lpp_GNSS_SSR_CodeBias_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15745 dissect_lpp_GNSS_SSR_CodeBias_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15746   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15747                                    ett_lpp_GNSS_SSR_CodeBias_r15, GNSS_SSR_CodeBias_r15_sequence);
15748 
15749   return offset;
15750 }
15751 
15752 
15753 static const per_sequence_t GNSS_GenericAssistDataElement_eag_2_sequence[] = {
15754   { &hf_lpp_gnss_RTK_Observations_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_Observations_r15 },
15755   { &hf_lpp_glo_RTK_BiasInformation_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GLO_RTK_BiasInformation_r15 },
15756   { &hf_lpp_gnss_RTK_MAC_CorrectionDifferences_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15 },
15757   { &hf_lpp_gnss_RTK_Residuals_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_Residuals_r15 },
15758   { &hf_lpp_gnss_RTK_FKP_Gradients_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_RTK_FKP_Gradients_r15 },
15759   { &hf_lpp_gnss_SSR_OrbitCorrections_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_OrbitCorrections_r15 },
15760   { &hf_lpp_gnss_SSR_ClockCorrections_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_ClockCorrections_r15 },
15761   { &hf_lpp_gnss_SSR_CodeBias_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_CodeBias_r15 },
15762   { NULL, 0, 0, NULL }
15763 };
15764 
15765 static int
dissect_lpp_GNSS_GenericAssistDataElement_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15766 dissect_lpp_GNSS_GenericAssistDataElement_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15767   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataElement_eag_2_sequence);
15768 
15769   return offset;
15770 }
15771 
15772 
15773 
15774 static int
dissect_lpp_BIT_STRING_SIZE_6(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15775 dissect_lpp_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15776   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
15777                                      6, 6, FALSE, NULL, 0, NULL, NULL);
15778 
15779   return offset;
15780 }
15781 
15782 
15783 static const per_sequence_t SSR_URA_SatElement_r16_sequence[] = {
15784   { &hf_lpp_svID_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15785   { &hf_lpp_ssr_URA_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_6 },
15786   { NULL, 0, 0, NULL }
15787 };
15788 
15789 static int
dissect_lpp_SSR_URA_SatElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15790 dissect_lpp_SSR_URA_SatElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15791   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15792                                    ett_lpp_SSR_URA_SatElement_r16, SSR_URA_SatElement_r16_sequence);
15793 
15794   return offset;
15795 }
15796 
15797 
15798 static const per_sequence_t SSR_URA_SatList_r16_sequence_of[1] = {
15799   { &hf_lpp_SSR_URA_SatList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_URA_SatElement_r16 },
15800 };
15801 
15802 static int
dissect_lpp_SSR_URA_SatList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15803 dissect_lpp_SSR_URA_SatList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15804   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15805                                                   ett_lpp_SSR_URA_SatList_r16, SSR_URA_SatList_r16_sequence_of,
15806                                                   1, 64, FALSE);
15807 
15808   return offset;
15809 }
15810 
15811 
15812 static const per_sequence_t GNSS_SSR_URA_r16_sequence[] = {
15813   { &hf_lpp_epochTime_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15814   { &hf_lpp_ssrUpdateInterval_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15815   { &hf_lpp_iod_ssr_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15816   { &hf_lpp_ssr_URA_SatList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_URA_SatList_r16 },
15817   { NULL, 0, 0, NULL }
15818 };
15819 
15820 static int
dissect_lpp_GNSS_SSR_URA_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15821 dissect_lpp_GNSS_SSR_URA_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15822   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15823                                    ett_lpp_GNSS_SSR_URA_r16, GNSS_SSR_URA_r16_sequence);
15824 
15825   return offset;
15826 }
15827 
15828 
15829 static const per_sequence_t SSR_PhaseBiasSignalElement_r16_sequence[] = {
15830   { &hf_lpp_signal_and_tracking_mode_ID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
15831   { &hf_lpp_phaseBias_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
15832   { &hf_lpp_phaseDiscontinuityIndicator_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
15833   { &hf_lpp_phaseBiasIntegerIndicator_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3 },
15834   { NULL, 0, 0, NULL }
15835 };
15836 
15837 static int
dissect_lpp_SSR_PhaseBiasSignalElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15838 dissect_lpp_SSR_PhaseBiasSignalElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15839   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15840                                    ett_lpp_SSR_PhaseBiasSignalElement_r16, SSR_PhaseBiasSignalElement_r16_sequence);
15841 
15842   return offset;
15843 }
15844 
15845 
15846 static const per_sequence_t SSR_PhaseBiasSignalList_r16_sequence_of[1] = {
15847   { &hf_lpp_SSR_PhaseBiasSignalList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_PhaseBiasSignalElement_r16 },
15848 };
15849 
15850 static int
dissect_lpp_SSR_PhaseBiasSignalList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15851 dissect_lpp_SSR_PhaseBiasSignalList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15852   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15853                                                   ett_lpp_SSR_PhaseBiasSignalList_r16, SSR_PhaseBiasSignalList_r16_sequence_of,
15854                                                   1, 16, FALSE);
15855 
15856   return offset;
15857 }
15858 
15859 
15860 static const per_sequence_t SSR_PhaseBiasSatElement_r16_sequence[] = {
15861   { &hf_lpp_svID_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15862   { &hf_lpp_ssr_PhaseBiasSignalList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_PhaseBiasSignalList_r16 },
15863   { NULL, 0, 0, NULL }
15864 };
15865 
15866 static int
dissect_lpp_SSR_PhaseBiasSatElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15867 dissect_lpp_SSR_PhaseBiasSatElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15868   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15869                                    ett_lpp_SSR_PhaseBiasSatElement_r16, SSR_PhaseBiasSatElement_r16_sequence);
15870 
15871   return offset;
15872 }
15873 
15874 
15875 static const per_sequence_t SSR_PhaseBiasSatList_r16_sequence_of[1] = {
15876   { &hf_lpp_SSR_PhaseBiasSatList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_PhaseBiasSatElement_r16 },
15877 };
15878 
15879 static int
dissect_lpp_SSR_PhaseBiasSatList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15880 dissect_lpp_SSR_PhaseBiasSatList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15881   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15882                                                   ett_lpp_SSR_PhaseBiasSatList_r16, SSR_PhaseBiasSatList_r16_sequence_of,
15883                                                   1, 64, FALSE);
15884 
15885   return offset;
15886 }
15887 
15888 
15889 static const per_sequence_t GNSS_SSR_PhaseBias_r16_sequence[] = {
15890   { &hf_lpp_epochTime_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15891   { &hf_lpp_ssrUpdateInterval_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15892   { &hf_lpp_iod_ssr_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15893   { &hf_lpp_ssr_PhaseBiasSatList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SSR_PhaseBiasSatList_r16 },
15894   { NULL, 0, 0, NULL }
15895 };
15896 
15897 static int
dissect_lpp_GNSS_SSR_PhaseBias_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15898 dissect_lpp_GNSS_SSR_PhaseBias_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15899   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15900                                    ett_lpp_GNSS_SSR_PhaseBias_r16, GNSS_SSR_PhaseBias_r16_sequence);
15901 
15902   return offset;
15903 }
15904 
15905 
15906 static const per_sequence_t STEC_SatElement_r16_sequence[] = {
15907   { &hf_lpp_svID_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15908   { &hf_lpp_stecQualityIndicator_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_6 },
15909   { &hf_lpp_stec_C00_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
15910   { &hf_lpp_stec_C01_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M2048_2047 },
15911   { &hf_lpp_stec_C10_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M2048_2047 },
15912   { &hf_lpp_stec_C11_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M512_511 },
15913   { NULL, 0, 0, NULL }
15914 };
15915 
15916 static int
dissect_lpp_STEC_SatElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15917 dissect_lpp_STEC_SatElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15918   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15919                                    ett_lpp_STEC_SatElement_r16, STEC_SatElement_r16_sequence);
15920 
15921   return offset;
15922 }
15923 
15924 
15925 static const per_sequence_t STEC_SatList_r16_sequence_of[1] = {
15926   { &hf_lpp_STEC_SatList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_STEC_SatElement_r16 },
15927 };
15928 
15929 static int
dissect_lpp_STEC_SatList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15930 dissect_lpp_STEC_SatList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15931   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
15932                                                   ett_lpp_STEC_SatList_r16, STEC_SatList_r16_sequence_of,
15933                                                   1, 64, FALSE);
15934 
15935   return offset;
15936 }
15937 
15938 
15939 static const per_sequence_t GNSS_SSR_STEC_Correction_r16_sequence[] = {
15940   { &hf_lpp_epochTime_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
15941   { &hf_lpp_ssrUpdateInterval_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15942   { &hf_lpp_iod_ssr_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
15943   { &hf_lpp_correctionPointSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
15944   { &hf_lpp_stec_SatList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_STEC_SatList_r16 },
15945   { NULL, 0, 0, NULL }
15946 };
15947 
15948 static int
dissect_lpp_GNSS_SSR_STEC_Correction_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15949 dissect_lpp_GNSS_SSR_STEC_Correction_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15950   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15951                                    ett_lpp_GNSS_SSR_STEC_Correction_r16, GNSS_SSR_STEC_Correction_r16_sequence);
15952 
15953   return offset;
15954 }
15955 
15956 
15957 static const per_sequence_t TropospericDelayCorrection_r16_sequence[] = {
15958   { &hf_lpp_tropoHydroStaticVerticalDelay_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M256_255 },
15959   { &hf_lpp_tropoWetVerticalDelay_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
15960   { NULL, 0, 0, NULL }
15961 };
15962 
15963 static int
dissect_lpp_TropospericDelayCorrection_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15964 dissect_lpp_TropospericDelayCorrection_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15965   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
15966                                    ett_lpp_TropospericDelayCorrection_r16, TropospericDelayCorrection_r16_sequence);
15967 
15968   return offset;
15969 }
15970 
15971 
15972 static const value_string lpp_T_stecResidualCorrection_r16_vals[] = {
15973   {   0, "b7-r16" },
15974   {   1, "b16-r16" },
15975   { 0, NULL }
15976 };
15977 
15978 static const per_choice_t T_stecResidualCorrection_r16_choice[] = {
15979   {   0, &hf_lpp_b7_r16          , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_M64_63 },
15980   {   1, &hf_lpp_b16_r16         , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_M32768_32767 },
15981   { 0, NULL, 0, NULL }
15982 };
15983 
15984 static int
dissect_lpp_T_stecResidualCorrection_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)15985 dissect_lpp_T_stecResidualCorrection_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15986   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
15987                                  ett_lpp_T_stecResidualCorrection_r16, T_stecResidualCorrection_r16_choice,
15988                                  NULL);
15989 
15990   return offset;
15991 }
15992 
15993 
15994 static const per_sequence_t STEC_ResidualSatElement_r16_sequence[] = {
15995   { &hf_lpp_svID_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
15996   { &hf_lpp_stecResidualCorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_stecResidualCorrection_r16 },
15997   { NULL, 0, 0, NULL }
15998 };
15999 
16000 static int
dissect_lpp_STEC_ResidualSatElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16001 dissect_lpp_STEC_ResidualSatElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16002   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16003                                    ett_lpp_STEC_ResidualSatElement_r16, STEC_ResidualSatElement_r16_sequence);
16004 
16005   return offset;
16006 }
16007 
16008 
16009 static const per_sequence_t STEC_ResidualSatList_r16_sequence_of[1] = {
16010   { &hf_lpp_STEC_ResidualSatList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_STEC_ResidualSatElement_r16 },
16011 };
16012 
16013 static int
dissect_lpp_STEC_ResidualSatList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16014 dissect_lpp_STEC_ResidualSatList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16015   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16016                                                   ett_lpp_STEC_ResidualSatList_r16, STEC_ResidualSatList_r16_sequence_of,
16017                                                   1, 64, FALSE);
16018 
16019   return offset;
16020 }
16021 
16022 
16023 static const per_sequence_t GridElement_r16_sequence[] = {
16024   { &hf_lpp_tropospericDelayCorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TropospericDelayCorrection_r16 },
16025   { &hf_lpp_stec_ResidualSatList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_STEC_ResidualSatList_r16 },
16026   { NULL, 0, 0, NULL }
16027 };
16028 
16029 static int
dissect_lpp_GridElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16030 dissect_lpp_GridElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16031   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16032                                    ett_lpp_GridElement_r16, GridElement_r16_sequence);
16033 
16034   return offset;
16035 }
16036 
16037 
16038 static const per_sequence_t GridList_r16_sequence_of[1] = {
16039   { &hf_lpp_GridList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GridElement_r16 },
16040 };
16041 
16042 static int
dissect_lpp_GridList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16043 dissect_lpp_GridList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16044   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16045                                                   ett_lpp_GridList_r16, GridList_r16_sequence_of,
16046                                                   1, 64, FALSE);
16047 
16048   return offset;
16049 }
16050 
16051 
16052 static const per_sequence_t GNSS_SSR_GriddedCorrection_r16_sequence[] = {
16053   { &hf_lpp_epochTime_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
16054   { &hf_lpp_ssrUpdateInterval_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16055   { &hf_lpp_iod_ssr_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16056   { &hf_lpp_troposphericDelayQualityIndicator_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_6 },
16057   { &hf_lpp_correctionPointSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
16058   { &hf_lpp_gridList_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GridList_r16 },
16059   { NULL, 0, 0, NULL }
16060 };
16061 
16062 static int
dissect_lpp_GNSS_SSR_GriddedCorrection_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16063 dissect_lpp_GNSS_SSR_GriddedCorrection_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16064   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16065                                    ett_lpp_GNSS_SSR_GriddedCorrection_r16, GNSS_SSR_GriddedCorrection_r16_sequence);
16066 
16067   return offset;
16068 }
16069 
16070 
16071 
16072 static int
dissect_lpp_INTEGER_0_50400(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16073 dissect_lpp_INTEGER_0_50400(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16074   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
16075                                                             0U, 50400U, NULL, FALSE);
16076 
16077   return offset;
16078 }
16079 
16080 
16081 static const per_sequence_t NavIC_EDC_r16_sequence[] = {
16082   { &hf_lpp_navic_AlphaEDC_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
16083   { &hf_lpp_navic_BetaEDC_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
16084   { &hf_lpp_navic_GammaEDC_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
16085   { &hf_lpp_navic_AoIcorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
16086   { &hf_lpp_navic_AoRAcorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
16087   { &hf_lpp_navic_SemiMajorcorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
16088   { NULL, 0, 0, NULL }
16089 };
16090 
16091 static int
dissect_lpp_NavIC_EDC_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16092 dissect_lpp_NavIC_EDC_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16093   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16094                                    ett_lpp_NavIC_EDC_r16, NavIC_EDC_r16_sequence);
16095 
16096   return offset;
16097 }
16098 
16099 
16100 static const per_sequence_t NavIC_CDC_r16_sequence[] = {
16101   { &hf_lpp_navic_ClockBiasCorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
16102   { &hf_lpp_navic_ClockDriftCorrection_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
16103   { NULL, 0, 0, NULL }
16104 };
16105 
16106 static int
dissect_lpp_NavIC_CDC_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16107 dissect_lpp_NavIC_CDC_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16108   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16109                                    ett_lpp_NavIC_CDC_r16, NavIC_CDC_r16_sequence);
16110 
16111   return offset;
16112 }
16113 
16114 
16115 static const per_sequence_t NavIC_CorrectionElementAutoNav_r16_sequence[] = {
16116   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
16117   { &hf_lpp_navic_Tod_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
16118   { &hf_lpp_navic_iodec_r16 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
16119   { &hf_lpp_navic_UDRAI_r16 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
16120   { &hf_lpp_navic_UDRArateI_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
16121   { &hf_lpp_navic_EDC_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NavIC_EDC_r16 },
16122   { &hf_lpp_navic_CDC_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NavIC_CDC_r16 },
16123   { NULL, 0, 0, NULL }
16124 };
16125 
16126 static int
dissect_lpp_NavIC_CorrectionElementAutoNav_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16127 dissect_lpp_NavIC_CorrectionElementAutoNav_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16128   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16129                                    ett_lpp_NavIC_CorrectionElementAutoNav_r16, NavIC_CorrectionElementAutoNav_r16_sequence);
16130 
16131   return offset;
16132 }
16133 
16134 
16135 static const per_sequence_t NavIC_CorrectionListAutoNav_r16_sequence_of[1] = {
16136   { &hf_lpp_NavIC_CorrectionListAutoNav_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NavIC_CorrectionElementAutoNav_r16 },
16137 };
16138 
16139 static int
dissect_lpp_NavIC_CorrectionListAutoNav_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16140 dissect_lpp_NavIC_CorrectionListAutoNav_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16141   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16142                                                   ett_lpp_NavIC_CorrectionListAutoNav_r16, NavIC_CorrectionListAutoNav_r16_sequence_of,
16143                                                   1, 64, FALSE);
16144 
16145   return offset;
16146 }
16147 
16148 
16149 static const per_sequence_t NavIC_DifferentialCorrections_r16_sequence[] = {
16150   { &hf_lpp_navic_RefTOWC_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_50400 },
16151   { &hf_lpp_navic_CorrectionListAutoNav_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NavIC_CorrectionListAutoNav_r16 },
16152   { NULL, 0, 0, NULL }
16153 };
16154 
16155 static int
dissect_lpp_NavIC_DifferentialCorrections_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16156 dissect_lpp_NavIC_DifferentialCorrections_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16157   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16158                                    ett_lpp_NavIC_DifferentialCorrections_r16, NavIC_DifferentialCorrections_r16_sequence);
16159 
16160   return offset;
16161 }
16162 
16163 
16164 static const per_sequence_t RegionIgpElement_r16_sequence[] = {
16165   { &hf_lpp_regionID_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16166   { &hf_lpp_givei1_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16167   { &hf_lpp_givd1_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16168   { &hf_lpp_givei2_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16169   { &hf_lpp_givd2_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16170   { &hf_lpp_givei3_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16171   { &hf_lpp_givd3_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16172   { &hf_lpp_givei4_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16173   { &hf_lpp_givd4_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16174   { &hf_lpp_givei5_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16175   { &hf_lpp_givd5_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16176   { &hf_lpp_givei6_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16177   { &hf_lpp_givd6_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16178   { &hf_lpp_givei7_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16179   { &hf_lpp_givd7_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16180   { &hf_lpp_givei8_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16181   { &hf_lpp_givd8_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16182   { &hf_lpp_givei9_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16183   { &hf_lpp_givd9_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16184   { &hf_lpp_givei10_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16185   { &hf_lpp_givd10_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16186   { &hf_lpp_givei11_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16187   { &hf_lpp_givd11_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16188   { &hf_lpp_givei12_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16189   { &hf_lpp_givd12_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16190   { &hf_lpp_givei13_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16191   { &hf_lpp_givd13_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16192   { &hf_lpp_givei14_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16193   { &hf_lpp_givd14_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16194   { &hf_lpp_givei15_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
16195   { &hf_lpp_givd15_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
16196   { NULL, 0, 0, NULL }
16197 };
16198 
16199 static int
dissect_lpp_RegionIgpElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16200 dissect_lpp_RegionIgpElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16201   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16202                                    ett_lpp_RegionIgpElement_r16, RegionIgpElement_r16_sequence);
16203 
16204   return offset;
16205 }
16206 
16207 
16208 static const per_sequence_t RegionIgpList_r16_sequence_of[1] = {
16209   { &hf_lpp_RegionIgpList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_RegionIgpElement_r16 },
16210 };
16211 
16212 static int
dissect_lpp_RegionIgpList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16213 dissect_lpp_RegionIgpList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16214   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16215                                                   ett_lpp_RegionIgpList_r16, RegionIgpList_r16_sequence_of,
16216                                                   1, 16, FALSE);
16217 
16218   return offset;
16219 }
16220 
16221 
16222 static const per_sequence_t NavIC_GridModelParameter_r16_sequence[] = {
16223   { &hf_lpp_navic_RefTOWC_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_50400 },
16224   { &hf_lpp_regionMasked_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
16225   { &hf_lpp_regionIgpList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_RegionIgpList_r16 },
16226   { NULL, 0, 0, NULL }
16227 };
16228 
16229 static int
dissect_lpp_NavIC_GridModelParameter_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16230 dissect_lpp_NavIC_GridModelParameter_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16231   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16232                                    ett_lpp_NavIC_GridModelParameter_r16, NavIC_GridModelParameter_r16_sequence);
16233 
16234   return offset;
16235 }
16236 
16237 
16238 static const per_sequence_t GNSS_GenericAssistDataElement_eag_3_sequence[] = {
16239   { &hf_lpp_gnss_SSR_URA_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_URA_r16 },
16240   { &hf_lpp_gnss_SSR_PhaseBias_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_PhaseBias_r16 },
16241   { &hf_lpp_gnss_SSR_STEC_Correction_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_STEC_Correction_r16 },
16242   { &hf_lpp_gnss_SSR_GriddedCorrection_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_SSR_GriddedCorrection_r16 },
16243   { &hf_lpp_navic_DifferentialCorrections_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NavIC_DifferentialCorrections_r16 },
16244   { &hf_lpp_navic_GridModel_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NavIC_GridModelParameter_r16 },
16245   { NULL, 0, 0, NULL }
16246 };
16247 
16248 static int
dissect_lpp_GNSS_GenericAssistDataElement_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16249 dissect_lpp_GNSS_GenericAssistDataElement_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16250   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_GenericAssistDataElement_eag_3_sequence);
16251 
16252   return offset;
16253 }
16254 
16255 
16256 static const per_sequence_t GNSS_GenericAssistDataElement_sequence[] = {
16257   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
16258   { &hf_lpp_sbas_ID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_ID },
16259   { &hf_lpp_gnss_TimeModels , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_TimeModelList },
16260   { &hf_lpp_gnss_DifferentialCorrections, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DifferentialCorrections },
16261   { &hf_lpp_gnss_NavigationModel, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavigationModel },
16262   { &hf_lpp_gnss_RealTimeIntegrity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_RealTimeIntegrity },
16263   { &hf_lpp_gnss_DataBitAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitAssistance },
16264   { &hf_lpp_gnss_AcquisitionAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AcquisitionAssistance },
16265   { &hf_lpp_gnss_Almanac    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_Almanac },
16266   { &hf_lpp_gnss_UTC_Model  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_UTC_Model },
16267   { &hf_lpp_gnss_AuxiliaryInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AuxiliaryInformation },
16268   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataElement_eag_1 },
16269   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataElement_eag_2 },
16270   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataElement_eag_3 },
16271   { NULL, 0, 0, NULL }
16272 };
16273 
16274 static int
dissect_lpp_GNSS_GenericAssistDataElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16275 dissect_lpp_GNSS_GenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16276   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16277                                    ett_lpp_GNSS_GenericAssistDataElement, GNSS_GenericAssistDataElement_sequence);
16278 
16279   return offset;
16280 }
16281 
16282 
16283 static const per_sequence_t GNSS_GenericAssistData_sequence_of[1] = {
16284   { &hf_lpp_GNSS_GenericAssistData_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataElement },
16285 };
16286 
16287 static int
dissect_lpp_GNSS_GenericAssistData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16288 dissect_lpp_GNSS_GenericAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16289   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16290                                                   ett_lpp_GNSS_GenericAssistData, GNSS_GenericAssistData_sequence_of,
16291                                                   1, 16, FALSE);
16292 
16293   return offset;
16294 }
16295 
16296 
16297 static const value_string lpp_T_cause_02_vals[] = {
16298   {   0, "undefined" },
16299   {   1, "undeliveredAssistanceDataIsNotSupportedByServer" },
16300   {   2, "undeliveredAssistanceDataIsSupportedButCurrentlyNotAvailableByServer" },
16301   {   3, "undeliveredAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailableByServer" },
16302   {   4, "unconfirmedPeriodicAssistanceDataIsNotSupported-v1510" },
16303   {   5, "unconfirmedPeriodicAssistanceDataIsSupportedButCurrentlyNotAvailable-v1510" },
16304   {   6, "unconfirmedPeriodicAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailable-v1510" },
16305   {   7, "undeliveredPeriodicAssistanceDataIsCurrentlyNotAvailable-v1510" },
16306   { 0, NULL }
16307 };
16308 
16309 
16310 static int
dissect_lpp_T_cause_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16311 dissect_lpp_T_cause_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16312   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16313                                      4, NULL, TRUE, 4, NULL);
16314 
16315   return offset;
16316 }
16317 
16318 
16319 static const per_sequence_t GNSS_LocationServerErrorCauses_sequence[] = {
16320   { &hf_lpp_cause_02        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_02 },
16321   { NULL, 0, 0, NULL }
16322 };
16323 
16324 static int
dissect_lpp_GNSS_LocationServerErrorCauses(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16325 dissect_lpp_GNSS_LocationServerErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16326   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16327                                    ett_lpp_GNSS_LocationServerErrorCauses, GNSS_LocationServerErrorCauses_sequence);
16328 
16329   return offset;
16330 }
16331 
16332 
16333 static const value_string lpp_T_cause_03_vals[] = {
16334   {   0, "undefined" },
16335   {   1, "thereWereNotEnoughSatellitesReceived" },
16336   {   2, "assistanceDataMissing" },
16337   {   3, "notAllRequestedMeasurementsPossible" },
16338   { 0, NULL }
16339 };
16340 
16341 
16342 static int
dissect_lpp_T_cause_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16343 dissect_lpp_T_cause_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16344   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16345                                      4, NULL, TRUE, 0, NULL);
16346 
16347   return offset;
16348 }
16349 
16350 
16351 static const per_sequence_t GNSS_TargetDeviceErrorCauses_sequence[] = {
16352   { &hf_lpp_cause_03        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_03 },
16353   { &hf_lpp_fineTimeAssistanceMeasurementsNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
16354   { &hf_lpp_adrMeasurementsNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
16355   { &hf_lpp_multiFrequencyMeasurementsNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
16356   { NULL, 0, 0, NULL }
16357 };
16358 
16359 static int
dissect_lpp_GNSS_TargetDeviceErrorCauses(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16360 dissect_lpp_GNSS_TargetDeviceErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16361   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16362                                    ett_lpp_GNSS_TargetDeviceErrorCauses, GNSS_TargetDeviceErrorCauses_sequence);
16363 
16364   return offset;
16365 }
16366 
16367 
16368 static const value_string lpp_A_GNSS_Error_vals[] = {
16369   {   0, "locationServerErrorCauses" },
16370   {   1, "targetDeviceErrorCauses" },
16371   { 0, NULL }
16372 };
16373 
16374 static const per_choice_t A_GNSS_Error_choice[] = {
16375   {   0, &hf_lpp_locationServerErrorCauses_01, ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_LocationServerErrorCauses },
16376   {   1, &hf_lpp_targetDeviceErrorCauses_01, ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_TargetDeviceErrorCauses },
16377   { 0, NULL, 0, NULL }
16378 };
16379 
16380 static int
dissect_lpp_A_GNSS_Error(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16381 dissect_lpp_A_GNSS_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16382   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
16383                                  ett_lpp_A_GNSS_Error, A_GNSS_Error_choice,
16384                                  NULL);
16385 
16386   return offset;
16387 }
16388 
16389 
16390 static const per_sequence_t GNSS_PeriodicAssistData_r15_eag_1_sequence[] = {
16391   { &hf_lpp_gnss_SSR_PeriodicURA_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16392   { &hf_lpp_gnss_SSR_PeriodicPhaseBias_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16393   { &hf_lpp_gnss_SSR_PeriodicSTEC_Correction_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16394   { &hf_lpp_gnss_SSR_PeriodicGriddedCorrection_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16395   { NULL, 0, 0, NULL }
16396 };
16397 
16398 static int
dissect_lpp_GNSS_PeriodicAssistData_r15_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16399 dissect_lpp_GNSS_PeriodicAssistData_r15_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16400   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_PeriodicAssistData_r15_eag_1_sequence);
16401 
16402   return offset;
16403 }
16404 
16405 
16406 static const per_sequence_t GNSS_PeriodicAssistData_r15_sequence[] = {
16407   { &hf_lpp_gnss_RTK_PeriodicObservations_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16408   { &hf_lpp_glo_RTK_PeriodicBiasInformation_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16409   { &hf_lpp_gnss_RTK_MAC_PeriodicCorrectionDifferences_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16410   { &hf_lpp_gnss_RTK_PeriodicResiduals_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16411   { &hf_lpp_gnss_RTK_FKP_PeriodicGradients_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16412   { &hf_lpp_gnss_SSR_PeriodicOrbitCorrections_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16413   { &hf_lpp_gnss_SSR_PeriodicClockCorrections_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16414   { &hf_lpp_gnss_SSR_PeriodicCodeBias_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicControlParam_r15 },
16415   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_PeriodicAssistData_r15_eag_1 },
16416   { NULL, 0, 0, NULL }
16417 };
16418 
16419 static int
dissect_lpp_GNSS_PeriodicAssistData_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16420 dissect_lpp_GNSS_PeriodicAssistData_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16421   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16422                                    ett_lpp_GNSS_PeriodicAssistData_r15, GNSS_PeriodicAssistData_r15_sequence);
16423 
16424   return offset;
16425 }
16426 
16427 
16428 static const per_sequence_t A_GNSS_ProvideAssistanceData_eag_1_sequence[] = {
16429   { &hf_lpp_gnss_PeriodicAssistData_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_GNSS_PeriodicAssistData_r15 },
16430   { NULL, 0, 0, NULL }
16431 };
16432 
16433 static int
dissect_lpp_A_GNSS_ProvideAssistanceData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16434 dissect_lpp_A_GNSS_ProvideAssistanceData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16435   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, A_GNSS_ProvideAssistanceData_eag_1_sequence);
16436 
16437   return offset;
16438 }
16439 
16440 
16441 static const per_sequence_t A_GNSS_ProvideAssistanceData_sequence[] = {
16442   { &hf_lpp_gnss_CommonAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_CommonAssistData },
16443   { &hf_lpp_gnss_GenericAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_GenericAssistData },
16444   { &hf_lpp_gnss_Error      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_Error },
16445   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_A_GNSS_ProvideAssistanceData_eag_1 },
16446   { NULL, 0, 0, NULL }
16447 };
16448 
16449 static int
dissect_lpp_A_GNSS_ProvideAssistanceData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16450 dissect_lpp_A_GNSS_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16451   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16452                                    ett_lpp_A_GNSS_ProvideAssistanceData, A_GNSS_ProvideAssistanceData_sequence);
16453 
16454   return offset;
16455 }
16456 
16457 
16458 static const value_string lpp_T_antennaPortConfig_vals[] = {
16459   {   0, "ports1-or-2" },
16460   {   1, "ports4" },
16461   { 0, NULL }
16462 };
16463 
16464 
16465 static int
dissect_lpp_T_antennaPortConfig(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16466 dissect_lpp_T_antennaPortConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16467   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16468                                      2, NULL, TRUE, 0, NULL);
16469 
16470   return offset;
16471 }
16472 
16473 
16474 static const value_string lpp_T_cpLength_vals[] = {
16475   {   0, "normal" },
16476   {   1, "extended" },
16477   { 0, NULL }
16478 };
16479 
16480 
16481 static int
dissect_lpp_T_cpLength(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16482 dissect_lpp_T_cpLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16483   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16484                                      2, NULL, TRUE, 0, NULL);
16485 
16486   return offset;
16487 }
16488 
16489 
16490 static const value_string lpp_T_prs_Bandwidth_vals[] = {
16491   {   0, "n6" },
16492   {   1, "n15" },
16493   {   2, "n25" },
16494   {   3, "n50" },
16495   {   4, "n75" },
16496   {   5, "n100" },
16497   { 0, NULL }
16498 };
16499 
16500 
16501 static int
dissect_lpp_T_prs_Bandwidth(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16502 dissect_lpp_T_prs_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16503   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16504                                      6, NULL, TRUE, 0, NULL);
16505 
16506   return offset;
16507 }
16508 
16509 
16510 
16511 static int
dissect_lpp_INTEGER_0_4095(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16512 dissect_lpp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16513   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
16514                                                             0U, 4095U, NULL, FALSE);
16515 
16516   return offset;
16517 }
16518 
16519 
16520 static const value_string lpp_T_numDL_Frames_vals[] = {
16521   {   0, "sf-1" },
16522   {   1, "sf-2" },
16523   {   2, "sf-4" },
16524   {   3, "sf-6" },
16525   {   4, "sf-add-v1420" },
16526   { 0, NULL }
16527 };
16528 
16529 
16530 static int
dissect_lpp_T_numDL_Frames(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16531 dissect_lpp_T_numDL_Frames(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16532   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16533                                      4, NULL, TRUE, 1, NULL);
16534 
16535   return offset;
16536 }
16537 
16538 
16539 
16540 static int
dissect_lpp_BIT_STRING_SIZE_128(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16541 dissect_lpp_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16542   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16543                                      128, 128, FALSE, NULL, 0, NULL, NULL);
16544 
16545   return offset;
16546 }
16547 
16548 
16549 
16550 static int
dissect_lpp_BIT_STRING_SIZE_256(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16551 dissect_lpp_BIT_STRING_SIZE_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16552   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16553                                      256, 256, FALSE, NULL, 0, NULL, NULL);
16554 
16555   return offset;
16556 }
16557 
16558 
16559 
16560 static int
dissect_lpp_BIT_STRING_SIZE_512(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16561 dissect_lpp_BIT_STRING_SIZE_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16562   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16563                                      512, 512, FALSE, NULL, 0, NULL, NULL);
16564 
16565   return offset;
16566 }
16567 
16568 
16569 
16570 static int
dissect_lpp_BIT_STRING_SIZE_1024(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16571 dissect_lpp_BIT_STRING_SIZE_1024(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16572   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16573                                      1024, 1024, FALSE, NULL, 0, NULL, NULL);
16574 
16575   return offset;
16576 }
16577 
16578 
16579 static const value_string lpp_T_prs_MutingInfo_r9_vals[] = {
16580   {   0, "po2-r9" },
16581   {   1, "po4-r9" },
16582   {   2, "po8-r9" },
16583   {   3, "po16-r9" },
16584   {   4, "po32-v1420" },
16585   {   5, "po64-v1420" },
16586   {   6, "po128-v1420" },
16587   {   7, "po256-v1420" },
16588   {   8, "po512-v1420" },
16589   {   9, "po1024-v1420" },
16590   { 0, NULL }
16591 };
16592 
16593 static const per_choice_t T_prs_MutingInfo_r9_choice[] = {
16594   {   0, &hf_lpp_po2_r9          , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_2 },
16595   {   1, &hf_lpp_po4_r9          , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_4 },
16596   {   2, &hf_lpp_po8_r9          , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
16597   {   3, &hf_lpp_po16_r9         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_16 },
16598   {   4, &hf_lpp_po32_v1420      , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BIT_STRING_SIZE_32 },
16599   {   5, &hf_lpp_po64_v1420      , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BIT_STRING_SIZE_64 },
16600   {   6, &hf_lpp_po128_v1420     , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BIT_STRING_SIZE_128 },
16601   {   7, &hf_lpp_po256_v1420     , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BIT_STRING_SIZE_256 },
16602   {   8, &hf_lpp_po512_v1420     , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BIT_STRING_SIZE_512 },
16603   {   9, &hf_lpp_po1024_v1420    , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_BIT_STRING_SIZE_1024 },
16604   { 0, NULL, 0, NULL }
16605 };
16606 
16607 static int
dissect_lpp_T_prs_MutingInfo_r9(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16608 dissect_lpp_T_prs_MutingInfo_r9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16609   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
16610                                  ett_lpp_T_prs_MutingInfo_r9, T_prs_MutingInfo_r9_choice,
16611                                  NULL);
16612 
16613   return offset;
16614 }
16615 
16616 
16617 
16618 static int
dissect_lpp_INTEGER_1_160(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16619 dissect_lpp_INTEGER_1_160(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16620   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
16621                                                             1U, 160U, NULL, FALSE);
16622 
16623   return offset;
16624 }
16625 
16626 
16627 static const value_string lpp_T_prsOccGroupLen_r14_vals[] = {
16628   {   0, "g2" },
16629   {   1, "g4" },
16630   {   2, "g8" },
16631   {   3, "g16" },
16632   {   4, "g32" },
16633   {   5, "g64" },
16634   {   6, "g128" },
16635   { 0, NULL }
16636 };
16637 
16638 
16639 static int
dissect_lpp_T_prsOccGroupLen_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16640 dissect_lpp_T_prsOccGroupLen_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16641   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16642                                      7, NULL, TRUE, 0, NULL);
16643 
16644   return offset;
16645 }
16646 
16647 
16648 
16649 static int
dissect_lpp_INTEGER_0_maxAvailNarrowBands_Minus1_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16650 dissect_lpp_INTEGER_0_maxAvailNarrowBands_Minus1_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16651   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
16652                                                             0U, maxAvailNarrowBands_Minus1_r14, NULL, FALSE);
16653 
16654   return offset;
16655 }
16656 
16657 
16658 static const per_sequence_t T_nb4_r14_sequence_of[1] = {
16659   { &hf_lpp_nb4_r14_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_maxAvailNarrowBands_Minus1_r14 },
16660 };
16661 
16662 static int
dissect_lpp_T_nb4_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16663 dissect_lpp_T_nb4_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16664   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16665                                                   ett_lpp_T_nb4_r14, T_nb4_r14_sequence_of,
16666                                                   3, 3, FALSE);
16667 
16668   return offset;
16669 }
16670 
16671 
16672 static const value_string lpp_T_prsHoppingInfo_r14_vals[] = {
16673   {   0, "nb2-r14" },
16674   {   1, "nb4-r14" },
16675   { 0, NULL }
16676 };
16677 
16678 static const per_choice_t T_prsHoppingInfo_r14_choice[] = {
16679   {   0, &hf_lpp_nb2_r14         , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_0_maxAvailNarrowBands_Minus1_r14 },
16680   {   1, &hf_lpp_nb4_r14         , ASN1_NO_EXTENSIONS     , dissect_lpp_T_nb4_r14 },
16681   { 0, NULL, 0, NULL }
16682 };
16683 
16684 static int
dissect_lpp_T_prsHoppingInfo_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16685 dissect_lpp_T_prsHoppingInfo_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16686   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
16687                                  ett_lpp_T_prsHoppingInfo_r14, T_prsHoppingInfo_r14_choice,
16688                                  NULL);
16689 
16690   return offset;
16691 }
16692 
16693 
16694 static const per_sequence_t PRS_Info_eag_1_sequence[] = {
16695   { &hf_lpp_prsID_r14       , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
16696   { &hf_lpp_add_numDL_Frames_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_160 },
16697   { &hf_lpp_prsOccGroupLen_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_prsOccGroupLen_r14 },
16698   { &hf_lpp_prsHoppingInfo_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_prsHoppingInfo_r14 },
16699   { NULL, 0, 0, NULL }
16700 };
16701 
16702 static int
dissect_lpp_PRS_Info_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16703 dissect_lpp_PRS_Info_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16704   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, PRS_Info_eag_1_sequence);
16705 
16706   return offset;
16707 }
16708 
16709 
16710 static const per_sequence_t PRS_Info_sequence[] = {
16711   { &hf_lpp_prs_Bandwidth   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_prs_Bandwidth },
16712   { &hf_lpp_prs_ConfigurationIndex, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
16713   { &hf_lpp_numDL_Frames    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_numDL_Frames },
16714   { &hf_lpp_prs_MutingInfo_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_prs_MutingInfo_r9 },
16715   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_PRS_Info_eag_1 },
16716   { NULL, 0, 0, NULL }
16717 };
16718 
16719 static int
dissect_lpp_PRS_Info(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16720 dissect_lpp_PRS_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16721   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16722                                    ett_lpp_PRS_Info, PRS_Info_sequence);
16723 
16724   return offset;
16725 }
16726 
16727 
16728 static const per_sequence_t OTDOA_ReferenceCellInfo_eag_1_sequence[] = {
16729   { &hf_lpp_earfcnRef_v9a0  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_v9a0 },
16730   { NULL, 0, 0, NULL }
16731 };
16732 
16733 static int
dissect_lpp_OTDOA_ReferenceCellInfo_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16734 dissect_lpp_OTDOA_ReferenceCellInfo_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16735   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfo_eag_1_sequence);
16736 
16737   return offset;
16738 }
16739 
16740 
16741 static const value_string lpp_T_cpLengthCRS_r14_vals[] = {
16742   {   0, "normal" },
16743   {   1, "extended" },
16744   { 0, NULL }
16745 };
16746 
16747 
16748 static int
dissect_lpp_T_cpLengthCRS_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16749 dissect_lpp_T_cpLengthCRS_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16750   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16751                                      2, NULL, TRUE, 0, NULL);
16752 
16753   return offset;
16754 }
16755 
16756 
16757 static const value_string lpp_T_dlBandwidth_r14_vals[] = {
16758   {   0, "n6" },
16759   {   1, "n15" },
16760   {   2, "n25" },
16761   {   3, "n50" },
16762   {   4, "n75" },
16763   {   5, "n100" },
16764   { 0, NULL }
16765 };
16766 
16767 
16768 static int
dissect_lpp_T_dlBandwidth_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16769 dissect_lpp_T_dlBandwidth_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16770   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16771                                      6, NULL, FALSE, 0, NULL);
16772 
16773   return offset;
16774 }
16775 
16776 
16777 static const per_sequence_t SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info_sequence_of[1] = {
16778   { &hf_lpp_addPRSconfigRef_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_PRS_Info },
16779 };
16780 
16781 static int
dissect_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16782 dissect_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16783   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
16784                                                   ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info, SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info_sequence_of,
16785                                                   1, maxAddPRSconfig_r14, FALSE);
16786 
16787   return offset;
16788 }
16789 
16790 
16791 static const per_sequence_t OTDOA_ReferenceCellInfo_eag_2_sequence[] = {
16792   { &hf_lpp_tpId_r14        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
16793   { &hf_lpp_cpLengthCRS_r14 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_cpLengthCRS_r14 },
16794   { &hf_lpp_sameMBSFNconfigRef_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
16795   { &hf_lpp_dlBandwidth_r14 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_dlBandwidth_r14 },
16796   { &hf_lpp_addPRSconfigRef_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info },
16797   { NULL, 0, 0, NULL }
16798 };
16799 
16800 static int
dissect_lpp_OTDOA_ReferenceCellInfo_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16801 dissect_lpp_OTDOA_ReferenceCellInfo_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16802   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfo_eag_2_sequence);
16803 
16804   return offset;
16805 }
16806 
16807 
16808 static const per_sequence_t OTDOA_ReferenceCellInfo_eag_3_sequence[] = {
16809   { &hf_lpp_nr_LTE_SFN_Offset_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1023 },
16810   { NULL, 0, 0, NULL }
16811 };
16812 
16813 static int
dissect_lpp_OTDOA_ReferenceCellInfo_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16814 dissect_lpp_OTDOA_ReferenceCellInfo_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16815   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfo_eag_3_sequence);
16816 
16817   return offset;
16818 }
16819 
16820 
16821 static const value_string lpp_T_subframeAssignment_v1520_vals[] = {
16822   {   0, "sa0" },
16823   {   1, "sa1" },
16824   {   2, "sa2" },
16825   {   3, "sa3" },
16826   {   4, "sa4" },
16827   {   5, "sa5" },
16828   {   6, "sa6" },
16829   { 0, NULL }
16830 };
16831 
16832 
16833 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_)16834 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_) {
16835   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16836                                      7, NULL, FALSE, 0, NULL);
16837 
16838   return offset;
16839 }
16840 
16841 
16842 static const per_sequence_t TDD_Config_v1520_sequence[] = {
16843   { &hf_lpp_subframeAssignment_v1520, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_subframeAssignment_v1520 },
16844   { NULL, 0, 0, NULL }
16845 };
16846 
16847 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_)16848 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_) {
16849   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16850                                    ett_lpp_TDD_Config_v1520, TDD_Config_v1520_sequence);
16851 
16852   return offset;
16853 }
16854 
16855 
16856 
16857 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_)16858 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_) {
16859   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
16860                                                             0U, 19U, NULL, FALSE);
16861 
16862   return offset;
16863 }
16864 
16865 
16866 static const per_sequence_t OTDOA_ReferenceCellInfo_eag_4_sequence[] = {
16867   { &hf_lpp_tdd_config_v1520, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TDD_Config_v1520 },
16868   { &hf_lpp_nr_LTE_fineTiming_Offset_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_19 },
16869   { NULL, 0, 0, NULL }
16870 };
16871 
16872 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_)16873 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_) {
16874   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfo_eag_4_sequence);
16875 
16876   return offset;
16877 }
16878 
16879 
16880 static const per_sequence_t OTDOA_ReferenceCellInfo_sequence[] = {
16881   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
16882   { &hf_lpp_cellGlobalId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
16883   { &hf_lpp_earfcnRef       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
16884   { &hf_lpp_antennaPortConfig, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_antennaPortConfig },
16885   { &hf_lpp_cpLength        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cpLength },
16886   { &hf_lpp_prsInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info },
16887   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_1 },
16888   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_2 },
16889   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_3 },
16890   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_4 },
16891   { NULL, 0, 0, NULL }
16892 };
16893 
16894 int
dissect_lpp_OTDOA_ReferenceCellInfo(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16895 dissect_lpp_OTDOA_ReferenceCellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16896   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
16897                                    ett_lpp_OTDOA_ReferenceCellInfo, OTDOA_ReferenceCellInfo_sequence);
16898 
16899   return offset;
16900 }
16901 
16902 
16903 static const value_string lpp_T_cpLength_01_vals[] = {
16904   {   0, "normal" },
16905   {   1, "extended" },
16906   { 0, NULL }
16907 };
16908 
16909 
16910 static int
dissect_lpp_T_cpLength_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16911 dissect_lpp_T_cpLength_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16912   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16913                                      2, NULL, TRUE, 0, NULL);
16914 
16915   return offset;
16916 }
16917 
16918 
16919 static const value_string lpp_T_antennaPortConfig_01_vals[] = {
16920   {   0, "ports-1-or-2" },
16921   {   1, "ports-4" },
16922   { 0, NULL }
16923 };
16924 
16925 
16926 static int
dissect_lpp_T_antennaPortConfig_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16927 dissect_lpp_T_antennaPortConfig_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16928   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16929                                      2, NULL, TRUE, 0, NULL);
16930 
16931   return offset;
16932 }
16933 
16934 
16935 
16936 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_)16937 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_) {
16938   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
16939                                                             0U, 1279U, NULL, FALSE);
16940 
16941   return offset;
16942 }
16943 
16944 
16945 static const per_sequence_t OTDOA_NeighbourCellInfoElement_eag_1_sequence[] = {
16946   { &hf_lpp_earfcn_v9a0     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_v9a0 },
16947   { NULL, 0, 0, NULL }
16948 };
16949 
16950 static int
dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16951 dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16952   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoElement_eag_1_sequence);
16953 
16954   return offset;
16955 }
16956 
16957 
16958 static const value_string lpp_T_prs_only_tp_r14_vals[] = {
16959   {   0, "true" },
16960   { 0, NULL }
16961 };
16962 
16963 
16964 static int
dissect_lpp_T_prs_only_tp_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16965 dissect_lpp_T_prs_only_tp_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16966   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16967                                      1, NULL, FALSE, 0, NULL);
16968 
16969   return offset;
16970 }
16971 
16972 
16973 static const value_string lpp_T_cpLengthCRS_r14_01_vals[] = {
16974   {   0, "normal" },
16975   {   1, "extended" },
16976   { 0, NULL }
16977 };
16978 
16979 
16980 static int
dissect_lpp_T_cpLengthCRS_r14_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)16981 dissect_lpp_T_cpLengthCRS_r14_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16982   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16983                                      2, NULL, TRUE, 0, NULL);
16984 
16985   return offset;
16986 }
16987 
16988 
16989 static const value_string lpp_T_dlBandwidth_r14_01_vals[] = {
16990   {   0, "n6" },
16991   {   1, "n15" },
16992   {   2, "n25" },
16993   {   3, "n50" },
16994   {   4, "n75" },
16995   {   5, "n100" },
16996   { 0, NULL }
16997 };
16998 
16999 
17000 static int
dissect_lpp_T_dlBandwidth_r14_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17001 dissect_lpp_T_dlBandwidth_r14_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17002   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17003                                      6, NULL, FALSE, 0, NULL);
17004 
17005   return offset;
17006 }
17007 
17008 
17009 static const per_sequence_t Add_PRSconfigNeighbourElement_r14_sequence[] = {
17010   { &hf_lpp_add_prsInfo_r14 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info },
17011   { NULL, 0, 0, NULL }
17012 };
17013 
17014 static int
dissect_lpp_Add_PRSconfigNeighbourElement_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17015 dissect_lpp_Add_PRSconfigNeighbourElement_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17016   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17017                                    ett_lpp_Add_PRSconfigNeighbourElement_r14, Add_PRSconfigNeighbourElement_r14_sequence);
17018 
17019   return offset;
17020 }
17021 
17022 
17023 static const per_sequence_t SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14_sequence_of[1] = {
17024   { &hf_lpp_addPRSconfigNeighbour_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_Add_PRSconfigNeighbourElement_r14 },
17025 };
17026 
17027 static int
dissect_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17028 dissect_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17029   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
17030                                                   ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14, SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14_sequence_of,
17031                                                   1, maxAddPRSconfig_r14, FALSE);
17032 
17033   return offset;
17034 }
17035 
17036 
17037 static const per_sequence_t OTDOA_NeighbourCellInfoElement_eag_2_sequence[] = {
17038   { &hf_lpp_tpId_r14        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
17039   { &hf_lpp_prs_only_tp_r14 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_prs_only_tp_r14 },
17040   { &hf_lpp_cpLengthCRS_r14_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_cpLengthCRS_r14_01 },
17041   { &hf_lpp_sameMBSFNconfigNeighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
17042   { &hf_lpp_dlBandwidth_r14_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_dlBandwidth_r14_01 },
17043   { &hf_lpp_addPRSconfigNeighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14 },
17044   { NULL, 0, 0, NULL }
17045 };
17046 
17047 static int
dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17048 dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17049   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoElement_eag_2_sequence);
17050 
17051   return offset;
17052 }
17053 
17054 
17055 static const per_sequence_t OTDOA_NeighbourCellInfoElement_eag_3_sequence[] = {
17056   { &hf_lpp_tdd_config_v1520, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TDD_Config_v1520 },
17057   { NULL, 0, 0, NULL }
17058 };
17059 
17060 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_)17061 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_) {
17062   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoElement_eag_3_sequence);
17063 
17064   return offset;
17065 }
17066 
17067 
17068 static const per_sequence_t OTDOA_NeighbourCellInfoElement_sequence[] = {
17069   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
17070   { &hf_lpp_cellGlobalId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
17071   { &hf_lpp_earfcn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
17072   { &hf_lpp_cpLength_01     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_cpLength_01 },
17073   { &hf_lpp_prsInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info },
17074   { &hf_lpp_antennaPortConfig_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_antennaPortConfig_01 },
17075   { &hf_lpp_slotNumberOffset, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_19 },
17076   { &hf_lpp_prs_SubframeOffset, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1279 },
17077   { &hf_lpp_expectedRSTD    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
17078   { &hf_lpp_expectedRSTD_Uncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
17079   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_1 },
17080   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_2 },
17081   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_3 },
17082   { NULL, 0, 0, NULL }
17083 };
17084 
17085 int
dissect_lpp_OTDOA_NeighbourCellInfoElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17086 dissect_lpp_OTDOA_NeighbourCellInfoElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17087   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17088                                    ett_lpp_OTDOA_NeighbourCellInfoElement, OTDOA_NeighbourCellInfoElement_sequence);
17089 
17090   return offset;
17091 }
17092 
17093 
17094 static const per_sequence_t OTDOA_NeighbourFreqInfo_sequence_of[1] = {
17095   { &hf_lpp_OTDOA_NeighbourFreqInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement },
17096 };
17097 
17098 static int
dissect_lpp_OTDOA_NeighbourFreqInfo(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17099 dissect_lpp_OTDOA_NeighbourFreqInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17100   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
17101                                                   ett_lpp_OTDOA_NeighbourFreqInfo, OTDOA_NeighbourFreqInfo_sequence_of,
17102                                                   1, 24, FALSE);
17103 
17104   return offset;
17105 }
17106 
17107 
17108 static const per_sequence_t OTDOA_NeighbourCellInfoList_sequence_of[1] = {
17109   { &hf_lpp_OTDOA_NeighbourCellInfoList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourFreqInfo },
17110 };
17111 
17112 static int
dissect_lpp_OTDOA_NeighbourCellInfoList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17113 dissect_lpp_OTDOA_NeighbourCellInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17114   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
17115                                                   ett_lpp_OTDOA_NeighbourCellInfoList, OTDOA_NeighbourCellInfoList_sequence_of,
17116                                                   1, maxFreqLayers, FALSE);
17117 
17118   return offset;
17119 }
17120 
17121 
17122 static const value_string lpp_T_cause_vals[] = {
17123   {   0, "undefined" },
17124   {   1, "assistanceDataNotSupportedByServer" },
17125   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer" },
17126   { 0, NULL }
17127 };
17128 
17129 
17130 static int
dissect_lpp_T_cause(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17131 dissect_lpp_T_cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17132   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17133                                      3, NULL, TRUE, 0, NULL);
17134 
17135   return offset;
17136 }
17137 
17138 
17139 static const per_sequence_t OTDOA_LocationServerErrorCauses_sequence[] = {
17140   { &hf_lpp_cause           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause },
17141   { NULL, 0, 0, NULL }
17142 };
17143 
17144 static int
dissect_lpp_OTDOA_LocationServerErrorCauses(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17145 dissect_lpp_OTDOA_LocationServerErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17146   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17147                                    ett_lpp_OTDOA_LocationServerErrorCauses, OTDOA_LocationServerErrorCauses_sequence);
17148 
17149   return offset;
17150 }
17151 
17152 
17153 static const value_string lpp_T_cause_01_vals[] = {
17154   {   0, "undefined" },
17155   {   1, "assistance-data-missing" },
17156   {   2, "unableToMeasureReferenceCell" },
17157   {   3, "unableToMeasureAnyNeighbourCell" },
17158   {   4, "attemptedButUnableToMeasureSomeNeighbourCells" },
17159   { 0, NULL }
17160 };
17161 
17162 
17163 static int
dissect_lpp_T_cause_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17164 dissect_lpp_T_cause_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17165   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17166                                      5, NULL, TRUE, 0, NULL);
17167 
17168   return offset;
17169 }
17170 
17171 
17172 static const per_sequence_t OTDOA_TargetDeviceErrorCauses_sequence[] = {
17173   { &hf_lpp_cause_01        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_01 },
17174   { NULL, 0, 0, NULL }
17175 };
17176 
17177 static int
dissect_lpp_OTDOA_TargetDeviceErrorCauses(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17178 dissect_lpp_OTDOA_TargetDeviceErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17179   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17180                                    ett_lpp_OTDOA_TargetDeviceErrorCauses, OTDOA_TargetDeviceErrorCauses_sequence);
17181 
17182   return offset;
17183 }
17184 
17185 
17186 static const value_string lpp_OTDOA_Error_vals[] = {
17187   {   0, "locationServerErrorCauses" },
17188   {   1, "targetDeviceErrorCauses" },
17189   { 0, NULL }
17190 };
17191 
17192 static const per_choice_t OTDOA_Error_choice[] = {
17193   {   0, &hf_lpp_locationServerErrorCauses, ASN1_EXTENSION_ROOT    , dissect_lpp_OTDOA_LocationServerErrorCauses },
17194   {   1, &hf_lpp_targetDeviceErrorCauses, ASN1_EXTENSION_ROOT    , dissect_lpp_OTDOA_TargetDeviceErrorCauses },
17195   { 0, NULL, 0, NULL }
17196 };
17197 
17198 static int
dissect_lpp_OTDOA_Error(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17199 dissect_lpp_OTDOA_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17200   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
17201                                  ett_lpp_OTDOA_Error, OTDOA_Error_choice,
17202                                  NULL);
17203 
17204   return offset;
17205 }
17206 
17207 
17208 static const value_string lpp_T_eutra_NumCRS_Ports_r14_vals[] = {
17209   {   0, "ports1-or-2" },
17210   {   1, "ports4" },
17211   { 0, NULL }
17212 };
17213 
17214 
17215 static int
dissect_lpp_T_eutra_NumCRS_Ports_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17216 dissect_lpp_T_eutra_NumCRS_Ports_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17217   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17218                                      2, NULL, FALSE, 0, NULL);
17219 
17220   return offset;
17221 }
17222 
17223 
17224 static const value_string lpp_T_otdoa_SIB1_NB_repetitions_r14_vals[] = {
17225   {   0, "r4" },
17226   {   1, "r8" },
17227   {   2, "r16" },
17228   { 0, NULL }
17229 };
17230 
17231 
17232 static int
dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17233 dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17234   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17235                                      3, NULL, FALSE, 0, NULL);
17236 
17237   return offset;
17238 }
17239 
17240 
17241 static const value_string lpp_T_operationModeInfoNPRS_r14_vals[] = {
17242   {   0, "inband" },
17243   {   1, "standalone" },
17244   { 0, NULL }
17245 };
17246 
17247 
17248 static int
dissect_lpp_T_operationModeInfoNPRS_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17249 dissect_lpp_T_operationModeInfoNPRS_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17250   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17251                                      2, NULL, FALSE, 0, NULL);
17252 
17253   return offset;
17254 }
17255 
17256 
17257 
17258 static int
dissect_lpp_INTEGER_0_174(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17259 dissect_lpp_INTEGER_0_174(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17260   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17261                                                             0U, 174U, NULL, FALSE);
17262 
17263   return offset;
17264 }
17265 
17266 
17267 
17268 static int
dissect_lpp_BIT_STRING_SIZE_10(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17269 dissect_lpp_BIT_STRING_SIZE_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17270   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
17271                                      10, 10, FALSE, NULL, 0, NULL, NULL);
17272 
17273   return offset;
17274 }
17275 
17276 
17277 
17278 static int
dissect_lpp_BIT_STRING_SIZE_40(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17279 dissect_lpp_BIT_STRING_SIZE_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17280   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
17281                                      40, 40, FALSE, NULL, 0, NULL, NULL);
17282 
17283   return offset;
17284 }
17285 
17286 
17287 static const value_string lpp_T_nprsBitmap_r14_vals[] = {
17288   {   0, "subframePattern10-r14" },
17289   {   1, "subframePattern40-r14" },
17290   { 0, NULL }
17291 };
17292 
17293 static const per_choice_t T_nprsBitmap_r14_choice[] = {
17294   {   0, &hf_lpp_subframePattern10_r14, ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_10 },
17295   {   1, &hf_lpp_subframePattern40_r14, ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_40 },
17296   { 0, NULL, 0, NULL }
17297 };
17298 
17299 static int
dissect_lpp_T_nprsBitmap_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17300 dissect_lpp_T_nprsBitmap_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17301   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
17302                                  ett_lpp_T_nprsBitmap_r14, T_nprsBitmap_r14_choice,
17303                                  NULL);
17304 
17305   return offset;
17306 }
17307 
17308 
17309 static const value_string lpp_T_nprs_MutingInfoA_r14_vals[] = {
17310   {   0, "po2-r14" },
17311   {   1, "po4-r14" },
17312   {   2, "po8-r14" },
17313   {   3, "po16-r14" },
17314   { 0, NULL }
17315 };
17316 
17317 static const per_choice_t T_nprs_MutingInfoA_r14_choice[] = {
17318   {   0, &hf_lpp_po2_r14         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_2 },
17319   {   1, &hf_lpp_po4_r14         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_4 },
17320   {   2, &hf_lpp_po8_r14         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
17321   {   3, &hf_lpp_po16_r14        , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_16 },
17322   { 0, NULL, 0, NULL }
17323 };
17324 
17325 static int
dissect_lpp_T_nprs_MutingInfoA_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17326 dissect_lpp_T_nprs_MutingInfoA_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17327   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
17328                                  ett_lpp_T_nprs_MutingInfoA_r14, T_nprs_MutingInfoA_r14_choice,
17329                                  NULL);
17330 
17331   return offset;
17332 }
17333 
17334 
17335 static const per_sequence_t T_partA_r14_sequence[] = {
17336   { &hf_lpp_nprsBitmap_r14  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nprsBitmap_r14 },
17337   { &hf_lpp_nprs_MutingInfoA_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_nprs_MutingInfoA_r14 },
17338   { NULL, 0, 0, NULL }
17339 };
17340 
17341 static int
dissect_lpp_T_partA_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17342 dissect_lpp_T_partA_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17343   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17344                                    ett_lpp_T_partA_r14, T_partA_r14_sequence);
17345 
17346   return offset;
17347 }
17348 
17349 
17350 static const value_string lpp_T_nprs_Period_r14_vals[] = {
17351   {   0, "ms160" },
17352   {   1, "ms320" },
17353   {   2, "ms640" },
17354   {   3, "ms1280" },
17355   {   4, "ms2560-v1510" },
17356   { 0, NULL }
17357 };
17358 
17359 
17360 static int
dissect_lpp_T_nprs_Period_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17361 dissect_lpp_T_nprs_Period_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17362   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17363                                      4, NULL, TRUE, 1, NULL);
17364 
17365   return offset;
17366 }
17367 
17368 
17369 static const value_string lpp_T_nprs_startSF_r14_vals[] = {
17370   {   0, "zero" },
17371   {   1, "one-eighth" },
17372   {   2, "two-eighths" },
17373   {   3, "three-eighths" },
17374   {   4, "four-eighths" },
17375   {   5, "five-eighths" },
17376   {   6, "six-eighths" },
17377   {   7, "seven-eighths" },
17378   { 0, NULL }
17379 };
17380 
17381 
17382 static int
dissect_lpp_T_nprs_startSF_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17383 dissect_lpp_T_nprs_startSF_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17384   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17385                                      8, NULL, TRUE, 0, NULL);
17386 
17387   return offset;
17388 }
17389 
17390 
17391 static const value_string lpp_T_nprs_NumSF_r14_vals[] = {
17392   {   0, "sf10" },
17393   {   1, "sf20" },
17394   {   2, "sf40" },
17395   {   3, "sf80" },
17396   {   4, "sf160" },
17397   {   5, "sf320" },
17398   {   6, "sf640" },
17399   {   7, "sf1280" },
17400   {   8, "sf2560-v1510" },
17401   { 0, NULL }
17402 };
17403 
17404 
17405 static int
dissect_lpp_T_nprs_NumSF_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17406 dissect_lpp_T_nprs_NumSF_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17407   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17408                                      8, NULL, TRUE, 1, NULL);
17409 
17410   return offset;
17411 }
17412 
17413 
17414 static const value_string lpp_T_nprs_MutingInfoB_r14_vals[] = {
17415   {   0, "po2-r14" },
17416   {   1, "po4-r14" },
17417   {   2, "po8-r14" },
17418   {   3, "po16-r14" },
17419   { 0, NULL }
17420 };
17421 
17422 static const per_choice_t T_nprs_MutingInfoB_r14_choice[] = {
17423   {   0, &hf_lpp_po2_r14         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_2 },
17424   {   1, &hf_lpp_po4_r14         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_4 },
17425   {   2, &hf_lpp_po8_r14         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
17426   {   3, &hf_lpp_po16_r14        , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_16 },
17427   { 0, NULL, 0, NULL }
17428 };
17429 
17430 static int
dissect_lpp_T_nprs_MutingInfoB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17431 dissect_lpp_T_nprs_MutingInfoB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17432   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
17433                                  ett_lpp_T_nprs_MutingInfoB_r14, T_nprs_MutingInfoB_r14_choice,
17434                                  NULL);
17435 
17436   return offset;
17437 }
17438 
17439 
17440 static const value_string lpp_T_sib1_SF_TDD_r15_vals[] = {
17441   {   0, "sf0" },
17442   {   1, "sf4" },
17443   {   2, "sf0and5" },
17444   { 0, NULL }
17445 };
17446 
17447 
17448 static int
dissect_lpp_T_sib1_SF_TDD_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17449 dissect_lpp_T_sib1_SF_TDD_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17450   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17451                                      3, NULL, FALSE, 0, NULL);
17452 
17453   return offset;
17454 }
17455 
17456 
17457 static const per_sequence_t T_eag_1_sequence[] = {
17458   { &hf_lpp_sib1_SF_TDD_r15 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_sib1_SF_TDD_r15 },
17459   { NULL, 0, 0, NULL }
17460 };
17461 
17462 static int
dissect_lpp_T_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17463 dissect_lpp_T_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17464   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, T_eag_1_sequence);
17465 
17466   return offset;
17467 }
17468 
17469 
17470 static const per_sequence_t T_partB_r14_sequence[] = {
17471   { &hf_lpp_nprs_Period_r14 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nprs_Period_r14 },
17472   { &hf_lpp_nprs_startSF_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nprs_startSF_r14 },
17473   { &hf_lpp_nprs_NumSF_r14  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nprs_NumSF_r14 },
17474   { &hf_lpp_nprs_MutingInfoB_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_nprs_MutingInfoB_r14 },
17475   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_T_eag_1 },
17476   { NULL, 0, 0, NULL }
17477 };
17478 
17479 static int
dissect_lpp_T_partB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17480 dissect_lpp_T_partB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17481   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17482                                    ett_lpp_T_partB_r14, T_partB_r14_sequence);
17483 
17484   return offset;
17485 }
17486 
17487 
17488 static const value_string lpp_T_nprsBitmap_r15_vals[] = {
17489   {   0, "subframePattern10-TDD-r15" },
17490   {   1, "subframePattern40-TDD-r15" },
17491   { 0, NULL }
17492 };
17493 
17494 static const per_choice_t T_nprsBitmap_r15_choice[] = {
17495   {   0, &hf_lpp_subframePattern10_TDD_r15, ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
17496   {   1, &hf_lpp_subframePattern40_TDD_r15, ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_32 },
17497   { 0, NULL, 0, NULL }
17498 };
17499 
17500 static int
dissect_lpp_T_nprsBitmap_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17501 dissect_lpp_T_nprsBitmap_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17502   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
17503                                  ett_lpp_T_nprsBitmap_r15, T_nprsBitmap_r15_choice,
17504                                  NULL);
17505 
17506   return offset;
17507 }
17508 
17509 
17510 static const value_string lpp_T_nprs_MutingInfoA_r15_vals[] = {
17511   {   0, "po2-r15" },
17512   {   1, "po4-r15" },
17513   {   2, "po8-r15" },
17514   {   3, "po16-r15" },
17515   { 0, NULL }
17516 };
17517 
17518 static const per_choice_t T_nprs_MutingInfoA_r15_choice[] = {
17519   {   0, &hf_lpp_po2_r15         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_2 },
17520   {   1, &hf_lpp_po4_r15         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_4 },
17521   {   2, &hf_lpp_po8_r15         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
17522   {   3, &hf_lpp_po16_r15        , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_16 },
17523   { 0, NULL, 0, NULL }
17524 };
17525 
17526 static int
dissect_lpp_T_nprs_MutingInfoA_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17527 dissect_lpp_T_nprs_MutingInfoA_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17528   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
17529                                  ett_lpp_T_nprs_MutingInfoA_r15, T_nprs_MutingInfoA_r15_choice,
17530                                  NULL);
17531 
17532   return offset;
17533 }
17534 
17535 
17536 static const per_sequence_t T_partA_TDD_r15_sequence[] = {
17537   { &hf_lpp_nprsBitmap_r15  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nprsBitmap_r15 },
17538   { &hf_lpp_nprs_MutingInfoA_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_nprs_MutingInfoA_r15 },
17539   { NULL, 0, 0, NULL }
17540 };
17541 
17542 static int
dissect_lpp_T_partA_TDD_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17543 dissect_lpp_T_partA_TDD_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17544   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17545                                    ett_lpp_T_partA_TDD_r15, T_partA_TDD_r15_sequence);
17546 
17547   return offset;
17548 }
17549 
17550 
17551 static const per_sequence_t NPRS_Info_r14_eag_1_sequence[] = {
17552   { &hf_lpp_partA_TDD_r15   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_partA_TDD_r15 },
17553   { NULL, 0, 0, NULL }
17554 };
17555 
17556 static int
dissect_lpp_NPRS_Info_r14_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17557 dissect_lpp_NPRS_Info_r14_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17558   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, NPRS_Info_r14_eag_1_sequence);
17559 
17560   return offset;
17561 }
17562 
17563 
17564 static const per_sequence_t NPRS_Info_r14_sequence[] = {
17565   { &hf_lpp_operationModeInfoNPRS_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_operationModeInfoNPRS_r14 },
17566   { &hf_lpp_nprs_carrier_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CarrierFreq_NB_r14 },
17567   { &hf_lpp_nprsSequenceInfo_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_174 },
17568   { &hf_lpp_nprsID_r14      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
17569   { &hf_lpp_partA_r14       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_partA_r14 },
17570   { &hf_lpp_partB_r14       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_partB_r14 },
17571   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_NPRS_Info_r14_eag_1 },
17572   { NULL, 0, 0, NULL }
17573 };
17574 
17575 static int
dissect_lpp_NPRS_Info_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17576 dissect_lpp_NPRS_Info_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17577   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17578                                    ett_lpp_NPRS_Info_r14, NPRS_Info_r14_sequence);
17579 
17580   return offset;
17581 }
17582 
17583 
17584 static const per_sequence_t PRS_Info_NB_r14_sequence_of[1] = {
17585   { &hf_lpp_PRS_Info_NB_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NPRS_Info_r14 },
17586 };
17587 
17588 static int
dissect_lpp_PRS_Info_NB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17589 dissect_lpp_PRS_Info_NB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17590   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
17591                                                   ett_lpp_PRS_Info_NB_r14, PRS_Info_NB_r14_sequence_of,
17592                                                   1, maxCarrier_r14, FALSE);
17593 
17594   return offset;
17595 }
17596 
17597 
17598 static const per_sequence_t OTDOA_ReferenceCellInfoNB_r14_eag_1_sequence[] = {
17599   { &hf_lpp_nprsInfo_Type2_v1470, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PRS_Info_NB_r14 },
17600   { NULL, 0, 0, NULL }
17601 };
17602 
17603 static int
dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17604 dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17605   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfoNB_r14_eag_1_sequence);
17606 
17607   return offset;
17608 }
17609 
17610 
17611 static const per_sequence_t OTDOA_ReferenceCellInfoNB_r14_eag_2_sequence[] = {
17612   { &hf_lpp_tdd_config_r15  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TDD_Config_v1520 },
17613   { NULL, 0, 0, NULL }
17614 };
17615 
17616 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_)17617 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_) {
17618   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfoNB_r14_eag_2_sequence);
17619 
17620   return offset;
17621 }
17622 
17623 
17624 static const per_sequence_t OTDOA_ReferenceCellInfoNB_r14_sequence[] = {
17625   { &hf_lpp_physCellIdNB_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_503 },
17626   { &hf_lpp_cellGlobalIdNB_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
17627   { &hf_lpp_carrierFreqRef_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CarrierFreq_NB_r14 },
17628   { &hf_lpp_earfcn_r14      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_r14 },
17629   { &hf_lpp_eutra_NumCRS_Ports_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_eutra_NumCRS_Ports_r14 },
17630   { &hf_lpp_otdoa_SIB1_NB_repetitions_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14 },
17631   { &hf_lpp_nprsInfo_r14    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info_NB_r14 },
17632   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_1 },
17633   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_2 },
17634   { NULL, 0, 0, NULL }
17635 };
17636 
17637 static int
dissect_lpp_OTDOA_ReferenceCellInfoNB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17638 dissect_lpp_OTDOA_ReferenceCellInfoNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17639   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17640                                    ett_lpp_OTDOA_ReferenceCellInfoNB_r14, OTDOA_ReferenceCellInfoNB_r14_sequence);
17641 
17642   return offset;
17643 }
17644 
17645 
17646 static const value_string lpp_T_eutra_NumCRS_Ports_r14_01_vals[] = {
17647   {   0, "ports-1-or-2" },
17648   {   1, "ports-4" },
17649   { 0, NULL }
17650 };
17651 
17652 
17653 static int
dissect_lpp_T_eutra_NumCRS_Ports_r14_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17654 dissect_lpp_T_eutra_NumCRS_Ports_r14_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17655   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17656                                      2, NULL, TRUE, 0, NULL);
17657 
17658   return offset;
17659 }
17660 
17661 
17662 static const value_string lpp_T_otdoa_SIB1_NB_repetitions_r14_01_vals[] = {
17663   {   0, "r4" },
17664   {   1, "r8" },
17665   {   2, "r16" },
17666   { 0, NULL }
17667 };
17668 
17669 
17670 static int
dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17671 dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17672   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17673                                      3, NULL, FALSE, 0, NULL);
17674 
17675   return offset;
17676 }
17677 
17678 
17679 
17680 static int
dissect_lpp_INTEGER_1_72(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17681 dissect_lpp_INTEGER_1_72(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17682   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17683                                                             1U, 72U, NULL, FALSE);
17684 
17685   return offset;
17686 }
17687 
17688 
17689 static const per_sequence_t OTDOA_NeighbourCellInfoNB_r14_eag_1_sequence[] = {
17690   { &hf_lpp_nprsInfo_Type2_v1470, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_PRS_Info_NB_r14 },
17691   { NULL, 0, 0, NULL }
17692 };
17693 
17694 static int
dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17695 dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17696   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoNB_r14_eag_1_sequence);
17697 
17698   return offset;
17699 }
17700 
17701 
17702 static const per_sequence_t OTDOA_NeighbourCellInfoNB_r14_eag_2_sequence[] = {
17703   { &hf_lpp_tdd_config_r15  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TDD_Config_v1520 },
17704   { NULL, 0, 0, NULL }
17705 };
17706 
17707 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_)17708 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_) {
17709   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoNB_r14_eag_2_sequence);
17710 
17711   return offset;
17712 }
17713 
17714 
17715 static const per_sequence_t OTDOA_NeighbourCellInfoNB_r14_sequence[] = {
17716   { &hf_lpp_physCellIdNB_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_503 },
17717   { &hf_lpp_cellGlobalIdNB_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
17718   { &hf_lpp_carrierFreq_r14_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CarrierFreq_NB_r14 },
17719   { &hf_lpp_earfcn_r14      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_r14 },
17720   { &hf_lpp_eutra_NumCRS_Ports_r14_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_eutra_NumCRS_Ports_r14_01 },
17721   { &hf_lpp_otdoa_SIB1_NB_repetitions_r14_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14_01 },
17722   { &hf_lpp_nprsInfo_r14    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info_NB_r14 },
17723   { &hf_lpp_nprs_slotNumberOffset_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_19 },
17724   { &hf_lpp_nprs_SFN_Offset_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_63 },
17725   { &hf_lpp_nprs_SubframeOffset_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1279 },
17726   { &hf_lpp_expectedRSTD_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_16383 },
17727   { &hf_lpp_expectedRSTD_Uncertainty_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1023 },
17728   { &hf_lpp_prsNeighbourCellIndex_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_72 },
17729   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_1 },
17730   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_2 },
17731   { NULL, 0, 0, NULL }
17732 };
17733 
17734 static int
dissect_lpp_OTDOA_NeighbourCellInfoNB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17735 dissect_lpp_OTDOA_NeighbourCellInfoNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17737                                    ett_lpp_OTDOA_NeighbourCellInfoNB_r14, OTDOA_NeighbourCellInfoNB_r14_sequence);
17738 
17739   return offset;
17740 }
17741 
17742 
17743 static const per_sequence_t OTDOA_NeighbourCellInfoListNB_r14_sequence_of[1] = {
17744   { &hf_lpp_OTDOA_NeighbourCellInfoListNB_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoNB_r14 },
17745 };
17746 
17747 static int
dissect_lpp_OTDOA_NeighbourCellInfoListNB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17748 dissect_lpp_OTDOA_NeighbourCellInfoListNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17749   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
17750                                                   ett_lpp_OTDOA_NeighbourCellInfoListNB_r14, OTDOA_NeighbourCellInfoListNB_r14_sequence_of,
17751                                                   1, maxCells_r14, FALSE);
17752 
17753   return offset;
17754 }
17755 
17756 
17757 static const per_sequence_t OTDOA_ProvideAssistanceData_eag_1_sequence[] = {
17758   { &hf_lpp_otdoa_ReferenceCellInfoNB_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ReferenceCellInfoNB_r14 },
17759   { &hf_lpp_otdoa_NeighbourCellInfoNB_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_OTDOA_NeighbourCellInfoListNB_r14 },
17760   { NULL, 0, 0, NULL }
17761 };
17762 
17763 static int
dissect_lpp_OTDOA_ProvideAssistanceData_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17764 dissect_lpp_OTDOA_ProvideAssistanceData_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17765   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ProvideAssistanceData_eag_1_sequence);
17766 
17767   return offset;
17768 }
17769 
17770 
17771 static const per_sequence_t OTDOA_ProvideAssistanceData_sequence[] = {
17772   { &hf_lpp_otdoa_ReferenceCellInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ReferenceCellInfo },
17773   { &hf_lpp_otdoa_NeighbourCellInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_NeighbourCellInfoList },
17774   { &hf_lpp_otdoa_Error     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_Error },
17775   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ProvideAssistanceData_eag_1 },
17776   { NULL, 0, 0, NULL }
17777 };
17778 
17779 static int
dissect_lpp_OTDOA_ProvideAssistanceData(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17780 dissect_lpp_OTDOA_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17781   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17782                                    ett_lpp_OTDOA_ProvideAssistanceData, OTDOA_ProvideAssistanceData_sequence);
17783 
17784   return offset;
17785 }
17786 
17787 
17788 
17789 static int
dissect_lpp_INTEGER_M20000_10000(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17790 dissect_lpp_INTEGER_M20000_10000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17791   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17792                                                             -20000, 10000U, NULL, FALSE);
17793 
17794   return offset;
17795 }
17796 
17797 
17798 
17799 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_)17800 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_) {
17801   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17802                                                             0U, 2881U, NULL, FALSE);
17803 
17804   return offset;
17805 }
17806 
17807 
17808 
17809 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_)17810 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_) {
17811   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17812                                                             1U, 2881U, NULL, FALSE);
17813 
17814   return offset;
17815 }
17816 
17817 
17818 static const per_sequence_t PressureValidityPeriod_v1520_sequence[] = {
17819   { &hf_lpp_beginTime_v1520 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
17820   { &hf_lpp_beginTimeAlt_v1520, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_2881 },
17821   { &hf_lpp_duration_v1520  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_2881 },
17822   { NULL, 0, 0, NULL }
17823 };
17824 
17825 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_)17826 dissect_lpp_PressureValidityPeriod_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17827   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17828                                    ett_lpp_PressureValidityPeriod_v1520, PressureValidityPeriod_v1520_sequence);
17829 
17830   return offset;
17831 }
17832 
17833 
17834 static const per_sequence_t T_period_v1520_sequence[] = {
17835   { &hf_lpp_pressureValidityPeriod_v1520, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PressureValidityPeriod_v1520 },
17836   { &hf_lpp_referencePressureRate_v1520, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M128_127 },
17837   { NULL, 0, 0, NULL }
17838 };
17839 
17840 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_)17841 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_) {
17842   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17843                                    ett_lpp_T_period_v1520, T_period_v1520_sequence);
17844 
17845   return offset;
17846 }
17847 
17848 
17849 static const value_string lpp_T_latitudeSign_vals[] = {
17850   {   0, "north" },
17851   {   1, "south" },
17852   { 0, NULL }
17853 };
17854 
17855 
17856 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_)17857 dissect_lpp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17858   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17859                                      2, NULL, FALSE, 0, NULL);
17860 
17861   return offset;
17862 }
17863 
17864 
17865 static const per_sequence_t Ellipsoid_Point_sequence[] = {
17866   { &hf_lpp_latitudeSign    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign },
17867   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
17868   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
17869   { NULL, 0, 0, NULL }
17870 };
17871 
17872 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_)17873 dissect_lpp_Ellipsoid_Point(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17874   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17875                                    ett_lpp_Ellipsoid_Point, Ellipsoid_Point_sequence);
17876 
17877   return offset;
17878 }
17879 
17880 
17881 
17882 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_)17883 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_) {
17884   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17885                                                             1U, 128U, NULL, FALSE);
17886 
17887   return offset;
17888 }
17889 
17890 
17891 static const per_sequence_t PressureValidityArea_v1520_sequence[] = {
17892   { &hf_lpp_centerPoint_v1520, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Ellipsoid_Point },
17893   { &hf_lpp_validityAreaWidth_v1520, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_128 },
17894   { &hf_lpp_validityAreaHeight_v1520, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_128 },
17895   { NULL, 0, 0, NULL }
17896 };
17897 
17898 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_)17899 dissect_lpp_PressureValidityArea_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17900   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17901                                    ett_lpp_PressureValidityArea_v1520, PressureValidityArea_v1520_sequence);
17902 
17903   return offset;
17904 }
17905 
17906 
17907 
17908 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_)17909 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_) {
17910   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17911                                                             -1024, 1023U, NULL, FALSE);
17912 
17913 #line 1752 "./asn1/lpp/lpp.cnf"
17914   proto_item_append_text(actx->created_item, "Pa/Km");
17915 
17916 
17917   return offset;
17918 }
17919 
17920 
17921 
17922 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_)17923 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_) {
17924   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
17925                                                             -1024, 1023U, NULL, FALSE);
17926 
17927 #line 1755 "./asn1/lpp/lpp.cnf"
17928   proto_item_append_text(actx->created_item, "Pa/Km");
17929 
17930 
17931   return offset;
17932 }
17933 
17934 
17935 static const per_sequence_t T_area_v1520_sequence[] = {
17936   { &hf_lpp_pressureValidityArea_v1520, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PressureValidityArea_v1520 },
17937   { &hf_lpp_gN_pressure_v1520, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_gN_pressure_v1520 },
17938   { &hf_lpp_gE_pressure_v1520, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_gE_pressure_v1520 },
17939   { NULL, 0, 0, NULL }
17940 };
17941 
17942 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_)17943 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_) {
17944   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17945                                    ett_lpp_T_area_v1520, T_area_v1520_sequence);
17946 
17947   return offset;
17948 }
17949 
17950 
17951 static const per_sequence_t Sensor_AssistanceDataList_r14_eag_1_sequence[] = {
17952   { &hf_lpp_period_v1520    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_period_v1520 },
17953   { &hf_lpp_area_v1520      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_area_v1520 },
17954   { NULL, 0, 0, NULL }
17955 };
17956 
17957 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_)17958 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_) {
17959   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_AssistanceDataList_r14_eag_1_sequence);
17960 
17961   return offset;
17962 }
17963 
17964 
17965 static const per_sequence_t Sensor_AssistanceDataList_r14_sequence[] = {
17966   { &hf_lpp_refPressure_r14 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M20000_10000 },
17967   { &hf_lpp_refPosition_r14 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
17968   { &hf_lpp_refTemperature_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M64_63 },
17969   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_AssistanceDataList_r14_eag_1 },
17970   { NULL, 0, 0, NULL }
17971 };
17972 
17973 static int
dissect_lpp_Sensor_AssistanceDataList_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17974 dissect_lpp_Sensor_AssistanceDataList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17975   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
17976                                    ett_lpp_Sensor_AssistanceDataList_r14, Sensor_AssistanceDataList_r14_sequence);
17977 
17978   return offset;
17979 }
17980 
17981 
17982 static const value_string lpp_T_cause_r13_02_vals[] = {
17983   {   0, "undefined" },
17984   {   1, "assistanceDataNotSupportedByServer-v1420" },
17985   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420" },
17986   { 0, NULL }
17987 };
17988 
17989 
17990 static int
dissect_lpp_T_cause_r13_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)17991 dissect_lpp_T_cause_r13_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17992   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
17993                                      1, NULL, TRUE, 2, NULL);
17994 
17995   return offset;
17996 }
17997 
17998 
17999 static const per_sequence_t Sensor_LocationServerErrorCauses_r13_sequence[] = {
18000   { &hf_lpp_cause_r13_02    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_02 },
18001   { NULL, 0, 0, NULL }
18002 };
18003 
18004 static int
dissect_lpp_Sensor_LocationServerErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18005 dissect_lpp_Sensor_LocationServerErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18006   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18007                                    ett_lpp_Sensor_LocationServerErrorCauses_r13, Sensor_LocationServerErrorCauses_r13_sequence);
18008 
18009   return offset;
18010 }
18011 
18012 
18013 static const value_string lpp_T_cause_r13_03_vals[] = {
18014   {   0, "undefined" },
18015   {   1, "assistanceDataMissing-v1420" },
18016   { 0, NULL }
18017 };
18018 
18019 
18020 static int
dissect_lpp_T_cause_r13_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18021 dissect_lpp_T_cause_r13_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18022   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18023                                      1, NULL, TRUE, 1, NULL);
18024 
18025   return offset;
18026 }
18027 
18028 
18029 static const per_sequence_t Sensor_TargetDeviceErrorCauses_r13_sequence[] = {
18030   { &hf_lpp_cause_r13_03    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_03 },
18031   { NULL, 0, 0, NULL }
18032 };
18033 
18034 static int
dissect_lpp_Sensor_TargetDeviceErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18035 dissect_lpp_Sensor_TargetDeviceErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18036   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18037                                    ett_lpp_Sensor_TargetDeviceErrorCauses_r13, Sensor_TargetDeviceErrorCauses_r13_sequence);
18038 
18039   return offset;
18040 }
18041 
18042 
18043 static const value_string lpp_Sensor_Error_r13_vals[] = {
18044   {   0, "locationServerErrorCauses-r13" },
18045   {   1, "targetDeviceErrorCauses-r13" },
18046   { 0, NULL }
18047 };
18048 
18049 static const per_choice_t Sensor_Error_r13_choice[] = {
18050   {   0, &hf_lpp_locationServerErrorCauses_r13_01, ASN1_EXTENSION_ROOT    , dissect_lpp_Sensor_LocationServerErrorCauses_r13 },
18051   {   1, &hf_lpp_targetDeviceErrorCauses_r13_01, ASN1_EXTENSION_ROOT    , dissect_lpp_Sensor_TargetDeviceErrorCauses_r13 },
18052   { 0, NULL, 0, NULL }
18053 };
18054 
18055 static int
dissect_lpp_Sensor_Error_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18056 dissect_lpp_Sensor_Error_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18057   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
18058                                  ett_lpp_Sensor_Error_r13, Sensor_Error_r13_choice,
18059                                  NULL);
18060 
18061   return offset;
18062 }
18063 
18064 
18065 static const per_sequence_t Sensor_ProvideAssistanceData_r14_sequence[] = {
18066   { &hf_lpp_sensor_AssistanceDataList_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Sensor_AssistanceDataList_r14 },
18067   { &hf_lpp_sensor_Error_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Sensor_Error_r13 },
18068   { NULL, 0, 0, NULL }
18069 };
18070 
18071 static int
dissect_lpp_Sensor_ProvideAssistanceData_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18072 dissect_lpp_Sensor_ProvideAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18073   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18074                                    ett_lpp_Sensor_ProvideAssistanceData_r14, Sensor_ProvideAssistanceData_r14_sequence);
18075 
18076   return offset;
18077 }
18078 
18079 
18080 
18081 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_)18082 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_) {
18083 #line 1704 "./asn1/lpp/lpp.cnf"
18084   tvbuff_t *transmitterLatitude_tvb = NULL;
18085   guint32 val;
18086 
18087   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
18088                                      26, 26, FALSE, NULL, 0, &transmitterLatitude_tvb, NULL);
18089 
18090   val = tvb_get_bits32(transmitterLatitude_tvb, 0, 26, ENC_BIG_ENDIAN);
18091   actx->created_item = proto_tree_add_uint(tree, hf_index, transmitterLatitude_tvb, 0, 4, val);
18092 
18093 
18094 
18095   return offset;
18096 }
18097 
18098 
18099 
18100 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_)18101 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_) {
18102 #line 1715 "./asn1/lpp/lpp.cnf"
18103   tvbuff_t *transmitterLongitude_tvb = NULL;
18104   guint32 val;
18105 
18106   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
18107                                      27, 27, FALSE, NULL, 0, &transmitterLongitude_tvb, NULL);
18108 
18109   val = tvb_get_bits32(transmitterLongitude_tvb, 0, 27, ENC_BIG_ENDIAN);
18110   actx->created_item = proto_tree_add_uint(tree, hf_index, transmitterLongitude_tvb, 0, 4, val);
18111 
18112 
18113 
18114   return offset;
18115 }
18116 
18117 
18118 
18119 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_)18120 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_) {
18121 #line 1726 "./asn1/lpp/lpp.cnf"
18122   tvbuff_t *transmitterAltitude_tvb = NULL;
18123   guint32 val;
18124 
18125   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
18126                                      15, 15, FALSE, NULL, 0, &transmitterAltitude_tvb, NULL);
18127 
18128   val = tvb_get_bits16(transmitterAltitude_tvb, 0, 15, ENC_BIG_ENDIAN);
18129   actx->created_item = proto_tree_add_uint(tree, hf_index, transmitterAltitude_tvb, 0, 2, val);
18130 
18131 
18132 
18133   return offset;
18134 }
18135 
18136 
18137 
18138 static int
dissect_lpp_INTEGER_0_25(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18139 dissect_lpp_INTEGER_0_25(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18140   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18141                                                             0U, 25U, NULL, FALSE);
18142 
18143   return offset;
18144 }
18145 
18146 
18147 static const per_sequence_t MBS_AlmanacAssistance_r14_sequence[] = {
18148   { &hf_lpp_transmitterID_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
18149   { &hf_lpp_transmitterLatitude_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_transmitterLatitude_r14 },
18150   { &hf_lpp_transmitterLongitude_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_transmitterLongitude_r14 },
18151   { &hf_lpp_transmitterAltitude_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_transmitterAltitude_r14 },
18152   { &hf_lpp_timeCorrection_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_25 },
18153   { NULL, 0, 0, NULL }
18154 };
18155 
18156 static int
dissect_lpp_MBS_AlmanacAssistance_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18157 dissect_lpp_MBS_AlmanacAssistance_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18158   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18159                                    ett_lpp_MBS_AlmanacAssistance_r14, MBS_AlmanacAssistance_r14_sequence);
18160 
18161   return offset;
18162 }
18163 
18164 
18165 static const value_string lpp_T_mbsConfiguration_r14_vals[] = {
18166   {   0, "tb1" },
18167   {   1, "tb2" },
18168   {   2, "tb3" },
18169   {   3, "tb4" },
18170   { 0, NULL }
18171 };
18172 
18173 
18174 static int
dissect_lpp_T_mbsConfiguration_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18175 dissect_lpp_T_mbsConfiguration_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18176   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18177                                      4, NULL, TRUE, 0, NULL);
18178 
18179   return offset;
18180 }
18181 
18182 
18183 
18184 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_)18185 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_) {
18186   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18187                                                             919750000U, 927250000U, NULL, FALSE);
18188 
18189   return offset;
18190 }
18191 
18192 
18193 static const per_sequence_t MBS_AcquisitionAssistance_r14_sequence[] = {
18194   { &hf_lpp_transmitterID_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_32767 },
18195   { &hf_lpp_mbsConfiguration_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_mbsConfiguration_r14 },
18196   { &hf_lpp_pnCodeIndex_r14 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_128 },
18197   { &hf_lpp_freq_r14        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_919750000_927250000 },
18198   { NULL, 0, 0, NULL }
18199 };
18200 
18201 static int
dissect_lpp_MBS_AcquisitionAssistance_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18202 dissect_lpp_MBS_AcquisitionAssistance_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18203   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18204                                    ett_lpp_MBS_AcquisitionAssistance_r14, MBS_AcquisitionAssistance_r14_sequence);
18205 
18206   return offset;
18207 }
18208 
18209 
18210 static const per_sequence_t MBS_AssistanceDataElement_r14_sequence[] = {
18211   { &hf_lpp_mbs_AlmanacAssistance_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MBS_AlmanacAssistance_r14 },
18212   { &hf_lpp_mbs_AcquisitionAssistance_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MBS_AcquisitionAssistance_r14 },
18213   { NULL, 0, 0, NULL }
18214 };
18215 
18216 static int
dissect_lpp_MBS_AssistanceDataElement_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18217 dissect_lpp_MBS_AssistanceDataElement_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18218   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18219                                    ett_lpp_MBS_AssistanceDataElement_r14, MBS_AssistanceDataElement_r14_sequence);
18220 
18221   return offset;
18222 }
18223 
18224 
18225 static const per_sequence_t MBS_AssistanceDataList_r14_sequence_of[1] = {
18226   { &hf_lpp_MBS_AssistanceDataList_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_MBS_AssistanceDataElement_r14 },
18227 };
18228 
18229 static int
dissect_lpp_MBS_AssistanceDataList_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18230 dissect_lpp_MBS_AssistanceDataList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18231   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
18232                                                   ett_lpp_MBS_AssistanceDataList_r14, MBS_AssistanceDataList_r14_sequence_of,
18233                                                   1, maxMBS_r14, FALSE);
18234 
18235   return offset;
18236 }
18237 
18238 
18239 static const per_sequence_t TBS_AssistanceDataList_r14_sequence[] = {
18240   { &hf_lpp_mbs_AssistanceDataList_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MBS_AssistanceDataList_r14 },
18241   { NULL, 0, 0, NULL }
18242 };
18243 
18244 static int
dissect_lpp_TBS_AssistanceDataList_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18245 dissect_lpp_TBS_AssistanceDataList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18246   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18247                                    ett_lpp_TBS_AssistanceDataList_r14, TBS_AssistanceDataList_r14_sequence);
18248 
18249   return offset;
18250 }
18251 
18252 
18253 static const value_string lpp_T_cause_r13_vals[] = {
18254   {   0, "undefined" },
18255   {   1, "assistanceDataNotSupportedByServer-v1420" },
18256   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420" },
18257   { 0, NULL }
18258 };
18259 
18260 
18261 static int
dissect_lpp_T_cause_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18262 dissect_lpp_T_cause_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18263   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18264                                      1, NULL, TRUE, 2, NULL);
18265 
18266   return offset;
18267 }
18268 
18269 
18270 static const per_sequence_t TBS_LocationServerErrorCauses_r13_sequence[] = {
18271   { &hf_lpp_cause_r13       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13 },
18272   { NULL, 0, 0, NULL }
18273 };
18274 
18275 static int
dissect_lpp_TBS_LocationServerErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18276 dissect_lpp_TBS_LocationServerErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18277   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18278                                    ett_lpp_TBS_LocationServerErrorCauses_r13, TBS_LocationServerErrorCauses_r13_sequence);
18279 
18280   return offset;
18281 }
18282 
18283 
18284 static const value_string lpp_T_cause_r13_01_vals[] = {
18285   {   0, "undefined" },
18286   {   1, "thereWereNotEnoughMBSBeaconsReceived" },
18287   {   2, "assistanceDataMissing-v1420" },
18288   { 0, NULL }
18289 };
18290 
18291 
18292 static int
dissect_lpp_T_cause_r13_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18293 dissect_lpp_T_cause_r13_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18294   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18295                                      2, NULL, TRUE, 1, NULL);
18296 
18297   return offset;
18298 }
18299 
18300 
18301 static const per_sequence_t TBS_TargetDeviceErrorCauses_r13_sequence[] = {
18302   { &hf_lpp_cause_r13_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_01 },
18303   { NULL, 0, 0, NULL }
18304 };
18305 
18306 static int
dissect_lpp_TBS_TargetDeviceErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18307 dissect_lpp_TBS_TargetDeviceErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18308   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18309                                    ett_lpp_TBS_TargetDeviceErrorCauses_r13, TBS_TargetDeviceErrorCauses_r13_sequence);
18310 
18311   return offset;
18312 }
18313 
18314 
18315 static const value_string lpp_TBS_Error_r13_vals[] = {
18316   {   0, "locationServerErrorCauses-r13" },
18317   {   1, "targetDeviceErrorCauses-r13" },
18318   { 0, NULL }
18319 };
18320 
18321 static const per_choice_t TBS_Error_r13_choice[] = {
18322   {   0, &hf_lpp_locationServerErrorCauses_r13, ASN1_EXTENSION_ROOT    , dissect_lpp_TBS_LocationServerErrorCauses_r13 },
18323   {   1, &hf_lpp_targetDeviceErrorCauses_r13, ASN1_EXTENSION_ROOT    , dissect_lpp_TBS_TargetDeviceErrorCauses_r13 },
18324   { 0, NULL, 0, NULL }
18325 };
18326 
18327 static int
dissect_lpp_TBS_Error_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18328 dissect_lpp_TBS_Error_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18329   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
18330                                  ett_lpp_TBS_Error_r13, TBS_Error_r13_choice,
18331                                  NULL);
18332 
18333   return offset;
18334 }
18335 
18336 
18337 static const per_sequence_t TBS_ProvideAssistanceData_r14_sequence[] = {
18338   { &hf_lpp_tbs_AssistanceDataList_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TBS_AssistanceDataList_r14 },
18339   { &hf_lpp_tbs_Error_r14   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TBS_Error_r13 },
18340   { NULL, 0, 0, NULL }
18341 };
18342 
18343 static int
dissect_lpp_TBS_ProvideAssistanceData_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18344 dissect_lpp_TBS_ProvideAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18345   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18346                                    ett_lpp_TBS_ProvideAssistanceData_r14, TBS_ProvideAssistanceData_r14_sequence);
18347 
18348   return offset;
18349 }
18350 
18351 
18352 
18353 static int
dissect_lpp_BIT_STRING_SIZE_34(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18354 dissect_lpp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18355   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
18356                                      34, 34, FALSE, NULL, 0, NULL, NULL);
18357 
18358   return offset;
18359 }
18360 
18361 
18362 
18363 static int
dissect_lpp_BIT_STRING_SIZE_30(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18364 dissect_lpp_BIT_STRING_SIZE_30(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18365   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
18366                                      30, 30, FALSE, NULL, 0, NULL, NULL);
18367 
18368   return offset;
18369 }
18370 
18371 
18372 static const per_sequence_t LocationDataLCI_r14_sequence[] = {
18373   { &hf_lpp_latitudeUncertainty_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_6 },
18374   { &hf_lpp_latitude_r14    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_34 },
18375   { &hf_lpp_longitudeUncertainty_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_6 },
18376   { &hf_lpp_longitude_r14   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_34 },
18377   { &hf_lpp_altitudeUncertainty_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_6 },
18378   { &hf_lpp_altitude_r14    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_30 },
18379   { &hf_lpp_datum_r14       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
18380   { NULL, 0, 0, NULL }
18381 };
18382 
18383 static int
dissect_lpp_LocationDataLCI_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18384 dissect_lpp_LocationDataLCI_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18385   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18386                                    ett_lpp_LocationDataLCI_r14, LocationDataLCI_r14_sequence);
18387 
18388   return offset;
18389 }
18390 
18391 
18392 static const per_sequence_t WLAN_AP_Location_r14_sequence[] = {
18393   { &hf_lpp_locationDataLCI_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_LocationDataLCI_r14 },
18394   { NULL, 0, 0, NULL }
18395 };
18396 
18397 static int
dissect_lpp_WLAN_AP_Location_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18398 dissect_lpp_WLAN_AP_Location_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18399   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18400                                    ett_lpp_WLAN_AP_Location_r14, WLAN_AP_Location_r14_sequence);
18401 
18402   return offset;
18403 }
18404 
18405 
18406 static const per_sequence_t WLAN_AP_Data_r14_sequence[] = {
18407   { &hf_lpp_wlan_AP_Identifier_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_AP_Identifier_r13 },
18408   { &hf_lpp_wlan_AP_Location_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_WLAN_AP_Location_r14 },
18409   { NULL, 0, 0, NULL }
18410 };
18411 
18412 static int
dissect_lpp_WLAN_AP_Data_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18413 dissect_lpp_WLAN_AP_Data_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18414   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18415                                    ett_lpp_WLAN_AP_Data_r14, WLAN_AP_Data_r14_sequence);
18416 
18417   return offset;
18418 }
18419 
18420 
18421 static const per_sequence_t SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14_sequence_of[1] = {
18422   { &hf_lpp_wlan_AP_List_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_AP_Data_r14 },
18423 };
18424 
18425 static int
dissect_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18426 dissect_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18427   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
18428                                                   ett_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14, SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14_sequence_of,
18429                                                   1, maxWLAN_AP_r14, FALSE);
18430 
18431   return offset;
18432 }
18433 
18434 
18435 static const per_sequence_t SupportedChannels_11a_r14_sequence[] = {
18436   { &hf_lpp_ch34_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18437   { &hf_lpp_ch36_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18438   { &hf_lpp_ch38_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18439   { &hf_lpp_ch40_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18440   { &hf_lpp_ch42_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18441   { &hf_lpp_ch44_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18442   { &hf_lpp_ch46_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18443   { &hf_lpp_ch48_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18444   { &hf_lpp_ch52_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18445   { &hf_lpp_ch56_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18446   { &hf_lpp_ch60_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18447   { &hf_lpp_ch64_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18448   { &hf_lpp_ch149_r14       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18449   { &hf_lpp_ch153_r14       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18450   { &hf_lpp_ch157_r14       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18451   { &hf_lpp_ch161_r14       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18452   { NULL, 0, 0, NULL }
18453 };
18454 
18455 static int
dissect_lpp_SupportedChannels_11a_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18456 dissect_lpp_SupportedChannels_11a_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18457   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18458                                    ett_lpp_SupportedChannels_11a_r14, SupportedChannels_11a_r14_sequence);
18459 
18460   return offset;
18461 }
18462 
18463 
18464 static const per_sequence_t SupportedChannels_11bg_r14_sequence[] = {
18465   { &hf_lpp_ch1_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18466   { &hf_lpp_ch2_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18467   { &hf_lpp_ch3_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18468   { &hf_lpp_ch4_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18469   { &hf_lpp_ch5_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18470   { &hf_lpp_ch6_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18471   { &hf_lpp_ch7_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18472   { &hf_lpp_ch8_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18473   { &hf_lpp_ch9_r14         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18474   { &hf_lpp_ch10_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18475   { &hf_lpp_ch11_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18476   { &hf_lpp_ch12_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18477   { &hf_lpp_ch13_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18478   { &hf_lpp_ch14_r14        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
18479   { NULL, 0, 0, NULL }
18480 };
18481 
18482 static int
dissect_lpp_SupportedChannels_11bg_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18483 dissect_lpp_SupportedChannels_11bg_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18484   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18485                                    ett_lpp_SupportedChannels_11bg_r14, SupportedChannels_11bg_r14_sequence);
18486 
18487   return offset;
18488 }
18489 
18490 
18491 static const per_sequence_t WLAN_DataSet_r14_sequence[] = {
18492   { &hf_lpp_wlan_AP_List_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14 },
18493   { &hf_lpp_supportedChannels_11a_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SupportedChannels_11a_r14 },
18494   { &hf_lpp_supportedChannels_11bg_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SupportedChannels_11bg_r14 },
18495   { NULL, 0, 0, NULL }
18496 };
18497 
18498 static int
dissect_lpp_WLAN_DataSet_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18499 dissect_lpp_WLAN_DataSet_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18500   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18501                                    ett_lpp_WLAN_DataSet_r14, WLAN_DataSet_r14_sequence);
18502 
18503   return offset;
18504 }
18505 
18506 
18507 static const per_sequence_t SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14_sequence_of[1] = {
18508   { &hf_lpp_wlan_DataSet_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_DataSet_r14 },
18509 };
18510 
18511 static int
dissect_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18512 dissect_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18513   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
18514                                                   ett_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14, SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14_sequence_of,
18515                                                   1, maxWLAN_DataSets_r14, FALSE);
18516 
18517   return offset;
18518 }
18519 
18520 
18521 static const value_string lpp_T_cause_r13_04_vals[] = {
18522   {   0, "undefined" },
18523   {   1, "requestedADNotAvailable-v1420" },
18524   {   2, "notAllrequestedADAvailable-v1420" },
18525   { 0, NULL }
18526 };
18527 
18528 
18529 static int
dissect_lpp_T_cause_r13_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18530 dissect_lpp_T_cause_r13_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18531   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18532                                      1, NULL, TRUE, 2, NULL);
18533 
18534   return offset;
18535 }
18536 
18537 
18538 static const per_sequence_t WLAN_LocationServerErrorCauses_r13_eag_1_sequence[] = {
18539   { &hf_lpp_apLocationDataUnavailable_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NULL },
18540   { NULL, 0, 0, NULL }
18541 };
18542 
18543 static int
dissect_lpp_WLAN_LocationServerErrorCauses_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18544 dissect_lpp_WLAN_LocationServerErrorCauses_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18545   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, WLAN_LocationServerErrorCauses_r13_eag_1_sequence);
18546 
18547   return offset;
18548 }
18549 
18550 
18551 static const per_sequence_t WLAN_LocationServerErrorCauses_r13_sequence[] = {
18552   { &hf_lpp_cause_r13_04    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_04 },
18553   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_LocationServerErrorCauses_r13_eag_1 },
18554   { NULL, 0, 0, NULL }
18555 };
18556 
18557 static int
dissect_lpp_WLAN_LocationServerErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18558 dissect_lpp_WLAN_LocationServerErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18559   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18560                                    ett_lpp_WLAN_LocationServerErrorCauses_r13, WLAN_LocationServerErrorCauses_r13_sequence);
18561 
18562   return offset;
18563 }
18564 
18565 
18566 static const value_string lpp_T_cause_r13_05_vals[] = {
18567   {   0, "undefined" },
18568   {   1, "requestedMeasurementsNotAvailable" },
18569   {   2, "notAllrequestedMeasurementsPossible" },
18570   { 0, NULL }
18571 };
18572 
18573 
18574 static int
dissect_lpp_T_cause_r13_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18575 dissect_lpp_T_cause_r13_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18576   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18577                                      3, NULL, TRUE, 0, NULL);
18578 
18579   return offset;
18580 }
18581 
18582 
18583 static const per_sequence_t WLAN_TargetDeviceErrorCauses_r13_sequence[] = {
18584   { &hf_lpp_cause_r13_05    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_05 },
18585   { &hf_lpp_wlan_AP_RSSI_MeasurementNotPossible_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
18586   { &hf_lpp_wlan_AP_RTT_MeasurementNotPossible_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
18587   { NULL, 0, 0, NULL }
18588 };
18589 
18590 static int
dissect_lpp_WLAN_TargetDeviceErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18591 dissect_lpp_WLAN_TargetDeviceErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18592   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18593                                    ett_lpp_WLAN_TargetDeviceErrorCauses_r13, WLAN_TargetDeviceErrorCauses_r13_sequence);
18594 
18595   return offset;
18596 }
18597 
18598 
18599 static const value_string lpp_WLAN_Error_r13_vals[] = {
18600   {   0, "locationServerErrorCauses-r13" },
18601   {   1, "targetDeviceErrorCauses-r13" },
18602   { 0, NULL }
18603 };
18604 
18605 static const per_choice_t WLAN_Error_r13_choice[] = {
18606   {   0, &hf_lpp_locationServerErrorCauses_r13_02, ASN1_EXTENSION_ROOT    , dissect_lpp_WLAN_LocationServerErrorCauses_r13 },
18607   {   1, &hf_lpp_targetDeviceErrorCauses_r13_02, ASN1_EXTENSION_ROOT    , dissect_lpp_WLAN_TargetDeviceErrorCauses_r13 },
18608   { 0, NULL, 0, NULL }
18609 };
18610 
18611 static int
dissect_lpp_WLAN_Error_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18612 dissect_lpp_WLAN_Error_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18613   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
18614                                  ett_lpp_WLAN_Error_r13, WLAN_Error_r13_choice,
18615                                  NULL);
18616 
18617   return offset;
18618 }
18619 
18620 
18621 static const per_sequence_t WLAN_ProvideAssistanceData_r14_sequence[] = {
18622   { &hf_lpp_wlan_DataSet_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14 },
18623   { &hf_lpp_wlan_Error_r14  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_WLAN_Error_r13 },
18624   { NULL, 0, 0, NULL }
18625 };
18626 
18627 static int
dissect_lpp_WLAN_ProvideAssistanceData_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18628 dissect_lpp_WLAN_ProvideAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18629   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18630                                    ett_lpp_WLAN_ProvideAssistanceData_r14, WLAN_ProvideAssistanceData_r14_sequence);
18631 
18632   return offset;
18633 }
18634 
18635 
18636 static const per_sequence_t ProvideAssistanceData_r9_IEs_eag_1_sequence[] = {
18637   { &hf_lpp_sensor_ProvideAssistanceData_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_ProvideAssistanceData_r14 },
18638   { &hf_lpp_tbs_ProvideAssistanceData_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TBS_ProvideAssistanceData_r14 },
18639   { &hf_lpp_wlan_ProvideAssistanceData_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_WLAN_ProvideAssistanceData_r14 },
18640   { NULL, 0, 0, NULL }
18641 };
18642 
18643 static int
dissect_lpp_ProvideAssistanceData_r9_IEs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18644 dissect_lpp_ProvideAssistanceData_r9_IEs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18645   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ProvideAssistanceData_r9_IEs_eag_1_sequence);
18646 
18647   return offset;
18648 }
18649 
18650 
18651 
18652 static int
dissect_lpp_NR_DL_PRS_ResourceID_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18653 dissect_lpp_NR_DL_PRS_ResourceID_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18654   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18655                                                             0U, nrMaxNumDL_PRS_ResourcesPerSet_1_r16, NULL, FALSE);
18656 
18657   return offset;
18658 }
18659 
18660 
18661 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16_sequence_of[1] = {
18662   { &hf_lpp_nr_DL_PRS_ResourceID_List_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourceID_r16 },
18663 };
18664 
18665 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18666 dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18667   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
18668                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16, SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16_sequence_of,
18669                                                   1, nrMaxResourceIDs_r16, FALSE);
18670 
18671   return offset;
18672 }
18673 
18674 
18675 
18676 static int
dissect_lpp_NR_DL_PRS_ResourceSetID_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18677 dissect_lpp_NR_DL_PRS_ResourceSetID_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18678   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18679                                                             0U, nrMaxNumDL_PRS_ResourceSetsPerTRP_1_r16, NULL, FALSE);
18680 
18681   return offset;
18682 }
18683 
18684 
18685 static const per_sequence_t DL_PRS_ID_Info_r16_sequence[] = {
18686   { &hf_lpp_dl_PRS_ID_r16   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
18687   { &hf_lpp_nr_DL_PRS_ResourceID_List_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16 },
18688   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
18689   { NULL, 0, 0, NULL }
18690 };
18691 
18692 static int
dissect_lpp_DL_PRS_ID_Info_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18693 dissect_lpp_DL_PRS_ID_Info_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18694   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18695                                    ett_lpp_DL_PRS_ID_Info_r16, DL_PRS_ID_Info_r16_sequence);
18696 
18697   return offset;
18698 }
18699 
18700 
18701 static const value_string lpp_T_dl_PRS_SubcarrierSpacing_r16_vals[] = {
18702   {   0, "kHz15" },
18703   {   1, "kHz30" },
18704   {   2, "kHz60" },
18705   {   3, "kHz120" },
18706   { 0, NULL }
18707 };
18708 
18709 
18710 static int
dissect_lpp_T_dl_PRS_SubcarrierSpacing_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18711 dissect_lpp_T_dl_PRS_SubcarrierSpacing_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18712   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18713                                      4, NULL, TRUE, 0, NULL);
18714 
18715   return offset;
18716 }
18717 
18718 
18719 
18720 static int
dissect_lpp_INTEGER_1_63(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18721 dissect_lpp_INTEGER_1_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18722   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18723                                                             1U, 63U, NULL, FALSE);
18724 
18725   return offset;
18726 }
18727 
18728 
18729 
18730 static int
dissect_lpp_INTEGER_0_2176(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18731 dissect_lpp_INTEGER_0_2176(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18732   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18733                                                             0U, 2176U, NULL, FALSE);
18734 
18735   return offset;
18736 }
18737 
18738 
18739 static const value_string lpp_T_dl_PRS_CombSizeN_r16_vals[] = {
18740   {   0, "n2" },
18741   {   1, "n4" },
18742   {   2, "n6" },
18743   {   3, "n12" },
18744   { 0, NULL }
18745 };
18746 
18747 
18748 static int
dissect_lpp_T_dl_PRS_CombSizeN_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18749 dissect_lpp_T_dl_PRS_CombSizeN_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18750   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18751                                      4, NULL, TRUE, 0, NULL);
18752 
18753   return offset;
18754 }
18755 
18756 
18757 static const value_string lpp_T_dl_PRS_CyclicPrefix_r16_vals[] = {
18758   {   0, "normal" },
18759   {   1, "extended" },
18760   { 0, NULL }
18761 };
18762 
18763 
18764 static int
dissect_lpp_T_dl_PRS_CyclicPrefix_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18765 dissect_lpp_T_dl_PRS_CyclicPrefix_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18766   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
18767                                      2, NULL, TRUE, 0, NULL);
18768 
18769   return offset;
18770 }
18771 
18772 
18773 static const per_sequence_t NR_DL_PRS_PositioningFrequencyLayer_r16_sequence[] = {
18774   { &hf_lpp_dl_PRS_SubcarrierSpacing_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dl_PRS_SubcarrierSpacing_r16 },
18775   { &hf_lpp_dl_PRS_ResourceBandwidth_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_63 },
18776   { &hf_lpp_dl_PRS_StartPRB_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2176 },
18777   { &hf_lpp_dl_PRS_PointA_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueNR_r15 },
18778   { &hf_lpp_dl_PRS_CombSizeN_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dl_PRS_CombSizeN_r16 },
18779   { &hf_lpp_dl_PRS_CyclicPrefix_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dl_PRS_CyclicPrefix_r16 },
18780   { NULL, 0, 0, NULL }
18781 };
18782 
18783 static int
dissect_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18784 dissect_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18785   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18786                                    ett_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16, NR_DL_PRS_PositioningFrequencyLayer_r16_sequence);
18787 
18788   return offset;
18789 }
18790 
18791 
18792 static const per_sequence_t NR_DL_PRS_SFN0_Offset_r16_sequence[] = {
18793   { &hf_lpp_sfn_Offset_r16  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
18794   { &hf_lpp_integerSubframeOffset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
18795   { NULL, 0, 0, NULL }
18796 };
18797 
18798 static int
dissect_lpp_NR_DL_PRS_SFN0_Offset_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18799 dissect_lpp_NR_DL_PRS_SFN0_Offset_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18800   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
18801                                    ett_lpp_NR_DL_PRS_SFN0_Offset_r16, NR_DL_PRS_SFN0_Offset_r16_sequence);
18802 
18803   return offset;
18804 }
18805 
18806 
18807 
18808 static int
dissect_lpp_INTEGER_M3841_3841(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18809 dissect_lpp_INTEGER_M3841_3841(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18810   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18811                                                             -3841, 3841U, NULL, FALSE);
18812 
18813   return offset;
18814 }
18815 
18816 
18817 
18818 static int
dissect_lpp_INTEGER_0_246(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18819 dissect_lpp_INTEGER_0_246(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18820   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18821                                                             0U, 246U, NULL, FALSE);
18822 
18823   return offset;
18824 }
18825 
18826 
18827 
18828 static int
dissect_lpp_INTEGER_0_39(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18829 dissect_lpp_INTEGER_0_39(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18830   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18831                                                             0U, 39U, NULL, FALSE);
18832 
18833   return offset;
18834 }
18835 
18836 
18837 
18838 static int
dissect_lpp_INTEGER_0_79(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18839 dissect_lpp_INTEGER_0_79(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18840   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18841                                                             0U, 79U, NULL, FALSE);
18842 
18843   return offset;
18844 }
18845 
18846 
18847 
18848 static int
dissect_lpp_INTEGER_0_159(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18849 dissect_lpp_INTEGER_0_159(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18850   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18851                                                             0U, 159U, NULL, FALSE);
18852 
18853   return offset;
18854 }
18855 
18856 
18857 
18858 static int
dissect_lpp_INTEGER_0_319(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18859 dissect_lpp_INTEGER_0_319(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18860   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18861                                                             0U, 319U, NULL, FALSE);
18862 
18863   return offset;
18864 }
18865 
18866 
18867 
18868 static int
dissect_lpp_INTEGER_0_639(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18869 dissect_lpp_INTEGER_0_639(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18870   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18871                                                             0U, 639U, NULL, FALSE);
18872 
18873   return offset;
18874 }
18875 
18876 
18877 
18878 static int
dissect_lpp_INTEGER_0_2559(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18879 dissect_lpp_INTEGER_0_2559(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18880   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18881                                                             0U, 2559U, NULL, FALSE);
18882 
18883   return offset;
18884 }
18885 
18886 
18887 
18888 static int
dissect_lpp_INTEGER_0_5119(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18889 dissect_lpp_INTEGER_0_5119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18890   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18891                                                             0U, 5119U, NULL, FALSE);
18892 
18893   return offset;
18894 }
18895 
18896 
18897 
18898 static int
dissect_lpp_INTEGER_0_10239(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18899 dissect_lpp_INTEGER_0_10239(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18900   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18901                                                             0U, 10239U, NULL, FALSE);
18902 
18903   return offset;
18904 }
18905 
18906 
18907 static const value_string lpp_T_scs15_r16_vals[] = {
18908   {   0, "n4-r16" },
18909   {   1, "n5-r16" },
18910   {   2, "n8-r16" },
18911   {   3, "n10-r16" },
18912   {   4, "n16-r16" },
18913   {   5, "n20-r16" },
18914   {   6, "n32-r16" },
18915   {   7, "n40-r16" },
18916   {   8, "n64-r16" },
18917   {   9, "n80-r16" },
18918   {  10, "n160-r16" },
18919   {  11, "n320-r16" },
18920   {  12, "n640-r16" },
18921   {  13, "n1280-r16" },
18922   {  14, "n2560-r16" },
18923   {  15, "n5120-r16" },
18924   {  16, "n10240-r16" },
18925   { 0, NULL }
18926 };
18927 
18928 static const per_choice_t T_scs15_r16_choice[] = {
18929   {   0, &hf_lpp_n4_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_3 },
18930   {   1, &hf_lpp_n5_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_4 },
18931   {   2, &hf_lpp_n8_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_7 },
18932   {   3, &hf_lpp_n10_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_9 },
18933   {   4, &hf_lpp_n16_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_15 },
18934   {   5, &hf_lpp_n20_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_19 },
18935   {   6, &hf_lpp_n32_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_31 },
18936   {   7, &hf_lpp_n40_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_39 },
18937   {   8, &hf_lpp_n64_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_63 },
18938   {   9, &hf_lpp_n80_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_79 },
18939   {  10, &hf_lpp_n160_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_159 },
18940   {  11, &hf_lpp_n320_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_319 },
18941   {  12, &hf_lpp_n640_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_639 },
18942   {  13, &hf_lpp_n1280_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1279 },
18943   {  14, &hf_lpp_n2560_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2559 },
18944   {  15, &hf_lpp_n5120_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_5119 },
18945   {  16, &hf_lpp_n10240_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_10239 },
18946   { 0, NULL, 0, NULL }
18947 };
18948 
18949 static int
dissect_lpp_T_scs15_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18950 dissect_lpp_T_scs15_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18951   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
18952                                  ett_lpp_T_scs15_r16, T_scs15_r16_choice,
18953                                  NULL);
18954 
18955   return offset;
18956 }
18957 
18958 
18959 
18960 static int
dissect_lpp_INTEGER_0_20479(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)18961 dissect_lpp_INTEGER_0_20479(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18962   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
18963                                                             0U, 20479U, NULL, FALSE);
18964 
18965   return offset;
18966 }
18967 
18968 
18969 static const value_string lpp_T_scs30_r16_vals[] = {
18970   {   0, "n8-r16" },
18971   {   1, "n10-r16" },
18972   {   2, "n16-r16" },
18973   {   3, "n20-r16" },
18974   {   4, "n32-r16" },
18975   {   5, "n40-r16" },
18976   {   6, "n64-r16" },
18977   {   7, "n80-r16" },
18978   {   8, "n128-r16" },
18979   {   9, "n160-r16" },
18980   {  10, "n320-r16" },
18981   {  11, "n640-r16" },
18982   {  12, "n1280-r16" },
18983   {  13, "n2560-r16" },
18984   {  14, "n5120-r16" },
18985   {  15, "n10240-r16" },
18986   {  16, "n20480-r16" },
18987   { 0, NULL }
18988 };
18989 
18990 static const per_choice_t T_scs30_r16_choice[] = {
18991   {   0, &hf_lpp_n8_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_7 },
18992   {   1, &hf_lpp_n10_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_9 },
18993   {   2, &hf_lpp_n16_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_15 },
18994   {   3, &hf_lpp_n20_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_19 },
18995   {   4, &hf_lpp_n32_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_31 },
18996   {   5, &hf_lpp_n40_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_39 },
18997   {   6, &hf_lpp_n64_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_63 },
18998   {   7, &hf_lpp_n80_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_79 },
18999   {   8, &hf_lpp_n128_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_127 },
19000   {   9, &hf_lpp_n160_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_159 },
19001   {  10, &hf_lpp_n320_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_319 },
19002   {  11, &hf_lpp_n640_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_639 },
19003   {  12, &hf_lpp_n1280_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1279 },
19004   {  13, &hf_lpp_n2560_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2559 },
19005   {  14, &hf_lpp_n5120_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_5119 },
19006   {  15, &hf_lpp_n10240_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_10239 },
19007   {  16, &hf_lpp_n20480_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_20479 },
19008   { 0, NULL, 0, NULL }
19009 };
19010 
19011 static int
dissect_lpp_T_scs30_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19012 dissect_lpp_T_scs30_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19013   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19014                                  ett_lpp_T_scs30_r16, T_scs30_r16_choice,
19015                                  NULL);
19016 
19017   return offset;
19018 }
19019 
19020 
19021 
19022 static int
dissect_lpp_INTEGER_0_40959(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19023 dissect_lpp_INTEGER_0_40959(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19024   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19025                                                             0U, 40959U, NULL, FALSE);
19026 
19027   return offset;
19028 }
19029 
19030 
19031 static const value_string lpp_T_scs60_r16_vals[] = {
19032   {   0, "n16-r16" },
19033   {   1, "n20-r16" },
19034   {   2, "n32-r16" },
19035   {   3, "n40-r16" },
19036   {   4, "n64-r16" },
19037   {   5, "n80-r16" },
19038   {   6, "n128-r16" },
19039   {   7, "n160-r16" },
19040   {   8, "n256-r16" },
19041   {   9, "n320-r16" },
19042   {  10, "n640-r16" },
19043   {  11, "n1280-r16" },
19044   {  12, "n2560-r16" },
19045   {  13, "n5120-r16" },
19046   {  14, "n10240-r16" },
19047   {  15, "n20480-r16" },
19048   {  16, "n40960-r16" },
19049   { 0, NULL }
19050 };
19051 
19052 static const per_choice_t T_scs60_r16_choice[] = {
19053   {   0, &hf_lpp_n16_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_15 },
19054   {   1, &hf_lpp_n20_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_19 },
19055   {   2, &hf_lpp_n32_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_31 },
19056   {   3, &hf_lpp_n40_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_39 },
19057   {   4, &hf_lpp_n64_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_63 },
19058   {   5, &hf_lpp_n80_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_79 },
19059   {   6, &hf_lpp_n128_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_127 },
19060   {   7, &hf_lpp_n160_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_159 },
19061   {   8, &hf_lpp_n256_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_255 },
19062   {   9, &hf_lpp_n320_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_319 },
19063   {  10, &hf_lpp_n640_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_639 },
19064   {  11, &hf_lpp_n1280_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1279 },
19065   {  12, &hf_lpp_n2560_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2559 },
19066   {  13, &hf_lpp_n5120_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_5119 },
19067   {  14, &hf_lpp_n10240_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_10239 },
19068   {  15, &hf_lpp_n20480_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_20479 },
19069   {  16, &hf_lpp_n40960_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_40959 },
19070   { 0, NULL, 0, NULL }
19071 };
19072 
19073 static int
dissect_lpp_T_scs60_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19074 dissect_lpp_T_scs60_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19075   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19076                                  ett_lpp_T_scs60_r16, T_scs60_r16_choice,
19077                                  NULL);
19078 
19079   return offset;
19080 }
19081 
19082 
19083 
19084 static int
dissect_lpp_INTEGER_0_81919(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19085 dissect_lpp_INTEGER_0_81919(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19086   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19087                                                             0U, 81919U, NULL, FALSE);
19088 
19089   return offset;
19090 }
19091 
19092 
19093 static const value_string lpp_T_scs120_r16_vals[] = {
19094   {   0, "n32-r16" },
19095   {   1, "n40-r16" },
19096   {   2, "n64-r16" },
19097   {   3, "n80-r16" },
19098   {   4, "n128-r16" },
19099   {   5, "n160-r16" },
19100   {   6, "n256-r16" },
19101   {   7, "n320-r16" },
19102   {   8, "n512-r16" },
19103   {   9, "n640-r16" },
19104   {  10, "n1280-r16" },
19105   {  11, "n2560-r16" },
19106   {  12, "n5120-r16" },
19107   {  13, "n10240-r16" },
19108   {  14, "n20480-r16" },
19109   {  15, "n40960-r16" },
19110   {  16, "n81920-r16" },
19111   { 0, NULL }
19112 };
19113 
19114 static const per_choice_t T_scs120_r16_choice[] = {
19115   {   0, &hf_lpp_n32_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_31 },
19116   {   1, &hf_lpp_n40_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_39 },
19117   {   2, &hf_lpp_n64_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_63 },
19118   {   3, &hf_lpp_n80_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_79 },
19119   {   4, &hf_lpp_n128_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_127 },
19120   {   5, &hf_lpp_n160_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_159 },
19121   {   6, &hf_lpp_n256_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_255 },
19122   {   7, &hf_lpp_n320_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_319 },
19123   {   8, &hf_lpp_n512_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_511 },
19124   {   9, &hf_lpp_n640_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_639 },
19125   {  10, &hf_lpp_n1280_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1279 },
19126   {  11, &hf_lpp_n2560_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2559 },
19127   {  12, &hf_lpp_n5120_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_5119 },
19128   {  13, &hf_lpp_n10240_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_10239 },
19129   {  14, &hf_lpp_n20480_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_20479 },
19130   {  15, &hf_lpp_n40960_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_40959 },
19131   {  16, &hf_lpp_n81920_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_81919 },
19132   { 0, NULL, 0, NULL }
19133 };
19134 
19135 static int
dissect_lpp_T_scs120_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19136 dissect_lpp_T_scs120_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19137   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19138                                  ett_lpp_T_scs120_r16, T_scs120_r16_choice,
19139                                  NULL);
19140 
19141   return offset;
19142 }
19143 
19144 
19145 static const value_string lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16_vals[] = {
19146   {   0, "scs15-r16" },
19147   {   1, "scs30-r16" },
19148   {   2, "scs60-r16" },
19149   {   3, "scs120-r16" },
19150   { 0, NULL }
19151 };
19152 
19153 static const per_choice_t NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16_choice[] = {
19154   {   0, &hf_lpp_scs15_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_T_scs15_r16 },
19155   {   1, &hf_lpp_scs30_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_T_scs30_r16 },
19156   {   2, &hf_lpp_scs60_r16       , ASN1_EXTENSION_ROOT    , dissect_lpp_T_scs60_r16 },
19157   {   3, &hf_lpp_scs120_r16      , ASN1_EXTENSION_ROOT    , dissect_lpp_T_scs120_r16 },
19158   { 0, NULL, 0, NULL }
19159 };
19160 
19161 static int
dissect_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19162 dissect_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19163   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19164                                  ett_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16, NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16_choice,
19165                                  NULL);
19166 
19167   return offset;
19168 }
19169 
19170 
19171 static const value_string lpp_T_dl_PRS_ResourceRepetitionFactor_r16_vals[] = {
19172   {   0, "n2" },
19173   {   1, "n4" },
19174   {   2, "n6" },
19175   {   3, "n8" },
19176   {   4, "n16" },
19177   {   5, "n32" },
19178   { 0, NULL }
19179 };
19180 
19181 
19182 static int
dissect_lpp_T_dl_PRS_ResourceRepetitionFactor_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19183 dissect_lpp_T_dl_PRS_ResourceRepetitionFactor_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19184   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19185                                      6, NULL, TRUE, 0, NULL);
19186 
19187   return offset;
19188 }
19189 
19190 
19191 static const value_string lpp_T_dl_PRS_ResourceTimeGap_r16_vals[] = {
19192   {   0, "s1" },
19193   {   1, "s2" },
19194   {   2, "s4" },
19195   {   3, "s8" },
19196   {   4, "s16" },
19197   {   5, "s32" },
19198   { 0, NULL }
19199 };
19200 
19201 
19202 static int
dissect_lpp_T_dl_PRS_ResourceTimeGap_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19203 dissect_lpp_T_dl_PRS_ResourceTimeGap_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19204   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19205                                      6, NULL, TRUE, 0, NULL);
19206 
19207   return offset;
19208 }
19209 
19210 
19211 static const value_string lpp_T_dl_PRS_NumSymbols_r16_vals[] = {
19212   {   0, "n2" },
19213   {   1, "n4" },
19214   {   2, "n6" },
19215   {   3, "n12" },
19216   { 0, NULL }
19217 };
19218 
19219 
19220 static int
dissect_lpp_T_dl_PRS_NumSymbols_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19221 dissect_lpp_T_dl_PRS_NumSymbols_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19222   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19223                                      4, NULL, TRUE, 0, NULL);
19224 
19225   return offset;
19226 }
19227 
19228 
19229 static const value_string lpp_T_dl_prs_MutingBitRepetitionFactor_r16_vals[] = {
19230   {   0, "n1" },
19231   {   1, "n2" },
19232   {   2, "n4" },
19233   {   3, "n8" },
19234   { 0, NULL }
19235 };
19236 
19237 
19238 static int
dissect_lpp_T_dl_prs_MutingBitRepetitionFactor_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19239 dissect_lpp_T_dl_prs_MutingBitRepetitionFactor_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19240   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19241                                      4, NULL, TRUE, 0, NULL);
19242 
19243   return offset;
19244 }
19245 
19246 
19247 static const value_string lpp_NR_MutingPattern_r16_vals[] = {
19248   {   0, "po2-r16" },
19249   {   1, "po4-r16" },
19250   {   2, "po6-r16" },
19251   {   3, "po8-r16" },
19252   {   4, "po16-r16" },
19253   {   5, "po32-r16" },
19254   { 0, NULL }
19255 };
19256 
19257 static const per_choice_t NR_MutingPattern_r16_choice[] = {
19258   {   0, &hf_lpp_po2_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_2 },
19259   {   1, &hf_lpp_po4_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_4 },
19260   {   2, &hf_lpp_po6_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_6 },
19261   {   3, &hf_lpp_po8_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
19262   {   4, &hf_lpp_po16_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_16 },
19263   {   5, &hf_lpp_po32_r16        , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_32 },
19264   { 0, NULL, 0, NULL }
19265 };
19266 
19267 static int
dissect_lpp_NR_MutingPattern_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19268 dissect_lpp_NR_MutingPattern_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19269   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19270                                  ett_lpp_NR_MutingPattern_r16, NR_MutingPattern_r16_choice,
19271                                  NULL);
19272 
19273   return offset;
19274 }
19275 
19276 
19277 static const per_sequence_t DL_PRS_MutingOption1_r16_sequence[] = {
19278   { &hf_lpp_dl_prs_MutingBitRepetitionFactor_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_dl_prs_MutingBitRepetitionFactor_r16 },
19279   { &hf_lpp_nr_option1_muting_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_MutingPattern_r16 },
19280   { NULL, 0, 0, NULL }
19281 };
19282 
19283 static int
dissect_lpp_DL_PRS_MutingOption1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19284 dissect_lpp_DL_PRS_MutingOption1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19285   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19286                                    ett_lpp_DL_PRS_MutingOption1_r16, DL_PRS_MutingOption1_r16_sequence);
19287 
19288   return offset;
19289 }
19290 
19291 
19292 static const per_sequence_t DL_PRS_MutingOption2_r16_sequence[] = {
19293   { &hf_lpp_nr_option2_muting_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_MutingPattern_r16 },
19294   { NULL, 0, 0, NULL }
19295 };
19296 
19297 static int
dissect_lpp_DL_PRS_MutingOption2_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19298 dissect_lpp_DL_PRS_MutingOption2_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19299   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19300                                    ett_lpp_DL_PRS_MutingOption2_r16, DL_PRS_MutingOption2_r16_sequence);
19301 
19302   return offset;
19303 }
19304 
19305 
19306 
19307 static int
dissect_lpp_INTEGER_M60_50(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19308 dissect_lpp_INTEGER_M60_50(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19309   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19310                                                             -60, 50U, NULL, FALSE);
19311 
19312   return offset;
19313 }
19314 
19315 
19316 
19317 static int
dissect_lpp_INTEGER_0_5(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19318 dissect_lpp_INTEGER_0_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19319   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19320                                                             0U, 5U, NULL, FALSE);
19321 
19322   return offset;
19323 }
19324 
19325 
19326 
19327 static int
dissect_lpp_INTEGER_0_11(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19328 dissect_lpp_INTEGER_0_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19329   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19330                                                             0U, 11U, NULL, FALSE);
19331 
19332   return offset;
19333 }
19334 
19335 
19336 static const value_string lpp_T_dl_PRS_CombSizeN_AndReOffset_r16_vals[] = {
19337   {   0, "n2-r16" },
19338   {   1, "n4-r16" },
19339   {   2, "n6-r16" },
19340   {   3, "n12-r16" },
19341   { 0, NULL }
19342 };
19343 
19344 static const per_choice_t T_dl_PRS_CombSizeN_AndReOffset_r16_choice[] = {
19345   {   0, &hf_lpp_n2_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1 },
19346   {   1, &hf_lpp_n4_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_3 },
19347   {   2, &hf_lpp_n6_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_5 },
19348   {   3, &hf_lpp_n12_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_11 },
19349   { 0, NULL, 0, NULL }
19350 };
19351 
19352 static int
dissect_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19353 dissect_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19354   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19355                                  ett_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16, T_dl_PRS_CombSizeN_AndReOffset_r16_choice,
19356                                  NULL);
19357 
19358   return offset;
19359 }
19360 
19361 
19362 
19363 static int
dissect_lpp_INTEGER_0_nrMaxResourceOffsetValue_1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19364 dissect_lpp_INTEGER_0_nrMaxResourceOffsetValue_1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19365   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19366                                                             0U, nrMaxResourceOffsetValue_1_r16, NULL, FALSE);
19367 
19368   return offset;
19369 }
19370 
19371 
19372 
19373 static int
dissect_lpp_INTEGER_0_12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19374 dissect_lpp_INTEGER_0_12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19375   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19376                                                             0U, 12U, NULL, FALSE);
19377 
19378   return offset;
19379 }
19380 
19381 
19382 static const value_string lpp_T_rs_Type_r16_vals[] = {
19383   {   0, "typeC" },
19384   {   1, "typeD" },
19385   {   2, "typeC-plus-typeD" },
19386   { 0, NULL }
19387 };
19388 
19389 
19390 static int
dissect_lpp_T_rs_Type_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19391 dissect_lpp_T_rs_Type_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19392   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19393                                      3, NULL, FALSE, 0, NULL);
19394 
19395   return offset;
19396 }
19397 
19398 
19399 static const per_sequence_t T_ssb_r16_sequence[] = {
19400   { &hf_lpp_pci_r16         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_PhysCellID_r16 },
19401   { &hf_lpp_ssb_Index_r16   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
19402   { &hf_lpp_rs_Type_r16     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_rs_Type_r16 },
19403   { NULL, 0, 0, NULL }
19404 };
19405 
19406 static int
dissect_lpp_T_ssb_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19407 dissect_lpp_T_ssb_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19408   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19409                                    ett_lpp_T_ssb_r16, T_ssb_r16_sequence);
19410 
19411   return offset;
19412 }
19413 
19414 
19415 static const per_sequence_t T_dl_PRS_r16_sequence[] = {
19416   { &hf_lpp_qcl_DL_PRS_ResourceID_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourceID_r16 },
19417   { &hf_lpp_qcl_DL_PRS_ResourceSetID_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
19418   { NULL, 0, 0, NULL }
19419 };
19420 
19421 static int
dissect_lpp_T_dl_PRS_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19422 dissect_lpp_T_dl_PRS_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19423   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19424                                    ett_lpp_T_dl_PRS_r16, T_dl_PRS_r16_sequence);
19425 
19426   return offset;
19427 }
19428 
19429 
19430 static const value_string lpp_DL_PRS_QCL_Info_r16_vals[] = {
19431   {   0, "ssb-r16" },
19432   {   1, "dl-PRS-r16" },
19433   { 0, NULL }
19434 };
19435 
19436 static const per_choice_t DL_PRS_QCL_Info_r16_choice[] = {
19437   {   0, &hf_lpp_ssb_r16         , ASN1_NO_EXTENSIONS     , dissect_lpp_T_ssb_r16 },
19438   {   1, &hf_lpp_dl_PRS_r16      , ASN1_NO_EXTENSIONS     , dissect_lpp_T_dl_PRS_r16 },
19439   { 0, NULL, 0, NULL }
19440 };
19441 
19442 static int
dissect_lpp_DL_PRS_QCL_Info_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19443 dissect_lpp_DL_PRS_QCL_Info_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19444   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19445                                  ett_lpp_DL_PRS_QCL_Info_r16, DL_PRS_QCL_Info_r16_choice,
19446                                  NULL);
19447 
19448   return offset;
19449 }
19450 
19451 
19452 static const per_sequence_t NR_DL_PRS_Resource_r16_sequence[] = {
19453   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourceID_r16 },
19454   { &hf_lpp_dl_PRS_SequenceID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
19455   { &hf_lpp_dl_PRS_CombSizeN_AndReOffset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16 },
19456   { &hf_lpp_dl_PRS_ResourceSlotOffset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_nrMaxResourceOffsetValue_1_r16 },
19457   { &hf_lpp_dl_PRS_ResourceSymbolOffset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_12 },
19458   { &hf_lpp_dl_PRS_QCL_Info_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_DL_PRS_QCL_Info_r16 },
19459   { NULL, 0, 0, NULL }
19460 };
19461 
19462 static int
dissect_lpp_NR_DL_PRS_Resource_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19463 dissect_lpp_NR_DL_PRS_Resource_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19464   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19465                                    ett_lpp_NR_DL_PRS_Resource_r16, NR_DL_PRS_Resource_r16_sequence);
19466 
19467   return offset;
19468 }
19469 
19470 
19471 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16_sequence_of[1] = {
19472   { &hf_lpp_dl_PRS_ResourceList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_Resource_r16 },
19473 };
19474 
19475 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19476 dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19477   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19478                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16, SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16_sequence_of,
19479                                                   1, nrMaxResourcesPerSet_r16, FALSE);
19480 
19481   return offset;
19482 }
19483 
19484 
19485 static const per_sequence_t NR_DL_PRS_ResourceSet_r16_sequence[] = {
19486   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
19487   { &hf_lpp_dl_PRS_Periodicity_and_ResourceSetSlotOffset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16 },
19488   { &hf_lpp_dl_PRS_ResourceRepetitionFactor_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_dl_PRS_ResourceRepetitionFactor_r16 },
19489   { &hf_lpp_dl_PRS_ResourceTimeGap_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_dl_PRS_ResourceTimeGap_r16 },
19490   { &hf_lpp_dl_PRS_NumSymbols_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_dl_PRS_NumSymbols_r16 },
19491   { &hf_lpp_dl_PRS_MutingOption1_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_DL_PRS_MutingOption1_r16 },
19492   { &hf_lpp_dl_PRS_MutingOption2_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_DL_PRS_MutingOption2_r16 },
19493   { &hf_lpp_dl_PRS_ResourcePower_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M60_50 },
19494   { &hf_lpp_dl_PRS_ResourceList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16 },
19495   { NULL, 0, 0, NULL }
19496 };
19497 
19498 static int
dissect_lpp_NR_DL_PRS_ResourceSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19499 dissect_lpp_NR_DL_PRS_ResourceSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19500   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19501                                    ett_lpp_NR_DL_PRS_ResourceSet_r16, NR_DL_PRS_ResourceSet_r16_sequence);
19502 
19503   return offset;
19504 }
19505 
19506 
19507 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16_sequence_of[1] = {
19508   { &hf_lpp_nr_DL_PRS_ResourceSetList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_ResourceSet_r16 },
19509 };
19510 
19511 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19512 dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19513   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19514                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16, SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16_sequence_of,
19515                                                   1, nrMaxSetsPerTrpPerFreqLayer_r16, FALSE);
19516 
19517   return offset;
19518 }
19519 
19520 
19521 static const per_sequence_t NR_DL_PRS_Info_r16_sequence[] = {
19522   { &hf_lpp_nr_DL_PRS_ResourceSetList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16 },
19523   { NULL, 0, 0, NULL }
19524 };
19525 
19526 static int
dissect_lpp_NR_DL_PRS_Info_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19527 dissect_lpp_NR_DL_PRS_Info_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19528   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19529                                    ett_lpp_NR_DL_PRS_Info_r16, NR_DL_PRS_Info_r16_sequence);
19530 
19531   return offset;
19532 }
19533 
19534 
19535 static const value_string lpp_T_prs_OnlyTP_r16_vals[] = {
19536   {   0, "true" },
19537   { 0, NULL }
19538 };
19539 
19540 
19541 static int
dissect_lpp_T_prs_OnlyTP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19542 dissect_lpp_T_prs_OnlyTP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19543   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19544                                      1, NULL, FALSE, 0, NULL);
19545 
19546   return offset;
19547 }
19548 
19549 
19550 static const per_sequence_t NR_DL_PRS_AssistanceDataPerTRP_r16_eag_1_sequence[] = {
19551   { &hf_lpp_prs_OnlyTP_r16  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_prs_OnlyTP_r16 },
19552   { NULL, 0, 0, NULL }
19553 };
19554 
19555 static int
dissect_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19556 dissect_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19557   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, NR_DL_PRS_AssistanceDataPerTRP_r16_eag_1_sequence);
19558 
19559   return offset;
19560 }
19561 
19562 
19563 static const per_sequence_t NR_DL_PRS_AssistanceDataPerTRP_r16_sequence[] = {
19564   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
19565   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
19566   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
19567   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
19568   { &hf_lpp_nr_DL_PRS_SFN0_Offset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_SFN0_Offset_r16 },
19569   { &hf_lpp_nr_DL_PRS_ExpectedRSTD_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M3841_3841 },
19570   { &hf_lpp_nr_DL_PRS_ExpectedRSTD_Uncertainty_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_246 },
19571   { &hf_lpp_nr_DL_PRS_Info_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_Info_r16 },
19572   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16_eag_1 },
19573   { NULL, 0, 0, NULL }
19574 };
19575 
19576 static int
dissect_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19577 dissect_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19578   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19579                                    ett_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16, NR_DL_PRS_AssistanceDataPerTRP_r16_sequence);
19580 
19581   return offset;
19582 }
19583 
19584 
19585 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16_sequence_of[1] = {
19586   { &hf_lpp_nr_DL_PRS_AssistanceDataPerFreq_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16 },
19587 };
19588 
19589 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19590 dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19591   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19592                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16, SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16_sequence_of,
19593                                                   1, nrMaxTRPsPerFreq_r16, FALSE);
19594 
19595   return offset;
19596 }
19597 
19598 
19599 static const per_sequence_t NR_DL_PRS_AssistanceDataPerFreq_r16_sequence[] = {
19600   { &hf_lpp_nr_DL_PRS_PositioningFrequencyLayer_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16 },
19601   { &hf_lpp_nr_DL_PRS_AssistanceDataPerFreq_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16 },
19602   { NULL, 0, 0, NULL }
19603 };
19604 
19605 static int
dissect_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19606 dissect_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19607   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19608                                    ett_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16, NR_DL_PRS_AssistanceDataPerFreq_r16_sequence);
19609 
19610   return offset;
19611 }
19612 
19613 
19614 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16_sequence_of[1] = {
19615   { &hf_lpp_nr_DL_PRS_AssistanceDataList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16 },
19616 };
19617 
19618 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19619 dissect_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19620   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19621                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16, SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16_sequence_of,
19622                                                   1, nrMaxFreqLayers_r16, FALSE);
19623 
19624   return offset;
19625 }
19626 
19627 
19628 static const value_string lpp_T_ssb_periodicity_r16_vals[] = {
19629   {   0, "ms5" },
19630   {   1, "ms10" },
19631   {   2, "ms20" },
19632   {   3, "ms40" },
19633   {   4, "ms80" },
19634   {   5, "ms160" },
19635   { 0, NULL }
19636 };
19637 
19638 
19639 static int
dissect_lpp_T_ssb_periodicity_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19640 dissect_lpp_T_ssb_periodicity_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19641   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19642                                      6, NULL, TRUE, 0, NULL);
19643 
19644   return offset;
19645 }
19646 
19647 
19648 static const value_string lpp_T_ssb_PositionsInBurst_r16_vals[] = {
19649   {   0, "shortBitmap-r16" },
19650   {   1, "mediumBitmap-r16" },
19651   {   2, "longBitmap-r16" },
19652   { 0, NULL }
19653 };
19654 
19655 static const per_choice_t T_ssb_PositionsInBurst_r16_choice[] = {
19656   {   0, &hf_lpp_shortBitmap_r16 , ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_4 },
19657   {   1, &hf_lpp_mediumBitmap_r16, ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_8 },
19658   {   2, &hf_lpp_longBitmap_r16  , ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_64 },
19659   { 0, NULL, 0, NULL }
19660 };
19661 
19662 static int
dissect_lpp_T_ssb_PositionsInBurst_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19663 dissect_lpp_T_ssb_PositionsInBurst_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19664   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19665                                  ett_lpp_T_ssb_PositionsInBurst_r16, T_ssb_PositionsInBurst_r16_choice,
19666                                  NULL);
19667 
19668   return offset;
19669 }
19670 
19671 
19672 static const value_string lpp_T_ssb_SubcarrierSpacing_r16_vals[] = {
19673   {   0, "kHz15" },
19674   {   1, "kHz30" },
19675   {   2, "kHz60" },
19676   {   3, "kHz120" },
19677   {   4, "kHz240" },
19678   { 0, NULL }
19679 };
19680 
19681 
19682 static int
dissect_lpp_T_ssb_SubcarrierSpacing_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19683 dissect_lpp_T_ssb_SubcarrierSpacing_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19684   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19685                                      5, NULL, TRUE, 0, NULL);
19686 
19687   return offset;
19688 }
19689 
19690 
19691 static const per_sequence_t NR_SSB_Config_r16_sequence[] = {
19692   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_PhysCellID_r16 },
19693   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueNR_r15 },
19694   { &hf_lpp_ss_PBCH_BlockPower_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M60_50 },
19695   { &hf_lpp_halfFrameIndex_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
19696   { &hf_lpp_ssb_periodicity_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_ssb_periodicity_r16 },
19697   { &hf_lpp_ssb_PositionsInBurst_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_ssb_PositionsInBurst_r16 },
19698   { &hf_lpp_ssb_SubcarrierSpacing_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_ssb_SubcarrierSpacing_r16 },
19699   { &hf_lpp_sfn_SSB_Offset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
19700   { NULL, 0, 0, NULL }
19701 };
19702 
19703 static int
dissect_lpp_NR_SSB_Config_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19704 dissect_lpp_NR_SSB_Config_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19705   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19706                                    ett_lpp_NR_SSB_Config_r16, NR_SSB_Config_r16_sequence);
19707 
19708   return offset;
19709 }
19710 
19711 
19712 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16_sequence_of[1] = {
19713   { &hf_lpp_nr_SSB_Config_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_SSB_Config_r16 },
19714 };
19715 
19716 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19717 dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19718   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19719                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16, SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16_sequence_of,
19720                                                   1, nrMaxTRPs_r16, FALSE);
19721 
19722   return offset;
19723 }
19724 
19725 
19726 static const per_sequence_t NR_DL_PRS_AssistanceData_r16_sequence[] = {
19727   { &hf_lpp_nr_DL_PRS_ReferenceInfo_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_ID_Info_r16 },
19728   { &hf_lpp_nr_DL_PRS_AssistanceDataList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16 },
19729   { &hf_lpp_nr_SSB_Config_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16 },
19730   { NULL, 0, 0, NULL }
19731 };
19732 
19733 static int
dissect_lpp_NR_DL_PRS_AssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19734 dissect_lpp_NR_DL_PRS_AssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19735   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19736                                    ett_lpp_NR_DL_PRS_AssistanceData_r16, NR_DL_PRS_AssistanceData_r16_sequence);
19737 
19738   return offset;
19739 }
19740 
19741 
19742 
19743 static int
dissect_lpp_INTEGER_0_nrMaxFreqLayers_1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19744 dissect_lpp_INTEGER_0_nrMaxFreqLayers_1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19745   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19746                                                             0U, nrMaxFreqLayers_1_r16, NULL, FALSE);
19747 
19748   return offset;
19749 }
19750 
19751 
19752 
19753 static int
dissect_lpp_INTEGER_0_nrMaxTRPsPerFreq_1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19754 dissect_lpp_INTEGER_0_nrMaxTRPsPerFreq_1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19755   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19756                                                             0U, nrMaxTRPsPerFreq_1_r16, NULL, FALSE);
19757 
19758   return offset;
19759 }
19760 
19761 
19762 
19763 static int
dissect_lpp_INTEGER_0_nrMaxSetsPerTrpPerFreqLayer_1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19764 dissect_lpp_INTEGER_0_nrMaxSetsPerTrpPerFreqLayer_1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19765   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19766                                                             0U, nrMaxSetsPerTrpPerFreqLayer_1_r16, NULL, FALSE);
19767 
19768   return offset;
19769 }
19770 
19771 
19772 
19773 static int
dissect_lpp_INTEGER_0_nrMaxNumDL_PRS_ResourcesPerSet_1_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19774 dissect_lpp_INTEGER_0_nrMaxNumDL_PRS_ResourcesPerSet_1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19775   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
19776                                                             0U, nrMaxNumDL_PRS_ResourcesPerSet_1_r16, NULL, FALSE);
19777 
19778   return offset;
19779 }
19780 
19781 
19782 static const per_sequence_t DL_SelectedPRS_ResourceIndex_r16_sequence[] = {
19783   { &hf_lpp_nr_DL_SelectedPRS_ResourceIdIndex_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_nrMaxNumDL_PRS_ResourcesPerSet_1_r16 },
19784   { NULL, 0, 0, NULL }
19785 };
19786 
19787 static int
dissect_lpp_DL_SelectedPRS_ResourceIndex_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19788 dissect_lpp_DL_SelectedPRS_ResourceIndex_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19789   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19790                                    ett_lpp_DL_SelectedPRS_ResourceIndex_r16, DL_SelectedPRS_ResourceIndex_r16_sequence);
19791 
19792   return offset;
19793 }
19794 
19795 
19796 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16_sequence_of[1] = {
19797   { &hf_lpp_dl_SelectedPRS_ResourceIndexList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_SelectedPRS_ResourceIndex_r16 },
19798 };
19799 
19800 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19801 dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19802   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19803                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16, SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16_sequence_of,
19804                                                   1, nrMaxResourcesPerSet_r16, FALSE);
19805 
19806   return offset;
19807 }
19808 
19809 
19810 static const per_sequence_t DL_SelectedPRS_ResourceSetIndex_r16_sequence[] = {
19811   { &hf_lpp_nr_DL_SelectedPRS_ResourceSetIndex_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_nrMaxSetsPerTrpPerFreqLayer_1_r16 },
19812   { &hf_lpp_dl_SelectedPRS_ResourceIndexList_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16 },
19813   { NULL, 0, 0, NULL }
19814 };
19815 
19816 static int
dissect_lpp_DL_SelectedPRS_ResourceSetIndex_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19817 dissect_lpp_DL_SelectedPRS_ResourceSetIndex_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19818   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19819                                    ett_lpp_DL_SelectedPRS_ResourceSetIndex_r16, DL_SelectedPRS_ResourceSetIndex_r16_sequence);
19820 
19821   return offset;
19822 }
19823 
19824 
19825 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16_sequence_of[1] = {
19826   { &hf_lpp_dl_SelectedPRS_ResourceSetIndexList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_SelectedPRS_ResourceSetIndex_r16 },
19827 };
19828 
19829 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19830 dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19831   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19832                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16, SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16_sequence_of,
19833                                                   1, nrMaxSetsPerTrpPerFreqLayer_r16, FALSE);
19834 
19835   return offset;
19836 }
19837 
19838 
19839 static const per_sequence_t NR_SelectedDL_PRS_IndexPerTRP_r16_sequence[] = {
19840   { &hf_lpp_nr_SelectedTRP_Index_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_nrMaxTRPsPerFreq_1_r16 },
19841   { &hf_lpp_dl_SelectedPRS_ResourceSetIndexList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16 },
19842   { NULL, 0, 0, NULL }
19843 };
19844 
19845 static int
dissect_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19846 dissect_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19847   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19848                                    ett_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16, NR_SelectedDL_PRS_IndexPerTRP_r16_sequence);
19849 
19850   return offset;
19851 }
19852 
19853 
19854 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16_sequence_of[1] = {
19855   { &hf_lpp_nr_SelectedDL_PRS_IndexListPerFreq_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16 },
19856 };
19857 
19858 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19859 dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19860   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19861                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16, SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16_sequence_of,
19862                                                   1, nrMaxTRPsPerFreq_r16, FALSE);
19863 
19864   return offset;
19865 }
19866 
19867 
19868 static const per_sequence_t NR_SelectedDL_PRS_PerFreq_r16_sequence[] = {
19869   { &hf_lpp_nr_SelectedDL_PRS_FrequencyLayerIndex_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_nrMaxFreqLayers_1_r16 },
19870   { &hf_lpp_nr_SelectedDL_PRS_IndexListPerFreq_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16 },
19871   { NULL, 0, 0, NULL }
19872 };
19873 
19874 static int
dissect_lpp_NR_SelectedDL_PRS_PerFreq_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19875 dissect_lpp_NR_SelectedDL_PRS_PerFreq_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19876   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19877                                    ett_lpp_NR_SelectedDL_PRS_PerFreq_r16, NR_SelectedDL_PRS_PerFreq_r16_sequence);
19878 
19879   return offset;
19880 }
19881 
19882 
19883 static const per_sequence_t NR_SelectedDL_PRS_IndexList_r16_sequence_of[1] = {
19884   { &hf_lpp_NR_SelectedDL_PRS_IndexList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_SelectedDL_PRS_PerFreq_r16 },
19885 };
19886 
19887 static int
dissect_lpp_NR_SelectedDL_PRS_IndexList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19888 dissect_lpp_NR_SelectedDL_PRS_IndexList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19889   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
19890                                                   ett_lpp_NR_SelectedDL_PRS_IndexList_r16, NR_SelectedDL_PRS_IndexList_r16_sequence_of,
19891                                                   1, nrMaxFreqLayers_r16, FALSE);
19892 
19893   return offset;
19894 }
19895 
19896 
19897 static const value_string lpp_T_cause_r16_06_vals[] = {
19898   {   0, "undefined" },
19899   {   1, "assistanceDataNotSupportedByServer" },
19900   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer" },
19901   { 0, NULL }
19902 };
19903 
19904 
19905 static int
dissect_lpp_T_cause_r16_06(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19906 dissect_lpp_T_cause_r16_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19907   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19908                                      3, NULL, TRUE, 0, NULL);
19909 
19910   return offset;
19911 }
19912 
19913 
19914 static const per_sequence_t NR_Multi_RTT_LocationServerErrorCauses_r16_sequence[] = {
19915   { &hf_lpp_cause_r16_06    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_06 },
19916   { NULL, 0, 0, NULL }
19917 };
19918 
19919 static int
dissect_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19920 dissect_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19921   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19922                                    ett_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16, NR_Multi_RTT_LocationServerErrorCauses_r16_sequence);
19923 
19924   return offset;
19925 }
19926 
19927 
19928 static const value_string lpp_T_cause_r16_07_vals[] = {
19929   {   0, "undefined" },
19930   {   1, "dl-assistance-data-missing" },
19931   {   2, "unableToMeasureAnyTRP" },
19932   {   3, "attemptedButUnableToMeasureSomeNeighbourTRPs" },
19933   {   4, "ul-srs-configuration-missing" },
19934   {   5, "unableToTransmit-ul-srs" },
19935   { 0, NULL }
19936 };
19937 
19938 
19939 static int
dissect_lpp_T_cause_r16_07(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19940 dissect_lpp_T_cause_r16_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19941   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
19942                                      6, NULL, TRUE, 0, NULL);
19943 
19944   return offset;
19945 }
19946 
19947 
19948 static const per_sequence_t NR_Multi_RTT_TargetDeviceErrorCauses_r16_sequence[] = {
19949   { &hf_lpp_cause_r16_07    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_07 },
19950   { NULL, 0, 0, NULL }
19951 };
19952 
19953 static int
dissect_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19954 dissect_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19955   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19956                                    ett_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16, NR_Multi_RTT_TargetDeviceErrorCauses_r16_sequence);
19957 
19958   return offset;
19959 }
19960 
19961 
19962 static const value_string lpp_NR_Multi_RTT_Error_r16_vals[] = {
19963   {   0, "locationServerErrorCauses-r16" },
19964   {   1, "targetDeviceErrorCauses-r16" },
19965   { 0, NULL }
19966 };
19967 
19968 static const per_choice_t NR_Multi_RTT_Error_r16_choice[] = {
19969   {   0, &hf_lpp_locationServerErrorCauses_r16_03, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16 },
19970   {   1, &hf_lpp_targetDeviceErrorCauses_r16_03, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16 },
19971   { 0, NULL, 0, NULL }
19972 };
19973 
19974 static int
dissect_lpp_NR_Multi_RTT_Error_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19975 dissect_lpp_NR_Multi_RTT_Error_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19976   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
19977                                  ett_lpp_NR_Multi_RTT_Error_r16, NR_Multi_RTT_Error_r16_choice,
19978                                  NULL);
19979 
19980   return offset;
19981 }
19982 
19983 
19984 static const per_sequence_t NR_Multi_RTT_ProvideAssistanceData_r16_sequence[] = {
19985   { &hf_lpp_nr_DL_PRS_AssistanceData_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_AssistanceData_r16 },
19986   { &hf_lpp_nr_SelectedDL_PRS_IndexList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_SelectedDL_PRS_IndexList_r16 },
19987   { &hf_lpp_nr_Multi_RTT_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_Error_r16 },
19988   { NULL, 0, 0, NULL }
19989 };
19990 
19991 static int
dissect_lpp_NR_Multi_RTT_ProvideAssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)19992 dissect_lpp_NR_Multi_RTT_ProvideAssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19993   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
19994                                    ett_lpp_NR_Multi_RTT_ProvideAssistanceData_r16, NR_Multi_RTT_ProvideAssistanceData_r16_sequence);
19995 
19996   return offset;
19997 }
19998 
19999 
20000 
20001 static int
dissect_lpp_INTEGER_M64000_1280000(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20002 dissect_lpp_INTEGER_M64000_1280000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20003   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
20004                                                             -64000, 1280000U, NULL, FALSE);
20005 
20006   return offset;
20007 }
20008 
20009 
20010 static const per_sequence_t HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15_sequence[] = {
20011   { &hf_lpp_degreesLatitude_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
20012   { &hf_lpp_degreesLongitude_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
20013   { &hf_lpp_altitude_r15    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64000_1280000 },
20014   { &hf_lpp_uncertaintySemiMajor_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20015   { &hf_lpp_uncertaintySemiMinor_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20016   { &hf_lpp_orientationMajorAxis_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
20017   { &hf_lpp_horizontalConfidence_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
20018   { &hf_lpp_uncertaintyAltitude_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20019   { &hf_lpp_verticalConfidence_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
20020   { NULL, 0, 0, NULL }
20021 };
20022 
20023 static int
dissect_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20024 dissect_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20025   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20026                                    ett_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15, HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15_sequence);
20027 
20028   return offset;
20029 }
20030 
20031 
20032 static const value_string lpp_T_referencePointGeographicLocation_r16_vals[] = {
20033   {   0, "location3D-r16" },
20034   {   1, "ha-location3D-r16" },
20035   { 0, NULL }
20036 };
20037 
20038 static const per_choice_t T_referencePointGeographicLocation_r16_choice[] = {
20039   {   0, &hf_lpp_location3D_r16  , ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
20040   {   1, &hf_lpp_ha_location3D_r16, ASN1_EXTENSION_ROOT    , dissect_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15 },
20041   { 0, NULL, 0, NULL }
20042 };
20043 
20044 static int
dissect_lpp_T_referencePointGeographicLocation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20045 dissect_lpp_T_referencePointGeographicLocation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20046   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
20047                                  ett_lpp_T_referencePointGeographicLocation_r16, T_referencePointGeographicLocation_r16_choice,
20048                                  NULL);
20049 
20050   return offset;
20051 }
20052 
20053 
20054 static const per_sequence_t ReferencePoint_r16_sequence[] = {
20055   { &hf_lpp_referencePointGeographicLocation_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_referencePointGeographicLocation_r16 },
20056   { NULL, 0, 0, NULL }
20057 };
20058 
20059 static int
dissect_lpp_ReferencePoint_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20060 dissect_lpp_ReferencePoint_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20061   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20062                                    ett_lpp_ReferencePoint_r16, ReferencePoint_r16_sequence);
20063 
20064   return offset;
20065 }
20066 
20067 
20068 static const value_string lpp_T_milli_arc_second_units_r16_vals[] = {
20069   {   0, "mas0-03" },
20070   {   1, "mas0-3" },
20071   {   2, "mas3" },
20072   {   3, "mas30" },
20073   { 0, NULL }
20074 };
20075 
20076 
20077 static int
dissect_lpp_T_milli_arc_second_units_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20078 dissect_lpp_T_milli_arc_second_units_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20079   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20080                                      4, NULL, TRUE, 0, NULL);
20081 
20082   return offset;
20083 }
20084 
20085 
20086 static const value_string lpp_T_height_units_r16_vals[] = {
20087   {   0, "mm" },
20088   {   1, "cm" },
20089   {   2, "m" },
20090   { 0, NULL }
20091 };
20092 
20093 
20094 static int
dissect_lpp_T_height_units_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20095 dissect_lpp_T_height_units_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20096   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20097                                      3, NULL, TRUE, 0, NULL);
20098 
20099   return offset;
20100 }
20101 
20102 
20103 static const per_sequence_t Delta_Latitude_r16_sequence[] = {
20104   { &hf_lpp_delta_Latitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
20105   { &hf_lpp_coarse_delta_Latitude_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
20106   { NULL, 0, 0, NULL }
20107 };
20108 
20109 static int
dissect_lpp_Delta_Latitude_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20110 dissect_lpp_Delta_Latitude_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20111   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20112                                    ett_lpp_Delta_Latitude_r16, Delta_Latitude_r16_sequence);
20113 
20114   return offset;
20115 }
20116 
20117 
20118 static const per_sequence_t Delta_Longitude_r16_sequence[] = {
20119   { &hf_lpp_delta_Longitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
20120   { &hf_lpp_coarse_delta_Longitude_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
20121   { NULL, 0, 0, NULL }
20122 };
20123 
20124 static int
dissect_lpp_Delta_Longitude_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20125 dissect_lpp_Delta_Longitude_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20126   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20127                                    ett_lpp_Delta_Longitude_r16, Delta_Longitude_r16_sequence);
20128 
20129   return offset;
20130 }
20131 
20132 
20133 static const per_sequence_t Delta_Height_r16_sequence[] = {
20134   { &hf_lpp_delta_Height_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
20135   { &hf_lpp_coarse_delta_Height_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
20136   { NULL, 0, 0, NULL }
20137 };
20138 
20139 static int
dissect_lpp_Delta_Height_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20140 dissect_lpp_Delta_Height_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20141   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20142                                    ett_lpp_Delta_Height_r16, Delta_Height_r16_sequence);
20143 
20144   return offset;
20145 }
20146 
20147 
20148 static const per_sequence_t LocationUncertainty_r16_sequence[] = {
20149   { &hf_lpp_horizontalUncertainty_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20150   { &hf_lpp_horizontalConfidence_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
20151   { &hf_lpp_verticalUncertainty_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20152   { &hf_lpp_verticalConfidence_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
20153   { NULL, 0, 0, NULL }
20154 };
20155 
20156 static int
dissect_lpp_LocationUncertainty_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20157 dissect_lpp_LocationUncertainty_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20158   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20159                                    ett_lpp_LocationUncertainty_r16, LocationUncertainty_r16_sequence);
20160 
20161   return offset;
20162 }
20163 
20164 
20165 static const per_sequence_t RelativeLocation_r16_sequence[] = {
20166   { &hf_lpp_milli_arc_second_units_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_milli_arc_second_units_r16 },
20167   { &hf_lpp_height_units_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_height_units_r16 },
20168   { &hf_lpp_delta_latitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Delta_Latitude_r16 },
20169   { &hf_lpp_delta_longitude_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Delta_Longitude_r16 },
20170   { &hf_lpp_delta_height_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Delta_Height_r16 },
20171   { &hf_lpp_locationUNC_r16 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationUncertainty_r16 },
20172   { NULL, 0, 0, NULL }
20173 };
20174 
20175 static int
dissect_lpp_RelativeLocation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20176 dissect_lpp_RelativeLocation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20177   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20178                                    ett_lpp_RelativeLocation_r16, RelativeLocation_r16_sequence);
20179 
20180   return offset;
20181 }
20182 
20183 
20184 static const per_sequence_t DL_PRS_Resource_ARP_Element_r16_sequence[] = {
20185   { &hf_lpp_dl_PRS_Resource_ARP_location_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_RelativeLocation_r16 },
20186   { NULL, 0, 0, NULL }
20187 };
20188 
20189 static int
dissect_lpp_DL_PRS_Resource_ARP_Element_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20190 dissect_lpp_DL_PRS_Resource_ARP_Element_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20191   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20192                                    ett_lpp_DL_PRS_Resource_ARP_Element_r16, DL_PRS_Resource_ARP_Element_r16_sequence);
20193 
20194   return offset;
20195 }
20196 
20197 
20198 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16_sequence_of[1] = {
20199   { &hf_lpp_dl_PRS_Resource_ARP_List_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_Resource_ARP_Element_r16 },
20200 };
20201 
20202 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20203 dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20204   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20205                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16, SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16_sequence_of,
20206                                                   1, nrMaxResourcesPerSet_r16, FALSE);
20207 
20208   return offset;
20209 }
20210 
20211 
20212 static const per_sequence_t DL_PRS_ResourceSets_TRP_Element_r16_sequence[] = {
20213   { &hf_lpp_dl_PRS_ResourceSetARP_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_RelativeLocation_r16 },
20214   { &hf_lpp_dl_PRS_Resource_ARP_List_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16 },
20215   { NULL, 0, 0, NULL }
20216 };
20217 
20218 static int
dissect_lpp_DL_PRS_ResourceSets_TRP_Element_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20219 dissect_lpp_DL_PRS_ResourceSets_TRP_Element_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20220   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20221                                    ett_lpp_DL_PRS_ResourceSets_TRP_Element_r16, DL_PRS_ResourceSets_TRP_Element_r16_sequence);
20222 
20223   return offset;
20224 }
20225 
20226 
20227 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16_sequence_of[1] = {
20228   { &hf_lpp_trp_DL_PRS_ResourceSets_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_ResourceSets_TRP_Element_r16 },
20229 };
20230 
20231 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20232 dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20233   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20234                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16, SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16_sequence_of,
20235                                                   1, nrMaxSetsPerTrpPerFreqLayer_r16, FALSE);
20236 
20237   return offset;
20238 }
20239 
20240 
20241 static const per_sequence_t TRP_LocationInfoElement_r16_sequence[] = {
20242   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20243   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
20244   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
20245   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
20246   { &hf_lpp_associated_DL_PRS_ID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
20247   { &hf_lpp_trp_Location_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_RelativeLocation_r16 },
20248   { &hf_lpp_trp_DL_PRS_ResourceSets_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16 },
20249   { NULL, 0, 0, NULL }
20250 };
20251 
20252 static int
dissect_lpp_TRP_LocationInfoElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20253 dissect_lpp_TRP_LocationInfoElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20254   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20255                                    ett_lpp_TRP_LocationInfoElement_r16, TRP_LocationInfoElement_r16_sequence);
20256 
20257   return offset;
20258 }
20259 
20260 
20261 static const per_sequence_t SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16_sequence_of[1] = {
20262   { &hf_lpp_trp_LocationInfoList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_TRP_LocationInfoElement_r16 },
20263 };
20264 
20265 static int
dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20266 dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20267   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20268                                                   ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16, SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16_sequence_of,
20269                                                   1, nrMaxTRPsPerFreq_r16, FALSE);
20270 
20271   return offset;
20272 }
20273 
20274 
20275 static const per_sequence_t NR_TRP_LocationInfoPerFreqLayer_r16_sequence[] = {
20276   { &hf_lpp_referencePoint_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ReferencePoint_r16 },
20277   { &hf_lpp_trp_LocationInfoList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16 },
20278   { NULL, 0, 0, NULL }
20279 };
20280 
20281 static int
dissect_lpp_NR_TRP_LocationInfoPerFreqLayer_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20282 dissect_lpp_NR_TRP_LocationInfoPerFreqLayer_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20283   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20284                                    ett_lpp_NR_TRP_LocationInfoPerFreqLayer_r16, NR_TRP_LocationInfoPerFreqLayer_r16_sequence);
20285 
20286   return offset;
20287 }
20288 
20289 
20290 static const per_sequence_t NR_TRP_LocationInfo_r16_sequence_of[1] = {
20291   { &hf_lpp_NR_TRP_LocationInfo_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TRP_LocationInfoPerFreqLayer_r16 },
20292 };
20293 
20294 static int
dissect_lpp_NR_TRP_LocationInfo_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20295 dissect_lpp_NR_TRP_LocationInfo_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20296   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20297                                                   ett_lpp_NR_TRP_LocationInfo_r16, NR_TRP_LocationInfo_r16_sequence_of,
20298                                                   1, nrMaxFreqLayers_r16, FALSE);
20299 
20300   return offset;
20301 }
20302 
20303 
20304 
20305 static int
dissect_lpp_INTEGER_0_359(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20306 dissect_lpp_INTEGER_0_359(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20307   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
20308                                                             0U, 359U, NULL, FALSE);
20309 
20310   return offset;
20311 }
20312 
20313 
20314 static const per_sequence_t LCS_GCS_TranslationParameter_r16_sequence[] = {
20315   { &hf_lpp_alpha_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
20316   { &hf_lpp_alpha_fine_r16  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_9 },
20317   { &hf_lpp_beta_r16        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
20318   { &hf_lpp_beta_fine_r16   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_9 },
20319   { &hf_lpp_gamma_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
20320   { &hf_lpp_gamma_fine_r16  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_9 },
20321   { NULL, 0, 0, NULL }
20322 };
20323 
20324 static int
dissect_lpp_LCS_GCS_TranslationParameter_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20325 dissect_lpp_LCS_GCS_TranslationParameter_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20326   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20327                                    ett_lpp_LCS_GCS_TranslationParameter_r16, LCS_GCS_TranslationParameter_r16_sequence);
20328 
20329   return offset;
20330 }
20331 
20332 
20333 
20334 static int
dissect_lpp_INTEGER_0_180(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20335 dissect_lpp_INTEGER_0_180(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20336   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
20337                                                             0U, 180U, NULL, FALSE);
20338 
20339   return offset;
20340 }
20341 
20342 
20343 static const per_sequence_t DL_PRS_BeamInfoElement_r16_sequence[] = {
20344   { &hf_lpp_dl_PRS_Azimuth_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
20345   { &hf_lpp_dl_PRS_Azimuth_fine_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_9 },
20346   { &hf_lpp_dl_PRS_Elevation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_180 },
20347   { &hf_lpp_dl_PRS_Elevation_fine_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_9 },
20348   { NULL, 0, 0, NULL }
20349 };
20350 
20351 static int
dissect_lpp_DL_PRS_BeamInfoElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20352 dissect_lpp_DL_PRS_BeamInfoElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20353   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20354                                    ett_lpp_DL_PRS_BeamInfoElement_r16, DL_PRS_BeamInfoElement_r16_sequence);
20355 
20356   return offset;
20357 }
20358 
20359 
20360 static const per_sequence_t DL_PRS_BeamInfoResourceSet_r16_sequence_of[1] = {
20361   { &hf_lpp_DL_PRS_BeamInfoResourceSet_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_BeamInfoElement_r16 },
20362 };
20363 
20364 static int
dissect_lpp_DL_PRS_BeamInfoResourceSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20365 dissect_lpp_DL_PRS_BeamInfoResourceSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20366   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20367                                                   ett_lpp_DL_PRS_BeamInfoResourceSet_r16, DL_PRS_BeamInfoResourceSet_r16_sequence_of,
20368                                                   1, nrMaxResourcesPerSet_r16, FALSE);
20369 
20370   return offset;
20371 }
20372 
20373 
20374 static const per_sequence_t DL_PRS_BeamInfoSet_r16_sequence_of[1] = {
20375   { &hf_lpp_DL_PRS_BeamInfoSet_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_BeamInfoResourceSet_r16 },
20376 };
20377 
20378 static int
dissect_lpp_DL_PRS_BeamInfoSet_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20379 dissect_lpp_DL_PRS_BeamInfoSet_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20380   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20381                                                   ett_lpp_DL_PRS_BeamInfoSet_r16, DL_PRS_BeamInfoSet_r16_sequence_of,
20382                                                   1, nrMaxSetsPerTrpPerFreqLayer_r16, FALSE);
20383 
20384   return offset;
20385 }
20386 
20387 
20388 static const per_sequence_t NR_DL_PRS_BeamInfoPerTRP_r16_sequence[] = {
20389   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20390   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
20391   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
20392   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
20393   { &hf_lpp_associated_DL_PRS_ID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
20394   { &hf_lpp_lcs_GCS_TranslationParameter_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LCS_GCS_TranslationParameter_r16 },
20395   { &hf_lpp_dl_PRS_BeamInfoSet_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_DL_PRS_BeamInfoSet_r16 },
20396   { NULL, 0, 0, NULL }
20397 };
20398 
20399 static int
dissect_lpp_NR_DL_PRS_BeamInfoPerTRP_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20400 dissect_lpp_NR_DL_PRS_BeamInfoPerTRP_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20401   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20402                                    ett_lpp_NR_DL_PRS_BeamInfoPerTRP_r16, NR_DL_PRS_BeamInfoPerTRP_r16_sequence);
20403 
20404   return offset;
20405 }
20406 
20407 
20408 static const per_sequence_t NR_DL_PRS_BeamInfoPerFreqLayer_r16_sequence_of[1] = {
20409   { &hf_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_BeamInfoPerTRP_r16 },
20410 };
20411 
20412 static int
dissect_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20413 dissect_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20414   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20415                                                   ett_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16, NR_DL_PRS_BeamInfoPerFreqLayer_r16_sequence_of,
20416                                                   1, nrMaxTRPsPerFreq_r16, FALSE);
20417 
20418   return offset;
20419 }
20420 
20421 
20422 static const per_sequence_t NR_DL_PRS_BeamInfo_r16_sequence_of[1] = {
20423   { &hf_lpp_NR_DL_PRS_BeamInfo_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16 },
20424 };
20425 
20426 static int
dissect_lpp_NR_DL_PRS_BeamInfo_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20427 dissect_lpp_NR_DL_PRS_BeamInfo_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20428   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20429                                                   ett_lpp_NR_DL_PRS_BeamInfo_r16, NR_DL_PRS_BeamInfo_r16_sequence_of,
20430                                                   1, nrMaxFreqLayers_r16, FALSE);
20431 
20432   return offset;
20433 }
20434 
20435 
20436 
20437 static int
dissect_lpp_UTCTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20438 dissect_lpp_UTCTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20439   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
20440                                         NO_BOUND, NO_BOUND, FALSE);
20441 
20442   return offset;
20443 }
20444 
20445 
20446 static const value_string lpp_T_refTime_r16_vals[] = {
20447   {   0, "systemFrameNumber-r16" },
20448   {   1, "utc-r16" },
20449   { 0, NULL }
20450 };
20451 
20452 static const per_choice_t T_refTime_r16_choice[] = {
20453   {   0, &hf_lpp_systemFrameNumber_r16, ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_10 },
20454   {   1, &hf_lpp_utc_r16         , ASN1_EXTENSION_ROOT    , dissect_lpp_UTCTime },
20455   { 0, NULL, 0, NULL }
20456 };
20457 
20458 static int
dissect_lpp_T_refTime_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20459 dissect_lpp_T_refTime_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20460   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
20461                                  ett_lpp_T_refTime_r16, T_refTime_r16_choice,
20462                                  NULL);
20463 
20464   return offset;
20465 }
20466 
20467 
20468 static const value_string lpp_T_timingQualityResolution_r16_vals[] = {
20469   {   0, "mdot1" },
20470   {   1, "m1" },
20471   {   2, "m10" },
20472   {   3, "m30" },
20473   { 0, NULL }
20474 };
20475 
20476 
20477 static int
dissect_lpp_T_timingQualityResolution_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20478 dissect_lpp_T_timingQualityResolution_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20479   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20480                                      4, NULL, TRUE, 0, NULL);
20481 
20482   return offset;
20483 }
20484 
20485 
20486 static const per_sequence_t NR_TimingQuality_r16_sequence[] = {
20487   { &hf_lpp_timingQualityValue_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
20488   { &hf_lpp_timingQualityResolution_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_timingQualityResolution_r16 },
20489   { NULL, 0, 0, NULL }
20490 };
20491 
20492 static int
dissect_lpp_NR_TimingQuality_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20493 dissect_lpp_NR_TimingQuality_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20494   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20495                                    ett_lpp_NR_TimingQuality_r16, NR_TimingQuality_r16_sequence);
20496 
20497   return offset;
20498 }
20499 
20500 
20501 static const per_sequence_t ReferenceTRP_RTD_Info_r16_sequence[] = {
20502   { &hf_lpp_dl_PRS_ID_Ref_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20503   { &hf_lpp_nr_PhysCellID_Ref_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
20504   { &hf_lpp_nr_CellGlobalID_Ref_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
20505   { &hf_lpp_nr_ARFCN_Ref_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
20506   { &hf_lpp_refTime_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_refTime_r16 },
20507   { &hf_lpp_rtd_RefQuality_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_TimingQuality_r16 },
20508   { NULL, 0, 0, NULL }
20509 };
20510 
20511 static int
dissect_lpp_ReferenceTRP_RTD_Info_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20512 dissect_lpp_ReferenceTRP_RTD_Info_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20513   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20514                                    ett_lpp_ReferenceTRP_RTD_Info_r16, ReferenceTRP_RTD_Info_r16_sequence);
20515 
20516   return offset;
20517 }
20518 
20519 
20520 
20521 static int
dissect_lpp_INTEGER_0_1966079(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20522 dissect_lpp_INTEGER_0_1966079(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20523   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
20524                                                             0U, 1966079U, NULL, FALSE);
20525 
20526   return offset;
20527 }
20528 
20529 
20530 static const per_sequence_t RTD_InfoElement_r16_sequence[] = {
20531   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
20532   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
20533   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
20534   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
20535   { &hf_lpp_subframeOffset_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1966079 },
20536   { &hf_lpp_rtd_Quality_r16 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimingQuality_r16 },
20537   { NULL, 0, 0, NULL }
20538 };
20539 
20540 static int
dissect_lpp_RTD_InfoElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20541 dissect_lpp_RTD_InfoElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20542   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20543                                    ett_lpp_RTD_InfoElement_r16, RTD_InfoElement_r16_sequence);
20544 
20545   return offset;
20546 }
20547 
20548 
20549 static const per_sequence_t RTD_InfoListPerFreqLayer_r16_sequence_of[1] = {
20550   { &hf_lpp_RTD_InfoListPerFreqLayer_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_RTD_InfoElement_r16 },
20551 };
20552 
20553 static int
dissect_lpp_RTD_InfoListPerFreqLayer_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20554 dissect_lpp_RTD_InfoListPerFreqLayer_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20555   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20556                                                   ett_lpp_RTD_InfoListPerFreqLayer_r16, RTD_InfoListPerFreqLayer_r16_sequence_of,
20557                                                   1, nrMaxTRPsPerFreq_r16, FALSE);
20558 
20559   return offset;
20560 }
20561 
20562 
20563 static const per_sequence_t RTD_InfoList_r16_sequence_of[1] = {
20564   { &hf_lpp_RTD_InfoList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_RTD_InfoListPerFreqLayer_r16 },
20565 };
20566 
20567 static int
dissect_lpp_RTD_InfoList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20568 dissect_lpp_RTD_InfoList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20569   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
20570                                                   ett_lpp_RTD_InfoList_r16, RTD_InfoList_r16_sequence_of,
20571                                                   1, nrMaxFreqLayers_r16, FALSE);
20572 
20573   return offset;
20574 }
20575 
20576 
20577 static const per_sequence_t NR_RTD_Info_r16_sequence[] = {
20578   { &hf_lpp_referenceTRP_RTD_Info_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ReferenceTRP_RTD_Info_r16 },
20579   { &hf_lpp_rtd_InfoList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_RTD_InfoList_r16 },
20580   { NULL, 0, 0, NULL }
20581 };
20582 
20583 static int
dissect_lpp_NR_RTD_Info_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20584 dissect_lpp_NR_RTD_Info_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20585   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20586                                    ett_lpp_NR_RTD_Info_r16, NR_RTD_Info_r16_sequence);
20587 
20588   return offset;
20589 }
20590 
20591 
20592 static const per_sequence_t NR_PositionCalculationAssistance_r16_sequence[] = {
20593   { &hf_lpp_nr_TRP_LocationInfo_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_TRP_LocationInfo_r16 },
20594   { &hf_lpp_nr_DL_PRS_BeamInfo_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_BeamInfo_r16 },
20595   { &hf_lpp_nr_RTD_Info_r16 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_RTD_Info_r16 },
20596   { NULL, 0, 0, NULL }
20597 };
20598 
20599 static int
dissect_lpp_NR_PositionCalculationAssistance_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20600 dissect_lpp_NR_PositionCalculationAssistance_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20601   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20602                                    ett_lpp_NR_PositionCalculationAssistance_r16, NR_PositionCalculationAssistance_r16_sequence);
20603 
20604   return offset;
20605 }
20606 
20607 
20608 static const value_string lpp_T_cause_r16_04_vals[] = {
20609   {   0, "undefined" },
20610   {   1, "assistanceDataNotSupportedByServer" },
20611   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer" },
20612   {   3, "notProvidedAssistanceDataNotSupportedByServer" },
20613   { 0, NULL }
20614 };
20615 
20616 
20617 static int
dissect_lpp_T_cause_r16_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20618 dissect_lpp_T_cause_r16_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20619   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20620                                      4, NULL, TRUE, 0, NULL);
20621 
20622   return offset;
20623 }
20624 
20625 
20626 static const per_sequence_t NR_DL_AoD_LocationServerErrorCauses_r16_sequence[] = {
20627   { &hf_lpp_cause_r16_04    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_04 },
20628   { NULL, 0, 0, NULL }
20629 };
20630 
20631 static int
dissect_lpp_NR_DL_AoD_LocationServerErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20632 dissect_lpp_NR_DL_AoD_LocationServerErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20633   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20634                                    ett_lpp_NR_DL_AoD_LocationServerErrorCauses_r16, NR_DL_AoD_LocationServerErrorCauses_r16_sequence);
20635 
20636   return offset;
20637 }
20638 
20639 
20640 static const value_string lpp_T_cause_r16_05_vals[] = {
20641   {   0, "undefined" },
20642   {   1, "assistance-data-missing" },
20643   {   2, "unableToMeasureAnyTRP" },
20644   {   3, "attemptedButUnableToMeasureSomeNeighbourTRPs" },
20645   {   4, "thereWereNotEnoughSignalsReceivedForUeBasedDL-AoD" },
20646   {   5, "locationCalculationAssistanceDataMissing" },
20647   { 0, NULL }
20648 };
20649 
20650 
20651 static int
dissect_lpp_T_cause_r16_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20652 dissect_lpp_T_cause_r16_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20653   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20654                                      6, NULL, TRUE, 0, NULL);
20655 
20656   return offset;
20657 }
20658 
20659 
20660 static const per_sequence_t NR_DL_AoD_TargetDeviceErrorCauses_r16_sequence[] = {
20661   { &hf_lpp_cause_r16_05    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_05 },
20662   { NULL, 0, 0, NULL }
20663 };
20664 
20665 static int
dissect_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20666 dissect_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20667   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20668                                    ett_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16, NR_DL_AoD_TargetDeviceErrorCauses_r16_sequence);
20669 
20670   return offset;
20671 }
20672 
20673 
20674 static const value_string lpp_NR_DL_AoD_Error_r16_vals[] = {
20675   {   0, "locationServerErrorCauses-r16" },
20676   {   1, "targetDeviceErrorCauses-r16" },
20677   { 0, NULL }
20678 };
20679 
20680 static const per_choice_t NR_DL_AoD_Error_r16_choice[] = {
20681   {   0, &hf_lpp_locationServerErrorCauses_r16_02, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_DL_AoD_LocationServerErrorCauses_r16 },
20682   {   1, &hf_lpp_targetDeviceErrorCauses_r16_02, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16 },
20683   { 0, NULL, 0, NULL }
20684 };
20685 
20686 static int
dissect_lpp_NR_DL_AoD_Error_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20687 dissect_lpp_NR_DL_AoD_Error_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20688   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
20689                                  ett_lpp_NR_DL_AoD_Error_r16, NR_DL_AoD_Error_r16_choice,
20690                                  NULL);
20691 
20692   return offset;
20693 }
20694 
20695 
20696 static const per_sequence_t NR_DL_AoD_ProvideAssistanceData_r16_sequence[] = {
20697   { &hf_lpp_nr_DL_PRS_AssistanceData_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_AssistanceData_r16 },
20698   { &hf_lpp_nr_SelectedDL_PRS_IndexList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_SelectedDL_PRS_IndexList_r16 },
20699   { &hf_lpp_nr_PositionCalculationAssistance_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PositionCalculationAssistance_r16 },
20700   { &hf_lpp_nr_DL_AoD_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_Error_r16 },
20701   { NULL, 0, 0, NULL }
20702 };
20703 
20704 static int
dissect_lpp_NR_DL_AoD_ProvideAssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20705 dissect_lpp_NR_DL_AoD_ProvideAssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20706   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20707                                    ett_lpp_NR_DL_AoD_ProvideAssistanceData_r16, NR_DL_AoD_ProvideAssistanceData_r16_sequence);
20708 
20709   return offset;
20710 }
20711 
20712 
20713 static const value_string lpp_T_cause_r16_02_vals[] = {
20714   {   0, "undefined" },
20715   {   1, "assistanceDataNotSupportedByServer" },
20716   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer" },
20717   {   3, "notProvidedAssistanceDataNotSupportedByServer" },
20718   { 0, NULL }
20719 };
20720 
20721 
20722 static int
dissect_lpp_T_cause_r16_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20723 dissect_lpp_T_cause_r16_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20724   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20725                                      4, NULL, TRUE, 0, NULL);
20726 
20727   return offset;
20728 }
20729 
20730 
20731 static const per_sequence_t NR_DL_TDOA_LocationServerErrorCauses_r16_sequence[] = {
20732   { &hf_lpp_cause_r16_02    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_02 },
20733   { NULL, 0, 0, NULL }
20734 };
20735 
20736 static int
dissect_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20737 dissect_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20738   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20739                                    ett_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16, NR_DL_TDOA_LocationServerErrorCauses_r16_sequence);
20740 
20741   return offset;
20742 }
20743 
20744 
20745 static const value_string lpp_T_cause_r16_03_vals[] = {
20746   {   0, "undefined" },
20747   {   1, "assistance-data-missing" },
20748   {   2, "unableToMeasureAnyTRP" },
20749   {   3, "attemptedButUnableToMeasureSomeNeighbourTRPs" },
20750   {   4, "thereWereNotEnoughSignalsReceivedForUeBasedDL-TDOA" },
20751   {   5, "locationCalculationAssistanceDataMissing" },
20752   { 0, NULL }
20753 };
20754 
20755 
20756 static int
dissect_lpp_T_cause_r16_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20757 dissect_lpp_T_cause_r16_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20758   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20759                                      6, NULL, TRUE, 0, NULL);
20760 
20761   return offset;
20762 }
20763 
20764 
20765 static const per_sequence_t NR_DL_TDOA_TargetDeviceErrorCauses_r16_sequence[] = {
20766   { &hf_lpp_cause_r16_03    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_03 },
20767   { NULL, 0, 0, NULL }
20768 };
20769 
20770 static int
dissect_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20771 dissect_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20772   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20773                                    ett_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16, NR_DL_TDOA_TargetDeviceErrorCauses_r16_sequence);
20774 
20775   return offset;
20776 }
20777 
20778 
20779 static const value_string lpp_NR_DL_TDOA_Error_r16_vals[] = {
20780   {   0, "locationServerErrorCauses-r16" },
20781   {   1, "targetDeviceErrorCauses-r16" },
20782   { 0, NULL }
20783 };
20784 
20785 static const per_choice_t NR_DL_TDOA_Error_r16_choice[] = {
20786   {   0, &hf_lpp_locationServerErrorCauses_r16_01, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16 },
20787   {   1, &hf_lpp_targetDeviceErrorCauses_r16_01, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16 },
20788   { 0, NULL, 0, NULL }
20789 };
20790 
20791 static int
dissect_lpp_NR_DL_TDOA_Error_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20792 dissect_lpp_NR_DL_TDOA_Error_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20793   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
20794                                  ett_lpp_NR_DL_TDOA_Error_r16, NR_DL_TDOA_Error_r16_choice,
20795                                  NULL);
20796 
20797   return offset;
20798 }
20799 
20800 
20801 static const per_sequence_t NR_DL_TDOA_ProvideAssistanceData_r16_sequence[] = {
20802   { &hf_lpp_nr_DL_PRS_AssistanceData_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_AssistanceData_r16 },
20803   { &hf_lpp_nr_SelectedDL_PRS_IndexList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_SelectedDL_PRS_IndexList_r16 },
20804   { &hf_lpp_nr_PositionCalculationAssistance_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PositionCalculationAssistance_r16 },
20805   { &hf_lpp_nr_DL_TDOA_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_Error_r16 },
20806   { NULL, 0, 0, NULL }
20807 };
20808 
20809 static int
dissect_lpp_NR_DL_TDOA_ProvideAssistanceData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20810 dissect_lpp_NR_DL_TDOA_ProvideAssistanceData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20811   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20812                                    ett_lpp_NR_DL_TDOA_ProvideAssistanceData_r16, NR_DL_TDOA_ProvideAssistanceData_r16_sequence);
20813 
20814   return offset;
20815 }
20816 
20817 
20818 static const per_sequence_t ProvideAssistanceData_r9_IEs_eag_2_sequence[] = {
20819   { &hf_lpp_nr_Multi_RTT_ProvideAssistanceData_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_ProvideAssistanceData_r16 },
20820   { &hf_lpp_nr_DL_AoD_ProvideAssistanceData_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_ProvideAssistanceData_r16 },
20821   { &hf_lpp_nr_DL_TDOA_ProvideAssistanceData_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_ProvideAssistanceData_r16 },
20822   { NULL, 0, 0, NULL }
20823 };
20824 
20825 static int
dissect_lpp_ProvideAssistanceData_r9_IEs_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20826 dissect_lpp_ProvideAssistanceData_r9_IEs_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20827   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ProvideAssistanceData_r9_IEs_eag_2_sequence);
20828 
20829   return offset;
20830 }
20831 
20832 
20833 static const per_sequence_t ProvideAssistanceData_r9_IEs_sequence[] = {
20834   { &hf_lpp_commonIEsProvideAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsProvideAssistanceData },
20835   { &hf_lpp_a_gnss_ProvideAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_ProvideAssistanceData },
20836   { &hf_lpp_otdoa_ProvideAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ProvideAssistanceData },
20837   { &hf_lpp_epdu_Provide_Assistance_Data, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
20838   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ProvideAssistanceData_r9_IEs_eag_1 },
20839   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ProvideAssistanceData_r9_IEs_eag_2 },
20840   { NULL, 0, 0, NULL }
20841 };
20842 
20843 static int
dissect_lpp_ProvideAssistanceData_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20844 dissect_lpp_ProvideAssistanceData_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20845   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20846                                    ett_lpp_ProvideAssistanceData_r9_IEs, ProvideAssistanceData_r9_IEs_sequence);
20847 
20848   return offset;
20849 }
20850 
20851 
20852 static const value_string lpp_T_c1_04_vals[] = {
20853   {   0, "provideAssistanceData-r9" },
20854   {   1, "spare3" },
20855   {   2, "spare2" },
20856   {   3, "spare1" },
20857   { 0, NULL }
20858 };
20859 
20860 static const per_choice_t T_c1_04_choice[] = {
20861   {   0, &hf_lpp_provideAssistanceData_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideAssistanceData_r9_IEs },
20862   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
20863   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
20864   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
20865   { 0, NULL, 0, NULL }
20866 };
20867 
20868 static int
dissect_lpp_T_c1_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20869 dissect_lpp_T_c1_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20870   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
20871                                  ett_lpp_T_c1_04, T_c1_04_choice,
20872                                  NULL);
20873 
20874   return offset;
20875 }
20876 
20877 
20878 static const per_sequence_t T_criticalExtensionsFuture_03_sequence[] = {
20879   { NULL, 0, 0, NULL }
20880 };
20881 
20882 static int
dissect_lpp_T_criticalExtensionsFuture_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20883 dissect_lpp_T_criticalExtensionsFuture_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20884   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20885                                    ett_lpp_T_criticalExtensionsFuture_03, T_criticalExtensionsFuture_03_sequence);
20886 
20887   return offset;
20888 }
20889 
20890 
20891 static const value_string lpp_T_criticalExtensions_03_vals[] = {
20892   {   0, "c1" },
20893   {   1, "criticalExtensionsFuture" },
20894   { 0, NULL }
20895 };
20896 
20897 static const per_choice_t T_criticalExtensions_03_choice[] = {
20898   {   0, &hf_lpp_c1_04           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_04 },
20899   {   1, &hf_lpp_criticalExtensionsFuture_03, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_03 },
20900   { 0, NULL, 0, NULL }
20901 };
20902 
20903 static int
dissect_lpp_T_criticalExtensions_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20904 dissect_lpp_T_criticalExtensions_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20905   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
20906                                  ett_lpp_T_criticalExtensions_03, T_criticalExtensions_03_choice,
20907                                  NULL);
20908 
20909   return offset;
20910 }
20911 
20912 
20913 static const per_sequence_t ProvideAssistanceData_sequence[] = {
20914   { &hf_lpp_criticalExtensions_03, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_03 },
20915   { NULL, 0, 0, NULL }
20916 };
20917 
20918 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_)20919 dissect_lpp_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20920 #line 134 "./asn1/lpp/lpp.cnf"
20921   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data");
20922 
20923 
20924   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20925                                    ett_lpp_ProvideAssistanceData, ProvideAssistanceData_sequence);
20926 
20927   return offset;
20928 }
20929 
20930 
20931 static const value_string lpp_LocationInformationType_vals[] = {
20932   {   0, "locationEstimateRequired" },
20933   {   1, "locationMeasurementsRequired" },
20934   {   2, "locationEstimatePreferred" },
20935   {   3, "locationMeasurementsPreferred" },
20936   { 0, NULL }
20937 };
20938 
20939 
20940 static int
dissect_lpp_LocationInformationType(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20941 dissect_lpp_LocationInformationType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20942   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20943                                      4, NULL, TRUE, 0, NULL);
20944 
20945   return offset;
20946 }
20947 
20948 
20949 
20950 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_)20951 dissect_lpp_ReportingDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20952 #line 304 "./asn1/lpp/lpp.cnf"
20953   guint32 duration;
20954 
20955   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
20956                                                             0U, 255U, &duration, FALSE);
20957 
20958   if (duration == 0) {
20959     proto_item_append_text(actx->created_item, " (infinite)");
20960   }
20961 
20962 
20963 
20964   return offset;
20965 }
20966 
20967 
20968 static const per_sequence_t TriggeredReportingCriteria_sequence[] = {
20969   { &hf_lpp_cellChange      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
20970   { &hf_lpp_reportingDuration, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ReportingDuration },
20971   { NULL, 0, 0, NULL }
20972 };
20973 
20974 static int
dissect_lpp_TriggeredReportingCriteria(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20975 dissect_lpp_TriggeredReportingCriteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20976   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
20977                                    ett_lpp_TriggeredReportingCriteria, TriggeredReportingCriteria_sequence);
20978 
20979   return offset;
20980 }
20981 
20982 
20983 static const value_string lpp_T_reportingAmount_vals[] = {
20984   {   0, "ra1" },
20985   {   1, "ra2" },
20986   {   2, "ra4" },
20987   {   3, "ra8" },
20988   {   4, "ra16" },
20989   {   5, "ra32" },
20990   {   6, "ra64" },
20991   {   7, "ra-Infinity" },
20992   { 0, NULL }
20993 };
20994 
20995 
20996 static int
dissect_lpp_T_reportingAmount(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)20997 dissect_lpp_T_reportingAmount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20998   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
20999                                      8, NULL, FALSE, 0, NULL);
21000 
21001   return offset;
21002 }
21003 
21004 
21005 static const value_string lpp_T_reportingInterval_vals[] = {
21006   {   0, "noPeriodicalReporting" },
21007   {   1, "ri0-25" },
21008   {   2, "ri0-5" },
21009   {   3, "ri1" },
21010   {   4, "ri2" },
21011   {   5, "ri4" },
21012   {   6, "ri8" },
21013   {   7, "ri16" },
21014   {   8, "ri32" },
21015   {   9, "ri64" },
21016   { 0, NULL }
21017 };
21018 
21019 
21020 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_)21021 dissect_lpp_T_reportingInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21022 #line 292 "./asn1/lpp/lpp.cnf"
21023   guint32 idx;
21024   const gchar *interval[10] = {"", ": 1s", ": 2s", ": 4s", ": 8s", ": 10s",
21025                                ": 16s", ": 20s", ": 32s", ": 64s"};
21026 
21027   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21028                                      10, &idx, FALSE, 0, NULL);
21029 
21030 
21031 
21032 
21033 #line 299 "./asn1/lpp/lpp.cnf"
21034   if (idx < 10) {
21035     proto_item_append_text(actx->created_item, "%s", interval[idx]);
21036   }
21037 
21038 
21039   return offset;
21040 }
21041 
21042 
21043 static const per_sequence_t PeriodicalReportingCriteria_sequence[] = {
21044   { &hf_lpp_reportingAmount , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_reportingAmount },
21045   { &hf_lpp_reportingInterval, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_reportingInterval },
21046   { NULL, 0, 0, NULL }
21047 };
21048 
21049 static int
dissect_lpp_PeriodicalReportingCriteria(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21050 dissect_lpp_PeriodicalReportingCriteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21051   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21052                                    ett_lpp_PeriodicalReportingCriteria, PeriodicalReportingCriteria_sequence);
21053 
21054   return offset;
21055 }
21056 
21057 
21058 static const value_string lpp_AdditionalInformation_vals[] = {
21059   {   0, "onlyReturnInformationRequested" },
21060   {   1, "mayReturnAditionalInformation" },
21061   { 0, NULL }
21062 };
21063 
21064 
21065 static int
dissect_lpp_AdditionalInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21066 dissect_lpp_AdditionalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21067   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21068                                      2, NULL, TRUE, 0, NULL);
21069 
21070   return offset;
21071 }
21072 
21073 
21074 static const per_sequence_t HorizontalAccuracy_sequence[] = {
21075   { &hf_lpp_accuracy        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
21076   { &hf_lpp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
21077   { NULL, 0, 0, NULL }
21078 };
21079 
21080 static int
dissect_lpp_HorizontalAccuracy(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21081 dissect_lpp_HorizontalAccuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21082   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21083                                    ett_lpp_HorizontalAccuracy, HorizontalAccuracy_sequence);
21084 
21085   return offset;
21086 }
21087 
21088 
21089 static const per_sequence_t VerticalAccuracy_sequence[] = {
21090   { &hf_lpp_accuracy        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
21091   { &hf_lpp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
21092   { NULL, 0, 0, NULL }
21093 };
21094 
21095 static int
dissect_lpp_VerticalAccuracy(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21096 dissect_lpp_VerticalAccuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21097   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21098                                    ett_lpp_VerticalAccuracy, VerticalAccuracy_sequence);
21099 
21100   return offset;
21101 }
21102 
21103 
21104 static const per_sequence_t ResponseTime_eag_1_sequence[] = {
21105   { &hf_lpp_responseTimeEarlyFix_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_128 },
21106   { NULL, 0, 0, NULL }
21107 };
21108 
21109 static int
dissect_lpp_ResponseTime_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21110 dissect_lpp_ResponseTime_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21111   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ResponseTime_eag_1_sequence);
21112 
21113   return offset;
21114 }
21115 
21116 
21117 static const value_string lpp_T_unit_r15_vals[] = {
21118   {   0, "ten-seconds" },
21119   { 0, NULL }
21120 };
21121 
21122 
21123 static int
dissect_lpp_T_unit_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21124 dissect_lpp_T_unit_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21125   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21126                                      1, NULL, TRUE, 0, NULL);
21127 
21128   return offset;
21129 }
21130 
21131 
21132 static const per_sequence_t ResponseTime_eag_2_sequence[] = {
21133   { &hf_lpp_unit_r15        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_unit_r15 },
21134   { NULL, 0, 0, NULL }
21135 };
21136 
21137 static int
dissect_lpp_ResponseTime_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21138 dissect_lpp_ResponseTime_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21139   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ResponseTime_eag_2_sequence);
21140 
21141   return offset;
21142 }
21143 
21144 
21145 static const per_sequence_t ResponseTime_sequence[] = {
21146   { &hf_lpp_time            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_128 },
21147   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ResponseTime_eag_1 },
21148   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ResponseTime_eag_2 },
21149   { NULL, 0, 0, NULL }
21150 };
21151 
21152 static int
dissect_lpp_ResponseTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21153 dissect_lpp_ResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21154   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21155                                    ett_lpp_ResponseTime, ResponseTime_sequence);
21156 
21157   return offset;
21158 }
21159 
21160 
21161 
21162 static int
dissect_lpp_INTEGER_1_512(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21163 dissect_lpp_INTEGER_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21164   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
21165                                                             1U, 512U, NULL, FALSE);
21166 
21167   return offset;
21168 }
21169 
21170 
21171 static const value_string lpp_T_unitNB_r15_vals[] = {
21172   {   0, "ten-seconds" },
21173   { 0, NULL }
21174 };
21175 
21176 
21177 static int
dissect_lpp_T_unitNB_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21178 dissect_lpp_T_unitNB_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21179   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21180                                      1, NULL, TRUE, 0, NULL);
21181 
21182   return offset;
21183 }
21184 
21185 
21186 static const per_sequence_t ResponseTimeNB_r14_eag_1_sequence[] = {
21187   { &hf_lpp_unitNB_r15      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_unitNB_r15 },
21188   { NULL, 0, 0, NULL }
21189 };
21190 
21191 static int
dissect_lpp_ResponseTimeNB_r14_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21192 dissect_lpp_ResponseTimeNB_r14_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21193   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ResponseTimeNB_r14_eag_1_sequence);
21194 
21195   return offset;
21196 }
21197 
21198 
21199 static const per_sequence_t ResponseTimeNB_r14_sequence[] = {
21200   { &hf_lpp_timeNB_r14      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_512 },
21201   { &hf_lpp_responseTimeEarlyFixNB_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_512 },
21202   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ResponseTimeNB_r14_eag_1 },
21203   { NULL, 0, 0, NULL }
21204 };
21205 
21206 static int
dissect_lpp_ResponseTimeNB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21207 dissect_lpp_ResponseTimeNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21208   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21209                                    ett_lpp_ResponseTimeNB_r14, ResponseTimeNB_r14_sequence);
21210 
21211   return offset;
21212 }
21213 
21214 
21215 static const per_sequence_t QoS_eag_1_sequence[] = {
21216   { &hf_lpp_responseTimeNB_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ResponseTimeNB_r14 },
21217   { NULL, 0, 0, NULL }
21218 };
21219 
21220 static int
dissect_lpp_QoS_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21221 dissect_lpp_QoS_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21222   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, QoS_eag_1_sequence);
21223 
21224   return offset;
21225 }
21226 
21227 
21228 static const per_sequence_t HorizontalAccuracyExt_r15_sequence[] = {
21229   { &hf_lpp_accuracyExt_r15 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
21230   { &hf_lpp_confidence_r15  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
21231   { NULL, 0, 0, NULL }
21232 };
21233 
21234 static int
dissect_lpp_HorizontalAccuracyExt_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21235 dissect_lpp_HorizontalAccuracyExt_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21236   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21237                                    ett_lpp_HorizontalAccuracyExt_r15, HorizontalAccuracyExt_r15_sequence);
21238 
21239   return offset;
21240 }
21241 
21242 
21243 static const per_sequence_t VerticalAccuracyExt_r15_sequence[] = {
21244   { &hf_lpp_accuracyExt_r15 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
21245   { &hf_lpp_confidence_r15  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
21246   { NULL, 0, 0, NULL }
21247 };
21248 
21249 static int
dissect_lpp_VerticalAccuracyExt_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21250 dissect_lpp_VerticalAccuracyExt_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21251   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21252                                    ett_lpp_VerticalAccuracyExt_r15, VerticalAccuracyExt_r15_sequence);
21253 
21254   return offset;
21255 }
21256 
21257 
21258 static const per_sequence_t QoS_eag_2_sequence[] = {
21259   { &hf_lpp_horizontalAccuracyExt_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_HorizontalAccuracyExt_r15 },
21260   { &hf_lpp_verticalAccuracyExt_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_VerticalAccuracyExt_r15 },
21261   { NULL, 0, 0, NULL }
21262 };
21263 
21264 static int
dissect_lpp_QoS_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21265 dissect_lpp_QoS_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21266   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, QoS_eag_2_sequence);
21267 
21268   return offset;
21269 }
21270 
21271 
21272 static const per_sequence_t QoS_sequence[] = {
21273   { &hf_lpp_horizontalAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_HorizontalAccuracy },
21274   { &hf_lpp_verticalCoordinateRequest, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21275   { &hf_lpp_verticalAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VerticalAccuracy },
21276   { &hf_lpp_responseTime    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ResponseTime },
21277   { &hf_lpp_velocityRequest , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21278   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_QoS_eag_1 },
21279   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_QoS_eag_2 },
21280   { NULL, 0, 0, NULL }
21281 };
21282 
21283 static int
dissect_lpp_QoS(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21284 dissect_lpp_QoS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21285   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21286                                    ett_lpp_QoS, QoS_sequence);
21287 
21288   return offset;
21289 }
21290 
21291 
21292 static const value_string lpp_Environment_vals[] = {
21293   {   0, "badArea" },
21294   {   1, "notBadArea" },
21295   {   2, "mixedArea" },
21296   { 0, NULL }
21297 };
21298 
21299 
21300 static int
dissect_lpp_Environment(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21301 dissect_lpp_Environment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21302   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21303                                      3, NULL, TRUE, 0, NULL);
21304 
21305   return offset;
21306 }
21307 
21308 
21309 static const per_sequence_t MessageSizeLimitNB_r14_sequence[] = {
21310   { &hf_lpp_measurementLimit_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_512 },
21311   { NULL, 0, 0, NULL }
21312 };
21313 
21314 static int
dissect_lpp_MessageSizeLimitNB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21315 dissect_lpp_MessageSizeLimitNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21316   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21317                                    ett_lpp_MessageSizeLimitNB_r14, MessageSizeLimitNB_r14_sequence);
21318 
21319   return offset;
21320 }
21321 
21322 
21323 static const per_sequence_t CommonIEsRequestLocationInformation_eag_1_sequence[] = {
21324   { &hf_lpp_messageSizeLimitNB_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_MessageSizeLimitNB_r14 },
21325   { NULL, 0, 0, NULL }
21326 };
21327 
21328 static int
dissect_lpp_CommonIEsRequestLocationInformation_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21329 dissect_lpp_CommonIEsRequestLocationInformation_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21330   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsRequestLocationInformation_eag_1_sequence);
21331 
21332   return offset;
21333 }
21334 
21335 
21336 static const per_sequence_t CommonIEsRequestLocationInformation_eag_2_sequence[] = {
21337   { &hf_lpp_segmentationInfo_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SegmentationInfo_r14 },
21338   { NULL, 0, 0, NULL }
21339 };
21340 
21341 static int
dissect_lpp_CommonIEsRequestLocationInformation_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21342 dissect_lpp_CommonIEsRequestLocationInformation_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21343   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsRequestLocationInformation_eag_2_sequence);
21344 
21345   return offset;
21346 }
21347 
21348 
21349 static const per_sequence_t CommonIEsRequestLocationInformation_sequence[] = {
21350   { &hf_lpp_locationInformationType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_LocationInformationType },
21351   { &hf_lpp_triggeredReporting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TriggeredReportingCriteria },
21352   { &hf_lpp_periodicalReporting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PeriodicalReportingCriteria },
21353   { &hf_lpp_additionalInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AdditionalInformation },
21354   { &hf_lpp_qos             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_QoS },
21355   { &hf_lpp_environment     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Environment },
21356   { &hf_lpp_locationCoordinateTypes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationCoordinateTypes },
21357   { &hf_lpp_velocityTypes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VelocityTypes },
21358   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsRequestLocationInformation_eag_1 },
21359   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsRequestLocationInformation_eag_2 },
21360   { NULL, 0, 0, NULL }
21361 };
21362 
21363 static int
dissect_lpp_CommonIEsRequestLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21364 dissect_lpp_CommonIEsRequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21365   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21366                                    ett_lpp_CommonIEsRequestLocationInformation, CommonIEsRequestLocationInformation_sequence);
21367 
21368   return offset;
21369 }
21370 
21371 
21372 static const value_string lpp_T_ha_GNSS_Req_r15_vals[] = {
21373   {   0, "true" },
21374   { 0, NULL }
21375 };
21376 
21377 
21378 static int
dissect_lpp_T_ha_GNSS_Req_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21379 dissect_lpp_T_ha_GNSS_Req_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21380   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21381                                      1, NULL, FALSE, 0, NULL);
21382 
21383   return offset;
21384 }
21385 
21386 
21387 static const per_sequence_t GNSS_PositioningInstructions_eag_1_sequence[] = {
21388   { &hf_lpp_ha_GNSS_Req_r15 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_ha_GNSS_Req_r15 },
21389   { NULL, 0, 0, NULL }
21390 };
21391 
21392 static int
dissect_lpp_GNSS_PositioningInstructions_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21393 dissect_lpp_GNSS_PositioningInstructions_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21394   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_PositioningInstructions_eag_1_sequence);
21395 
21396   return offset;
21397 }
21398 
21399 
21400 static const per_sequence_t GNSS_PositioningInstructions_sequence[] = {
21401   { &hf_lpp_gnss_Methods    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_Bitmap },
21402   { &hf_lpp_fineTimeAssistanceMeasReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21403   { &hf_lpp_adrMeasReq      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21404   { &hf_lpp_multiFreqMeasReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21405   { &hf_lpp_assistanceAvailability, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21406   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_PositioningInstructions_eag_1 },
21407   { NULL, 0, 0, NULL }
21408 };
21409 
21410 static int
dissect_lpp_GNSS_PositioningInstructions(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21411 dissect_lpp_GNSS_PositioningInstructions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21412   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21413                                    ett_lpp_GNSS_PositioningInstructions, GNSS_PositioningInstructions_sequence);
21414 
21415   return offset;
21416 }
21417 
21418 
21419 static const per_sequence_t A_GNSS_RequestLocationInformation_sequence[] = {
21420   { &hf_lpp_gnss_PositioningInstructions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_PositioningInstructions },
21421   { NULL, 0, 0, NULL }
21422 };
21423 
21424 static int
dissect_lpp_A_GNSS_RequestLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21425 dissect_lpp_A_GNSS_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21426   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21427                                    ett_lpp_A_GNSS_RequestLocationInformation, A_GNSS_RequestLocationInformation_sequence);
21428 
21429   return offset;
21430 }
21431 
21432 
21433 static const value_string lpp_T_multipathRSTD_r14_vals[] = {
21434   {   0, "requested" },
21435   { 0, NULL }
21436 };
21437 
21438 
21439 static int
dissect_lpp_T_multipathRSTD_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21440 dissect_lpp_T_multipathRSTD_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21441   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21442                                      1, NULL, FALSE, 0, NULL);
21443 
21444   return offset;
21445 }
21446 
21447 
21448 static const per_sequence_t OTDOA_RequestLocationInformation_eag_1_sequence[] = {
21449   { &hf_lpp_multipathRSTD_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_multipathRSTD_r14 },
21450   { &hf_lpp_maxNoOfRSTDmeas_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_32 },
21451   { NULL, 0, 0, NULL }
21452 };
21453 
21454 static int
dissect_lpp_OTDOA_RequestLocationInformation_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21455 dissect_lpp_OTDOA_RequestLocationInformation_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21456   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_RequestLocationInformation_eag_1_sequence);
21457 
21458   return offset;
21459 }
21460 
21461 
21462 static const value_string lpp_T_motionMeasurements_r15_vals[] = {
21463   {   0, "requested" },
21464   { 0, NULL }
21465 };
21466 
21467 
21468 static int
dissect_lpp_T_motionMeasurements_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21469 dissect_lpp_T_motionMeasurements_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21470   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21471                                      1, NULL, FALSE, 0, NULL);
21472 
21473   return offset;
21474 }
21475 
21476 
21477 static const per_sequence_t OTDOA_RequestLocationInformation_eag_2_sequence[] = {
21478   { &hf_lpp_motionMeasurements_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_motionMeasurements_r15 },
21479   { NULL, 0, 0, NULL }
21480 };
21481 
21482 static int
dissect_lpp_OTDOA_RequestLocationInformation_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21483 dissect_lpp_OTDOA_RequestLocationInformation_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21484   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_RequestLocationInformation_eag_2_sequence);
21485 
21486   return offset;
21487 }
21488 
21489 
21490 static const per_sequence_t OTDOA_RequestLocationInformation_sequence[] = {
21491   { &hf_lpp_assistanceAvailability, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21492   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_RequestLocationInformation_eag_1 },
21493   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_RequestLocationInformation_eag_2 },
21494   { NULL, 0, 0, NULL }
21495 };
21496 
21497 static int
dissect_lpp_OTDOA_RequestLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21498 dissect_lpp_OTDOA_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21499   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21500                                    ett_lpp_OTDOA_RequestLocationInformation, OTDOA_RequestLocationInformation_sequence);
21501 
21502   return offset;
21503 }
21504 
21505 
21506 static int * const T_requestedMeasurements_bits[] = {
21507   &hf_lpp_T_requestedMeasurements_rsrpReq,
21508   &hf_lpp_T_requestedMeasurements_rsrqReq,
21509   &hf_lpp_T_requestedMeasurements_ueRxTxReq,
21510   &hf_lpp_T_requestedMeasurements_nrsrpReq_r14,
21511   &hf_lpp_T_requestedMeasurements_nrsrqReq_r14,
21512   NULL
21513 };
21514 
21515 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_)21516 dissect_lpp_T_requestedMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21517   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21518                                      1, 8, FALSE, T_requestedMeasurements_bits, 5, NULL, NULL);
21519 
21520   return offset;
21521 }
21522 
21523 
21524 static const per_sequence_t ECID_RequestLocationInformation_sequence[] = {
21525   { &hf_lpp_requestedMeasurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_requestedMeasurements },
21526   { NULL, 0, 0, NULL }
21527 };
21528 
21529 static int
dissect_lpp_ECID_RequestLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21530 dissect_lpp_ECID_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21531   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21532                                    ett_lpp_ECID_RequestLocationInformation, ECID_RequestLocationInformation_sequence);
21533 
21534   return offset;
21535 }
21536 
21537 
21538 static const per_sequence_t Sensor_RequestLocationInformation_r13_eag_1_sequence[] = {
21539   { &hf_lpp_assistanceAvailability_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
21540   { NULL, 0, 0, NULL }
21541 };
21542 
21543 static int
dissect_lpp_Sensor_RequestLocationInformation_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21544 dissect_lpp_Sensor_RequestLocationInformation_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21545   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_RequestLocationInformation_r13_eag_1_sequence);
21546 
21547   return offset;
21548 }
21549 
21550 
21551 static const per_sequence_t Sensor_RequestLocationInformation_r13_eag_2_sequence[] = {
21552   { &hf_lpp_sensor_MotionInformationReq_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
21553   { NULL, 0, 0, NULL }
21554 };
21555 
21556 static int
dissect_lpp_Sensor_RequestLocationInformation_r13_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21557 dissect_lpp_Sensor_RequestLocationInformation_r13_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21558   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_RequestLocationInformation_r13_eag_2_sequence);
21559 
21560   return offset;
21561 }
21562 
21563 
21564 static const per_sequence_t Sensor_RequestLocationInformation_r13_eag_3_sequence[] = {
21565   { &hf_lpp_adjustmentReq_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
21566   { NULL, 0, 0, NULL }
21567 };
21568 
21569 static int
dissect_lpp_Sensor_RequestLocationInformation_r13_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21570 dissect_lpp_Sensor_RequestLocationInformation_r13_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21571   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_RequestLocationInformation_r13_eag_3_sequence);
21572 
21573   return offset;
21574 }
21575 
21576 
21577 static const per_sequence_t Sensor_RequestLocationInformation_r13_sequence[] = {
21578   { &hf_lpp_uncompensatedBarometricPressureReq_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21579   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_RequestLocationInformation_r13_eag_1 },
21580   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_RequestLocationInformation_r13_eag_2 },
21581   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_RequestLocationInformation_r13_eag_3 },
21582   { NULL, 0, 0, NULL }
21583 };
21584 
21585 static int
dissect_lpp_Sensor_RequestLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21586 dissect_lpp_Sensor_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21587   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21588                                    ett_lpp_Sensor_RequestLocationInformation_r13, Sensor_RequestLocationInformation_r13_sequence);
21589 
21590   return offset;
21591 }
21592 
21593 
21594 static int * const T_mbsRequestedMeasurements_r14_bits[] = {
21595   &hf_lpp_T_mbsRequestedMeasurements_r14_rssi,
21596   NULL
21597 };
21598 
21599 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_)21600 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_) {
21601   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21602                                      1, 8, FALSE, T_mbsRequestedMeasurements_r14_bits, 1, NULL, NULL);
21603 
21604   return offset;
21605 }
21606 
21607 
21608 static const per_sequence_t TBS_RequestLocationInformation_r13_eag_1_sequence[] = {
21609   { &hf_lpp_mbsAssistanceAvailability_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
21610   { &hf_lpp_mbsRequestedMeasurements_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_mbsRequestedMeasurements_r14 },
21611   { NULL, 0, 0, NULL }
21612 };
21613 
21614 static int
dissect_lpp_TBS_RequestLocationInformation_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21615 dissect_lpp_TBS_RequestLocationInformation_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21616   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, TBS_RequestLocationInformation_r13_eag_1_sequence);
21617 
21618   return offset;
21619 }
21620 
21621 
21622 static const per_sequence_t TBS_RequestLocationInformation_r13_sequence[] = {
21623   { &hf_lpp_mbsSgnMeasListReq_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21624   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_TBS_RequestLocationInformation_r13_eag_1 },
21625   { NULL, 0, 0, NULL }
21626 };
21627 
21628 static int
dissect_lpp_TBS_RequestLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21629 dissect_lpp_TBS_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21630   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21631                                    ett_lpp_TBS_RequestLocationInformation_r13, TBS_RequestLocationInformation_r13_sequence);
21632 
21633   return offset;
21634 }
21635 
21636 
21637 static int * const T_requestedMeasurements_r13_bits[] = {
21638   &hf_lpp_T_requestedMeasurements_r13_rssi,
21639   &hf_lpp_T_requestedMeasurements_r13_rtt,
21640   NULL
21641 };
21642 
21643 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_)21644 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_) {
21645   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21646                                      1, 8, FALSE, T_requestedMeasurements_r13_bits, 2, NULL, NULL);
21647 
21648   return offset;
21649 }
21650 
21651 
21652 static const per_sequence_t WLAN_RequestLocationInformation_r13_eag_1_sequence[] = {
21653   { &hf_lpp_assistanceAvailability_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
21654   { NULL, 0, 0, NULL }
21655 };
21656 
21657 static int
dissect_lpp_WLAN_RequestLocationInformation_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21658 dissect_lpp_WLAN_RequestLocationInformation_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21659   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, WLAN_RequestLocationInformation_r13_eag_1_sequence);
21660 
21661   return offset;
21662 }
21663 
21664 
21665 static const per_sequence_t WLAN_RequestLocationInformation_r13_sequence[] = {
21666   { &hf_lpp_requestedMeasurements_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_requestedMeasurements_r13 },
21667   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_RequestLocationInformation_r13_eag_1 },
21668   { NULL, 0, 0, NULL }
21669 };
21670 
21671 static int
dissect_lpp_WLAN_RequestLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21672 dissect_lpp_WLAN_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21673   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21674                                    ett_lpp_WLAN_RequestLocationInformation_r13, WLAN_RequestLocationInformation_r13_sequence);
21675 
21676   return offset;
21677 }
21678 
21679 
21680 static int * const T_requestedMeasurements_r13_01_bits[] = {
21681   &hf_lpp_T_requestedMeasurements_r13_01_rssi,
21682   NULL
21683 };
21684 
21685 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_)21686 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_) {
21687   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21688                                      1, 8, FALSE, T_requestedMeasurements_r13_01_bits, 1, NULL, NULL);
21689 
21690   return offset;
21691 }
21692 
21693 
21694 static const per_sequence_t BT_RequestLocationInformation_r13_sequence[] = {
21695   { &hf_lpp_requestedMeasurements_r13_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_requestedMeasurements_r13_01 },
21696   { NULL, 0, 0, NULL }
21697 };
21698 
21699 static int
dissect_lpp_BT_RequestLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21700 dissect_lpp_BT_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21701   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21702                                    ett_lpp_BT_RequestLocationInformation_r13, BT_RequestLocationInformation_r13_sequence);
21703 
21704   return offset;
21705 }
21706 
21707 
21708 static const per_sequence_t RequestLocationInformation_r9_IEs_eag_1_sequence[] = {
21709   { &hf_lpp_sensor_RequestLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_RequestLocationInformation_r13 },
21710   { &hf_lpp_tbs_RequestLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TBS_RequestLocationInformation_r13 },
21711   { &hf_lpp_wlan_RequestLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_WLAN_RequestLocationInformation_r13 },
21712   { &hf_lpp_bt_RequestLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BT_RequestLocationInformation_r13 },
21713   { NULL, 0, 0, NULL }
21714 };
21715 
21716 static int
dissect_lpp_RequestLocationInformation_r9_IEs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21717 dissect_lpp_RequestLocationInformation_r9_IEs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21718   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RequestLocationInformation_r9_IEs_eag_1_sequence);
21719 
21720   return offset;
21721 }
21722 
21723 
21724 static int * const T_requestedMeasurements_r16_bits[] = {
21725   &hf_lpp_T_requestedMeasurements_r16_ssrsrpReq,
21726   &hf_lpp_T_requestedMeasurements_r16_ssrsrqReq,
21727   &hf_lpp_T_requestedMeasurements_r16_csirsrpReq,
21728   &hf_lpp_T_requestedMeasurements_r16_csirsrqReq,
21729   NULL
21730 };
21731 
21732 static int
dissect_lpp_T_requestedMeasurements_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21733 dissect_lpp_T_requestedMeasurements_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21734   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21735                                      1, 8, FALSE, T_requestedMeasurements_r16_bits, 4, NULL, NULL);
21736 
21737   return offset;
21738 }
21739 
21740 
21741 static const per_sequence_t NR_ECID_RequestLocationInformation_r16_sequence[] = {
21742   { &hf_lpp_requestedMeasurements_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_requestedMeasurements_r16 },
21743   { NULL, 0, 0, NULL }
21744 };
21745 
21746 static int
dissect_lpp_NR_ECID_RequestLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21747 dissect_lpp_NR_ECID_RequestLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21748   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21749                                    ett_lpp_NR_ECID_RequestLocationInformation_r16, NR_ECID_RequestLocationInformation_r16_sequence);
21750 
21751   return offset;
21752 }
21753 
21754 
21755 static const value_string lpp_T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16_vals[] = {
21756   {   0, "true" },
21757   { 0, NULL }
21758 };
21759 
21760 
21761 static int
dissect_lpp_T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21762 dissect_lpp_T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21763   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21764                                      1, NULL, FALSE, 0, NULL);
21765 
21766   return offset;
21767 }
21768 
21769 
21770 static int * const T_nr_RequestedMeasurements_r16_01_bits[] = {
21771   &hf_lpp_T_nr_RequestedMeasurements_r16_01_prsrsrpReq,
21772   NULL
21773 };
21774 
21775 static int
dissect_lpp_T_nr_RequestedMeasurements_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21776 dissect_lpp_T_nr_RequestedMeasurements_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21777   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21778                                      1, 8, FALSE, T_nr_RequestedMeasurements_r16_01_bits, 1, NULL, NULL);
21779 
21780   return offset;
21781 }
21782 
21783 
21784 static const per_sequence_t NR_Multi_RTT_ReportConfig_r16_sequence[] = {
21785   { &hf_lpp_maxDL_PRS_RxTxTimeDiffMeasPerTRP_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_4 },
21786   { &hf_lpp_timingReportingGranularityFactor_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_5 },
21787   { NULL, 0, 0, NULL }
21788 };
21789 
21790 static int
dissect_lpp_NR_Multi_RTT_ReportConfig_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21791 dissect_lpp_NR_Multi_RTT_ReportConfig_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21792   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21793                                    ett_lpp_NR_Multi_RTT_ReportConfig_r16, NR_Multi_RTT_ReportConfig_r16_sequence);
21794 
21795   return offset;
21796 }
21797 
21798 
21799 static const value_string lpp_T_additionalPaths_r16_01_vals[] = {
21800   {   0, "requested" },
21801   { 0, NULL }
21802 };
21803 
21804 
21805 static int
dissect_lpp_T_additionalPaths_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21806 dissect_lpp_T_additionalPaths_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21807   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21808                                      1, NULL, FALSE, 0, NULL);
21809 
21810   return offset;
21811 }
21812 
21813 
21814 static const per_sequence_t NR_Multi_RTT_RequestLocationInformation_r16_sequence[] = {
21815   { &hf_lpp_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16 },
21816   { &hf_lpp_nr_RequestedMeasurements_r16_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_RequestedMeasurements_r16_01 },
21817   { &hf_lpp_nr_AssistanceAvailability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21818   { &hf_lpp_nr_Multi_RTT_ReportConfig_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_Multi_RTT_ReportConfig_r16 },
21819   { &hf_lpp_additionalPaths_r16_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_additionalPaths_r16_01 },
21820   { NULL, 0, 0, NULL }
21821 };
21822 
21823 static int
dissect_lpp_NR_Multi_RTT_RequestLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21824 dissect_lpp_NR_Multi_RTT_RequestLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21825   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21826                                    ett_lpp_NR_Multi_RTT_RequestLocationInformation_r16, NR_Multi_RTT_RequestLocationInformation_r16_sequence);
21827 
21828   return offset;
21829 }
21830 
21831 
21832 static const per_sequence_t NR_DL_AoD_ReportConfig_r16_sequence[] = {
21833   { &hf_lpp_maxDL_PRS_RSRP_MeasurementsPerTRP_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
21834   { NULL, 0, 0, NULL }
21835 };
21836 
21837 static int
dissect_lpp_NR_DL_AoD_ReportConfig_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21838 dissect_lpp_NR_DL_AoD_ReportConfig_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21839   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21840                                    ett_lpp_NR_DL_AoD_ReportConfig_r16, NR_DL_AoD_ReportConfig_r16_sequence);
21841 
21842   return offset;
21843 }
21844 
21845 
21846 static const per_sequence_t NR_DL_AoD_RequestLocationInformation_r16_sequence[] = {
21847   { &hf_lpp_nr_AssistanceAvailability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21848   { &hf_lpp_nr_DL_AoD_ReportConfig_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_AoD_ReportConfig_r16 },
21849   { NULL, 0, 0, NULL }
21850 };
21851 
21852 static int
dissect_lpp_NR_DL_AoD_RequestLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21853 dissect_lpp_NR_DL_AoD_RequestLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21854   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21855                                    ett_lpp_NR_DL_AoD_RequestLocationInformation_r16, NR_DL_AoD_RequestLocationInformation_r16_sequence);
21856 
21857   return offset;
21858 }
21859 
21860 
21861 static const value_string lpp_T_nr_DL_PRS_RstdMeasurementInfoRequest_r16_vals[] = {
21862   {   0, "true" },
21863   { 0, NULL }
21864 };
21865 
21866 
21867 static int
dissect_lpp_T_nr_DL_PRS_RstdMeasurementInfoRequest_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21868 dissect_lpp_T_nr_DL_PRS_RstdMeasurementInfoRequest_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21869   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21870                                      1, NULL, FALSE, 0, NULL);
21871 
21872   return offset;
21873 }
21874 
21875 
21876 static int * const T_nr_RequestedMeasurements_r16_bits[] = {
21877   &hf_lpp_T_nr_RequestedMeasurements_r16_prsrsrpReq,
21878   NULL
21879 };
21880 
21881 static int
dissect_lpp_T_nr_RequestedMeasurements_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21882 dissect_lpp_T_nr_RequestedMeasurements_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21883   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
21884                                      1, 8, FALSE, T_nr_RequestedMeasurements_r16_bits, 1, NULL, NULL);
21885 
21886   return offset;
21887 }
21888 
21889 
21890 static const per_sequence_t NR_DL_TDOA_ReportConfig_r16_sequence[] = {
21891   { &hf_lpp_maxDL_PRS_RSTD_MeasurementsPerTRPPair_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_4 },
21892   { &hf_lpp_timingReportingGranularityFactor_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_5 },
21893   { NULL, 0, 0, NULL }
21894 };
21895 
21896 static int
dissect_lpp_NR_DL_TDOA_ReportConfig_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21897 dissect_lpp_NR_DL_TDOA_ReportConfig_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21898   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21899                                    ett_lpp_NR_DL_TDOA_ReportConfig_r16, NR_DL_TDOA_ReportConfig_r16_sequence);
21900 
21901   return offset;
21902 }
21903 
21904 
21905 static const value_string lpp_T_additionalPaths_r16_vals[] = {
21906   {   0, "requested" },
21907   { 0, NULL }
21908 };
21909 
21910 
21911 static int
dissect_lpp_T_additionalPaths_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21912 dissect_lpp_T_additionalPaths_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21913   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
21914                                      1, NULL, FALSE, 0, NULL);
21915 
21916   return offset;
21917 }
21918 
21919 
21920 static const per_sequence_t NR_DL_TDOA_RequestLocationInformation_r16_sequence[] = {
21921   { &hf_lpp_nr_DL_PRS_RstdMeasurementInfoRequest_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_nr_DL_PRS_RstdMeasurementInfoRequest_r16 },
21922   { &hf_lpp_nr_RequestedMeasurements_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_RequestedMeasurements_r16 },
21923   { &hf_lpp_nr_AssistanceAvailability_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
21924   { &hf_lpp_nr_DL_TDOA_ReportConfig_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_ReportConfig_r16 },
21925   { &hf_lpp_additionalPaths_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_additionalPaths_r16 },
21926   { NULL, 0, 0, NULL }
21927 };
21928 
21929 static int
dissect_lpp_NR_DL_TDOA_RequestLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21930 dissect_lpp_NR_DL_TDOA_RequestLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21931   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21932                                    ett_lpp_NR_DL_TDOA_RequestLocationInformation_r16, NR_DL_TDOA_RequestLocationInformation_r16_sequence);
21933 
21934   return offset;
21935 }
21936 
21937 
21938 static const per_sequence_t RequestLocationInformation_r9_IEs_eag_2_sequence[] = {
21939   { &hf_lpp_nr_ECID_RequestLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_ECID_RequestLocationInformation_r16 },
21940   { &hf_lpp_nr_Multi_RTT_RequestLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_RequestLocationInformation_r16 },
21941   { &hf_lpp_nr_DL_AoD_RequestLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_RequestLocationInformation_r16 },
21942   { &hf_lpp_nr_DL_TDOA_RequestLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_RequestLocationInformation_r16 },
21943   { NULL, 0, 0, NULL }
21944 };
21945 
21946 static int
dissect_lpp_RequestLocationInformation_r9_IEs_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21947 dissect_lpp_RequestLocationInformation_r9_IEs_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21948   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RequestLocationInformation_r9_IEs_eag_2_sequence);
21949 
21950   return offset;
21951 }
21952 
21953 
21954 static const per_sequence_t RequestLocationInformation_r9_IEs_sequence[] = {
21955   { &hf_lpp_commonIEsRequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsRequestLocationInformation },
21956   { &hf_lpp_a_gnss_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_RequestLocationInformation },
21957   { &hf_lpp_otdoa_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_RequestLocationInformation },
21958   { &hf_lpp_ecid_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_RequestLocationInformation },
21959   { &hf_lpp_epdu_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
21960   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_RequestLocationInformation_r9_IEs_eag_1 },
21961   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_RequestLocationInformation_r9_IEs_eag_2 },
21962   { NULL, 0, 0, NULL }
21963 };
21964 
21965 static int
dissect_lpp_RequestLocationInformation_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21966 dissect_lpp_RequestLocationInformation_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21967   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
21968                                    ett_lpp_RequestLocationInformation_r9_IEs, RequestLocationInformation_r9_IEs_sequence);
21969 
21970   return offset;
21971 }
21972 
21973 
21974 static const value_string lpp_T_c1_05_vals[] = {
21975   {   0, "requestLocationInformation-r9" },
21976   {   1, "spare3" },
21977   {   2, "spare2" },
21978   {   3, "spare1" },
21979   { 0, NULL }
21980 };
21981 
21982 static const per_choice_t T_c1_05_choice[] = {
21983   {   0, &hf_lpp_requestLocationInformation_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestLocationInformation_r9_IEs },
21984   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
21985   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
21986   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
21987   { 0, NULL, 0, NULL }
21988 };
21989 
21990 static int
dissect_lpp_T_c1_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)21991 dissect_lpp_T_c1_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21992   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
21993                                  ett_lpp_T_c1_05, T_c1_05_choice,
21994                                  NULL);
21995 
21996   return offset;
21997 }
21998 
21999 
22000 static const per_sequence_t T_criticalExtensionsFuture_04_sequence[] = {
22001   { NULL, 0, 0, NULL }
22002 };
22003 
22004 static int
dissect_lpp_T_criticalExtensionsFuture_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22005 dissect_lpp_T_criticalExtensionsFuture_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22006   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22007                                    ett_lpp_T_criticalExtensionsFuture_04, T_criticalExtensionsFuture_04_sequence);
22008 
22009   return offset;
22010 }
22011 
22012 
22013 static const value_string lpp_T_criticalExtensions_04_vals[] = {
22014   {   0, "c1" },
22015   {   1, "criticalExtensionsFuture" },
22016   { 0, NULL }
22017 };
22018 
22019 static const per_choice_t T_criticalExtensions_04_choice[] = {
22020   {   0, &hf_lpp_c1_05           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_05 },
22021   {   1, &hf_lpp_criticalExtensionsFuture_04, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_04 },
22022   { 0, NULL, 0, NULL }
22023 };
22024 
22025 static int
dissect_lpp_T_criticalExtensions_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22026 dissect_lpp_T_criticalExtensions_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22027   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
22028                                  ett_lpp_T_criticalExtensions_04, T_criticalExtensions_04_choice,
22029                                  NULL);
22030 
22031   return offset;
22032 }
22033 
22034 
22035 static const per_sequence_t RequestLocationInformation_sequence[] = {
22036   { &hf_lpp_criticalExtensions_04, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_04 },
22037   { NULL, 0, 0, NULL }
22038 };
22039 
22040 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_)22041 dissect_lpp_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22042 #line 137 "./asn1/lpp/lpp.cnf"
22043   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information");
22044 
22045 
22046   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22047                                    ett_lpp_RequestLocationInformation, RequestLocationInformation_sequence);
22048 
22049   return offset;
22050 }
22051 
22052 
22053 static const value_string lpp_T_latitudeSign_01_vals[] = {
22054   {   0, "north" },
22055   {   1, "south" },
22056   { 0, NULL }
22057 };
22058 
22059 
22060 static int
dissect_lpp_T_latitudeSign_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22061 dissect_lpp_T_latitudeSign_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22062   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22063                                      2, NULL, FALSE, 0, NULL);
22064 
22065   return offset;
22066 }
22067 
22068 
22069 static const per_sequence_t Ellipsoid_PointWithUncertaintyCircle_sequence[] = {
22070   { &hf_lpp_latitudeSign_01 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_01 },
22071   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
22072   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
22073   { &hf_lpp_uncertainty     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
22074   { NULL, 0, 0, NULL }
22075 };
22076 
22077 static int
dissect_lpp_Ellipsoid_PointWithUncertaintyCircle(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22078 dissect_lpp_Ellipsoid_PointWithUncertaintyCircle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22079   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22080                                    ett_lpp_Ellipsoid_PointWithUncertaintyCircle, Ellipsoid_PointWithUncertaintyCircle_sequence);
22081 
22082   return offset;
22083 }
22084 
22085 
22086 static const value_string lpp_T_latitudeSign_02_vals[] = {
22087   {   0, "north" },
22088   {   1, "south" },
22089   { 0, NULL }
22090 };
22091 
22092 
22093 static int
dissect_lpp_T_latitudeSign_02(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22094 dissect_lpp_T_latitudeSign_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22095   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22096                                      2, NULL, FALSE, 0, NULL);
22097 
22098   return offset;
22099 }
22100 
22101 
22102 static const per_sequence_t EllipsoidPointWithUncertaintyEllipse_sequence[] = {
22103   { &hf_lpp_latitudeSign_02 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_02 },
22104   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
22105   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
22106   { &hf_lpp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
22107   { &hf_lpp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
22108   { &hf_lpp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
22109   { &hf_lpp_confidence      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
22110   { NULL, 0, 0, NULL }
22111 };
22112 
22113 static int
dissect_lpp_EllipsoidPointWithUncertaintyEllipse(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22114 dissect_lpp_EllipsoidPointWithUncertaintyEllipse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22115   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22116                                    ett_lpp_EllipsoidPointWithUncertaintyEllipse, EllipsoidPointWithUncertaintyEllipse_sequence);
22117 
22118   return offset;
22119 }
22120 
22121 
22122 static const value_string lpp_T_latitudeSign_06_vals[] = {
22123   {   0, "north" },
22124   {   1, "south" },
22125   { 0, NULL }
22126 };
22127 
22128 
22129 static int
dissect_lpp_T_latitudeSign_06(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22130 dissect_lpp_T_latitudeSign_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22131   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22132                                      2, NULL, FALSE, 0, NULL);
22133 
22134   return offset;
22135 }
22136 
22137 
22138 static const per_sequence_t PolygonPoints_sequence[] = {
22139   { &hf_lpp_latitudeSign_06 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_06 },
22140   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
22141   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
22142   { NULL, 0, 0, NULL }
22143 };
22144 
22145 static int
dissect_lpp_PolygonPoints(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22146 dissect_lpp_PolygonPoints(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22147   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22148                                    ett_lpp_PolygonPoints, PolygonPoints_sequence);
22149 
22150   return offset;
22151 }
22152 
22153 
22154 static const per_sequence_t Polygon_sequence_of[1] = {
22155   { &hf_lpp_Polygon_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_PolygonPoints },
22156 };
22157 
22158 static int
dissect_lpp_Polygon(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22159 dissect_lpp_Polygon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22160   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
22161                                                   ett_lpp_Polygon, Polygon_sequence_of,
22162                                                   3, 15, FALSE);
22163 
22164   return offset;
22165 }
22166 
22167 
22168 static const value_string lpp_T_latitudeSign_03_vals[] = {
22169   {   0, "north" },
22170   {   1, "south" },
22171   { 0, NULL }
22172 };
22173 
22174 
22175 static int
dissect_lpp_T_latitudeSign_03(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22176 dissect_lpp_T_latitudeSign_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22177   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22178                                      2, NULL, FALSE, 0, NULL);
22179 
22180   return offset;
22181 }
22182 
22183 
22184 static const value_string lpp_T_altitudeDirection_vals[] = {
22185   {   0, "height" },
22186   {   1, "depth" },
22187   { 0, NULL }
22188 };
22189 
22190 
22191 static int
dissect_lpp_T_altitudeDirection(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22192 dissect_lpp_T_altitudeDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22193   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22194                                      2, NULL, FALSE, 0, NULL);
22195 
22196   return offset;
22197 }
22198 
22199 
22200 static const per_sequence_t EllipsoidPointWithAltitude_sequence[] = {
22201   { &hf_lpp_latitudeSign_03 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_03 },
22202   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
22203   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
22204   { &hf_lpp_altitudeDirection, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_altitudeDirection },
22205   { &hf_lpp_altitude        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
22206   { NULL, 0, 0, NULL }
22207 };
22208 
22209 int
dissect_lpp_EllipsoidPointWithAltitude(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22210 dissect_lpp_EllipsoidPointWithAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22211   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22212                                    ett_lpp_EllipsoidPointWithAltitude, EllipsoidPointWithAltitude_sequence);
22213 
22214   return offset;
22215 }
22216 
22217 
22218 static const value_string lpp_T_latitudeSign_05_vals[] = {
22219   {   0, "north" },
22220   {   1, "south" },
22221   { 0, NULL }
22222 };
22223 
22224 
22225 static int
dissect_lpp_T_latitudeSign_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22226 dissect_lpp_T_latitudeSign_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22227   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22228                                      2, NULL, FALSE, 0, NULL);
22229 
22230   return offset;
22231 }
22232 
22233 
22234 static const per_sequence_t EllipsoidArc_sequence[] = {
22235   { &hf_lpp_latitudeSign_05 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_05 },
22236   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
22237   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
22238   { &hf_lpp_innerRadius     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
22239   { &hf_lpp_uncertaintyRadius, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
22240   { &hf_lpp_offsetAngle     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
22241   { &hf_lpp_includedAngle   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
22242   { &hf_lpp_confidence      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
22243   { NULL, 0, 0, NULL }
22244 };
22245 
22246 static int
dissect_lpp_EllipsoidArc(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22247 dissect_lpp_EllipsoidArc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22248   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22249                                    ett_lpp_EllipsoidArc, EllipsoidArc_sequence);
22250 
22251   return offset;
22252 }
22253 
22254 
22255 static const per_sequence_t HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15_sequence[] = {
22256   { &hf_lpp_degreesLatitude_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
22257   { &hf_lpp_degreesLongitude_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
22258   { &hf_lpp_uncertaintySemiMajor_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22259   { &hf_lpp_uncertaintySemiMinor_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22260   { &hf_lpp_orientationMajorAxis_r15, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
22261   { &hf_lpp_confidence_r15  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
22262   { NULL, 0, 0, NULL }
22263 };
22264 
22265 static int
dissect_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22266 dissect_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22267   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22268                                    ett_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15, HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15_sequence);
22269 
22270   return offset;
22271 }
22272 
22273 
22274 static const value_string lpp_LocationCoordinates_vals[] = {
22275   {   0, "ellipsoidPoint" },
22276   {   1, "ellipsoidPointWithUncertaintyCircle" },
22277   {   2, "ellipsoidPointWithUncertaintyEllipse" },
22278   {   3, "polygon" },
22279   {   4, "ellipsoidPointWithAltitude" },
22280   {   5, "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid" },
22281   {   6, "ellipsoidArc" },
22282   {   7, "highAccuracyEllipsoidPointWithUncertaintyEllipse-v1510" },
22283   {   8, "highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-v1510" },
22284   { 0, NULL }
22285 };
22286 
22287 static const per_choice_t LocationCoordinates_choice[] = {
22288   {   0, &hf_lpp_ellipsoidPoint_01, ASN1_EXTENSION_ROOT    , dissect_lpp_Ellipsoid_Point },
22289   {   1, &hf_lpp_ellipsoidPointWithUncertaintyCircle_01, ASN1_EXTENSION_ROOT    , dissect_lpp_Ellipsoid_PointWithUncertaintyCircle },
22290   {   2, &hf_lpp_ellipsoidPointWithUncertaintyEllipse_01, ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithUncertaintyEllipse },
22291   {   3, &hf_lpp_locationCoordinates_polygon, ASN1_EXTENSION_ROOT    , dissect_lpp_Polygon },
22292   {   4, &hf_lpp_ellipsoidPointWithAltitude_01, ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithAltitude },
22293   {   5, &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_01, ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
22294   {   6, &hf_lpp_ellipsoidArc_01 , ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidArc },
22295   {   7, &hf_lpp_highAccuracyEllipsoidPointWithUncertaintyEllipse_v1510, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15 },
22296   {   8, &hf_lpp_highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_v1510, ASN1_NOT_EXTENSION_ROOT, dissect_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15 },
22297   { 0, NULL, 0, NULL }
22298 };
22299 
22300 static int
dissect_lpp_LocationCoordinates(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22301 dissect_lpp_LocationCoordinates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22302   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
22303                                  ett_lpp_LocationCoordinates, LocationCoordinates_choice,
22304                                  NULL);
22305 
22306   return offset;
22307 }
22308 
22309 
22310 static const per_sequence_t HorizontalVelocity_sequence[] = {
22311   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
22312   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
22313   { NULL, 0, 0, NULL }
22314 };
22315 
22316 static int
dissect_lpp_HorizontalVelocity(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22317 dissect_lpp_HorizontalVelocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22318   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22319                                    ett_lpp_HorizontalVelocity, HorizontalVelocity_sequence);
22320 
22321   return offset;
22322 }
22323 
22324 
22325 static const value_string lpp_T_verticalDirection_vals[] = {
22326   {   0, "upward" },
22327   {   1, "downward" },
22328   { 0, NULL }
22329 };
22330 
22331 
22332 static int
dissect_lpp_T_verticalDirection(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22333 dissect_lpp_T_verticalDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22334   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22335                                      2, NULL, FALSE, 0, NULL);
22336 
22337   return offset;
22338 }
22339 
22340 
22341 static const per_sequence_t HorizontalWithVerticalVelocity_sequence[] = {
22342   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
22343   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
22344   { &hf_lpp_verticalDirection, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_verticalDirection },
22345   { &hf_lpp_verticalSpeed   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22346   { NULL, 0, 0, NULL }
22347 };
22348 
22349 static int
dissect_lpp_HorizontalWithVerticalVelocity(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22350 dissect_lpp_HorizontalWithVerticalVelocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22351   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22352                                    ett_lpp_HorizontalWithVerticalVelocity, HorizontalWithVerticalVelocity_sequence);
22353 
22354   return offset;
22355 }
22356 
22357 
22358 static const per_sequence_t HorizontalVelocityWithUncertainty_sequence[] = {
22359   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
22360   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
22361   { &hf_lpp_uncertaintySpeed, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22362   { NULL, 0, 0, NULL }
22363 };
22364 
22365 static int
dissect_lpp_HorizontalVelocityWithUncertainty(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22366 dissect_lpp_HorizontalVelocityWithUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22367   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22368                                    ett_lpp_HorizontalVelocityWithUncertainty, HorizontalVelocityWithUncertainty_sequence);
22369 
22370   return offset;
22371 }
22372 
22373 
22374 static const value_string lpp_T_verticalDirection_01_vals[] = {
22375   {   0, "upward" },
22376   {   1, "downward" },
22377   { 0, NULL }
22378 };
22379 
22380 
22381 static int
dissect_lpp_T_verticalDirection_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22382 dissect_lpp_T_verticalDirection_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22383   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22384                                      2, NULL, FALSE, 0, NULL);
22385 
22386   return offset;
22387 }
22388 
22389 
22390 static const per_sequence_t HorizontalWithVerticalVelocityAndUncertainty_sequence[] = {
22391   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
22392   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
22393   { &hf_lpp_verticalDirection_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_verticalDirection_01 },
22394   { &hf_lpp_verticalSpeed   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22395   { &hf_lpp_horizontalUncertaintySpeed, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22396   { &hf_lpp_verticalUncertaintySpeed, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
22397   { NULL, 0, 0, NULL }
22398 };
22399 
22400 static int
dissect_lpp_HorizontalWithVerticalVelocityAndUncertainty(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22401 dissect_lpp_HorizontalWithVerticalVelocityAndUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22402   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22403                                    ett_lpp_HorizontalWithVerticalVelocityAndUncertainty, HorizontalWithVerticalVelocityAndUncertainty_sequence);
22404 
22405   return offset;
22406 }
22407 
22408 
22409 const value_string lpp_Velocity_vals[] = {
22410   {   0, "horizontalVelocity" },
22411   {   1, "horizontalWithVerticalVelocity" },
22412   {   2, "horizontalVelocityWithUncertainty" },
22413   {   3, "horizontalWithVerticalVelocityAndUncertainty" },
22414   { 0, NULL }
22415 };
22416 
22417 static const per_choice_t Velocity_choice[] = {
22418   {   0, &hf_lpp_horizontalVelocity_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalVelocity },
22419   {   1, &hf_lpp_horizontalWithVerticalVelocity_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalWithVerticalVelocity },
22420   {   2, &hf_lpp_horizontalVelocityWithUncertainty_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalVelocityWithUncertainty },
22421   {   3, &hf_lpp_horizontalWithVerticalVelocityAndUncertainty_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalWithVerticalVelocityAndUncertainty },
22422   { 0, NULL, 0, NULL }
22423 };
22424 
22425 int
dissect_lpp_Velocity(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22426 dissect_lpp_Velocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22427   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
22428                                  ett_lpp_Velocity, Velocity_choice,
22429                                  NULL);
22430 
22431   return offset;
22432 }
22433 
22434 
22435 static const value_string lpp_LocationFailureCause_vals[] = {
22436   {   0, "undefined" },
22437   {   1, "requestedMethodNotSupported" },
22438   {   2, "positionMethodFailure" },
22439   {   3, "periodicLocationMeasurementsNotAvailable" },
22440   { 0, NULL }
22441 };
22442 
22443 
22444 static int
dissect_lpp_LocationFailureCause(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22445 dissect_lpp_LocationFailureCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22446   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22447                                      4, NULL, TRUE, 0, NULL);
22448 
22449   return offset;
22450 }
22451 
22452 
22453 static const per_sequence_t LocationError_sequence[] = {
22454   { &hf_lpp_locationfailurecause, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_LocationFailureCause },
22455   { NULL, 0, 0, NULL }
22456 };
22457 
22458 static int
dissect_lpp_LocationError(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22459 dissect_lpp_LocationError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22460   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22461                                    ett_lpp_LocationError, LocationError_sequence);
22462 
22463   return offset;
22464 }
22465 
22466 
22467 static const value_string lpp_EarlyFixReport_r12_vals[] = {
22468   {   0, "noMoreMessages" },
22469   {   1, "moreMessagesOnTheWay" },
22470   { 0, NULL }
22471 };
22472 
22473 
22474 static int
dissect_lpp_EarlyFixReport_r12(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22475 dissect_lpp_EarlyFixReport_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22476   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22477                                      2, NULL, FALSE, 0, NULL);
22478 
22479   return offset;
22480 }
22481 
22482 
22483 static const per_sequence_t CommonIEsProvideLocationInformation_eag_1_sequence[] = {
22484   { &hf_lpp_earlyFixReport_r12, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_EarlyFixReport_r12 },
22485   { NULL, 0, 0, NULL }
22486 };
22487 
22488 static int
dissect_lpp_CommonIEsProvideLocationInformation_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22489 dissect_lpp_CommonIEsProvideLocationInformation_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22490   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsProvideLocationInformation_eag_1_sequence);
22491 
22492   return offset;
22493 }
22494 
22495 
22496 static int * const LocationSource_r13_bits[] = {
22497   &hf_lpp_LocationSource_r13_a_gnss,
22498   &hf_lpp_LocationSource_r13_wlan,
22499   &hf_lpp_LocationSource_r13_bt,
22500   &hf_lpp_LocationSource_r13_tbs,
22501   &hf_lpp_LocationSource_r13_sensor,
22502   &hf_lpp_LocationSource_r13_ha_gnss_v1510,
22503   &hf_lpp_LocationSource_r13_motion_sensor_v1550,
22504   &hf_lpp_LocationSource_r13_dl_tdoa_r16,
22505   &hf_lpp_LocationSource_r13_dl_aod_r16,
22506   NULL
22507 };
22508 
22509 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_)22510 dissect_lpp_LocationSource_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22511   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
22512                                      1, 16, FALSE, LocationSource_r13_bits, 9, NULL, NULL);
22513 
22514   return offset;
22515 }
22516 
22517 
22518 static const per_sequence_t CommonIEsProvideLocationInformation_eag_2_sequence[] = {
22519   { &hf_lpp_locationSource_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_LocationSource_r13 },
22520   { &hf_lpp_locationTimestamp_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_UTCTime },
22521   { NULL, 0, 0, NULL }
22522 };
22523 
22524 static int
dissect_lpp_CommonIEsProvideLocationInformation_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22525 dissect_lpp_CommonIEsProvideLocationInformation_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22526   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsProvideLocationInformation_eag_2_sequence);
22527 
22528   return offset;
22529 }
22530 
22531 
22532 static const per_sequence_t CommonIEsProvideLocationInformation_eag_3_sequence[] = {
22533   { &hf_lpp_segmentationInfo_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SegmentationInfo_r14 },
22534   { NULL, 0, 0, NULL }
22535 };
22536 
22537 static int
dissect_lpp_CommonIEsProvideLocationInformation_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22538 dissect_lpp_CommonIEsProvideLocationInformation_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22539   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, CommonIEsProvideLocationInformation_eag_3_sequence);
22540 
22541   return offset;
22542 }
22543 
22544 
22545 static const per_sequence_t CommonIEsProvideLocationInformation_sequence[] = {
22546   { &hf_lpp_locationEstimate, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationCoordinates },
22547   { &hf_lpp_velocityEstimate, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Velocity },
22548   { &hf_lpp_locationError   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationError },
22549   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsProvideLocationInformation_eag_1 },
22550   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsProvideLocationInformation_eag_2 },
22551   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_CommonIEsProvideLocationInformation_eag_3 },
22552   { NULL, 0, 0, NULL }
22553 };
22554 
22555 static int
dissect_lpp_CommonIEsProvideLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22556 dissect_lpp_CommonIEsProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22557   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22558                                    ett_lpp_CommonIEsProvideLocationInformation, CommonIEsProvideLocationInformation_sequence);
22559 
22560   return offset;
22561 }
22562 
22563 
22564 
22565 static int
dissect_lpp_INTEGER_0_3599999(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22566 dissect_lpp_INTEGER_0_3599999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22567   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
22568                                                             0U, 3599999U, NULL, FALSE);
22569 
22570   return offset;
22571 }
22572 
22573 
22574 
22575 static int
dissect_lpp_INTEGER_0_3999(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22576 dissect_lpp_INTEGER_0_3999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22577   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
22578                                                             0U, 3999U, NULL, FALSE);
22579 
22580   return offset;
22581 }
22582 
22583 
22584 static const per_sequence_t T_eUTRA_01_sequence[] = {
22585   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
22586   { &hf_lpp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
22587   { &hf_lpp_systemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
22588   { NULL, 0, 0, NULL }
22589 };
22590 
22591 static int
dissect_lpp_T_eUTRA_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22592 dissect_lpp_T_eUTRA_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22593   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22594                                    ett_lpp_T_eUTRA_01, T_eUTRA_01_sequence);
22595 
22596   return offset;
22597 }
22598 
22599 
22600 static const per_sequence_t T_fdd_01_sequence[] = {
22601   { &hf_lpp_primary_CPICH_Info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
22602   { NULL, 0, 0, NULL }
22603 };
22604 
22605 static int
dissect_lpp_T_fdd_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22606 dissect_lpp_T_fdd_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22607   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22608                                    ett_lpp_T_fdd_01, T_fdd_01_sequence);
22609 
22610   return offset;
22611 }
22612 
22613 
22614 static const per_sequence_t T_tdd_01_sequence[] = {
22615   { &hf_lpp_cellParameters  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
22616   { NULL, 0, 0, NULL }
22617 };
22618 
22619 static int
dissect_lpp_T_tdd_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22620 dissect_lpp_T_tdd_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22621   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22622                                    ett_lpp_T_tdd_01, T_tdd_01_sequence);
22623 
22624   return offset;
22625 }
22626 
22627 
22628 static const value_string lpp_T_mode_01_vals[] = {
22629   {   0, "fdd" },
22630   {   1, "tdd" },
22631   { 0, NULL }
22632 };
22633 
22634 static const per_choice_t T_mode_01_choice[] = {
22635   {   0, &hf_lpp_fdd_01          , ASN1_NO_EXTENSIONS     , dissect_lpp_T_fdd_01 },
22636   {   1, &hf_lpp_tdd_01          , ASN1_NO_EXTENSIONS     , dissect_lpp_T_tdd_01 },
22637   { 0, NULL, 0, NULL }
22638 };
22639 
22640 static int
dissect_lpp_T_mode_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22641 dissect_lpp_T_mode_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22642   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
22643                                  ett_lpp_T_mode_01, T_mode_01_choice,
22644                                  NULL);
22645 
22646   return offset;
22647 }
22648 
22649 
22650 static const per_sequence_t T_uTRA_01_sequence[] = {
22651   { &hf_lpp_mode_01         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_mode_01 },
22652   { &hf_lpp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
22653   { &hf_lpp_referenceSystemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
22654   { NULL, 0, 0, NULL }
22655 };
22656 
22657 static int
dissect_lpp_T_uTRA_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22658 dissect_lpp_T_uTRA_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22659   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22660                                    ett_lpp_T_uTRA_01, T_uTRA_01_sequence);
22661 
22662   return offset;
22663 }
22664 
22665 
22666 static const per_sequence_t T_referenceFrame_sequence[] = {
22667   { &hf_lpp_referenceFN     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
22668   { &hf_lpp_referenceFNMSB  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_63 },
22669   { NULL, 0, 0, NULL }
22670 };
22671 
22672 static int
dissect_lpp_T_referenceFrame(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22673 dissect_lpp_T_referenceFrame(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22674   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22675                                    ett_lpp_T_referenceFrame, T_referenceFrame_sequence);
22676 
22677   return offset;
22678 }
22679 
22680 
22681 static const per_sequence_t T_gSM_01_sequence[] = {
22682   { &hf_lpp_bcchCarrier     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
22683   { &hf_lpp_bsic            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
22684   { &hf_lpp_cellGlobalId_02 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdGERAN },
22685   { &hf_lpp_referenceFrame  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_referenceFrame },
22686   { &hf_lpp_deltaGNSS_TOD   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
22687   { NULL, 0, 0, NULL }
22688 };
22689 
22690 static int
dissect_lpp_T_gSM_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22691 dissect_lpp_T_gSM_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22692   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22693                                    ett_lpp_T_gSM_01, T_gSM_01_sequence);
22694 
22695   return offset;
22696 }
22697 
22698 
22699 static const per_sequence_t T_nbIoT_r14_sequence[] = {
22700   { &hf_lpp_nbPhysCellId_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
22701   { &hf_lpp_nbCellGlobalId_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
22702   { &hf_lpp_sfn_r14         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
22703   { &hf_lpp_hyperSFN_r14    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
22704   { NULL, 0, 0, NULL }
22705 };
22706 
22707 static int
dissect_lpp_T_nbIoT_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22708 dissect_lpp_T_nbIoT_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22709   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22710                                    ett_lpp_T_nbIoT_r14, T_nbIoT_r14_sequence);
22711 
22712   return offset;
22713 }
22714 
22715 
22716 static const per_sequence_t T_nr_r15_01_sequence[] = {
22717   { &hf_lpp_nrPhysCellId_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1007 },
22718   { &hf_lpp_nrCellGlobalID_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
22719   { &hf_lpp_nr_sfn_r15      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
22720   { NULL, 0, 0, NULL }
22721 };
22722 
22723 static int
dissect_lpp_T_nr_r15_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22724 dissect_lpp_T_nr_r15_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22725   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22726                                    ett_lpp_T_nr_r15_01, T_nr_r15_01_sequence);
22727 
22728   return offset;
22729 }
22730 
22731 
22732 static const value_string lpp_T_networkTime_vals[] = {
22733   {   0, "eUTRA" },
22734   {   1, "uTRA" },
22735   {   2, "gSM" },
22736   {   3, "nbIoT-r14" },
22737   {   4, "nr-r15" },
22738   { 0, NULL }
22739 };
22740 
22741 static const per_choice_t T_networkTime_choice[] = {
22742   {   0, &hf_lpp_eUTRA_01        , ASN1_EXTENSION_ROOT    , dissect_lpp_T_eUTRA_01 },
22743   {   1, &hf_lpp_uTRA_01         , ASN1_EXTENSION_ROOT    , dissect_lpp_T_uTRA_01 },
22744   {   2, &hf_lpp_gSM_01          , ASN1_EXTENSION_ROOT    , dissect_lpp_T_gSM_01 },
22745   {   3, &hf_lpp_nbIoT_r14       , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_T_nbIoT_r14 },
22746   {   4, &hf_lpp_nr_r15_01       , ASN1_NOT_EXTENSION_ROOT, dissect_lpp_T_nr_r15_01 },
22747   { 0, NULL, 0, NULL }
22748 };
22749 
22750 static int
dissect_lpp_T_networkTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22751 dissect_lpp_T_networkTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22752   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
22753                                  ett_lpp_T_networkTime, T_networkTime_choice,
22754                                  NULL);
22755 
22756   return offset;
22757 }
22758 
22759 
22760 static const per_sequence_t MeasurementReferenceTime_sequence[] = {
22761   { &hf_lpp_gnss_TOD_msec   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599999 },
22762   { &hf_lpp_gnss_TOD_frac   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3999 },
22763   { &hf_lpp_gnss_TOD_unc    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
22764   { &hf_lpp_gnss_TimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
22765   { &hf_lpp_networkTime_01  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_networkTime },
22766   { NULL, 0, 0, NULL }
22767 };
22768 
22769 static int
dissect_lpp_MeasurementReferenceTime(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22770 dissect_lpp_MeasurementReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22771   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22772                                    ett_lpp_MeasurementReferenceTime, MeasurementReferenceTime_sequence);
22773 
22774   return offset;
22775 }
22776 
22777 
22778 static const value_string lpp_T_mpathDet_vals[] = {
22779   {   0, "notMeasured" },
22780   {   1, "low" },
22781   {   2, "medium" },
22782   {   3, "high" },
22783   { 0, NULL }
22784 };
22785 
22786 
22787 static int
dissect_lpp_T_mpathDet(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22788 dissect_lpp_T_mpathDet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22789   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22790                                      4, NULL, TRUE, 0, NULL);
22791 
22792   return offset;
22793 }
22794 
22795 
22796 
22797 static int
dissect_lpp_INTEGER_0_33554431(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22798 dissect_lpp_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22799   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
22800                                                             0U, 33554431U, NULL, FALSE);
22801 
22802   return offset;
22803 }
22804 
22805 
22806 static const value_string lpp_T_adrSign_r15_vals[] = {
22807   {   0, "positive" },
22808   {   1, "negative" },
22809   { 0, NULL }
22810 };
22811 
22812 
22813 static int
dissect_lpp_T_adrSign_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22814 dissect_lpp_T_adrSign_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22815   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
22816                                      2, NULL, FALSE, 0, NULL);
22817 
22818   return offset;
22819 }
22820 
22821 
22822 static const per_sequence_t GNSS_SatMeasElement_eag_1_sequence[] = {
22823   { &hf_lpp_adrMSB_r15      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_15 },
22824   { &hf_lpp_adrSign_r15     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_adrSign_r15 },
22825   { &hf_lpp_adrRMSerror_r15 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
22826   { &hf_lpp_delta_codePhase_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_7 },
22827   { NULL, 0, 0, NULL }
22828 };
22829 
22830 static int
dissect_lpp_GNSS_SatMeasElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22831 dissect_lpp_GNSS_SatMeasElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22832   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, GNSS_SatMeasElement_eag_1_sequence);
22833 
22834   return offset;
22835 }
22836 
22837 
22838 static const per_sequence_t GNSS_SatMeasElement_sequence[] = {
22839   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
22840   { &hf_lpp_cNo             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
22841   { &hf_lpp_mpathDet        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_mpathDet },
22842   { &hf_lpp_carrierQualityInd, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3 },
22843   { &hf_lpp_codePhase_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2097151 },
22844   { &hf_lpp_integerCodePhase, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
22845   { &hf_lpp_codePhaseRMSError, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
22846   { &hf_lpp_doppler         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M32768_32767 },
22847   { &hf_lpp_adr             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_33554431 },
22848   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SatMeasElement_eag_1 },
22849   { NULL, 0, 0, NULL }
22850 };
22851 
22852 static int
dissect_lpp_GNSS_SatMeasElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22853 dissect_lpp_GNSS_SatMeasElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22854   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22855                                    ett_lpp_GNSS_SatMeasElement, GNSS_SatMeasElement_sequence);
22856 
22857   return offset;
22858 }
22859 
22860 
22861 static const per_sequence_t GNSS_SatMeasList_sequence_of[1] = {
22862   { &hf_lpp_GNSS_SatMeasList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SatMeasElement },
22863 };
22864 
22865 static int
dissect_lpp_GNSS_SatMeasList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22866 dissect_lpp_GNSS_SatMeasList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22867   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
22868                                                   ett_lpp_GNSS_SatMeasList, GNSS_SatMeasList_sequence_of,
22869                                                   1, 64, FALSE);
22870 
22871   return offset;
22872 }
22873 
22874 
22875 static const per_sequence_t GNSS_SgnMeasElement_sequence[] = {
22876   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
22877   { &hf_lpp_gnss_CodePhaseAmbiguity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
22878   { &hf_lpp_gnss_SatMeasList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SatMeasList },
22879   { NULL, 0, 0, NULL }
22880 };
22881 
22882 static int
dissect_lpp_GNSS_SgnMeasElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22883 dissect_lpp_GNSS_SgnMeasElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22884   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22885                                    ett_lpp_GNSS_SgnMeasElement, GNSS_SgnMeasElement_sequence);
22886 
22887   return offset;
22888 }
22889 
22890 
22891 static const per_sequence_t GNSS_SgnMeasList_sequence_of[1] = {
22892   { &hf_lpp_GNSS_SgnMeasList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SgnMeasElement },
22893 };
22894 
22895 static int
dissect_lpp_GNSS_SgnMeasList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22896 dissect_lpp_GNSS_SgnMeasList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22897   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
22898                                                   ett_lpp_GNSS_SgnMeasList, GNSS_SgnMeasList_sequence_of,
22899                                                   1, 8, FALSE);
22900 
22901   return offset;
22902 }
22903 
22904 
22905 static const per_sequence_t GNSS_MeasurementForOneGNSS_sequence[] = {
22906   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
22907   { &hf_lpp_gnss_SgnMeasList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SgnMeasList },
22908   { NULL, 0, 0, NULL }
22909 };
22910 
22911 static int
dissect_lpp_GNSS_MeasurementForOneGNSS(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22912 dissect_lpp_GNSS_MeasurementForOneGNSS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22913   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22914                                    ett_lpp_GNSS_MeasurementForOneGNSS, GNSS_MeasurementForOneGNSS_sequence);
22915 
22916   return offset;
22917 }
22918 
22919 
22920 static const per_sequence_t GNSS_MeasurementList_sequence_of[1] = {
22921   { &hf_lpp_GNSS_MeasurementList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_MeasurementForOneGNSS },
22922 };
22923 
22924 static int
dissect_lpp_GNSS_MeasurementList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22925 dissect_lpp_GNSS_MeasurementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22926   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
22927                                                   ett_lpp_GNSS_MeasurementList, GNSS_MeasurementList_sequence_of,
22928                                                   1, 16, FALSE);
22929 
22930   return offset;
22931 }
22932 
22933 
22934 static const per_sequence_t GNSS_SignalMeasurementInformation_sequence[] = {
22935   { &hf_lpp_measurementReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_MeasurementReferenceTime },
22936   { &hf_lpp_gnss_MeasurementList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_MeasurementList },
22937   { NULL, 0, 0, NULL }
22938 };
22939 
22940 static int
dissect_lpp_GNSS_SignalMeasurementInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22941 dissect_lpp_GNSS_SignalMeasurementInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22942   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22943                                    ett_lpp_GNSS_SignalMeasurementInformation, GNSS_SignalMeasurementInformation_sequence);
22944 
22945   return offset;
22946 }
22947 
22948 
22949 static const per_sequence_t GNSS_LocationInformation_sequence[] = {
22950   { &hf_lpp_measurementReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_MeasurementReferenceTime },
22951   { &hf_lpp_agnss_List      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_Bitmap },
22952   { NULL, 0, 0, NULL }
22953 };
22954 
22955 static int
dissect_lpp_GNSS_LocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22956 dissect_lpp_GNSS_LocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22957   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22958                                    ett_lpp_GNSS_LocationInformation, GNSS_LocationInformation_sequence);
22959 
22960   return offset;
22961 }
22962 
22963 
22964 static const per_sequence_t A_GNSS_ProvideLocationInformation_sequence[] = {
22965   { &hf_lpp_gnss_SignalMeasurementInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SignalMeasurementInformation },
22966   { &hf_lpp_gnss_LocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_LocationInformation },
22967   { &hf_lpp_gnss_Error      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_Error },
22968   { NULL, 0, 0, NULL }
22969 };
22970 
22971 static int
dissect_lpp_A_GNSS_ProvideLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)22972 dissect_lpp_A_GNSS_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22973   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
22974                                    ett_lpp_A_GNSS_ProvideLocationInformation, A_GNSS_ProvideLocationInformation_sequence);
22975 
22976   return offset;
22977 }
22978 
22979 
22980 
22981 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_)22982 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_) {
22983 #line 357 "./asn1/lpp/lpp.cnf"
22984   tvbuff_t *error_Resolution_tvb = NULL;
22985   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
22986                                      2, 2, FALSE, NULL, 0, &error_Resolution_tvb, NULL);
22987 
22988 
22989 
22990 
22991 #line 361 "./asn1/lpp/lpp.cnf"
22992   if (error_Resolution_tvb) {
22993     guint bitvalue = tvb_get_bits8(error_Resolution_tvb, 0, 2);
22994     actx->created_item = proto_tree_add_uint(tree, hf_index, error_Resolution_tvb, 0, 1, bitvalue);
22995   }
22996 
22997 
22998   return offset;
22999 }
23000 
23001 
23002 
23003 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_)23004 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_) {
23005 #line 370 "./asn1/lpp/lpp.cnf"
23006   tvbuff_t *error_Value_tvb = NULL;
23007   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
23008                                      5, 5, FALSE, NULL, 0, &error_Value_tvb, NULL);
23009 
23010 
23011 
23012 
23013 #line 374 "./asn1/lpp/lpp.cnf"
23014   if (error_Value_tvb) {
23015     guint bitvalue = tvb_get_bits8(error_Value_tvb, 0, 5);
23016     actx->created_item = proto_tree_add_uint(tree, hf_index, error_Value_tvb, 0, 1, bitvalue);
23017   }
23018 
23019 
23020   return offset;
23021 }
23022 
23023 
23024 
23025 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_)23026 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_) {
23027 #line 383 "./asn1/lpp/lpp.cnf"
23028   tvbuff_t *error_NumSamples_tvb = NULL;
23029   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
23030                                      3, 3, FALSE, NULL, 0, &error_NumSamples_tvb, NULL);
23031 
23032 
23033 
23034 
23035 #line 387 "./asn1/lpp/lpp.cnf"
23036   if (error_NumSamples_tvb) {
23037     guint bitvalue = tvb_get_bits8(error_NumSamples_tvb, 0, 3);
23038     actx->created_item = proto_tree_add_uint(tree, hf_index, error_NumSamples_tvb, 0, 1, bitvalue);
23039   }
23040 
23041 
23042   return offset;
23043 }
23044 
23045 
23046 static const per_sequence_t OTDOA_MeasQuality_sequence[] = {
23047   { &hf_lpp_error_Resolution, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_error_Resolution },
23048   { &hf_lpp_error_Value     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_error_Value },
23049   { &hf_lpp_error_NumSamples, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_error_NumSamples },
23050   { NULL, 0, 0, NULL }
23051 };
23052 
23053 static int
dissect_lpp_OTDOA_MeasQuality(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23054 dissect_lpp_OTDOA_MeasQuality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23055   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23056                                    ett_lpp_OTDOA_MeasQuality, OTDOA_MeasQuality_sequence);
23057 
23058   return offset;
23059 }
23060 
23061 
23062 
23063 static int
dissect_lpp_INTEGER_0_12711(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23064 dissect_lpp_INTEGER_0_12711(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23065   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23066                                                             0U, 12711U, NULL, FALSE);
23067 
23068   return offset;
23069 }
23070 
23071 
23072 static const per_sequence_t NeighbourMeasurementElement_eag_1_sequence[] = {
23073   { &hf_lpp_earfcnNeighbour_v9a0, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_v9a0 },
23074   { NULL, 0, 0, NULL }
23075 };
23076 
23077 static int
dissect_lpp_NeighbourMeasurementElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23078 dissect_lpp_NeighbourMeasurementElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23079   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, NeighbourMeasurementElement_eag_1_sequence);
23080 
23081   return offset;
23082 }
23083 
23084 
23085 static const per_sequence_t AdditionalPath_r14_sequence[] = {
23086   { &hf_lpp_relativeTimeDifference_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M256_255 },
23087   { &hf_lpp_path_Quality_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_MeasQuality },
23088   { NULL, 0, 0, NULL }
23089 };
23090 
23091 static int
dissect_lpp_AdditionalPath_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23092 dissect_lpp_AdditionalPath_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23093   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23094                                    ett_lpp_AdditionalPath_r14, AdditionalPath_r14_sequence);
23095 
23096   return offset;
23097 }
23098 
23099 
23100 static const per_sequence_t AdditionalPathList_r14_sequence_of[1] = {
23101   { &hf_lpp_AdditionalPathList_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_AdditionalPath_r14 },
23102 };
23103 
23104 static int
dissect_lpp_AdditionalPathList_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23105 dissect_lpp_AdditionalPathList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23106   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
23107                                                   ett_lpp_AdditionalPathList_r14, AdditionalPathList_r14_sequence_of,
23108                                                   1, maxPaths_r14, FALSE);
23109 
23110   return offset;
23111 }
23112 
23113 
23114 static const per_sequence_t NeighbourMeasurementElement_eag_2_sequence[] = {
23115   { &hf_lpp_tpIdNeighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23116   { &hf_lpp_prsIdNeighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23117   { &hf_lpp_delta_rstd_r14  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_5 },
23118   { &hf_lpp_additionalPathsNeighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_AdditionalPathList_r14 },
23119   { &hf_lpp_nprsIdNeighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23120   { &hf_lpp_carrierFreqOffsetNB_Neighbour_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_CarrierFreqOffsetNB_r14 },
23121   { NULL, 0, 0, NULL }
23122 };
23123 
23124 static int
dissect_lpp_NeighbourMeasurementElement_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23125 dissect_lpp_NeighbourMeasurementElement_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23126   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, NeighbourMeasurementElement_eag_2_sequence);
23127 
23128   return offset;
23129 }
23130 
23131 
23132 static const per_sequence_t NeighbourMeasurementElement_eag_3_sequence[] = {
23133   { &hf_lpp_delta_SFN_r15   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M8192_8191 },
23134   { NULL, 0, 0, NULL }
23135 };
23136 
23137 static int
dissect_lpp_NeighbourMeasurementElement_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23138 dissect_lpp_NeighbourMeasurementElement_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23139   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, NeighbourMeasurementElement_eag_3_sequence);
23140 
23141   return offset;
23142 }
23143 
23144 
23145 static const per_sequence_t NeighbourMeasurementElement_sequence[] = {
23146   { &hf_lpp_physCellIdNeighbour, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
23147   { &hf_lpp_cellGlobalIdNeighbour, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
23148   { &hf_lpp_earfcnNeighbour , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
23149   { &hf_lpp_rstd            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_12711 },
23150   { &hf_lpp_rstd_Quality    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_MeasQuality },
23151   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementElement_eag_1 },
23152   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementElement_eag_2 },
23153   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementElement_eag_3 },
23154   { NULL, 0, 0, NULL }
23155 };
23156 
23157 static int
dissect_lpp_NeighbourMeasurementElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23158 dissect_lpp_NeighbourMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23159   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23160                                    ett_lpp_NeighbourMeasurementElement, NeighbourMeasurementElement_sequence);
23161 
23162   return offset;
23163 }
23164 
23165 
23166 static const per_sequence_t NeighbourMeasurementList_sequence_of[1] = {
23167   { &hf_lpp_NeighbourMeasurementList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementElement },
23168 };
23169 
23170 static int
dissect_lpp_NeighbourMeasurementList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23171 dissect_lpp_NeighbourMeasurementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23172   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
23173                                                   ett_lpp_NeighbourMeasurementList, NeighbourMeasurementList_sequence_of,
23174                                                   1, 24, FALSE);
23175 
23176   return offset;
23177 }
23178 
23179 
23180 static const per_sequence_t OTDOA_SignalMeasurementInformation_eag_1_sequence[] = {
23181   { &hf_lpp_earfcnRef_v9a0  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_v9a0 },
23182   { NULL, 0, 0, NULL }
23183 };
23184 
23185 static int
dissect_lpp_OTDOA_SignalMeasurementInformation_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23186 dissect_lpp_OTDOA_SignalMeasurementInformation_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23187   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_SignalMeasurementInformation_eag_1_sequence);
23188 
23189   return offset;
23190 }
23191 
23192 
23193 static const per_sequence_t OTDOA_SignalMeasurementInformation_eag_2_sequence[] = {
23194   { &hf_lpp_tpIdRef_r14     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23195   { &hf_lpp_prsIdRef_r14    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23196   { &hf_lpp_additionalPathsRef_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_AdditionalPathList_r14 },
23197   { &hf_lpp_nprsIdRef_r14   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23198   { &hf_lpp_carrierFreqOffsetNB_Ref_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_CarrierFreqOffsetNB_r14 },
23199   { &hf_lpp_hyperSFN_r14    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
23200   { NULL, 0, 0, NULL }
23201 };
23202 
23203 static int
dissect_lpp_OTDOA_SignalMeasurementInformation_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23204 dissect_lpp_OTDOA_SignalMeasurementInformation_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23205   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_SignalMeasurementInformation_eag_2_sequence);
23206 
23207   return offset;
23208 }
23209 
23210 
23211 static const value_string lpp_T_timeSource_r15_vals[] = {
23212   {   0, "servingCell" },
23213   {   1, "referenceCell" },
23214   {   2, "gnss" },
23215   {   3, "mixed" },
23216   {   4, "other" },
23217   {   5, "none" },
23218   { 0, NULL }
23219 };
23220 
23221 
23222 static int
dissect_lpp_T_timeSource_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23223 dissect_lpp_T_timeSource_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23224   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
23225                                      6, NULL, TRUE, 0, NULL);
23226 
23227   return offset;
23228 }
23229 
23230 
23231 static const per_sequence_t MotionTimeSource_r15_sequence[] = {
23232   { &hf_lpp_timeSource_r15  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_timeSource_r15 },
23233   { NULL, 0, 0, NULL }
23234 };
23235 
23236 static int
dissect_lpp_MotionTimeSource_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23237 dissect_lpp_MotionTimeSource_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23238   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23239                                    ett_lpp_MotionTimeSource_r15, MotionTimeSource_r15_sequence);
23240 
23241   return offset;
23242 }
23243 
23244 
23245 static const per_sequence_t OTDOA_SignalMeasurementInformation_eag_3_sequence[] = {
23246   { &hf_lpp_motionTimeSource_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_MotionTimeSource_r15 },
23247   { NULL, 0, 0, NULL }
23248 };
23249 
23250 static int
dissect_lpp_OTDOA_SignalMeasurementInformation_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23251 dissect_lpp_OTDOA_SignalMeasurementInformation_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23252   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_SignalMeasurementInformation_eag_3_sequence);
23253 
23254   return offset;
23255 }
23256 
23257 
23258 static const per_sequence_t OTDOA_SignalMeasurementInformation_sequence[] = {
23259   { &hf_lpp_systemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
23260   { &hf_lpp_physCellIdRef   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
23261   { &hf_lpp_cellGlobalIdRef , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
23262   { &hf_lpp_earfcnRef       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
23263   { &hf_lpp_referenceQuality, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_MeasQuality },
23264   { &hf_lpp_neighbourMeasurementList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementList },
23265   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_SignalMeasurementInformation_eag_1 },
23266   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_SignalMeasurementInformation_eag_2 },
23267   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_SignalMeasurementInformation_eag_3 },
23268   { NULL, 0, 0, NULL }
23269 };
23270 
23271 static int
dissect_lpp_OTDOA_SignalMeasurementInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23272 dissect_lpp_OTDOA_SignalMeasurementInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23273   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23274                                    ett_lpp_OTDOA_SignalMeasurementInformation, OTDOA_SignalMeasurementInformation_sequence);
23275 
23276   return offset;
23277 }
23278 
23279 
23280 static const per_sequence_t NeighbourMeasurementElement_NB_r14_sequence[] = {
23281   { &hf_lpp_physCellIdNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
23282   { &hf_lpp_cellGlobalIdNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
23283   { &hf_lpp_earfcnNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_r14 },
23284   { &hf_lpp_rstd_r14        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_12711 },
23285   { &hf_lpp_rstd_Quality_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_MeasQuality },
23286   { &hf_lpp_tpIdNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23287   { &hf_lpp_prsIdNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23288   { &hf_lpp_delta_rstd_r14  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_5 },
23289   { &hf_lpp_additionalPathsNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AdditionalPathList_r14 },
23290   { &hf_lpp_nprsIdNeighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23291   { &hf_lpp_carrierFreqOffsetNB_Neighbour_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CarrierFreqOffsetNB_r14 },
23292   { NULL, 0, 0, NULL }
23293 };
23294 
23295 static int
dissect_lpp_NeighbourMeasurementElement_NB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23296 dissect_lpp_NeighbourMeasurementElement_NB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23297   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23298                                    ett_lpp_NeighbourMeasurementElement_NB_r14, NeighbourMeasurementElement_NB_r14_sequence);
23299 
23300   return offset;
23301 }
23302 
23303 
23304 static const per_sequence_t NeighbourMeasurementList_NB_r14_sequence_of[1] = {
23305   { &hf_lpp_NeighbourMeasurementList_NB_r14_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementElement_NB_r14 },
23306 };
23307 
23308 static int
dissect_lpp_NeighbourMeasurementList_NB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23309 dissect_lpp_NeighbourMeasurementList_NB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23310   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
23311                                                   ett_lpp_NeighbourMeasurementList_NB_r14, NeighbourMeasurementList_NB_r14_sequence_of,
23312                                                   1, 24, FALSE);
23313 
23314   return offset;
23315 }
23316 
23317 
23318 static const per_sequence_t OTDOA_SignalMeasurementInformation_NB_r14_sequence[] = {
23319   { &hf_lpp_systemFrameNumber_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
23320   { &hf_lpp_physCellIdRef_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
23321   { &hf_lpp_cellGlobalIdRef_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
23322   { &hf_lpp_earfcnRef_r14   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_r14 },
23323   { &hf_lpp_referenceQuality_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_MeasQuality },
23324   { &hf_lpp_neighbourMeasurementList_r14, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementList_NB_r14 },
23325   { &hf_lpp_tpIdRef_r14     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23326   { &hf_lpp_prsIdRef_r14    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23327   { &hf_lpp_additionalPathsRef_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AdditionalPathList_r14 },
23328   { &hf_lpp_nprsIdRef_r14   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23329   { &hf_lpp_carrierFreqOffsetNB_Ref_r14, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CarrierFreqOffsetNB_r14 },
23330   { &hf_lpp_hyperSFN_r14    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
23331   { NULL, 0, 0, NULL }
23332 };
23333 
23334 static int
dissect_lpp_OTDOA_SignalMeasurementInformation_NB_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23335 dissect_lpp_OTDOA_SignalMeasurementInformation_NB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23336   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23337                                    ett_lpp_OTDOA_SignalMeasurementInformation_NB_r14, OTDOA_SignalMeasurementInformation_NB_r14_sequence);
23338 
23339   return offset;
23340 }
23341 
23342 
23343 static const per_sequence_t OTDOA_ProvideLocationInformation_eag_1_sequence[] = {
23344   { &hf_lpp_otdoaSignalMeasurementInformation_NB_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_OTDOA_SignalMeasurementInformation_NB_r14 },
23345   { NULL, 0, 0, NULL }
23346 };
23347 
23348 static int
dissect_lpp_OTDOA_ProvideLocationInformation_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23349 dissect_lpp_OTDOA_ProvideLocationInformation_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23350   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ProvideLocationInformation_eag_1_sequence);
23351 
23352   return offset;
23353 }
23354 
23355 
23356 static const per_sequence_t OTDOA_ProvideLocationInformation_sequence[] = {
23357   { &hf_lpp_otdoaSignalMeasurementInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_SignalMeasurementInformation },
23358   { &hf_lpp_otdoa_Error     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_Error },
23359   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ProvideLocationInformation_eag_1 },
23360   { NULL, 0, 0, NULL }
23361 };
23362 
23363 static int
dissect_lpp_OTDOA_ProvideLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23364 dissect_lpp_OTDOA_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23365   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23366                                    ett_lpp_OTDOA_ProvideLocationInformation, OTDOA_ProvideLocationInformation_sequence);
23367 
23368   return offset;
23369 }
23370 
23371 
23372 
23373 static int
dissect_lpp_INTEGER_0_97(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23374 dissect_lpp_INTEGER_0_97(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23375   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23376                                                             0U, 97U, NULL, FALSE);
23377 
23378   return offset;
23379 }
23380 
23381 
23382 
23383 static int
dissect_lpp_INTEGER_0_34(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23384 dissect_lpp_INTEGER_0_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23385   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23386                                                             0U, 34U, NULL, FALSE);
23387 
23388   return offset;
23389 }
23390 
23391 
23392 static const per_sequence_t MeasuredResultsElement_eag_1_sequence[] = {
23393   { &hf_lpp_arfcnEUTRA_v9a0 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA_v9a0 },
23394   { NULL, 0, 0, NULL }
23395 };
23396 
23397 static int
dissect_lpp_MeasuredResultsElement_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23398 dissect_lpp_MeasuredResultsElement_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23399   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MeasuredResultsElement_eag_1_sequence);
23400 
23401   return offset;
23402 }
23403 
23404 
23405 
23406 static int
dissect_lpp_INTEGER_0_113(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23407 dissect_lpp_INTEGER_0_113(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23408   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23409                                                             0U, 113U, NULL, FALSE);
23410 
23411   return offset;
23412 }
23413 
23414 
23415 
23416 static int
dissect_lpp_INTEGER_0_74(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23417 dissect_lpp_INTEGER_0_74(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23418   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23419                                                             0U, 74U, NULL, FALSE);
23420 
23421   return offset;
23422 }
23423 
23424 
23425 static const per_sequence_t MeasuredResultsElement_eag_2_sequence[] = {
23426   { &hf_lpp_nrsrp_Result_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_113 },
23427   { &hf_lpp_nrsrq_Result_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_74 },
23428   { &hf_lpp_carrierFreqOffsetNB_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_CarrierFreqOffsetNB_r14 },
23429   { &hf_lpp_hyperSFN_r14    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
23430   { NULL, 0, 0, NULL }
23431 };
23432 
23433 static int
dissect_lpp_MeasuredResultsElement_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23434 dissect_lpp_MeasuredResultsElement_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23435   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MeasuredResultsElement_eag_2_sequence);
23436 
23437   return offset;
23438 }
23439 
23440 
23441 
23442 static int
dissect_lpp_INTEGER_M17_M1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23443 dissect_lpp_INTEGER_M17_M1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23444   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23445                                                             -17, -1, NULL, FALSE);
23446 
23447   return offset;
23448 }
23449 
23450 
23451 
23452 static int
dissect_lpp_INTEGER_M30_46(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23453 dissect_lpp_INTEGER_M30_46(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23454   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23455                                                             -30, 46U, NULL, FALSE);
23456 
23457   return offset;
23458 }
23459 
23460 
23461 static const per_sequence_t MeasuredResultsElement_eag_3_sequence[] = {
23462   { &hf_lpp_rsrp_Result_v1470, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M17_M1 },
23463   { &hf_lpp_rsrq_Result_v1470, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M30_46 },
23464   { NULL, 0, 0, NULL }
23465 };
23466 
23467 static int
dissect_lpp_MeasuredResultsElement_eag_3(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23468 dissect_lpp_MeasuredResultsElement_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23469   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MeasuredResultsElement_eag_3_sequence);
23470 
23471   return offset;
23472 }
23473 
23474 
23475 static const per_sequence_t MeasuredResultsElement_sequence[] = {
23476   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
23477   { &hf_lpp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
23478   { &hf_lpp_arfcnEUTRA      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueEUTRA },
23479   { &hf_lpp_systemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
23480   { &hf_lpp_rsrp_Result     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_97 },
23481   { &hf_lpp_rsrq_Result     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_34 },
23482   { &hf_lpp_ue_RxTxTimeDiff , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
23483   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsElement_eag_1 },
23484   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsElement_eag_2 },
23485   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsElement_eag_3 },
23486   { NULL, 0, 0, NULL }
23487 };
23488 
23489 static int
dissect_lpp_MeasuredResultsElement(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23490 dissect_lpp_MeasuredResultsElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23491   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23492                                    ett_lpp_MeasuredResultsElement, MeasuredResultsElement_sequence);
23493 
23494   return offset;
23495 }
23496 
23497 
23498 static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
23499   { &hf_lpp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsElement },
23500 };
23501 
23502 static int
dissect_lpp_MeasuredResultsList(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23503 dissect_lpp_MeasuredResultsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23504   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
23505                                                   ett_lpp_MeasuredResultsList, MeasuredResultsList_sequence_of,
23506                                                   1, 32, FALSE);
23507 
23508   return offset;
23509 }
23510 
23511 
23512 static const per_sequence_t ECID_SignalMeasurementInformation_sequence[] = {
23513   { &hf_lpp_primaryCellMeasuredResults, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MeasuredResultsElement },
23514   { &hf_lpp_measuredResultsList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsList },
23515   { NULL, 0, 0, NULL }
23516 };
23517 
23518 int
dissect_lpp_ECID_SignalMeasurementInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23519 dissect_lpp_ECID_SignalMeasurementInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23520   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23521                                    ett_lpp_ECID_SignalMeasurementInformation, ECID_SignalMeasurementInformation_sequence);
23522 
23523   return offset;
23524 }
23525 
23526 
23527 static const value_string lpp_T_cause_04_vals[] = {
23528   {   0, "undefined" },
23529   { 0, NULL }
23530 };
23531 
23532 
23533 static int
dissect_lpp_T_cause_04(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23534 dissect_lpp_T_cause_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23535   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
23536                                      1, NULL, TRUE, 0, NULL);
23537 
23538   return offset;
23539 }
23540 
23541 
23542 static const per_sequence_t ECID_LocationServerErrorCauses_sequence[] = {
23543   { &hf_lpp_cause_04        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_04 },
23544   { NULL, 0, 0, NULL }
23545 };
23546 
23547 static int
dissect_lpp_ECID_LocationServerErrorCauses(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23548 dissect_lpp_ECID_LocationServerErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23549   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23550                                    ett_lpp_ECID_LocationServerErrorCauses, ECID_LocationServerErrorCauses_sequence);
23551 
23552   return offset;
23553 }
23554 
23555 
23556 static const value_string lpp_T_cause_05_vals[] = {
23557   {   0, "undefined" },
23558   {   1, "requestedMeasurementNotAvailable" },
23559   {   2, "notAllrequestedMeasurementsPossible" },
23560   { 0, NULL }
23561 };
23562 
23563 
23564 static int
dissect_lpp_T_cause_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23565 dissect_lpp_T_cause_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23566   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
23567                                      3, NULL, TRUE, 0, NULL);
23568 
23569   return offset;
23570 }
23571 
23572 
23573 static const per_sequence_t ECID_TargetDeviceErrorCauses_eag_1_sequence[] = {
23574   { &hf_lpp_nrsrpMeasurementNotPossible_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NULL },
23575   { &hf_lpp_nrsrqMeasurementNotPossible_r14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NULL },
23576   { NULL, 0, 0, NULL }
23577 };
23578 
23579 static int
dissect_lpp_ECID_TargetDeviceErrorCauses_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23580 dissect_lpp_ECID_TargetDeviceErrorCauses_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23581   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ECID_TargetDeviceErrorCauses_eag_1_sequence);
23582 
23583   return offset;
23584 }
23585 
23586 
23587 static const per_sequence_t ECID_TargetDeviceErrorCauses_sequence[] = {
23588   { &hf_lpp_cause_05        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_05 },
23589   { &hf_lpp_rsrpMeasurementNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
23590   { &hf_lpp_rsrqMeasurementNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
23591   { &hf_lpp_ueRxTxMeasurementNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
23592   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ECID_TargetDeviceErrorCauses_eag_1 },
23593   { NULL, 0, 0, NULL }
23594 };
23595 
23596 static int
dissect_lpp_ECID_TargetDeviceErrorCauses(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23597 dissect_lpp_ECID_TargetDeviceErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23598   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23599                                    ett_lpp_ECID_TargetDeviceErrorCauses, ECID_TargetDeviceErrorCauses_sequence);
23600 
23601   return offset;
23602 }
23603 
23604 
23605 static const value_string lpp_ECID_Error_vals[] = {
23606   {   0, "locationServerErrorCauses" },
23607   {   1, "targetDeviceErrorCauses" },
23608   { 0, NULL }
23609 };
23610 
23611 static const per_choice_t ECID_Error_choice[] = {
23612   {   0, &hf_lpp_locationServerErrorCauses_02, ASN1_EXTENSION_ROOT    , dissect_lpp_ECID_LocationServerErrorCauses },
23613   {   1, &hf_lpp_targetDeviceErrorCauses_02, ASN1_EXTENSION_ROOT    , dissect_lpp_ECID_TargetDeviceErrorCauses },
23614   { 0, NULL, 0, NULL }
23615 };
23616 
23617 static int
dissect_lpp_ECID_Error(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23618 dissect_lpp_ECID_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23619   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
23620                                  ett_lpp_ECID_Error, ECID_Error_choice,
23621                                  NULL);
23622 
23623   return offset;
23624 }
23625 
23626 
23627 static const per_sequence_t ECID_ProvideLocationInformation_sequence[] = {
23628   { &hf_lpp_ecid_SignalMeasurementInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_SignalMeasurementInformation },
23629   { &hf_lpp_ecid_Error      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_Error },
23630   { NULL, 0, 0, NULL }
23631 };
23632 
23633 static int
dissect_lpp_ECID_ProvideLocationInformation(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23634 dissect_lpp_ECID_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23635   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23636                                    ett_lpp_ECID_ProvideLocationInformation, ECID_ProvideLocationInformation_sequence);
23637 
23638   return offset;
23639 }
23640 
23641 
23642 
23643 static int
dissect_lpp_INTEGER_30000_115000(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23644 dissect_lpp_INTEGER_30000_115000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23645   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23646                                                             30000U, 115000U, NULL, FALSE);
23647 
23648   return offset;
23649 }
23650 
23651 
23652 
23653 static int
dissect_lpp_INTEGER_0_1000(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23654 dissect_lpp_INTEGER_0_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23655   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23656                                                             0U, 1000U, NULL, FALSE);
23657 
23658   return offset;
23659 }
23660 
23661 
23662 
23663 static int
dissect_lpp_INTEGER_1_100(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23664 dissect_lpp_INTEGER_1_100(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23665   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23666                                                             1U, 100U, NULL, FALSE);
23667 
23668   return offset;
23669 }
23670 
23671 
23672 static const per_sequence_t T_uncertainty_r14_sequence[] = {
23673   { &hf_lpp_range_r14       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1000 },
23674   { &hf_lpp_confidence_r14  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_100 },
23675   { NULL, 0, 0, NULL }
23676 };
23677 
23678 static int
dissect_lpp_T_uncertainty_r14(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23679 dissect_lpp_T_uncertainty_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23680   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23681                                    ett_lpp_T_uncertainty_r14, T_uncertainty_r14_sequence);
23682 
23683   return offset;
23684 }
23685 
23686 
23687 static const per_sequence_t Sensor_MeasurementInformation_r13_eag_1_sequence[] = {
23688   { &hf_lpp_uncertainty_r14 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_uncertainty_r14 },
23689   { NULL, 0, 0, NULL }
23690 };
23691 
23692 static int
dissect_lpp_Sensor_MeasurementInformation_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23693 dissect_lpp_Sensor_MeasurementInformation_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23694   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_MeasurementInformation_r13_eag_1_sequence);
23695 
23696   return offset;
23697 }
23698 
23699 
23700 
23701 static int
dissect_lpp_INTEGER_M5000_5000(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23702 dissect_lpp_INTEGER_M5000_5000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23703   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23704                                                             -5000, 5000U, NULL, FALSE);
23705 
23706   return offset;
23707 }
23708 
23709 
23710 static const per_sequence_t Sensor_MeasurementInformation_r13_eag_2_sequence[] = {
23711   { &hf_lpp_adjustment_r16  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M5000_5000 },
23712   { NULL, 0, 0, NULL }
23713 };
23714 
23715 static int
dissect_lpp_Sensor_MeasurementInformation_r13_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23716 dissect_lpp_Sensor_MeasurementInformation_r13_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23717   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_MeasurementInformation_r13_eag_2_sequence);
23718 
23719   return offset;
23720 }
23721 
23722 
23723 static const per_sequence_t Sensor_MeasurementInformation_r13_sequence[] = {
23724   { &hf_lpp_measurementReferenceTime_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_UTCTime },
23725   { &hf_lpp_uncompensatedBarometricPressure_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_30000_115000 },
23726   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_MeasurementInformation_r13_eag_1 },
23727   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_MeasurementInformation_r13_eag_2 },
23728   { NULL, 0, 0, NULL }
23729 };
23730 
23731 static int
dissect_lpp_Sensor_MeasurementInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23732 dissect_lpp_Sensor_MeasurementInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23734                                    ett_lpp_Sensor_MeasurementInformation_r13, Sensor_MeasurementInformation_r13_sequence);
23735 
23736   return offset;
23737 }
23738 
23739 
23740 static const per_sequence_t UTC_Time_r15_sequence[] = {
23741   { &hf_lpp_utcTime_r15_01  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_UTCTime },
23742   { &hf_lpp_utcTime_ms_r15  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_999 },
23743   { NULL, 0, 0, NULL }
23744 };
23745 
23746 static int
dissect_lpp_UTC_Time_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23747 dissect_lpp_UTC_Time_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23748   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23749                                    ett_lpp_UTC_Time_r15, UTC_Time_r15_sequence);
23750 
23751   return offset;
23752 }
23753 
23754 
23755 static const per_sequence_t SFN_r15_sequence[] = {
23756   { &hf_lpp_sfn_r15         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
23757   { &hf_lpp_hyperSFN_r15    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
23758   { NULL, 0, 0, NULL }
23759 };
23760 
23761 static int
dissect_lpp_SFN_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23762 dissect_lpp_SFN_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23763   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23764                                    ett_lpp_SFN_r15, SFN_r15_sequence);
23765 
23766   return offset;
23767 }
23768 
23769 
23770 
23771 static int
dissect_lpp_INTEGER_M8192_9214(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23772 dissect_lpp_INTEGER_M8192_9214(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23773   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23774                                                             -8192, 9214U, NULL, FALSE);
23775 
23776   return offset;
23777 }
23778 
23779 
23780 static const value_string lpp_DisplacementTimeStamp_r15_vals[] = {
23781   {   0, "utcTime-r15" },
23782   {   1, "gnssTime-r15" },
23783   {   2, "systemFrameNumber-r15" },
23784   {   3, "measurementSFN-r15" },
23785   { 0, NULL }
23786 };
23787 
23788 static const per_choice_t DisplacementTimeStamp_r15_choice[] = {
23789   {   0, &hf_lpp_utcTime_r15     , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_Time_r15 },
23790   {   1, &hf_lpp_gnssTime_r15    , ASN1_EXTENSION_ROOT    , dissect_lpp_MeasurementReferenceTime },
23791   {   2, &hf_lpp_systemFrameNumber_r15, ASN1_EXTENSION_ROOT    , dissect_lpp_SFN_r15 },
23792   {   3, &hf_lpp_measurementSFN_r15, ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_M8192_9214 },
23793   { 0, NULL, 0, NULL }
23794 };
23795 
23796 static int
dissect_lpp_DisplacementTimeStamp_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23797 dissect_lpp_DisplacementTimeStamp_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23798   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
23799                                  ett_lpp_DisplacementTimeStamp_r15, DisplacementTimeStamp_r15_choice,
23800                                  NULL);
23801 
23802   return offset;
23803 }
23804 
23805 
23806 
23807 static int
dissect_lpp_INTEGER_1_16384(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23808 dissect_lpp_INTEGER_1_16384(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23809   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23810                                                             1U, 16384U, NULL, FALSE);
23811 
23812   return offset;
23813 }
23814 
23815 
23816 
23817 static int
dissect_lpp_INTEGER_1_4096(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23818 dissect_lpp_INTEGER_1_4096(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23819   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23820                                                             1U, 4096U, NULL, FALSE);
23821 
23822   return offset;
23823 }
23824 
23825 
23826 static const value_string lpp_DeltaTime_r15_vals[] = {
23827   {   0, "deltaTimeSec-r15" },
23828   {   1, "deltaTimeSFN-r15" },
23829   { 0, NULL }
23830 };
23831 
23832 static const per_choice_t DeltaTime_r15_choice[] = {
23833   {   0, &hf_lpp_deltaTimeSec_r15, ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_1_16384 },
23834   {   1, &hf_lpp_deltaTimeSFN_r15, ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_1_4096 },
23835   { 0, NULL, 0, NULL }
23836 };
23837 
23838 static int
dissect_lpp_DeltaTime_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23839 dissect_lpp_DeltaTime_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23840   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
23841                                  ett_lpp_DeltaTime_r15, DeltaTime_r15_choice,
23842                                  NULL);
23843 
23844   return offset;
23845 }
23846 
23847 
23848 static const value_string lpp_T_bearingRef_r15_vals[] = {
23849   {   0, "geographicNorth" },
23850   {   1, "magneticNorth" },
23851   {   2, "local" },
23852   { 0, NULL }
23853 };
23854 
23855 
23856 static int
dissect_lpp_T_bearingRef_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23857 dissect_lpp_T_bearingRef_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23858   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
23859                                      3, NULL, FALSE, 0, NULL);
23860 
23861   return offset;
23862 }
23863 
23864 
23865 static const value_string lpp_T_verticalDirection_r15_vals[] = {
23866   {   0, "upward" },
23867   {   1, "downward" },
23868   { 0, NULL }
23869 };
23870 
23871 
23872 static int
dissect_lpp_T_verticalDirection_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23873 dissect_lpp_T_verticalDirection_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23874   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
23875                                      2, NULL, FALSE, 0, NULL);
23876 
23877   return offset;
23878 }
23879 
23880 
23881 static const per_sequence_t Displacement_r15_sequence[] = {
23882   { &hf_lpp_bearing_r15     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
23883   { &hf_lpp_bearingUncConfidence_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_100 },
23884   { &hf_lpp_bearingRef_r15  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_bearingRef_r15 },
23885   { &hf_lpp_horizontalDistance_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8191 },
23886   { &hf_lpp_horizontalDistanceUnc_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
23887   { &hf_lpp_horizontalUncConfidence_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_100 },
23888   { &hf_lpp_verticalDirection_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_verticalDirection_r15 },
23889   { &hf_lpp_verticalDistance_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_8191 },
23890   { &hf_lpp_verticalDistanceUnc_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
23891   { &hf_lpp_verticalUncConfidence_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_100 },
23892   { NULL, 0, 0, NULL }
23893 };
23894 
23895 static int
dissect_lpp_Displacement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23896 dissect_lpp_Displacement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23897   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23898                                    ett_lpp_Displacement_r15, Displacement_r15_sequence);
23899 
23900   return offset;
23901 }
23902 
23903 
23904 static const per_sequence_t DisplacementInfoListElement_r15_sequence[] = {
23905   { &hf_lpp_deltaTimeStamp_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DeltaTime_r15 },
23906   { &hf_lpp_displacement_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Displacement_r15 },
23907   { NULL, 0, 0, NULL }
23908 };
23909 
23910 static int
dissect_lpp_DisplacementInfoListElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23911 dissect_lpp_DisplacementInfoListElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23912   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23913                                    ett_lpp_DisplacementInfoListElement_r15, DisplacementInfoListElement_r15_sequence);
23914 
23915   return offset;
23916 }
23917 
23918 
23919 static const per_sequence_t DisplacementInfoList_r15_sequence_of[1] = {
23920   { &hf_lpp_DisplacementInfoList_r15_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DisplacementInfoListElement_r15 },
23921 };
23922 
23923 static int
dissect_lpp_DisplacementInfoList_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23924 dissect_lpp_DisplacementInfoList_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23925   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
23926                                                   ett_lpp_DisplacementInfoList_r15, DisplacementInfoList_r15_sequence_of,
23927                                                   1, 128, FALSE);
23928 
23929   return offset;
23930 }
23931 
23932 
23933 static const per_sequence_t Sensor_MotionInformation_r15_sequence[] = {
23934   { &hf_lpp_refTime_r15     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DisplacementTimeStamp_r15 },
23935   { &hf_lpp_displacementInfoList_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DisplacementInfoList_r15 },
23936   { NULL, 0, 0, NULL }
23937 };
23938 
23939 static int
dissect_lpp_Sensor_MotionInformation_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23940 dissect_lpp_Sensor_MotionInformation_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23941   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23942                                    ett_lpp_Sensor_MotionInformation_r15, Sensor_MotionInformation_r15_sequence);
23943 
23944   return offset;
23945 }
23946 
23947 
23948 static const per_sequence_t Sensor_ProvideLocationInformation_r13_eag_1_sequence[] = {
23949   { &hf_lpp_sensor_MotionInformation_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_MotionInformation_r15 },
23950   { NULL, 0, 0, NULL }
23951 };
23952 
23953 static int
dissect_lpp_Sensor_ProvideLocationInformation_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23954 dissect_lpp_Sensor_ProvideLocationInformation_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23955   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_ProvideLocationInformation_r13_eag_1_sequence);
23956 
23957   return offset;
23958 }
23959 
23960 
23961 static const per_sequence_t Sensor_ProvideLocationInformation_r13_sequence[] = {
23962   { &hf_lpp_sensor_MeasurementInformation_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Sensor_MeasurementInformation_r13 },
23963   { &hf_lpp_sensor_Error_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Sensor_Error_r13 },
23964   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_ProvideLocationInformation_r13_eag_1 },
23965   { NULL, 0, 0, NULL }
23966 };
23967 
23968 static int
dissect_lpp_Sensor_ProvideLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23969 dissect_lpp_Sensor_ProvideLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23970   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
23971                                    ett_lpp_Sensor_ProvideLocationInformation_r13, Sensor_ProvideLocationInformation_r13_sequence);
23972 
23973   return offset;
23974 }
23975 
23976 
23977 
23978 static int
dissect_lpp_INTEGER_M130_M30(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23979 dissect_lpp_INTEGER_M130_M30(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23980   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
23981                                                             -130, -30, NULL, FALSE);
23982 
23983   return offset;
23984 }
23985 
23986 
23987 static const per_sequence_t MBS_BeaconMeasElement_r13_eag_1_sequence[] = {
23988   { &hf_lpp_rssi_r14        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M130_M30 },
23989   { NULL, 0, 0, NULL }
23990 };
23991 
23992 static int
dissect_lpp_MBS_BeaconMeasElement_r13_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)23993 dissect_lpp_MBS_BeaconMeasElement_r13_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23994   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, MBS_BeaconMeasElement_r13_eag_1_sequence);
23995 
23996   return offset;
23997 }
23998 
23999 
24000 static const per_sequence_t MBS_BeaconMeasElement_r13_sequence[] = {
24001   { &hf_lpp_transmitterID_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
24002   { &hf_lpp_codePhase_r13   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2097151 },
24003   { &hf_lpp_codePhaseRMSError_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
24004   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_MBS_BeaconMeasElement_r13_eag_1 },
24005   { NULL, 0, 0, NULL }
24006 };
24007 
24008 static int
dissect_lpp_MBS_BeaconMeasElement_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24009 dissect_lpp_MBS_BeaconMeasElement_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24010   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24011                                    ett_lpp_MBS_BeaconMeasElement_r13, MBS_BeaconMeasElement_r13_sequence);
24012 
24013   return offset;
24014 }
24015 
24016 
24017 static const per_sequence_t MBS_BeaconMeasList_r13_sequence_of[1] = {
24018   { &hf_lpp_MBS_BeaconMeasList_r13_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_MBS_BeaconMeasElement_r13 },
24019 };
24020 
24021 static int
dissect_lpp_MBS_BeaconMeasList_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24022 dissect_lpp_MBS_BeaconMeasList_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24023   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24024                                                   ett_lpp_MBS_BeaconMeasList_r13, MBS_BeaconMeasList_r13_sequence_of,
24025                                                   1, 64, FALSE);
24026 
24027   return offset;
24028 }
24029 
24030 
24031 static const per_sequence_t TBS_MeasurementInformation_r13_sequence[] = {
24032   { &hf_lpp_measurementReferenceTime_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_UTCTime },
24033   { &hf_lpp_mbs_SgnMeasList_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MBS_BeaconMeasList_r13 },
24034   { NULL, 0, 0, NULL }
24035 };
24036 
24037 static int
dissect_lpp_TBS_MeasurementInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24038 dissect_lpp_TBS_MeasurementInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24039   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24040                                    ett_lpp_TBS_MeasurementInformation_r13, TBS_MeasurementInformation_r13_sequence);
24041 
24042   return offset;
24043 }
24044 
24045 
24046 static const per_sequence_t TBS_ProvideLocationInformation_r13_sequence[] = {
24047   { &hf_lpp_tbs_MeasurementInformation_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TBS_MeasurementInformation_r13 },
24048   { &hf_lpp_tbs_Error_r13   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TBS_Error_r13 },
24049   { NULL, 0, 0, NULL }
24050 };
24051 
24052 static int
dissect_lpp_TBS_ProvideLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24053 dissect_lpp_TBS_ProvideLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24054   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24055                                    ett_lpp_TBS_ProvideLocationInformation_r13, TBS_ProvideLocationInformation_r13_sequence);
24056 
24057   return offset;
24058 }
24059 
24060 
24061 
24062 static int
dissect_lpp_INTEGER_M127_128(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24063 dissect_lpp_INTEGER_M127_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24064   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24065                                                             -127, 128U, NULL, FALSE);
24066 
24067   return offset;
24068 }
24069 
24070 
24071 static const value_string lpp_T_rttUnits_r13_vals[] = {
24072   {   0, "microseconds" },
24073   {   1, "hundredsofnanoseconds" },
24074   {   2, "tensofnanoseconds" },
24075   {   3, "nanoseconds" },
24076   {   4, "tenthsofnanoseconds" },
24077   { 0, NULL }
24078 };
24079 
24080 
24081 static int
dissect_lpp_T_rttUnits_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24082 dissect_lpp_T_rttUnits_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24083   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
24084                                      5, NULL, TRUE, 0, NULL);
24085 
24086   return offset;
24087 }
24088 
24089 
24090 static const per_sequence_t WLAN_RTT_r13_sequence[] = {
24091   { &hf_lpp_rttValue_r13    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
24092   { &hf_lpp_rttUnits_r13    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_rttUnits_r13 },
24093   { &hf_lpp_rttAccuracy_r13 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
24094   { NULL, 0, 0, NULL }
24095 };
24096 
24097 static int
dissect_lpp_WLAN_RTT_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24098 dissect_lpp_WLAN_RTT_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24099   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24100                                    ett_lpp_WLAN_RTT_r13, WLAN_RTT_r13_sequence);
24101 
24102   return offset;
24103 }
24104 
24105 
24106 
24107 static int
dissect_lpp_INTEGER_0_256(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24108 dissect_lpp_INTEGER_0_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24109   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24110                                                             0U, 256U, NULL, FALSE);
24111 
24112   return offset;
24113 }
24114 
24115 
24116 static const per_sequence_t WLAN_MeasurementElement_r13_sequence[] = {
24117   { &hf_lpp_wlan_AP_Identifier_r13, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_AP_Identifier_r13 },
24118   { &hf_lpp_rssi_r13        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M127_128 },
24119   { &hf_lpp_rtt_r13         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_WLAN_RTT_r13 },
24120   { &hf_lpp_apChannelFrequency_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_256 },
24121   { &hf_lpp_servingFlag_r13 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
24122   { NULL, 0, 0, NULL }
24123 };
24124 
24125 static int
dissect_lpp_WLAN_MeasurementElement_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24126 dissect_lpp_WLAN_MeasurementElement_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24127   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24128                                    ett_lpp_WLAN_MeasurementElement_r13, WLAN_MeasurementElement_r13_sequence);
24129 
24130   return offset;
24131 }
24132 
24133 
24134 static const per_sequence_t WLAN_MeasurementList_r13_sequence_of[1] = {
24135   { &hf_lpp_WLAN_MeasurementList_r13_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_WLAN_MeasurementElement_r13 },
24136 };
24137 
24138 static int
dissect_lpp_WLAN_MeasurementList_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24139 dissect_lpp_WLAN_MeasurementList_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24140   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24141                                                   ett_lpp_WLAN_MeasurementList_r13, WLAN_MeasurementList_r13_sequence_of,
24142                                                   1, maxWLAN_AP_r13, FALSE);
24143 
24144   return offset;
24145 }
24146 
24147 
24148 static const per_sequence_t WLAN_MeasurementInformation_r13_sequence[] = {
24149   { &hf_lpp_measurementReferenceTime_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_UTCTime },
24150   { &hf_lpp_wlan_MeasurementList_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_WLAN_MeasurementList_r13 },
24151   { NULL, 0, 0, NULL }
24152 };
24153 
24154 static int
dissect_lpp_WLAN_MeasurementInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24155 dissect_lpp_WLAN_MeasurementInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24156   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24157                                    ett_lpp_WLAN_MeasurementInformation_r13, WLAN_MeasurementInformation_r13_sequence);
24158 
24159   return offset;
24160 }
24161 
24162 
24163 static const per_sequence_t WLAN_ProvideLocationInformation_r13_sequence[] = {
24164   { &hf_lpp_wlan_MeasurementInformation_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_WLAN_MeasurementInformation_r13 },
24165   { &hf_lpp_wlan_Error_r13  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_WLAN_Error_r13 },
24166   { NULL, 0, 0, NULL }
24167 };
24168 
24169 static int
dissect_lpp_WLAN_ProvideLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24170 dissect_lpp_WLAN_ProvideLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24171   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24172                                    ett_lpp_WLAN_ProvideLocationInformation_r13, WLAN_ProvideLocationInformation_r13_sequence);
24173 
24174   return offset;
24175 }
24176 
24177 
24178 
24179 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_)24180 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_) {
24181 #line 1788 "./asn1/lpp/lpp.cnf"
24182   tvbuff_t *btAddr_tvb = NULL;
24183 
24184   offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
24185                                      48, 48, FALSE, NULL, 0, &btAddr_tvb, NULL);
24186 
24187   actx->created_item = proto_tree_add_item(tree, hf_index, btAddr_tvb, 0, 6, ENC_NA);
24188 
24189 
24190 
24191   return offset;
24192 }
24193 
24194 
24195 static const per_sequence_t BT_MeasurementElement_r13_sequence[] = {
24196   { &hf_lpp_btAddr_r13      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_btAddr_r13 },
24197   { &hf_lpp_rssi_r13_01     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M128_127 },
24198   { NULL, 0, 0, NULL }
24199 };
24200 
24201 static int
dissect_lpp_BT_MeasurementElement_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24202 dissect_lpp_BT_MeasurementElement_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24203   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24204                                    ett_lpp_BT_MeasurementElement_r13, BT_MeasurementElement_r13_sequence);
24205 
24206   return offset;
24207 }
24208 
24209 
24210 static const per_sequence_t BT_MeasurementList_r13_sequence_of[1] = {
24211   { &hf_lpp_BT_MeasurementList_r13_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BT_MeasurementElement_r13 },
24212 };
24213 
24214 static int
dissect_lpp_BT_MeasurementList_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24215 dissect_lpp_BT_MeasurementList_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24216   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24217                                                   ett_lpp_BT_MeasurementList_r13, BT_MeasurementList_r13_sequence_of,
24218                                                   1, maxBT_Beacon_r13, FALSE);
24219 
24220   return offset;
24221 }
24222 
24223 
24224 static const per_sequence_t BT_MeasurementInformation_r13_sequence[] = {
24225   { &hf_lpp_measurementReferenceTime_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_UTCTime },
24226   { &hf_lpp_bt_MeasurementList_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BT_MeasurementList_r13 },
24227   { NULL, 0, 0, NULL }
24228 };
24229 
24230 static int
dissect_lpp_BT_MeasurementInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24231 dissect_lpp_BT_MeasurementInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24232   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24233                                    ett_lpp_BT_MeasurementInformation_r13, BT_MeasurementInformation_r13_sequence);
24234 
24235   return offset;
24236 }
24237 
24238 
24239 static const value_string lpp_T_cause_r13_06_vals[] = {
24240   {   0, "undefined" },
24241   { 0, NULL }
24242 };
24243 
24244 
24245 static int
dissect_lpp_T_cause_r13_06(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24246 dissect_lpp_T_cause_r13_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24247   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
24248                                      1, NULL, TRUE, 0, NULL);
24249 
24250   return offset;
24251 }
24252 
24253 
24254 static const per_sequence_t BT_LocationServerErrorCauses_r13_sequence[] = {
24255   { &hf_lpp_cause_r13_06    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_06 },
24256   { NULL, 0, 0, NULL }
24257 };
24258 
24259 static int
dissect_lpp_BT_LocationServerErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24260 dissect_lpp_BT_LocationServerErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24261   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24262                                    ett_lpp_BT_LocationServerErrorCauses_r13, BT_LocationServerErrorCauses_r13_sequence);
24263 
24264   return offset;
24265 }
24266 
24267 
24268 static const value_string lpp_T_cause_r13_07_vals[] = {
24269   {   0, "undefined" },
24270   {   1, "requestedMeasurementsNotAvailable" },
24271   {   2, "notAllrequestedMeasurementsPossible" },
24272   { 0, NULL }
24273 };
24274 
24275 
24276 static int
dissect_lpp_T_cause_r13_07(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24277 dissect_lpp_T_cause_r13_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24278   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
24279                                      3, NULL, TRUE, 0, NULL);
24280 
24281   return offset;
24282 }
24283 
24284 
24285 static const per_sequence_t BT_TargetDeviceErrorCauses_r13_sequence[] = {
24286   { &hf_lpp_cause_r13_07    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r13_07 },
24287   { &hf_lpp_bt_Beacon_rssiMeasurementNotPossible_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
24288   { NULL, 0, 0, NULL }
24289 };
24290 
24291 static int
dissect_lpp_BT_TargetDeviceErrorCauses_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24292 dissect_lpp_BT_TargetDeviceErrorCauses_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24293   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24294                                    ett_lpp_BT_TargetDeviceErrorCauses_r13, BT_TargetDeviceErrorCauses_r13_sequence);
24295 
24296   return offset;
24297 }
24298 
24299 
24300 static const value_string lpp_BT_Error_r13_vals[] = {
24301   {   0, "locationServerErrorCauses-r13" },
24302   {   1, "targetDeviceErrorCauses-r13" },
24303   { 0, NULL }
24304 };
24305 
24306 static const per_choice_t BT_Error_r13_choice[] = {
24307   {   0, &hf_lpp_locationServerErrorCauses_r13_03, ASN1_EXTENSION_ROOT    , dissect_lpp_BT_LocationServerErrorCauses_r13 },
24308   {   1, &hf_lpp_targetDeviceErrorCauses_r13_03, ASN1_EXTENSION_ROOT    , dissect_lpp_BT_TargetDeviceErrorCauses_r13 },
24309   { 0, NULL, 0, NULL }
24310 };
24311 
24312 static int
dissect_lpp_BT_Error_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24313 dissect_lpp_BT_Error_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24314   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24315                                  ett_lpp_BT_Error_r13, BT_Error_r13_choice,
24316                                  NULL);
24317 
24318   return offset;
24319 }
24320 
24321 
24322 static const per_sequence_t BT_ProvideLocationInformation_r13_sequence[] = {
24323   { &hf_lpp_bt_MeasurementInformation_r13, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BT_MeasurementInformation_r13 },
24324   { &hf_lpp_bt_Error_r13    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BT_Error_r13 },
24325   { NULL, 0, 0, NULL }
24326 };
24327 
24328 static int
dissect_lpp_BT_ProvideLocationInformation_r13(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24329 dissect_lpp_BT_ProvideLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24330   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24331                                    ett_lpp_BT_ProvideLocationInformation_r13, BT_ProvideLocationInformation_r13_sequence);
24332 
24333   return offset;
24334 }
24335 
24336 
24337 static const per_sequence_t ProvideLocationInformation_r9_IEs_eag_1_sequence[] = {
24338   { &hf_lpp_sensor_ProvideLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Sensor_ProvideLocationInformation_r13 },
24339   { &hf_lpp_tbs_ProvideLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_TBS_ProvideLocationInformation_r13 },
24340   { &hf_lpp_wlan_ProvideLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_WLAN_ProvideLocationInformation_r13 },
24341   { &hf_lpp_bt_ProvideLocationInformation_r13, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_BT_ProvideLocationInformation_r13 },
24342   { NULL, 0, 0, NULL }
24343 };
24344 
24345 static int
dissect_lpp_ProvideLocationInformation_r9_IEs_eag_1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24346 dissect_lpp_ProvideLocationInformation_r9_IEs_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24347   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ProvideLocationInformation_r9_IEs_eag_1_sequence);
24348 
24349   return offset;
24350 }
24351 
24352 
24353 static const value_string lpp_T_nr_ARFCN_r16_vals[] = {
24354   {   0, "ssb-ARFCN-r16" },
24355   {   1, "csi-RS-pointA-r16" },
24356   { 0, NULL }
24357 };
24358 
24359 static const per_choice_t T_nr_ARFCN_r16_choice[] = {
24360   {   0, &hf_lpp_ssb_ARFCN_r16   , ASN1_NO_EXTENSIONS     , dissect_lpp_ARFCN_ValueNR_r15 },
24361   {   1, &hf_lpp_csi_RS_pointA_r16, ASN1_NO_EXTENSIONS     , dissect_lpp_ARFCN_ValueNR_r15 },
24362   { 0, NULL, 0, NULL }
24363 };
24364 
24365 static int
dissect_lpp_T_nr_ARFCN_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24366 dissect_lpp_T_nr_ARFCN_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24367   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24368                                  ett_lpp_T_nr_ARFCN_r16, T_nr_ARFCN_r16_choice,
24369                                  NULL);
24370 
24371   return offset;
24372 }
24373 
24374 
24375 static const per_sequence_t MeasQuantityResults_r16_sequence[] = {
24376   { &hf_lpp_nr_RSRP_r16     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
24377   { &hf_lpp_nr_RSRQ_r16     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
24378   { NULL, 0, 0, NULL }
24379 };
24380 
24381 static int
dissect_lpp_MeasQuantityResults_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24382 dissect_lpp_MeasQuantityResults_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24383   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24384                                    ett_lpp_MeasQuantityResults_r16, MeasQuantityResults_r16_sequence);
24385 
24386   return offset;
24387 }
24388 
24389 
24390 static const per_sequence_t ResultsPerSSB_Index_r16_sequence[] = {
24391   { &hf_lpp_ssb_Index_r16   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
24392   { &hf_lpp_ssb_Results_r16 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_MeasQuantityResults_r16 },
24393   { NULL, 0, 0, NULL }
24394 };
24395 
24396 static int
dissect_lpp_ResultsPerSSB_Index_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24397 dissect_lpp_ResultsPerSSB_Index_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24398   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24399                                    ett_lpp_ResultsPerSSB_Index_r16, ResultsPerSSB_Index_r16_sequence);
24400 
24401   return offset;
24402 }
24403 
24404 
24405 static const per_sequence_t ResultsPerSSB_IndexList_r16_sequence_of[1] = {
24406   { &hf_lpp_ResultsPerSSB_IndexList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_ResultsPerSSB_Index_r16 },
24407 };
24408 
24409 static int
dissect_lpp_ResultsPerSSB_IndexList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24410 dissect_lpp_ResultsPerSSB_IndexList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24411   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24412                                                   ett_lpp_ResultsPerSSB_IndexList_r16, ResultsPerSSB_IndexList_r16_sequence_of,
24413                                                   1, 64, FALSE);
24414 
24415   return offset;
24416 }
24417 
24418 
24419 
24420 static int
dissect_lpp_INTEGER_0_95(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24421 dissect_lpp_INTEGER_0_95(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24422   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24423                                                             0U, 95U, NULL, FALSE);
24424 
24425   return offset;
24426 }
24427 
24428 
24429 static const per_sequence_t ResultsPerCSI_RS_Index_r16_sequence[] = {
24430   { &hf_lpp_csi_RS_Index_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_95 },
24431   { &hf_lpp_csi_RS_Results_r16, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_MeasQuantityResults_r16 },
24432   { NULL, 0, 0, NULL }
24433 };
24434 
24435 static int
dissect_lpp_ResultsPerCSI_RS_Index_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24436 dissect_lpp_ResultsPerCSI_RS_Index_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24437   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24438                                    ett_lpp_ResultsPerCSI_RS_Index_r16, ResultsPerCSI_RS_Index_r16_sequence);
24439 
24440   return offset;
24441 }
24442 
24443 
24444 static const per_sequence_t ResultsPerCSI_RS_IndexList_r16_sequence_of[1] = {
24445   { &hf_lpp_ResultsPerCSI_RS_IndexList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_ResultsPerCSI_RS_Index_r16 },
24446 };
24447 
24448 static int
dissect_lpp_ResultsPerCSI_RS_IndexList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24449 dissect_lpp_ResultsPerCSI_RS_IndexList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24450   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24451                                                   ett_lpp_ResultsPerCSI_RS_IndexList_r16, ResultsPerCSI_RS_IndexList_r16_sequence_of,
24452                                                   1, 64, FALSE);
24453 
24454   return offset;
24455 }
24456 
24457 
24458 static const per_sequence_t NR_MeasuredResultsElement_r16_sequence[] = {
24459   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_PhysCellID_r16 },
24460   { &hf_lpp_nr_ARFCN_r16_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_ARFCN_r16 },
24461   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
24462   { &hf_lpp_systemFrameNumber_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
24463   { &hf_lpp_resultsSSB_Cell_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MeasQuantityResults_r16 },
24464   { &hf_lpp_resultsCSI_RS_Cell_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MeasQuantityResults_r16 },
24465   { &hf_lpp_resultsSSB_Indexes_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ResultsPerSSB_IndexList_r16 },
24466   { &hf_lpp_resultsCSI_RS_Indexes_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ResultsPerCSI_RS_IndexList_r16 },
24467   { NULL, 0, 0, NULL }
24468 };
24469 
24470 static int
dissect_lpp_NR_MeasuredResultsElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24471 dissect_lpp_NR_MeasuredResultsElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24472   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24473                                    ett_lpp_NR_MeasuredResultsElement_r16, NR_MeasuredResultsElement_r16_sequence);
24474 
24475   return offset;
24476 }
24477 
24478 
24479 static const per_sequence_t NR_MeasuredResultsList_r16_sequence_of[1] = {
24480   { &hf_lpp_NR_MeasuredResultsList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_MeasuredResultsElement_r16 },
24481 };
24482 
24483 static int
dissect_lpp_NR_MeasuredResultsList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24484 dissect_lpp_NR_MeasuredResultsList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24485   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24486                                                   ett_lpp_NR_MeasuredResultsList_r16, NR_MeasuredResultsList_r16_sequence_of,
24487                                                   1, 32, FALSE);
24488 
24489   return offset;
24490 }
24491 
24492 
24493 static const per_sequence_t NR_ECID_SignalMeasurementInformation_r16_sequence[] = {
24494   { &hf_lpp_nr_PrimaryCellMeasuredResults_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_MeasuredResultsElement_r16 },
24495   { &hf_lpp_nr_MeasuredResultsList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_MeasuredResultsList_r16 },
24496   { NULL, 0, 0, NULL }
24497 };
24498 
24499 static int
dissect_lpp_NR_ECID_SignalMeasurementInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24500 dissect_lpp_NR_ECID_SignalMeasurementInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24501   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24502                                    ett_lpp_NR_ECID_SignalMeasurementInformation_r16, NR_ECID_SignalMeasurementInformation_r16_sequence);
24503 
24504   return offset;
24505 }
24506 
24507 
24508 static const value_string lpp_T_cause_r16_vals[] = {
24509   {   0, "undefined" },
24510   { 0, NULL }
24511 };
24512 
24513 
24514 static int
dissect_lpp_T_cause_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24515 dissect_lpp_T_cause_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24516   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
24517                                      1, NULL, TRUE, 0, NULL);
24518 
24519   return offset;
24520 }
24521 
24522 
24523 static const per_sequence_t NR_ECID_LocationServerErrorCauses_r16_sequence[] = {
24524   { &hf_lpp_cause_r16       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16 },
24525   { NULL, 0, 0, NULL }
24526 };
24527 
24528 static int
dissect_lpp_NR_ECID_LocationServerErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24529 dissect_lpp_NR_ECID_LocationServerErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24530   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24531                                    ett_lpp_NR_ECID_LocationServerErrorCauses_r16, NR_ECID_LocationServerErrorCauses_r16_sequence);
24532 
24533   return offset;
24534 }
24535 
24536 
24537 static const value_string lpp_T_cause_r16_01_vals[] = {
24538   {   0, "undefined" },
24539   {   1, "requestedMeasurementNotAvailable" },
24540   {   2, "notAllrequestedMeasurementsPossible" },
24541   { 0, NULL }
24542 };
24543 
24544 
24545 static int
dissect_lpp_T_cause_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24546 dissect_lpp_T_cause_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24547   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
24548                                      3, NULL, TRUE, 0, NULL);
24549 
24550   return offset;
24551 }
24552 
24553 
24554 static const per_sequence_t NR_ECID_TargetDeviceErrorCauses_r16_sequence[] = {
24555   { &hf_lpp_cause_r16_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_r16_01 },
24556   { &hf_lpp_ss_RSRPMeasurementNotPossible_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
24557   { &hf_lpp_ss_RSRQMeasurementNotPossible_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
24558   { &hf_lpp_csi_RSRPMeasurementNotPossible_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
24559   { &hf_lpp_csi_RSRQMeasurementNotPossible_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
24560   { NULL, 0, 0, NULL }
24561 };
24562 
24563 static int
dissect_lpp_NR_ECID_TargetDeviceErrorCauses_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24564 dissect_lpp_NR_ECID_TargetDeviceErrorCauses_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24565   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24566                                    ett_lpp_NR_ECID_TargetDeviceErrorCauses_r16, NR_ECID_TargetDeviceErrorCauses_r16_sequence);
24567 
24568   return offset;
24569 }
24570 
24571 
24572 static const value_string lpp_NR_ECID_Error_r16_vals[] = {
24573   {   0, "locationServerErrorCauses-r16" },
24574   {   1, "targetDeviceErrorCauses-r16" },
24575   { 0, NULL }
24576 };
24577 
24578 static const per_choice_t NR_ECID_Error_r16_choice[] = {
24579   {   0, &hf_lpp_locationServerErrorCauses_r16, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_ECID_LocationServerErrorCauses_r16 },
24580   {   1, &hf_lpp_targetDeviceErrorCauses_r16, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_ECID_TargetDeviceErrorCauses_r16 },
24581   { 0, NULL, 0, NULL }
24582 };
24583 
24584 static int
dissect_lpp_NR_ECID_Error_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24585 dissect_lpp_NR_ECID_Error_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24586   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24587                                  ett_lpp_NR_ECID_Error_r16, NR_ECID_Error_r16_choice,
24588                                  NULL);
24589 
24590   return offset;
24591 }
24592 
24593 
24594 static const per_sequence_t NR_ECID_ProvideLocationInformation_r16_sequence[] = {
24595   { &hf_lpp_nr_ECID_SignalMeasurementInformation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_ECID_SignalMeasurementInformation_r16 },
24596   { &hf_lpp_nr_ECID_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_ECID_Error_r16 },
24597   { NULL, 0, 0, NULL }
24598 };
24599 
24600 static int
dissect_lpp_NR_ECID_ProvideLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24601 dissect_lpp_NR_ECID_ProvideLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24602   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24603                                    ett_lpp_NR_ECID_ProvideLocationInformation_r16, NR_ECID_ProvideLocationInformation_r16_sequence);
24604 
24605   return offset;
24606 }
24607 
24608 
24609 
24610 static int
dissect_lpp_INTEGER_0_1970049(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24611 dissect_lpp_INTEGER_0_1970049(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24612   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24613                                                             0U, 1970049U, NULL, FALSE);
24614 
24615   return offset;
24616 }
24617 
24618 
24619 
24620 static int
dissect_lpp_INTEGER_0_985025(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24621 dissect_lpp_INTEGER_0_985025(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24622   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24623                                                             0U, 985025U, NULL, FALSE);
24624 
24625   return offset;
24626 }
24627 
24628 
24629 
24630 static int
dissect_lpp_INTEGER_0_492513(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24631 dissect_lpp_INTEGER_0_492513(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24632   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24633                                                             0U, 492513U, NULL, FALSE);
24634 
24635   return offset;
24636 }
24637 
24638 
24639 
24640 static int
dissect_lpp_INTEGER_0_246257(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24641 dissect_lpp_INTEGER_0_246257(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24642   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24643                                                             0U, 246257U, NULL, FALSE);
24644 
24645   return offset;
24646 }
24647 
24648 
24649 
24650 static int
dissect_lpp_INTEGER_0_123129(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24651 dissect_lpp_INTEGER_0_123129(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24652   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24653                                                             0U, 123129U, NULL, FALSE);
24654 
24655   return offset;
24656 }
24657 
24658 
24659 
24660 static int
dissect_lpp_INTEGER_0_61565(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24661 dissect_lpp_INTEGER_0_61565(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24662   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24663                                                             0U, 61565U, NULL, FALSE);
24664 
24665   return offset;
24666 }
24667 
24668 
24669 static const value_string lpp_T_nr_UE_RxTxTimeDiff_r16_vals[] = {
24670   {   0, "k0-r16" },
24671   {   1, "k1-r16" },
24672   {   2, "k2-r16" },
24673   {   3, "k3-r16" },
24674   {   4, "k4-r16" },
24675   {   5, "k5-r16" },
24676   { 0, NULL }
24677 };
24678 
24679 static const per_choice_t T_nr_UE_RxTxTimeDiff_r16_choice[] = {
24680   {   0, &hf_lpp_k0_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1970049 },
24681   {   1, &hf_lpp_k1_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_985025 },
24682   {   2, &hf_lpp_k2_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_492513 },
24683   {   3, &hf_lpp_k3_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_246257 },
24684   {   4, &hf_lpp_k4_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_123129 },
24685   {   5, &hf_lpp_k5_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_61565 },
24686   { 0, NULL, 0, NULL }
24687 };
24688 
24689 static int
dissect_lpp_T_nr_UE_RxTxTimeDiff_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24690 dissect_lpp_T_nr_UE_RxTxTimeDiff_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24691   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24692                                  ett_lpp_T_nr_UE_RxTxTimeDiff_r16, T_nr_UE_RxTxTimeDiff_r16_choice,
24693                                  NULL);
24694 
24695   return offset;
24696 }
24697 
24698 
24699 
24700 static int
dissect_lpp_INTEGER_0_16351(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24701 dissect_lpp_INTEGER_0_16351(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24702   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24703                                                             0U, 16351U, NULL, FALSE);
24704 
24705   return offset;
24706 }
24707 
24708 
24709 
24710 static int
dissect_lpp_INTEGER_0_8176(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24711 dissect_lpp_INTEGER_0_8176(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24712   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24713                                                             0U, 8176U, NULL, FALSE);
24714 
24715   return offset;
24716 }
24717 
24718 
24719 
24720 static int
dissect_lpp_INTEGER_0_4088(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24721 dissect_lpp_INTEGER_0_4088(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24722   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24723                                                             0U, 4088U, NULL, FALSE);
24724 
24725   return offset;
24726 }
24727 
24728 
24729 
24730 static int
dissect_lpp_INTEGER_0_2044(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24731 dissect_lpp_INTEGER_0_2044(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24732   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24733                                                             0U, 2044U, NULL, FALSE);
24734 
24735   return offset;
24736 }
24737 
24738 
24739 static const value_string lpp_T_nr_RelativeTimeDifference_r16_vals[] = {
24740   {   0, "k0-r16" },
24741   {   1, "k1-r16" },
24742   {   2, "k2-r16" },
24743   {   3, "k3-r16" },
24744   {   4, "k4-r16" },
24745   {   5, "k5-r16" },
24746   { 0, NULL }
24747 };
24748 
24749 static const per_choice_t T_nr_RelativeTimeDifference_r16_choice[] = {
24750   {   0, &hf_lpp_k0_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_16351 },
24751   {   1, &hf_lpp_k1_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_8176 },
24752   {   2, &hf_lpp_k2_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_4088 },
24753   {   3, &hf_lpp_k3_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2044 },
24754   {   4, &hf_lpp_k4_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1022 },
24755   {   5, &hf_lpp_k5_r16          , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_511 },
24756   { 0, NULL, 0, NULL }
24757 };
24758 
24759 static int
dissect_lpp_T_nr_RelativeTimeDifference_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24760 dissect_lpp_T_nr_RelativeTimeDifference_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24761   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24762                                  ett_lpp_T_nr_RelativeTimeDifference_r16, T_nr_RelativeTimeDifference_r16_choice,
24763                                  NULL);
24764 
24765   return offset;
24766 }
24767 
24768 
24769 static const per_sequence_t NR_AdditionalPath_r16_sequence[] = {
24770   { &hf_lpp_nr_RelativeTimeDifference_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_RelativeTimeDifference_r16 },
24771   { &hf_lpp_nr_PathQuality_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_TimingQuality_r16 },
24772   { NULL, 0, 0, NULL }
24773 };
24774 
24775 static int
dissect_lpp_NR_AdditionalPath_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24776 dissect_lpp_NR_AdditionalPath_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24777   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24778                                    ett_lpp_NR_AdditionalPath_r16, NR_AdditionalPath_r16_sequence);
24779 
24780   return offset;
24781 }
24782 
24783 
24784 static const per_sequence_t NR_AdditionalPathList_r16_sequence_of[1] = {
24785   { &hf_lpp_NR_AdditionalPathList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_AdditionalPath_r16 },
24786 };
24787 
24788 static int
dissect_lpp_NR_AdditionalPathList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24789 dissect_lpp_NR_AdditionalPathList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24790   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24791                                                   ett_lpp_NR_AdditionalPathList_r16, NR_AdditionalPathList_r16_sequence_of,
24792                                                   1, 2, FALSE);
24793 
24794   return offset;
24795 }
24796 
24797 
24798 static const value_string lpp_T_nr_Slot_r16_vals[] = {
24799   {   0, "scs15-r16" },
24800   {   1, "scs30-r16" },
24801   {   2, "scs60-r16" },
24802   {   3, "scs120-r16" },
24803   { 0, NULL }
24804 };
24805 
24806 static const per_choice_t T_nr_Slot_r16_choice[] = {
24807   {   0, &hf_lpp_scs15_r16_02    , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_0_9 },
24808   {   1, &hf_lpp_scs30_r16_02    , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_0_19 },
24809   {   2, &hf_lpp_scs60_r16_02    , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_0_39 },
24810   {   3, &hf_lpp_scs120_r16_02   , ASN1_NO_EXTENSIONS     , dissect_lpp_INTEGER_0_79 },
24811   { 0, NULL, 0, NULL }
24812 };
24813 
24814 static int
dissect_lpp_T_nr_Slot_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24815 dissect_lpp_T_nr_Slot_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24816   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24817                                  ett_lpp_T_nr_Slot_r16, T_nr_Slot_r16_choice,
24818                                  NULL);
24819 
24820   return offset;
24821 }
24822 
24823 
24824 static const per_sequence_t NR_TimeStamp_r16_sequence[] = {
24825   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
24826   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
24827   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
24828   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
24829   { &hf_lpp_nr_SFN_r16      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
24830   { &hf_lpp_nr_Slot_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_Slot_r16 },
24831   { NULL, 0, 0, NULL }
24832 };
24833 
24834 static int
dissect_lpp_NR_TimeStamp_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24835 dissect_lpp_NR_TimeStamp_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24836   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24837                                    ett_lpp_NR_TimeStamp_r16, NR_TimeStamp_r16_sequence);
24838 
24839   return offset;
24840 }
24841 
24842 
24843 
24844 static int
dissect_lpp_INTEGER_0_126(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24845 dissect_lpp_INTEGER_0_126(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24846   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24847                                                             0U, 126U, NULL, FALSE);
24848 
24849   return offset;
24850 }
24851 
24852 
24853 
24854 static int
dissect_lpp_INTEGER_0_61(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24855 dissect_lpp_INTEGER_0_61(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24856   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
24857                                                             0U, 61U, NULL, FALSE);
24858 
24859   return offset;
24860 }
24861 
24862 
24863 static const value_string lpp_T_nr_UE_RxTxTimeDiffAdditional_r16_vals[] = {
24864   {   0, "k0-r16" },
24865   {   1, "k1-r16" },
24866   {   2, "k2-r16" },
24867   {   3, "k3-r16" },
24868   {   4, "k4-r16" },
24869   {   5, "k5-r16" },
24870   { 0, NULL }
24871 };
24872 
24873 static const per_choice_t T_nr_UE_RxTxTimeDiffAdditional_r16_choice[] = {
24874   {   0, &hf_lpp_k0_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_8191 },
24875   {   1, &hf_lpp_k1_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_4095 },
24876   {   2, &hf_lpp_k2_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2047 },
24877   {   3, &hf_lpp_k3_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1023 },
24878   {   4, &hf_lpp_k4_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_511 },
24879   {   5, &hf_lpp_k5_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_255 },
24880   { 0, NULL, 0, NULL }
24881 };
24882 
24883 static int
dissect_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24884 dissect_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24885   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
24886                                  ett_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16, T_nr_UE_RxTxTimeDiffAdditional_r16_choice,
24887                                  NULL);
24888 
24889   return offset;
24890 }
24891 
24892 
24893 static const per_sequence_t NR_Multi_RTT_AdditionalMeasurementElement_r16_sequence[] = {
24894   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceID_r16 },
24895   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
24896   { &hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_61 },
24897   { &hf_lpp_nr_UE_RxTxTimeDiffAdditional_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16 },
24898   { &hf_lpp_nr_TimingQuality_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimingQuality_r16 },
24899   { &hf_lpp_nr_AdditionalPathList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_AdditionalPathList_r16 },
24900   { &hf_lpp_nr_TimeStamp_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimeStamp_r16 },
24901   { NULL, 0, 0, NULL }
24902 };
24903 
24904 static int
dissect_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24905 dissect_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24906   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24907                                    ett_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16, NR_Multi_RTT_AdditionalMeasurementElement_r16_sequence);
24908 
24909   return offset;
24910 }
24911 
24912 
24913 static const per_sequence_t NR_Multi_RTT_AdditionalMeasurements_r16_sequence_of[1] = {
24914   { &hf_lpp_NR_Multi_RTT_AdditionalMeasurements_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16 },
24915 };
24916 
24917 static int
dissect_lpp_NR_Multi_RTT_AdditionalMeasurements_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24918 dissect_lpp_NR_Multi_RTT_AdditionalMeasurements_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24919   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24920                                                   ett_lpp_NR_Multi_RTT_AdditionalMeasurements_r16, NR_Multi_RTT_AdditionalMeasurements_r16_sequence_of,
24921                                                   1, 3, FALSE);
24922 
24923   return offset;
24924 }
24925 
24926 
24927 static const per_sequence_t NR_Multi_RTT_MeasElement_r16_sequence[] = {
24928   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
24929   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
24930   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
24931   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
24932   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceID_r16 },
24933   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
24934   { &hf_lpp_nr_UE_RxTxTimeDiff_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_UE_RxTxTimeDiff_r16 },
24935   { &hf_lpp_nr_AdditionalPathList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_AdditionalPathList_r16 },
24936   { &hf_lpp_nr_TimeStamp_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimeStamp_r16 },
24937   { &hf_lpp_nr_TimingQuality_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimingQuality_r16 },
24938   { &hf_lpp_nr_DL_PRS_RSRP_Result_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_126 },
24939   { &hf_lpp_nr_Multi_RTT_AdditionalMeasurements_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_AdditionalMeasurements_r16 },
24940   { NULL, 0, 0, NULL }
24941 };
24942 
24943 static int
dissect_lpp_NR_Multi_RTT_MeasElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24944 dissect_lpp_NR_Multi_RTT_MeasElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24945   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24946                                    ett_lpp_NR_Multi_RTT_MeasElement_r16, NR_Multi_RTT_MeasElement_r16_sequence);
24947 
24948   return offset;
24949 }
24950 
24951 
24952 static const per_sequence_t NR_Multi_RTT_MeasList_r16_sequence_of[1] = {
24953   { &hf_lpp_NR_Multi_RTT_MeasList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_Multi_RTT_MeasElement_r16 },
24954 };
24955 
24956 static int
dissect_lpp_NR_Multi_RTT_MeasList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24957 dissect_lpp_NR_Multi_RTT_MeasList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24958   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
24959                                                   ett_lpp_NR_Multi_RTT_MeasList_r16, NR_Multi_RTT_MeasList_r16_sequence_of,
24960                                                   1, nrMaxTRPs_r16, FALSE);
24961 
24962   return offset;
24963 }
24964 
24965 
24966 static const value_string lpp_T_nr_NTA_Offset_r16_vals[] = {
24967   {   0, "nTA1" },
24968   {   1, "nTA2" },
24969   {   2, "nTA3" },
24970   {   3, "nTA4" },
24971   { 0, NULL }
24972 };
24973 
24974 
24975 static int
dissect_lpp_T_nr_NTA_Offset_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24976 dissect_lpp_T_nr_NTA_Offset_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24977   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
24978                                      4, NULL, TRUE, 0, NULL);
24979 
24980   return offset;
24981 }
24982 
24983 
24984 static const per_sequence_t NR_Multi_RTT_SignalMeasurementInformation_r16_sequence[] = {
24985   { &hf_lpp_nr_Multi_RTT_MeasList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_Multi_RTT_MeasList_r16 },
24986   { &hf_lpp_nr_NTA_Offset_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_nr_NTA_Offset_r16 },
24987   { NULL, 0, 0, NULL }
24988 };
24989 
24990 static int
dissect_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)24991 dissect_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
24992   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
24993                                    ett_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16, NR_Multi_RTT_SignalMeasurementInformation_r16_sequence);
24994 
24995   return offset;
24996 }
24997 
24998 
24999 static const per_sequence_t NR_Multi_RTT_ProvideLocationInformation_r16_sequence[] = {
25000   { &hf_lpp_nr_Multi_RTT_SignalMeasurementInformation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16 },
25001   { &hf_lpp_nr_Multi_RTT_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_Error_r16 },
25002   { NULL, 0, 0, NULL }
25003 };
25004 
25005 static int
dissect_lpp_NR_Multi_RTT_ProvideLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25006 dissect_lpp_NR_Multi_RTT_ProvideLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25007   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25008                                    ett_lpp_NR_Multi_RTT_ProvideLocationInformation_r16, NR_Multi_RTT_ProvideLocationInformation_r16_sequence);
25009 
25010   return offset;
25011 }
25012 
25013 
25014 
25015 static int
dissect_lpp_INTEGER_0_30(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25016 dissect_lpp_INTEGER_0_30(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25017   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
25018                                                             0U, 30U, NULL, FALSE);
25019 
25020   return offset;
25021 }
25022 
25023 
25024 static const per_sequence_t NR_DL_AoD_AdditionalMeasurementElement_r16_sequence[] = {
25025   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceID_r16 },
25026   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
25027   { &hf_lpp_nr_TimeStamp_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimeStamp_r16 },
25028   { &hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_30 },
25029   { &hf_lpp_nr_DL_PRS_RxBeamIndex_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
25030   { NULL, 0, 0, NULL }
25031 };
25032 
25033 static int
dissect_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25034 dissect_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25035   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25036                                    ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16, NR_DL_AoD_AdditionalMeasurementElement_r16_sequence);
25037 
25038   return offset;
25039 }
25040 
25041 
25042 static const per_sequence_t NR_DL_AoD_AdditionalMeasurements_r16_sequence_of[1] = {
25043   { &hf_lpp_NR_DL_AoD_AdditionalMeasurements_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16 },
25044 };
25045 
25046 static int
dissect_lpp_NR_DL_AoD_AdditionalMeasurements_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25047 dissect_lpp_NR_DL_AoD_AdditionalMeasurements_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25048   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
25049                                                   ett_lpp_NR_DL_AoD_AdditionalMeasurements_r16, NR_DL_AoD_AdditionalMeasurements_r16_sequence_of,
25050                                                   1, 7, FALSE);
25051 
25052   return offset;
25053 }
25054 
25055 
25056 static const per_sequence_t NR_DL_AoD_MeasElement_r16_sequence[] = {
25057   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
25058   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
25059   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
25060   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
25061   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceID_r16 },
25062   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
25063   { &hf_lpp_nr_TimeStamp_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimeStamp_r16 },
25064   { &hf_lpp_nr_DL_PRS_RSRP_Result_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_126 },
25065   { &hf_lpp_nr_DL_PRS_RxBeamIndex_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
25066   { &hf_lpp_nr_DL_AoD_AdditionalMeasurements_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_AdditionalMeasurements_r16 },
25067   { NULL, 0, 0, NULL }
25068 };
25069 
25070 static int
dissect_lpp_NR_DL_AoD_MeasElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25071 dissect_lpp_NR_DL_AoD_MeasElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25072   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25073                                    ett_lpp_NR_DL_AoD_MeasElement_r16, NR_DL_AoD_MeasElement_r16_sequence);
25074 
25075   return offset;
25076 }
25077 
25078 
25079 static const per_sequence_t NR_DL_AoD_MeasList_r16_sequence_of[1] = {
25080   { &hf_lpp_NR_DL_AoD_MeasList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_AoD_MeasElement_r16 },
25081 };
25082 
25083 static int
dissect_lpp_NR_DL_AoD_MeasList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25084 dissect_lpp_NR_DL_AoD_MeasList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25085   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
25086                                                   ett_lpp_NR_DL_AoD_MeasList_r16, NR_DL_AoD_MeasList_r16_sequence_of,
25087                                                   1, nrMaxTRPs_r16, FALSE);
25088 
25089   return offset;
25090 }
25091 
25092 
25093 static const per_sequence_t NR_DL_AoD_SignalMeasurementInformation_r16_sequence[] = {
25094   { &hf_lpp_nr_DL_AoD_MeasList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_AoD_MeasList_r16 },
25095   { NULL, 0, 0, NULL }
25096 };
25097 
25098 static int
dissect_lpp_NR_DL_AoD_SignalMeasurementInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25099 dissect_lpp_NR_DL_AoD_SignalMeasurementInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25100   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25101                                    ett_lpp_NR_DL_AoD_SignalMeasurementInformation_r16, NR_DL_AoD_SignalMeasurementInformation_r16_sequence);
25102 
25103   return offset;
25104 }
25105 
25106 
25107 static const value_string lpp_T_measurementReferenceTime_r16_01_vals[] = {
25108   {   0, "sfn-time-r16" },
25109   {   1, "utc-time-r16" },
25110   { 0, NULL }
25111 };
25112 
25113 static const per_choice_t T_measurementReferenceTime_r16_01_choice[] = {
25114   {   0, &hf_lpp_sfn_time_r16    , ASN1_EXTENSION_ROOT    , dissect_lpp_NR_TimeStamp_r16 },
25115   {   1, &hf_lpp_utc_time_r16    , ASN1_EXTENSION_ROOT    , dissect_lpp_UTCTime },
25116   { 0, NULL, 0, NULL }
25117 };
25118 
25119 static int
dissect_lpp_T_measurementReferenceTime_r16_01(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25120 dissect_lpp_T_measurementReferenceTime_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25121   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25122                                  ett_lpp_T_measurementReferenceTime_r16_01, T_measurementReferenceTime_r16_01_choice,
25123                                  NULL);
25124 
25125   return offset;
25126 }
25127 
25128 
25129 static const per_sequence_t NR_DL_AoD_LocationInformation_r16_sequence[] = {
25130   { &hf_lpp_measurementReferenceTime_r16_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_measurementReferenceTime_r16_01 },
25131   { NULL, 0, 0, NULL }
25132 };
25133 
25134 static int
dissect_lpp_NR_DL_AoD_LocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25135 dissect_lpp_NR_DL_AoD_LocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25136   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25137                                    ett_lpp_NR_DL_AoD_LocationInformation_r16, NR_DL_AoD_LocationInformation_r16_sequence);
25138 
25139   return offset;
25140 }
25141 
25142 
25143 static const per_sequence_t NR_DL_AoD_ProvideLocationInformation_r16_sequence[] = {
25144   { &hf_lpp_nr_DL_AoD_SignalMeasurementInformation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_SignalMeasurementInformation_r16 },
25145   { &hf_lpp_nr_dl_AoD_LocationInformation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_LocationInformation_r16 },
25146   { &hf_lpp_nr_DL_AoD_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_Error_r16 },
25147   { NULL, 0, 0, NULL }
25148 };
25149 
25150 static int
dissect_lpp_NR_DL_AoD_ProvideLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25151 dissect_lpp_NR_DL_AoD_ProvideLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25152   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25153                                    ett_lpp_NR_DL_AoD_ProvideLocationInformation_r16, NR_DL_AoD_ProvideLocationInformation_r16_sequence);
25154 
25155   return offset;
25156 }
25157 
25158 
25159 static const value_string lpp_T_nr_RSTD_r16_vals[] = {
25160   {   0, "k0-r16" },
25161   {   1, "k1-r16" },
25162   {   2, "k2-r16" },
25163   {   3, "k3-r16" },
25164   {   4, "k4-r16" },
25165   {   5, "k5-r16" },
25166   { 0, NULL }
25167 };
25168 
25169 static const per_choice_t T_nr_RSTD_r16_choice[] = {
25170   {   0, &hf_lpp_k0_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1970049 },
25171   {   1, &hf_lpp_k1_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_985025 },
25172   {   2, &hf_lpp_k2_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_492513 },
25173   {   3, &hf_lpp_k3_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_246257 },
25174   {   4, &hf_lpp_k4_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_123129 },
25175   {   5, &hf_lpp_k5_r16_01       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_61565 },
25176   { 0, NULL, 0, NULL }
25177 };
25178 
25179 static int
dissect_lpp_T_nr_RSTD_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25180 dissect_lpp_T_nr_RSTD_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25181   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25182                                  ett_lpp_T_nr_RSTD_r16, T_nr_RSTD_r16_choice,
25183                                  NULL);
25184 
25185   return offset;
25186 }
25187 
25188 
25189 static const value_string lpp_T_nr_RSTD_ResultDiff_r16_vals[] = {
25190   {   0, "k0-r16" },
25191   {   1, "k1-r16" },
25192   {   2, "k2-r16" },
25193   {   3, "k3-r16" },
25194   {   4, "k4-r16" },
25195   {   5, "k5-r16" },
25196   { 0, NULL }
25197 };
25198 
25199 static const per_choice_t T_nr_RSTD_ResultDiff_r16_choice[] = {
25200   {   0, &hf_lpp_k0_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_8191 },
25201   {   1, &hf_lpp_k1_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_4095 },
25202   {   2, &hf_lpp_k2_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_2047 },
25203   {   3, &hf_lpp_k3_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_1023 },
25204   {   4, &hf_lpp_k4_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_511 },
25205   {   5, &hf_lpp_k5_r16_02       , ASN1_EXTENSION_ROOT    , dissect_lpp_INTEGER_0_255 },
25206   { 0, NULL, 0, NULL }
25207 };
25208 
25209 static int
dissect_lpp_T_nr_RSTD_ResultDiff_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25210 dissect_lpp_T_nr_RSTD_ResultDiff_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25211   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25212                                  ett_lpp_T_nr_RSTD_ResultDiff_r16, T_nr_RSTD_ResultDiff_r16_choice,
25213                                  NULL);
25214 
25215   return offset;
25216 }
25217 
25218 
25219 static const per_sequence_t NR_DL_TDOA_AdditionalMeasurementElement_r16_sequence[] = {
25220   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceID_r16 },
25221   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
25222   { &hf_lpp_nr_TimeStamp_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimeStamp_r16 },
25223   { &hf_lpp_nr_RSTD_ResultDiff_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_RSTD_ResultDiff_r16 },
25224   { &hf_lpp_nr_TimingQuality_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimingQuality_r16 },
25225   { &hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_61 },
25226   { &hf_lpp_nr_AdditionalPathList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_AdditionalPathList_r16 },
25227   { NULL, 0, 0, NULL }
25228 };
25229 
25230 static int
dissect_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25231 dissect_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25232   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25233                                    ett_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16, NR_DL_TDOA_AdditionalMeasurementElement_r16_sequence);
25234 
25235   return offset;
25236 }
25237 
25238 
25239 static const per_sequence_t NR_DL_TDOA_AdditionalMeasurements_r16_sequence_of[1] = {
25240   { &hf_lpp_NR_DL_TDOA_AdditionalMeasurements_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16 },
25241 };
25242 
25243 static int
dissect_lpp_NR_DL_TDOA_AdditionalMeasurements_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25244 dissect_lpp_NR_DL_TDOA_AdditionalMeasurements_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25245   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
25246                                                   ett_lpp_NR_DL_TDOA_AdditionalMeasurements_r16, NR_DL_TDOA_AdditionalMeasurements_r16_sequence_of,
25247                                                   1, 3, FALSE);
25248 
25249   return offset;
25250 }
25251 
25252 
25253 static const per_sequence_t NR_DL_TDOA_MeasElement_r16_sequence[] = {
25254   { &hf_lpp_dl_PRS_ID_r16   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
25255   { &hf_lpp_nr_PhysCellID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_PhysCellID_r16 },
25256   { &hf_lpp_nr_CellGlobalID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NCGI_r15 },
25257   { &hf_lpp_nr_ARFCN_r16    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueNR_r15 },
25258   { &hf_lpp_nr_DL_PRS_ResourceID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceID_r16 },
25259   { &hf_lpp_nr_DL_PRS_ResourceSetID_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_ResourceSetID_r16 },
25260   { &hf_lpp_nr_TimeStamp_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimeStamp_r16 },
25261   { &hf_lpp_nr_RSTD_r16     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_nr_RSTD_r16 },
25262   { &hf_lpp_nr_AdditionalPathList_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_AdditionalPathList_r16 },
25263   { &hf_lpp_nr_TimingQuality_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TimingQuality_r16 },
25264   { &hf_lpp_nr_DL_PRS_RSRP_Result_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_126 },
25265   { &hf_lpp_nr_DL_TDOA_AdditionalMeasurements_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_AdditionalMeasurements_r16 },
25266   { NULL, 0, 0, NULL }
25267 };
25268 
25269 static int
dissect_lpp_NR_DL_TDOA_MeasElement_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25270 dissect_lpp_NR_DL_TDOA_MeasElement_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25271   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25272                                    ett_lpp_NR_DL_TDOA_MeasElement_r16, NR_DL_TDOA_MeasElement_r16_sequence);
25273 
25274   return offset;
25275 }
25276 
25277 
25278 static const per_sequence_t NR_DL_TDOA_MeasList_r16_sequence_of[1] = {
25279   { &hf_lpp_NR_DL_TDOA_MeasList_r16_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_TDOA_MeasElement_r16 },
25280 };
25281 
25282 static int
dissect_lpp_NR_DL_TDOA_MeasList_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25283 dissect_lpp_NR_DL_TDOA_MeasList_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25284   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
25285                                                   ett_lpp_NR_DL_TDOA_MeasList_r16, NR_DL_TDOA_MeasList_r16_sequence_of,
25286                                                   1, nrMaxTRPs_r16, FALSE);
25287 
25288   return offset;
25289 }
25290 
25291 
25292 static const per_sequence_t NR_DL_TDOA_SignalMeasurementInformation_r16_sequence[] = {
25293   { &hf_lpp_dl_PRS_ReferenceInfo_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DL_PRS_ID_Info_r16 },
25294   { &hf_lpp_nr_DL_TDOA_MeasList_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_DL_TDOA_MeasList_r16 },
25295   { NULL, 0, 0, NULL }
25296 };
25297 
25298 static int
dissect_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25299 dissect_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25300   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25301                                    ett_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16, NR_DL_TDOA_SignalMeasurementInformation_r16_sequence);
25302 
25303   return offset;
25304 }
25305 
25306 
25307 static const value_string lpp_T_measurementReferenceTime_r16_vals[] = {
25308   {   0, "systemFrameNumber-r16" },
25309   {   1, "utc-time-r16" },
25310   { 0, NULL }
25311 };
25312 
25313 static const per_choice_t T_measurementReferenceTime_r16_choice[] = {
25314   {   0, &hf_lpp_systemFrameNumber_r16_01, ASN1_EXTENSION_ROOT    , dissect_lpp_NR_TimeStamp_r16 },
25315   {   1, &hf_lpp_utc_time_r16    , ASN1_EXTENSION_ROOT    , dissect_lpp_UTCTime },
25316   { 0, NULL, 0, NULL }
25317 };
25318 
25319 static int
dissect_lpp_T_measurementReferenceTime_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25320 dissect_lpp_T_measurementReferenceTime_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25321   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25322                                  ett_lpp_T_measurementReferenceTime_r16, T_measurementReferenceTime_r16_choice,
25323                                  NULL);
25324 
25325   return offset;
25326 }
25327 
25328 
25329 static const per_sequence_t NR_DL_TDOA_LocationInformation_r16_sequence[] = {
25330   { &hf_lpp_measurementReferenceTime_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_measurementReferenceTime_r16 },
25331   { NULL, 0, 0, NULL }
25332 };
25333 
25334 static int
dissect_lpp_NR_DL_TDOA_LocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25335 dissect_lpp_NR_DL_TDOA_LocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25336   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25337                                    ett_lpp_NR_DL_TDOA_LocationInformation_r16, NR_DL_TDOA_LocationInformation_r16_sequence);
25338 
25339   return offset;
25340 }
25341 
25342 
25343 static const per_sequence_t NR_DL_TDOA_ProvideLocationInformation_r16_sequence[] = {
25344   { &hf_lpp_nr_DL_TDOA_SignalMeasurementInformation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16 },
25345   { &hf_lpp_nr_dl_tdoa_LocationInformation_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_LocationInformation_r16 },
25346   { &hf_lpp_nr_DL_TDOA_Error_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_Error_r16 },
25347   { NULL, 0, 0, NULL }
25348 };
25349 
25350 static int
dissect_lpp_NR_DL_TDOA_ProvideLocationInformation_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25351 dissect_lpp_NR_DL_TDOA_ProvideLocationInformation_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25352   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25353                                    ett_lpp_NR_DL_TDOA_ProvideLocationInformation_r16, NR_DL_TDOA_ProvideLocationInformation_r16_sequence);
25354 
25355   return offset;
25356 }
25357 
25358 
25359 static const per_sequence_t ProvideLocationInformation_r9_IEs_eag_2_sequence[] = {
25360   { &hf_lpp_nr_ECID_ProvideLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_ECID_ProvideLocationInformation_r16 },
25361   { &hf_lpp_nr_Multi_RTT_ProvideLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_Multi_RTT_ProvideLocationInformation_r16 },
25362   { &hf_lpp_nr_DL_AoD_ProvideLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_AoD_ProvideLocationInformation_r16 },
25363   { &hf_lpp_nr_DL_TDOA_ProvideLocationInformation_r16, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_NR_DL_TDOA_ProvideLocationInformation_r16 },
25364   { NULL, 0, 0, NULL }
25365 };
25366 
25367 static int
dissect_lpp_ProvideLocationInformation_r9_IEs_eag_2(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25368 dissect_lpp_ProvideLocationInformation_r9_IEs_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25369   offset = dissect_per_sequence_eag(tvb, offset, actx, tree, ProvideLocationInformation_r9_IEs_eag_2_sequence);
25370 
25371   return offset;
25372 }
25373 
25374 
25375 static const per_sequence_t ProvideLocationInformation_r9_IEs_sequence[] = {
25376   { &hf_lpp_commonIEsProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsProvideLocationInformation },
25377   { &hf_lpp_a_gnss_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_ProvideLocationInformation },
25378   { &hf_lpp_otdoa_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ProvideLocationInformation },
25379   { &hf_lpp_ecid_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_ProvideLocationInformation },
25380   { &hf_lpp_epdu_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
25381   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ProvideLocationInformation_r9_IEs_eag_1 },
25382   { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_ProvideLocationInformation_r9_IEs_eag_2 },
25383   { NULL, 0, 0, NULL }
25384 };
25385 
25386 static int
dissect_lpp_ProvideLocationInformation_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25387 dissect_lpp_ProvideLocationInformation_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25388   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25389                                    ett_lpp_ProvideLocationInformation_r9_IEs, ProvideLocationInformation_r9_IEs_sequence);
25390 
25391   return offset;
25392 }
25393 
25394 
25395 static const value_string lpp_T_c1_06_vals[] = {
25396   {   0, "provideLocationInformation-r9" },
25397   {   1, "spare3" },
25398   {   2, "spare2" },
25399   {   3, "spare1" },
25400   { 0, NULL }
25401 };
25402 
25403 static const per_choice_t T_c1_06_choice[] = {
25404   {   0, &hf_lpp_provideLocationInformation_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideLocationInformation_r9_IEs },
25405   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25406   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25407   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25408   { 0, NULL, 0, NULL }
25409 };
25410 
25411 static int
dissect_lpp_T_c1_06(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25412 dissect_lpp_T_c1_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25413   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25414                                  ett_lpp_T_c1_06, T_c1_06_choice,
25415                                  NULL);
25416 
25417   return offset;
25418 }
25419 
25420 
25421 static const per_sequence_t T_criticalExtensionsFuture_05_sequence[] = {
25422   { NULL, 0, 0, NULL }
25423 };
25424 
25425 static int
dissect_lpp_T_criticalExtensionsFuture_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25426 dissect_lpp_T_criticalExtensionsFuture_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25427   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25428                                    ett_lpp_T_criticalExtensionsFuture_05, T_criticalExtensionsFuture_05_sequence);
25429 
25430   return offset;
25431 }
25432 
25433 
25434 static const value_string lpp_T_criticalExtensions_05_vals[] = {
25435   {   0, "c1" },
25436   {   1, "criticalExtensionsFuture" },
25437   { 0, NULL }
25438 };
25439 
25440 static const per_choice_t T_criticalExtensions_05_choice[] = {
25441   {   0, &hf_lpp_c1_06           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_06 },
25442   {   1, &hf_lpp_criticalExtensionsFuture_05, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_05 },
25443   { 0, NULL, 0, NULL }
25444 };
25445 
25446 static int
dissect_lpp_T_criticalExtensions_05(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25447 dissect_lpp_T_criticalExtensions_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25448   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25449                                  ett_lpp_T_criticalExtensions_05, T_criticalExtensions_05_choice,
25450                                  NULL);
25451 
25452   return offset;
25453 }
25454 
25455 
25456 static const per_sequence_t ProvideLocationInformation_sequence[] = {
25457   { &hf_lpp_criticalExtensions_05, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_05 },
25458   { NULL, 0, 0, NULL }
25459 };
25460 
25461 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_)25462 dissect_lpp_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25463 #line 140 "./asn1/lpp/lpp.cnf"
25464   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information");
25465 
25466 
25467   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25468                                    ett_lpp_ProvideLocationInformation, ProvideLocationInformation_sequence);
25469 
25470   return offset;
25471 }
25472 
25473 
25474 static const value_string lpp_T_abortCause_vals[] = {
25475   {   0, "undefined" },
25476   {   1, "stopPeriodicReporting" },
25477   {   2, "targetDeviceAbort" },
25478   {   3, "networkAbort" },
25479   {   4, "stopPeriodicAssistanceDataDelivery-v1510" },
25480   { 0, NULL }
25481 };
25482 
25483 
25484 static int
dissect_lpp_T_abortCause(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25485 dissect_lpp_T_abortCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25486   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
25487                                      4, NULL, TRUE, 1, NULL);
25488 
25489   return offset;
25490 }
25491 
25492 
25493 static const per_sequence_t CommonIEsAbort_sequence[] = {
25494   { &hf_lpp_abortCause      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_abortCause },
25495   { NULL, 0, 0, NULL }
25496 };
25497 
25498 static int
dissect_lpp_CommonIEsAbort(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25499 dissect_lpp_CommonIEsAbort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25500   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25501                                    ett_lpp_CommonIEsAbort, CommonIEsAbort_sequence);
25502 
25503   return offset;
25504 }
25505 
25506 
25507 static const per_sequence_t Abort_r9_IEs_sequence[] = {
25508   { &hf_lpp_commonIEsAbort  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsAbort },
25509   { &hf_lpp_epdu_Abort      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
25510   { NULL, 0, 0, NULL }
25511 };
25512 
25513 static int
dissect_lpp_Abort_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25514 dissect_lpp_Abort_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25515   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25516                                    ett_lpp_Abort_r9_IEs, Abort_r9_IEs_sequence);
25517 
25518   return offset;
25519 }
25520 
25521 
25522 static const value_string lpp_T_c1_07_vals[] = {
25523   {   0, "abort-r9" },
25524   {   1, "spare3" },
25525   {   2, "spare2" },
25526   {   3, "spare1" },
25527   { 0, NULL }
25528 };
25529 
25530 static const per_choice_t T_c1_07_choice[] = {
25531   {   0, &hf_lpp_abort_r9        , ASN1_NO_EXTENSIONS     , dissect_lpp_Abort_r9_IEs },
25532   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25533   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25534   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25535   { 0, NULL, 0, NULL }
25536 };
25537 
25538 static int
dissect_lpp_T_c1_07(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25539 dissect_lpp_T_c1_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25540   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25541                                  ett_lpp_T_c1_07, T_c1_07_choice,
25542                                  NULL);
25543 
25544   return offset;
25545 }
25546 
25547 
25548 static const per_sequence_t T_criticalExtensionsFuture_06_sequence[] = {
25549   { NULL, 0, 0, NULL }
25550 };
25551 
25552 static int
dissect_lpp_T_criticalExtensionsFuture_06(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25553 dissect_lpp_T_criticalExtensionsFuture_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25554   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25555                                    ett_lpp_T_criticalExtensionsFuture_06, T_criticalExtensionsFuture_06_sequence);
25556 
25557   return offset;
25558 }
25559 
25560 
25561 static const value_string lpp_T_criticalExtensions_06_vals[] = {
25562   {   0, "c1" },
25563   {   1, "criticalExtensionsFuture" },
25564   { 0, NULL }
25565 };
25566 
25567 static const per_choice_t T_criticalExtensions_06_choice[] = {
25568   {   0, &hf_lpp_c1_07           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_07 },
25569   {   1, &hf_lpp_criticalExtensionsFuture_06, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_06 },
25570   { 0, NULL, 0, NULL }
25571 };
25572 
25573 static int
dissect_lpp_T_criticalExtensions_06(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25574 dissect_lpp_T_criticalExtensions_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25575   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25576                                  ett_lpp_T_criticalExtensions_06, T_criticalExtensions_06_choice,
25577                                  NULL);
25578 
25579   return offset;
25580 }
25581 
25582 
25583 static const per_sequence_t Abort_sequence[] = {
25584   { &hf_lpp_criticalExtensions_06, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_06 },
25585   { NULL, 0, 0, NULL }
25586 };
25587 
25588 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_)25589 dissect_lpp_Abort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25590 #line 143 "./asn1/lpp/lpp.cnf"
25591   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort");
25592 
25593 
25594   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25595                                    ett_lpp_Abort, Abort_sequence);
25596 
25597   return offset;
25598 }
25599 
25600 
25601 static const value_string lpp_T_errorCause_vals[] = {
25602   {   0, "undefined" },
25603   {   1, "lppMessageHeaderError" },
25604   {   2, "lppMessageBodyError" },
25605   {   3, "epduError" },
25606   {   4, "incorrectDataValue" },
25607   {   5, "lppSegmentationError-v1450" },
25608   { 0, NULL }
25609 };
25610 
25611 
25612 static int
dissect_lpp_T_errorCause(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25613 dissect_lpp_T_errorCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25614   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
25615                                      5, NULL, TRUE, 1, NULL);
25616 
25617   return offset;
25618 }
25619 
25620 
25621 static const per_sequence_t CommonIEsError_sequence[] = {
25622   { &hf_lpp_errorCause      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_errorCause },
25623   { NULL, 0, 0, NULL }
25624 };
25625 
25626 static int
dissect_lpp_CommonIEsError(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25627 dissect_lpp_CommonIEsError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25628   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25629                                    ett_lpp_CommonIEsError, CommonIEsError_sequence);
25630 
25631   return offset;
25632 }
25633 
25634 
25635 static const per_sequence_t Error_r9_IEs_sequence[] = {
25636   { &hf_lpp_commonIEsError  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsError },
25637   { &hf_lpp_epdu_Error      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
25638   { NULL, 0, 0, NULL }
25639 };
25640 
25641 static int
dissect_lpp_Error_r9_IEs(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25642 dissect_lpp_Error_r9_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25643   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25644                                    ett_lpp_Error_r9_IEs, Error_r9_IEs_sequence);
25645 
25646   return offset;
25647 }
25648 
25649 
25650 static const per_sequence_t T_criticalExtensionsFuture_07_sequence[] = {
25651   { NULL, 0, 0, NULL }
25652 };
25653 
25654 static int
dissect_lpp_T_criticalExtensionsFuture_07(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25655 dissect_lpp_T_criticalExtensionsFuture_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25656   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25657                                    ett_lpp_T_criticalExtensionsFuture_07, T_criticalExtensionsFuture_07_sequence);
25658 
25659   return offset;
25660 }
25661 
25662 
25663 static const value_string lpp_Error_vals[] = {
25664   {   0, "error-r9" },
25665   {   1, "criticalExtensionsFuture" },
25666   { 0, NULL }
25667 };
25668 
25669 static const per_choice_t Error_choice[] = {
25670   {   0, &hf_lpp_error_r9        , ASN1_NO_EXTENSIONS     , dissect_lpp_Error_r9_IEs },
25671   {   1, &hf_lpp_criticalExtensionsFuture_07, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_07 },
25672   { 0, NULL, 0, NULL }
25673 };
25674 
25675 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_)25676 dissect_lpp_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25677 #line 146 "./asn1/lpp/lpp.cnf"
25678   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error");
25679 
25680 
25681   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25682                                  ett_lpp_Error, Error_choice,
25683                                  NULL);
25684 
25685   return offset;
25686 }
25687 
25688 
25689 static const value_string lpp_T_c1_vals[] = {
25690   {   0, "requestCapabilities" },
25691   {   1, "provideCapabilities" },
25692   {   2, "requestAssistanceData" },
25693   {   3, "provideAssistanceData" },
25694   {   4, "requestLocationInformation" },
25695   {   5, "provideLocationInformation" },
25696   {   6, "abort" },
25697   {   7, "error" },
25698   {   8, "spare7" },
25699   {   9, "spare6" },
25700   {  10, "spare5" },
25701   {  11, "spare4" },
25702   {  12, "spare3" },
25703   {  13, "spare2" },
25704   {  14, "spare1" },
25705   {  15, "spare0" },
25706   { 0, NULL }
25707 };
25708 
25709 static const per_choice_t T_c1_choice[] = {
25710   {   0, &hf_lpp_requestCapabilities, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestCapabilities },
25711   {   1, &hf_lpp_provideCapabilities, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideCapabilities },
25712   {   2, &hf_lpp_requestAssistanceData, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestAssistanceData },
25713   {   3, &hf_lpp_provideAssistanceData, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideAssistanceData },
25714   {   4, &hf_lpp_requestLocationInformation, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestLocationInformation },
25715   {   5, &hf_lpp_provideLocationInformation, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideLocationInformation },
25716   {   6, &hf_lpp_abort           , ASN1_NO_EXTENSIONS     , dissect_lpp_Abort },
25717   {   7, &hf_lpp_error           , ASN1_NO_EXTENSIONS     , dissect_lpp_Error },
25718   {   8, &hf_lpp_spare7          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25719   {   9, &hf_lpp_spare6          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25720   {  10, &hf_lpp_spare5          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25721   {  11, &hf_lpp_spare4          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25722   {  12, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25723   {  13, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25724   {  14, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25725   {  15, &hf_lpp_spare0          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
25726   { 0, NULL, 0, NULL }
25727 };
25728 
25729 static int
dissect_lpp_T_c1(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25730 dissect_lpp_T_c1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25731   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25732                                  ett_lpp_T_c1, T_c1_choice,
25733                                  NULL);
25734 
25735   return offset;
25736 }
25737 
25738 
25739 static const per_sequence_t T_messageClassExtension_sequence[] = {
25740   { NULL, 0, 0, NULL }
25741 };
25742 
25743 static int
dissect_lpp_T_messageClassExtension(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25744 dissect_lpp_T_messageClassExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25745   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25746                                    ett_lpp_T_messageClassExtension, T_messageClassExtension_sequence);
25747 
25748   return offset;
25749 }
25750 
25751 
25752 static const value_string lpp_LPP_MessageBody_vals[] = {
25753   {   0, "c1" },
25754   {   1, "messageClassExtension" },
25755   { 0, NULL }
25756 };
25757 
25758 static const per_choice_t LPP_MessageBody_choice[] = {
25759   {   0, &hf_lpp_c1              , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1 },
25760   {   1, &hf_lpp_messageClassExtension, ASN1_NO_EXTENSIONS     , dissect_lpp_T_messageClassExtension },
25761   { 0, NULL, 0, NULL }
25762 };
25763 
25764 static int
dissect_lpp_LPP_MessageBody(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25765 dissect_lpp_LPP_MessageBody(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25766   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
25767                                  ett_lpp_LPP_MessageBody, LPP_MessageBody_choice,
25768                                  NULL);
25769 
25770   return offset;
25771 }
25772 
25773 
25774 static const per_sequence_t LPP_Message_sequence[] = {
25775   { &hf_lpp_transactionID   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_LPP_TransactionID },
25776   { &hf_lpp_endTransaction  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
25777   { &hf_lpp_sequenceNumber  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SequenceNumber },
25778   { &hf_lpp_acknowledgement , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Acknowledgement },
25779   { &hf_lpp_lpp_MessageBody , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_LPP_MessageBody },
25780   { NULL, 0, 0, NULL }
25781 };
25782 
25783 static int
dissect_lpp_LPP_Message(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25784 dissect_lpp_LPP_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25785   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25786                                    ett_lpp_LPP_Message, LPP_Message_sequence);
25787 
25788   return offset;
25789 }
25790 
25791 
25792 
25793 static int
dissect_lpp_BIT_STRING_SIZE_1_128(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25794 dissect_lpp_BIT_STRING_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25795   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
25796                                      1, 128, FALSE, NULL, 0, NULL, NULL);
25797 
25798   return offset;
25799 }
25800 
25801 
25802 static const per_sequence_t CipheringKeyData_r15_sequence[] = {
25803   { &hf_lpp_cipherSetID_r15 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
25804   { &hf_lpp_d0_r15          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_1_128 },
25805   { NULL, 0, 0, NULL }
25806 };
25807 
25808 static int
dissect_lpp_CipheringKeyData_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25809 dissect_lpp_CipheringKeyData_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25810 #line 1797 "./asn1/lpp/lpp.cnf"
25811   lpp_get_private_data(actx->pinfo)->is_ciphered = TRUE;
25812 
25813 
25814   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25815                                    ett_lpp_CipheringKeyData_r15, CipheringKeyData_r15_sequence);
25816 
25817   return offset;
25818 }
25819 
25820 
25821 static const value_string lpp_T_segmentationOption_r15_vals[] = {
25822   {   0, "pseudo-seg" },
25823   {   1, "octet-string-seg" },
25824   { 0, NULL }
25825 };
25826 
25827 
25828 static int
dissect_lpp_T_segmentationOption_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25829 dissect_lpp_T_segmentationOption_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25830   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
25831                                      2, NULL, FALSE, 0, NULL);
25832 
25833   return offset;
25834 }
25835 
25836 
25837 static const value_string lpp_T_assistanceDataSegmentType_r15_vals[] = {
25838   {   0, "notLastSegment" },
25839   {   1, "lastSegment" },
25840   { 0, NULL }
25841 };
25842 
25843 
25844 static int
dissect_lpp_T_assistanceDataSegmentType_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25845 dissect_lpp_T_assistanceDataSegmentType_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25846   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
25847                                      2, NULL, FALSE, 0, NULL);
25848 
25849   return offset;
25850 }
25851 
25852 
25853 static const per_sequence_t SegmentationInfo_r15_sequence[] = {
25854   { &hf_lpp_segmentationOption_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_segmentationOption_r15 },
25855   { &hf_lpp_assistanceDataSegmentType_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_assistanceDataSegmentType_r15 },
25856   { &hf_lpp_assistanceDataSegmentNumber_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
25857   { NULL, 0, 0, NULL }
25858 };
25859 
25860 static int
dissect_lpp_SegmentationInfo_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25861 dissect_lpp_SegmentationInfo_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25862 #line 1800 "./asn1/lpp/lpp.cnf"
25863   lpp_get_private_data(actx->pinfo)->is_segmented = TRUE;
25864 
25865 
25866   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
25867                                    ett_lpp_SegmentationInfo_r15, SegmentationInfo_r15_sequence);
25868 
25869   return offset;
25870 }
25871 
25872 
25873 
25874 static int
dissect_lpp_T_assistanceDataElement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)25875 dissect_lpp_T_assistanceDataElement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
25876 #line 1803 "./asn1/lpp/lpp.cnf"
25877   tvbuff_t *assist_data_sib_elem_tvb = NULL;
25878   struct lpp_private_data *lpp_data = lpp_get_private_data(actx->pinfo);
25879 
25880   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
25881                                        NO_BOUND, NO_BOUND, FALSE, &assist_data_sib_elem_tvb);
25882 
25883 
25884   if (assist_data_sib_elem_tvb && !lpp_data->is_ciphered && !lpp_data->is_segmented) {
25885     proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lpp_assistanceDataElement_r15);
25886 
25887     switch (lpp_data->pos_sib_type) {
25888     case LPP_POS_SIB_TYPE_1_1:
25889       dissect_GNSS_ReferenceTime_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25890       break;
25891     case LPP_POS_SIB_TYPE_1_2:
25892       dissect_GNSS_ReferenceLocation_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25893       break;
25894     case LPP_POS_SIB_TYPE_1_3:
25895       dissect_GNSS_IonosphericModel_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25896       break;
25897     case LPP_POS_SIB_TYPE_1_4:
25898       dissect_GNSS_EarthOrientationParameters_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25899       break;
25900     case LPP_POS_SIB_TYPE_1_5:
25901       dissect_GNSS_RTK_ReferenceStationInfo_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25902       break;
25903     case LPP_POS_SIB_TYPE_1_6:
25904       dissect_GNSS_RTK_CommonObservationInfo_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25905       break;
25906     case LPP_POS_SIB_TYPE_1_7:
25907       dissect_GNSS_RTK_AuxiliaryStationData_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25908       break;
25909     case LPP_POS_SIB_TYPE_1_8:
25910       dissect_GNSS_SSR_CorrectionPoints_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25911       break;
25912     case LPP_POS_SIB_TYPE_2_1:
25913       dissect_GNSS_TimeModelList_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25914       break;
25915     case LPP_POS_SIB_TYPE_2_2:
25916       dissect_GNSS_DifferentialCorrections_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25917       break;
25918     case LPP_POS_SIB_TYPE_2_3:
25919       dissect_GNSS_NavigationModel_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25920       break;
25921     case LPP_POS_SIB_TYPE_2_4:
25922       dissect_GNSS_RealTimeIntegrity_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25923       break;
25924     case LPP_POS_SIB_TYPE_2_5:
25925       dissect_GNSS_DataBitAssistance_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25926       break;
25927     case LPP_POS_SIB_TYPE_2_6:
25928       dissect_GNSS_AcquisitionAssistance_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25929       break;
25930     case LPP_POS_SIB_TYPE_2_7:
25931       dissect_GNSS_Almanac_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25932       break;
25933     case LPP_POS_SIB_TYPE_2_8:
25934       dissect_GNSS_UTC_Model_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25935       break;
25936     case LPP_POS_SIB_TYPE_2_9:
25937       dissect_GNSS_AuxiliaryInformation_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25938       break;
25939     case LPP_POS_SIB_TYPE_2_10:
25940       dissect_BDS_DifferentialCorrections_r12_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25941       break;
25942     case LPP_POS_SIB_TYPE_2_11:
25943       dissect_BDS_GridModelParameter_r12_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25944       break;
25945     case LPP_POS_SIB_TYPE_2_12:
25946       dissect_GNSS_RTK_Observations_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25947       break;
25948     case LPP_POS_SIB_TYPE_2_13:
25949       dissect_GLO_RTK_BiasInformation_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25950       break;
25951     case LPP_POS_SIB_TYPE_2_14:
25952       dissect_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25953       break;
25954     case LPP_POS_SIB_TYPE_2_15:
25955       dissect_GNSS_RTK_Residuals_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25956       break;
25957     case LPP_POS_SIB_TYPE_2_16:
25958       dissect_GNSS_RTK_FKP_Gradients_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25959       break;
25960     case LPP_POS_SIB_TYPE_2_17:
25961       dissect_GNSS_SSR_OrbitCorrections_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25962       break;
25963     case LPP_POS_SIB_TYPE_2_18:
25964       dissect_GNSS_SSR_ClockCorrections_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25965       break;
25966     case LPP_POS_SIB_TYPE_2_19:
25967       dissect_GNSS_SSR_CodeBias_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25968       break;
25969     case LPP_POS_SIB_TYPE_2_20:
25970       dissect_GNSS_SSR_URA_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25971       break;
25972     case LPP_POS_SIB_TYPE_2_21:
25973       dissect_GNSS_SSR_PhaseBias_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25974       break;
25975     case LPP_POS_SIB_TYPE_2_22:
25976       dissect_GNSS_SSR_STEC_Correction_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25977       break;
25978     case LPP_POS_SIB_TYPE_2_23:
25979       dissect_GNSS_SSR_GriddedCorrection_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25980       break;
25981     case LPP_POS_SIB_TYPE_2_24:
25982       dissect_NavIC_DifferentialCorrections_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25983       break;
25984     case LPP_POS_SIB_TYPE_2_25:
25985       dissect_NavIC_GridModelParameter_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25986       break;
25987     case LPP_POS_SIB_TYPE_3_1:
25988       dissect_OTDOA_UE_Assisted_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25989       break;
25990     case LPP_POS_SIB_TYPE_4_1:
25991       dissect_Sensor_AssistanceDataList_r14_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25992       break;
25993     case LPP_POS_SIB_TYPE_5_1:
25994       dissect_TBS_AssistanceDataList_r14_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25995       break;
25996     case LPP_POS_SIB_TYPE_6_1:
25997       dissect_NR_DL_PRS_AssistanceData_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
25998       break;
25999     case LPP_POS_SIB_TYPE_6_2:
26000       dissect_NR_UEB_TRP_LocationData_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
26001       break;
26002     case LPP_POS_SIB_TYPE_6_3:
26003       dissect_NR_UEB_TRP_RTD_Info_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
26004       break;
26005     default:
26006       break;
26007     }
26008   }
26009 
26010 
26011   return offset;
26012 }
26013 
26014 
26015 static const per_sequence_t AssistanceDataSIBelement_r15_sequence[] = {
26016   { &hf_lpp_valueTag_r15    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_63 },
26017   { &hf_lpp_expirationTime_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_UTCTime },
26018   { &hf_lpp_cipheringKeyData_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CipheringKeyData_r15 },
26019   { &hf_lpp_segmentationInfo_r15, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SegmentationInfo_r15 },
26020   { &hf_lpp_assistanceDataElement_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_assistanceDataElement_r15 },
26021   { NULL, 0, 0, NULL }
26022 };
26023 
26024 static int
dissect_lpp_AssistanceDataSIBelement_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)26025 dissect_lpp_AssistanceDataSIBelement_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
26026   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
26027                                    ett_lpp_AssistanceDataSIBelement_r15, AssistanceDataSIBelement_r15_sequence);
26028 
26029   return offset;
26030 }
26031 
26032 
26033 static const per_sequence_t OTDOA_UE_Assisted_r15_sequence[] = {
26034   { &hf_lpp_otdoa_ReferenceCellInfo_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo },
26035   { &hf_lpp_otdoa_NeighbourCellInfo_r15, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoList },
26036   { NULL, 0, 0, NULL }
26037 };
26038 
26039 static int
dissect_lpp_OTDOA_UE_Assisted_r15(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)26040 dissect_lpp_OTDOA_UE_Assisted_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
26041   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
26042                                    ett_lpp_OTDOA_UE_Assisted_r15, OTDOA_UE_Assisted_r15_sequence);
26043 
26044   return offset;
26045 }
26046 
26047 
26048 static const per_sequence_t NR_UEB_TRP_LocationData_r16_sequence[] = {
26049   { &hf_lpp_nr_trp_LocationInfo_r16, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_TRP_LocationInfo_r16 },
26050   { &hf_lpp_nr_dl_prs_BeamInfo_r16, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NR_DL_PRS_BeamInfo_r16 },
26051   { NULL, 0, 0, NULL }
26052 };
26053 
26054 static int
dissect_lpp_NR_UEB_TRP_LocationData_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)26055 dissect_lpp_NR_UEB_TRP_LocationData_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
26056   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
26057                                    ett_lpp_NR_UEB_TRP_LocationData_r16, NR_UEB_TRP_LocationData_r16_sequence);
26058 
26059   return offset;
26060 }
26061 
26062 
26063 static const per_sequence_t NR_UEB_TRP_RTD_Info_r16_sequence[] = {
26064   { &hf_lpp_nr_rtd_Info_r16 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NR_RTD_Info_r16 },
26065   { NULL, 0, 0, NULL }
26066 };
26067 
26068 static int
dissect_lpp_NR_UEB_TRP_RTD_Info_r16(tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)26069 dissect_lpp_NR_UEB_TRP_RTD_Info_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
26070   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
26071                                    ett_lpp_NR_UEB_TRP_RTD_Info_r16, NR_UEB_TRP_RTD_Info_r16_sequence);
26072 
26073   return offset;
26074 }
26075 
26076 /*--- PDUs ---*/
26077 
dissect_LPP_Message_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26078 static int dissect_LPP_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26079   int offset = 0;
26080   asn1_ctx_t asn1_ctx;
26081   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26082   offset = dissect_lpp_LPP_Message(tvb, offset, &asn1_ctx, tree, hf_lpp_LPP_Message_PDU);
26083   offset += 7; offset >>= 3;
26084   return offset;
26085 }
dissect_lpp_Ellipsoid_Point_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26086 int dissect_lpp_Ellipsoid_Point_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26087   int offset = 0;
26088   asn1_ctx_t asn1_ctx;
26089   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26090   offset = dissect_lpp_Ellipsoid_Point(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_Ellipsoid_Point_PDU);
26091   offset += 7; offset >>= 3;
26092   return offset;
26093 }
dissect_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26094 int dissect_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26095   int offset = 0;
26096   asn1_ctx_t asn1_ctx;
26097   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26098   offset = dissect_lpp_Ellipsoid_PointWithUncertaintyCircle(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU);
26099   offset += 7; offset >>= 3;
26100   return offset;
26101 }
dissect_lpp_EllipsoidPointWithUncertaintyEllipse_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26102 int dissect_lpp_EllipsoidPointWithUncertaintyEllipse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26103   int offset = 0;
26104   asn1_ctx_t asn1_ctx;
26105   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26106   offset = dissect_lpp_EllipsoidPointWithUncertaintyEllipse(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_EllipsoidPointWithUncertaintyEllipse_PDU);
26107   offset += 7; offset >>= 3;
26108   return offset;
26109 }
dissect_lpp_EllipsoidPointWithAltitude_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26110 int dissect_lpp_EllipsoidPointWithAltitude_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26111   int offset = 0;
26112   asn1_ctx_t asn1_ctx;
26113   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26114   offset = dissect_lpp_EllipsoidPointWithAltitude(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_EllipsoidPointWithAltitude_PDU);
26115   offset += 7; offset >>= 3;
26116   return offset;
26117 }
dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26118 int dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26119   int offset = 0;
26120   asn1_ctx_t asn1_ctx;
26121   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26122   offset = dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU);
26123   offset += 7; offset >>= 3;
26124   return offset;
26125 }
dissect_lpp_EllipsoidArc_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26126 int dissect_lpp_EllipsoidArc_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26127   int offset = 0;
26128   asn1_ctx_t asn1_ctx;
26129   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26130   offset = dissect_lpp_EllipsoidArc(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_EllipsoidArc_PDU);
26131   offset += 7; offset >>= 3;
26132   return offset;
26133 }
dissect_lpp_HorizontalVelocity_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26134 int dissect_lpp_HorizontalVelocity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26135   int offset = 0;
26136   asn1_ctx_t asn1_ctx;
26137   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26138   offset = dissect_lpp_HorizontalVelocity(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_HorizontalVelocity_PDU);
26139   offset += 7; offset >>= 3;
26140   return offset;
26141 }
dissect_lpp_HorizontalWithVerticalVelocity_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26142 int dissect_lpp_HorizontalWithVerticalVelocity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26143   int offset = 0;
26144   asn1_ctx_t asn1_ctx;
26145   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26146   offset = dissect_lpp_HorizontalWithVerticalVelocity(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_HorizontalWithVerticalVelocity_PDU);
26147   offset += 7; offset >>= 3;
26148   return offset;
26149 }
dissect_lpp_HorizontalVelocityWithUncertainty_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26150 int dissect_lpp_HorizontalVelocityWithUncertainty_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26151   int offset = 0;
26152   asn1_ctx_t asn1_ctx;
26153   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26154   offset = dissect_lpp_HorizontalVelocityWithUncertainty(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_HorizontalVelocityWithUncertainty_PDU);
26155   offset += 7; offset >>= 3;
26156   return offset;
26157 }
dissect_lpp_Polygon_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26158 int dissect_lpp_Polygon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26159   int offset = 0;
26160   asn1_ctx_t asn1_ctx;
26161   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26162   offset = dissect_lpp_Polygon(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_Polygon_PDU);
26163   offset += 7; offset >>= 3;
26164   return offset;
26165 }
dissect_lpp_LocationCoordinates_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26166 int dissect_lpp_LocationCoordinates_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26167   int offset = 0;
26168   asn1_ctx_t asn1_ctx;
26169   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26170   offset = dissect_lpp_LocationCoordinates(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_LocationCoordinates_PDU);
26171   offset += 7; offset >>= 3;
26172   return offset;
26173 }
dissect_lpp_Velocity_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26174 int dissect_lpp_Velocity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26175   int offset = 0;
26176   asn1_ctx_t asn1_ctx;
26177   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26178   offset = dissect_lpp_Velocity(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_Velocity_PDU);
26179   offset += 7; offset >>= 3;
26180   return offset;
26181 }
dissect_lpp_LocationError_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26182 int dissect_lpp_LocationError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26183   int offset = 0;
26184   asn1_ctx_t asn1_ctx;
26185   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26186   offset = dissect_lpp_LocationError(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_LocationError_PDU);
26187   offset += 7; offset >>= 3;
26188   return offset;
26189 }
dissect_lpp_LocationSource_r13_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26190 int dissect_lpp_LocationSource_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26191   int offset = 0;
26192   asn1_ctx_t asn1_ctx;
26193   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26194   offset = dissect_lpp_LocationSource_r13(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_LocationSource_r13_PDU);
26195   offset += 7; offset >>= 3;
26196   return offset;
26197 }
dissect_NR_DL_PRS_AssistanceData_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26198 static int dissect_NR_DL_PRS_AssistanceData_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26199   int offset = 0;
26200   asn1_ctx_t asn1_ctx;
26201   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26202   offset = dissect_lpp_NR_DL_PRS_AssistanceData_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_NR_DL_PRS_AssistanceData_r16_PDU);
26203   offset += 7; offset >>= 3;
26204   return offset;
26205 }
dissect_GNSS_ReferenceTime_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26206 static int dissect_GNSS_ReferenceTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26207   int offset = 0;
26208   asn1_ctx_t asn1_ctx;
26209   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26210   offset = dissect_lpp_GNSS_ReferenceTime(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_ReferenceTime_PDU);
26211   offset += 7; offset >>= 3;
26212   return offset;
26213 }
dissect_GNSS_ReferenceLocation_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26214 static int dissect_GNSS_ReferenceLocation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26215   int offset = 0;
26216   asn1_ctx_t asn1_ctx;
26217   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26218   offset = dissect_lpp_GNSS_ReferenceLocation(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_ReferenceLocation_PDU);
26219   offset += 7; offset >>= 3;
26220   return offset;
26221 }
dissect_GNSS_IonosphericModel_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26222 static int dissect_GNSS_IonosphericModel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26223   int offset = 0;
26224   asn1_ctx_t asn1_ctx;
26225   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26226   offset = dissect_lpp_GNSS_IonosphericModel(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_IonosphericModel_PDU);
26227   offset += 7; offset >>= 3;
26228   return offset;
26229 }
dissect_GNSS_EarthOrientationParameters_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26230 static int dissect_GNSS_EarthOrientationParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26231   int offset = 0;
26232   asn1_ctx_t asn1_ctx;
26233   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26234   offset = dissect_lpp_GNSS_EarthOrientationParameters(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_EarthOrientationParameters_PDU);
26235   offset += 7; offset >>= 3;
26236   return offset;
26237 }
dissect_GNSS_RTK_ReferenceStationInfo_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26238 static int dissect_GNSS_RTK_ReferenceStationInfo_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26239   int offset = 0;
26240   asn1_ctx_t asn1_ctx;
26241   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26242   offset = dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_ReferenceStationInfo_r15_PDU);
26243   offset += 7; offset >>= 3;
26244   return offset;
26245 }
dissect_GNSS_RTK_CommonObservationInfo_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26246 static int dissect_GNSS_RTK_CommonObservationInfo_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26247   int offset = 0;
26248   asn1_ctx_t asn1_ctx;
26249   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26250   offset = dissect_lpp_GNSS_RTK_CommonObservationInfo_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_CommonObservationInfo_r15_PDU);
26251   offset += 7; offset >>= 3;
26252   return offset;
26253 }
dissect_GNSS_RTK_AuxiliaryStationData_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26254 static int dissect_GNSS_RTK_AuxiliaryStationData_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26255   int offset = 0;
26256   asn1_ctx_t asn1_ctx;
26257   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26258   offset = dissect_lpp_GNSS_RTK_AuxiliaryStationData_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_AuxiliaryStationData_r15_PDU);
26259   offset += 7; offset >>= 3;
26260   return offset;
26261 }
dissect_GNSS_SSR_CorrectionPoints_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26262 static int dissect_GNSS_SSR_CorrectionPoints_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26263   int offset = 0;
26264   asn1_ctx_t asn1_ctx;
26265   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26266   offset = dissect_lpp_GNSS_SSR_CorrectionPoints_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_CorrectionPoints_r16_PDU);
26267   offset += 7; offset >>= 3;
26268   return offset;
26269 }
dissect_GNSS_TimeModelList_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26270 static int dissect_GNSS_TimeModelList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26271   int offset = 0;
26272   asn1_ctx_t asn1_ctx;
26273   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26274   offset = dissect_lpp_GNSS_TimeModelList(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_TimeModelList_PDU);
26275   offset += 7; offset >>= 3;
26276   return offset;
26277 }
dissect_GNSS_DifferentialCorrections_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26278 static int dissect_GNSS_DifferentialCorrections_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26279   int offset = 0;
26280   asn1_ctx_t asn1_ctx;
26281   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26282   offset = dissect_lpp_GNSS_DifferentialCorrections(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_DifferentialCorrections_PDU);
26283   offset += 7; offset >>= 3;
26284   return offset;
26285 }
dissect_GNSS_NavigationModel_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26286 static int dissect_GNSS_NavigationModel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26287   int offset = 0;
26288   asn1_ctx_t asn1_ctx;
26289   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26290   offset = dissect_lpp_GNSS_NavigationModel(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_NavigationModel_PDU);
26291   offset += 7; offset >>= 3;
26292   return offset;
26293 }
dissect_GNSS_RealTimeIntegrity_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26294 static int dissect_GNSS_RealTimeIntegrity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26295   int offset = 0;
26296   asn1_ctx_t asn1_ctx;
26297   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26298   offset = dissect_lpp_GNSS_RealTimeIntegrity(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RealTimeIntegrity_PDU);
26299   offset += 7; offset >>= 3;
26300   return offset;
26301 }
dissect_GNSS_DataBitAssistance_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26302 static int dissect_GNSS_DataBitAssistance_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26303   int offset = 0;
26304   asn1_ctx_t asn1_ctx;
26305   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26306   offset = dissect_lpp_GNSS_DataBitAssistance(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_DataBitAssistance_PDU);
26307   offset += 7; offset >>= 3;
26308   return offset;
26309 }
dissect_GNSS_AcquisitionAssistance_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26310 static int dissect_GNSS_AcquisitionAssistance_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26311   int offset = 0;
26312   asn1_ctx_t asn1_ctx;
26313   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26314   offset = dissect_lpp_GNSS_AcquisitionAssistance(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_AcquisitionAssistance_PDU);
26315   offset += 7; offset >>= 3;
26316   return offset;
26317 }
dissect_GNSS_Almanac_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26318 static int dissect_GNSS_Almanac_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26319   int offset = 0;
26320   asn1_ctx_t asn1_ctx;
26321   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26322   offset = dissect_lpp_GNSS_Almanac(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_Almanac_PDU);
26323   offset += 7; offset >>= 3;
26324   return offset;
26325 }
dissect_GNSS_UTC_Model_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26326 static int dissect_GNSS_UTC_Model_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26327   int offset = 0;
26328   asn1_ctx_t asn1_ctx;
26329   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26330   offset = dissect_lpp_GNSS_UTC_Model(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_UTC_Model_PDU);
26331   offset += 7; offset >>= 3;
26332   return offset;
26333 }
dissect_GNSS_AuxiliaryInformation_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26334 static int dissect_GNSS_AuxiliaryInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26335   int offset = 0;
26336   asn1_ctx_t asn1_ctx;
26337   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26338   offset = dissect_lpp_GNSS_AuxiliaryInformation(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_AuxiliaryInformation_PDU);
26339   offset += 7; offset >>= 3;
26340   return offset;
26341 }
dissect_BDS_DifferentialCorrections_r12_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26342 static int dissect_BDS_DifferentialCorrections_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26343   int offset = 0;
26344   asn1_ctx_t asn1_ctx;
26345   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26346   offset = dissect_lpp_BDS_DifferentialCorrections_r12(tvb, offset, &asn1_ctx, tree, hf_lpp_BDS_DifferentialCorrections_r12_PDU);
26347   offset += 7; offset >>= 3;
26348   return offset;
26349 }
dissect_BDS_GridModelParameter_r12_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26350 static int dissect_BDS_GridModelParameter_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26351   int offset = 0;
26352   asn1_ctx_t asn1_ctx;
26353   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26354   offset = dissect_lpp_BDS_GridModelParameter_r12(tvb, offset, &asn1_ctx, tree, hf_lpp_BDS_GridModelParameter_r12_PDU);
26355   offset += 7; offset >>= 3;
26356   return offset;
26357 }
dissect_GNSS_RTK_Observations_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26358 static int dissect_GNSS_RTK_Observations_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26359   int offset = 0;
26360   asn1_ctx_t asn1_ctx;
26361   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26362   offset = dissect_lpp_GNSS_RTK_Observations_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_Observations_r15_PDU);
26363   offset += 7; offset >>= 3;
26364   return offset;
26365 }
dissect_GLO_RTK_BiasInformation_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26366 static int dissect_GLO_RTK_BiasInformation_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26367   int offset = 0;
26368   asn1_ctx_t asn1_ctx;
26369   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26370   offset = dissect_lpp_GLO_RTK_BiasInformation_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GLO_RTK_BiasInformation_r15_PDU);
26371   offset += 7; offset >>= 3;
26372   return offset;
26373 }
dissect_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26374 static int dissect_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26375   int offset = 0;
26376   asn1_ctx_t asn1_ctx;
26377   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26378   offset = dissect_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU);
26379   offset += 7; offset >>= 3;
26380   return offset;
26381 }
dissect_GNSS_RTK_Residuals_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26382 static int dissect_GNSS_RTK_Residuals_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26383   int offset = 0;
26384   asn1_ctx_t asn1_ctx;
26385   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26386   offset = dissect_lpp_GNSS_RTK_Residuals_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_Residuals_r15_PDU);
26387   offset += 7; offset >>= 3;
26388   return offset;
26389 }
dissect_GNSS_RTK_FKP_Gradients_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26390 static int dissect_GNSS_RTK_FKP_Gradients_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26391   int offset = 0;
26392   asn1_ctx_t asn1_ctx;
26393   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26394   offset = dissect_lpp_GNSS_RTK_FKP_Gradients_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_RTK_FKP_Gradients_r15_PDU);
26395   offset += 7; offset >>= 3;
26396   return offset;
26397 }
dissect_GNSS_SSR_OrbitCorrections_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26398 static int dissect_GNSS_SSR_OrbitCorrections_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26399   int offset = 0;
26400   asn1_ctx_t asn1_ctx;
26401   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26402   offset = dissect_lpp_GNSS_SSR_OrbitCorrections_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_OrbitCorrections_r15_PDU);
26403   offset += 7; offset >>= 3;
26404   return offset;
26405 }
dissect_GNSS_SSR_ClockCorrections_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26406 static int dissect_GNSS_SSR_ClockCorrections_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26407   int offset = 0;
26408   asn1_ctx_t asn1_ctx;
26409   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26410   offset = dissect_lpp_GNSS_SSR_ClockCorrections_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_ClockCorrections_r15_PDU);
26411   offset += 7; offset >>= 3;
26412   return offset;
26413 }
dissect_GNSS_SSR_CodeBias_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26414 static int dissect_GNSS_SSR_CodeBias_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26415   int offset = 0;
26416   asn1_ctx_t asn1_ctx;
26417   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26418   offset = dissect_lpp_GNSS_SSR_CodeBias_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_CodeBias_r15_PDU);
26419   offset += 7; offset >>= 3;
26420   return offset;
26421 }
dissect_GNSS_SSR_URA_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26422 static int dissect_GNSS_SSR_URA_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26423   int offset = 0;
26424   asn1_ctx_t asn1_ctx;
26425   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26426   offset = dissect_lpp_GNSS_SSR_URA_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_URA_r16_PDU);
26427   offset += 7; offset >>= 3;
26428   return offset;
26429 }
dissect_GNSS_SSR_PhaseBias_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26430 static int dissect_GNSS_SSR_PhaseBias_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26431   int offset = 0;
26432   asn1_ctx_t asn1_ctx;
26433   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26434   offset = dissect_lpp_GNSS_SSR_PhaseBias_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_PhaseBias_r16_PDU);
26435   offset += 7; offset >>= 3;
26436   return offset;
26437 }
dissect_GNSS_SSR_STEC_Correction_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26438 static int dissect_GNSS_SSR_STEC_Correction_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26439   int offset = 0;
26440   asn1_ctx_t asn1_ctx;
26441   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26442   offset = dissect_lpp_GNSS_SSR_STEC_Correction_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_STEC_Correction_r16_PDU);
26443   offset += 7; offset >>= 3;
26444   return offset;
26445 }
dissect_GNSS_SSR_GriddedCorrection_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26446 static int dissect_GNSS_SSR_GriddedCorrection_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26447   int offset = 0;
26448   asn1_ctx_t asn1_ctx;
26449   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26450   offset = dissect_lpp_GNSS_SSR_GriddedCorrection_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_GNSS_SSR_GriddedCorrection_r16_PDU);
26451   offset += 7; offset >>= 3;
26452   return offset;
26453 }
dissect_NavIC_DifferentialCorrections_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26454 static int dissect_NavIC_DifferentialCorrections_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26455   int offset = 0;
26456   asn1_ctx_t asn1_ctx;
26457   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26458   offset = dissect_lpp_NavIC_DifferentialCorrections_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_NavIC_DifferentialCorrections_r16_PDU);
26459   offset += 7; offset >>= 3;
26460   return offset;
26461 }
dissect_NavIC_GridModelParameter_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26462 static int dissect_NavIC_GridModelParameter_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26463   int offset = 0;
26464   asn1_ctx_t asn1_ctx;
26465   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26466   offset = dissect_lpp_NavIC_GridModelParameter_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_NavIC_GridModelParameter_r16_PDU);
26467   offset += 7; offset >>= 3;
26468   return offset;
26469 }
dissect_TBS_AssistanceDataList_r14_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26470 static int dissect_TBS_AssistanceDataList_r14_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26471   int offset = 0;
26472   asn1_ctx_t asn1_ctx;
26473   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26474   offset = dissect_lpp_TBS_AssistanceDataList_r14(tvb, offset, &asn1_ctx, tree, hf_lpp_TBS_AssistanceDataList_r14_PDU);
26475   offset += 7; offset >>= 3;
26476   return offset;
26477 }
dissect_lpp_Sensor_MeasurementInformation_r13_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26478 int dissect_lpp_Sensor_MeasurementInformation_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26479   int offset = 0;
26480   asn1_ctx_t asn1_ctx;
26481   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26482   offset = dissect_lpp_Sensor_MeasurementInformation_r13(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_Sensor_MeasurementInformation_r13_PDU);
26483   offset += 7; offset >>= 3;
26484   return offset;
26485 }
dissect_lpp_Sensor_MotionInformation_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26486 int dissect_lpp_Sensor_MotionInformation_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26487   int offset = 0;
26488   asn1_ctx_t asn1_ctx;
26489   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26490   offset = dissect_lpp_Sensor_MotionInformation_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_Sensor_MotionInformation_r15_PDU);
26491   offset += 7; offset >>= 3;
26492   return offset;
26493 }
dissect_lpp_DisplacementTimeStamp_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26494 int dissect_lpp_DisplacementTimeStamp_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26495   int offset = 0;
26496   asn1_ctx_t asn1_ctx;
26497   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26498   offset = dissect_lpp_DisplacementTimeStamp_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_lpp_DisplacementTimeStamp_r15_PDU);
26499   offset += 7; offset >>= 3;
26500   return offset;
26501 }
dissect_Sensor_AssistanceDataList_r14_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26502 static int dissect_Sensor_AssistanceDataList_r14_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26503   int offset = 0;
26504   asn1_ctx_t asn1_ctx;
26505   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26506   offset = dissect_lpp_Sensor_AssistanceDataList_r14(tvb, offset, &asn1_ctx, tree, hf_lpp_Sensor_AssistanceDataList_r14_PDU);
26507   offset += 7; offset >>= 3;
26508   return offset;
26509 }
dissect_OTDOA_UE_Assisted_r15_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26510 static int dissect_OTDOA_UE_Assisted_r15_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26511   int offset = 0;
26512   asn1_ctx_t asn1_ctx;
26513   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26514   offset = dissect_lpp_OTDOA_UE_Assisted_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_OTDOA_UE_Assisted_r15_PDU);
26515   offset += 7; offset >>= 3;
26516   return offset;
26517 }
dissect_NR_UEB_TRP_LocationData_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26518 static int dissect_NR_UEB_TRP_LocationData_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26519   int offset = 0;
26520   asn1_ctx_t asn1_ctx;
26521   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26522   offset = dissect_lpp_NR_UEB_TRP_LocationData_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_NR_UEB_TRP_LocationData_r16_PDU);
26523   offset += 7; offset >>= 3;
26524   return offset;
26525 }
dissect_NR_UEB_TRP_RTD_Info_r16_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)26526 static int dissect_NR_UEB_TRP_RTD_Info_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
26527   int offset = 0;
26528   asn1_ctx_t asn1_ctx;
26529   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26530   offset = dissect_lpp_NR_UEB_TRP_RTD_Info_r16(tvb, offset, &asn1_ctx, tree, hf_lpp_NR_UEB_TRP_RTD_Info_r16_PDU);
26531   offset += 7; offset >>= 3;
26532   return offset;
26533 }
26534 
26535 
26536 /*--- End of included file: packet-lpp-fn.c ---*/
26537 #line 2048 "./asn1/lpp/packet-lpp-template.c"
26538 
dissect_lpp_AssistanceDataSIBelement_r15_PDU(tvbuff_t * tvb,packet_info * pinfo,proto_tree * tree,lpp_pos_sib_type_t pos_sib_type)26539 int dissect_lpp_AssistanceDataSIBelement_r15_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, lpp_pos_sib_type_t pos_sib_type) {
26540   int offset = 0;
26541   asn1_ctx_t asn1_ctx;
26542   struct lpp_private_data *lpp_data = lpp_get_private_data(pinfo);
26543 
26544   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
26545   lpp_data->pos_sib_type = pos_sib_type;
26546   offset = dissect_lpp_AssistanceDataSIBelement_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_AssistanceDataSIBelement_r15_PDU);
26547   offset += 7; offset >>= 3;
26548   return offset;
26549 }
26550 
dissect_lpp(tvbuff_t * tvb,packet_info * pinfo,proto_tree * tree,void * data _U_)26551 static int dissect_lpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
26552   proto_tree *subtree;
26553   proto_item *it;
26554 
26555   it = proto_tree_add_item(tree, proto_lpp, tvb, 0, -1, ENC_NA);
26556   col_append_sep_str(pinfo->cinfo, COL_PROTOCOL, "/", "LPP");
26557   subtree = proto_item_add_subtree(it, ett_lpp);
26558 
26559   return dissect_LPP_Message_PDU(tvb, pinfo, subtree, NULL);
26560 }
26561 
26562 /*--- proto_register_lpp -------------------------------------------*/
proto_register_lpp(void)26563 void proto_register_lpp(void) {
26564 
26565   /* List of fields */
26566   static hf_register_info hf[] = {
26567 
26568 
26569 /*--- Included file: packet-lpp-hfarr.c ---*/
26570 #line 1 "./asn1/lpp/packet-lpp-hfarr.c"
26571     { &hf_lpp_LPP_Message_PDU,
26572       { "LPP-Message", "lpp.LPP_Message_element",
26573         FT_NONE, BASE_NONE, NULL, 0,
26574         NULL, HFILL }},
26575     { &hf_lpp_lpp_Ellipsoid_Point_PDU,
26576       { "Ellipsoid-Point", "lpp.Ellipsoid_Point_element",
26577         FT_NONE, BASE_NONE, NULL, 0,
26578         NULL, HFILL }},
26579     { &hf_lpp_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU,
26580       { "Ellipsoid-PointWithUncertaintyCircle", "lpp.Ellipsoid_PointWithUncertaintyCircle_element",
26581         FT_NONE, BASE_NONE, NULL, 0,
26582         NULL, HFILL }},
26583     { &hf_lpp_lpp_EllipsoidPointWithUncertaintyEllipse_PDU,
26584       { "EllipsoidPointWithUncertaintyEllipse", "lpp.EllipsoidPointWithUncertaintyEllipse_element",
26585         FT_NONE, BASE_NONE, NULL, 0,
26586         NULL, HFILL }},
26587     { &hf_lpp_lpp_EllipsoidPointWithAltitude_PDU,
26588       { "EllipsoidPointWithAltitude", "lpp.EllipsoidPointWithAltitude_element",
26589         FT_NONE, BASE_NONE, NULL, 0,
26590         NULL, HFILL }},
26591     { &hf_lpp_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU,
26592       { "EllipsoidPointWithAltitudeAndUncertaintyEllipsoid", "lpp.EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_element",
26593         FT_NONE, BASE_NONE, NULL, 0,
26594         NULL, HFILL }},
26595     { &hf_lpp_lpp_EllipsoidArc_PDU,
26596       { "EllipsoidArc", "lpp.EllipsoidArc_element",
26597         FT_NONE, BASE_NONE, NULL, 0,
26598         NULL, HFILL }},
26599     { &hf_lpp_lpp_HorizontalVelocity_PDU,
26600       { "HorizontalVelocity", "lpp.HorizontalVelocity_element",
26601         FT_NONE, BASE_NONE, NULL, 0,
26602         NULL, HFILL }},
26603     { &hf_lpp_lpp_HorizontalWithVerticalVelocity_PDU,
26604       { "HorizontalWithVerticalVelocity", "lpp.HorizontalWithVerticalVelocity_element",
26605         FT_NONE, BASE_NONE, NULL, 0,
26606         NULL, HFILL }},
26607     { &hf_lpp_lpp_HorizontalVelocityWithUncertainty_PDU,
26608       { "HorizontalVelocityWithUncertainty", "lpp.HorizontalVelocityWithUncertainty_element",
26609         FT_NONE, BASE_NONE, NULL, 0,
26610         NULL, HFILL }},
26611     { &hf_lpp_lpp_Polygon_PDU,
26612       { "Polygon", "lpp.Polygon",
26613         FT_UINT32, BASE_DEC, NULL, 0,
26614         NULL, HFILL }},
26615     { &hf_lpp_lpp_LocationCoordinates_PDU,
26616       { "LocationCoordinates", "lpp.LocationCoordinates",
26617         FT_UINT32, BASE_DEC, VALS(lpp_LocationCoordinates_vals), 0,
26618         NULL, HFILL }},
26619     { &hf_lpp_lpp_Velocity_PDU,
26620       { "Velocity", "lpp.Velocity",
26621         FT_UINT32, BASE_DEC, VALS(lpp_Velocity_vals), 0,
26622         NULL, HFILL }},
26623     { &hf_lpp_lpp_LocationError_PDU,
26624       { "LocationError", "lpp.LocationError_element",
26625         FT_NONE, BASE_NONE, NULL, 0,
26626         NULL, HFILL }},
26627     { &hf_lpp_lpp_LocationSource_r13_PDU,
26628       { "LocationSource-r13", "lpp.LocationSource_r13",
26629         FT_BYTES, BASE_NONE, NULL, 0,
26630         NULL, HFILL }},
26631     { &hf_lpp_NR_DL_PRS_AssistanceData_r16_PDU,
26632       { "NR-DL-PRS-AssistanceData-r16", "lpp.NR_DL_PRS_AssistanceData_r16_element",
26633         FT_NONE, BASE_NONE, NULL, 0,
26634         NULL, HFILL }},
26635     { &hf_lpp_GNSS_ReferenceTime_PDU,
26636       { "GNSS-ReferenceTime", "lpp.GNSS_ReferenceTime_element",
26637         FT_NONE, BASE_NONE, NULL, 0,
26638         NULL, HFILL }},
26639     { &hf_lpp_GNSS_ReferenceLocation_PDU,
26640       { "GNSS-ReferenceLocation", "lpp.GNSS_ReferenceLocation_element",
26641         FT_NONE, BASE_NONE, NULL, 0,
26642         NULL, HFILL }},
26643     { &hf_lpp_GNSS_IonosphericModel_PDU,
26644       { "GNSS-IonosphericModel", "lpp.GNSS_IonosphericModel_element",
26645         FT_NONE, BASE_NONE, NULL, 0,
26646         NULL, HFILL }},
26647     { &hf_lpp_GNSS_EarthOrientationParameters_PDU,
26648       { "GNSS-EarthOrientationParameters", "lpp.GNSS_EarthOrientationParameters_element",
26649         FT_NONE, BASE_NONE, NULL, 0,
26650         NULL, HFILL }},
26651     { &hf_lpp_GNSS_RTK_ReferenceStationInfo_r15_PDU,
26652       { "GNSS-RTK-ReferenceStationInfo-r15", "lpp.GNSS_RTK_ReferenceStationInfo_r15_element",
26653         FT_NONE, BASE_NONE, NULL, 0,
26654         NULL, HFILL }},
26655     { &hf_lpp_GNSS_RTK_CommonObservationInfo_r15_PDU,
26656       { "GNSS-RTK-CommonObservationInfo-r15", "lpp.GNSS_RTK_CommonObservationInfo_r15_element",
26657         FT_NONE, BASE_NONE, NULL, 0,
26658         NULL, HFILL }},
26659     { &hf_lpp_GNSS_RTK_AuxiliaryStationData_r15_PDU,
26660       { "GNSS-RTK-AuxiliaryStationData-r15", "lpp.GNSS_RTK_AuxiliaryStationData_r15_element",
26661         FT_NONE, BASE_NONE, NULL, 0,
26662         NULL, HFILL }},
26663     { &hf_lpp_GNSS_SSR_CorrectionPoints_r16_PDU,
26664       { "GNSS-SSR-CorrectionPoints-r16", "lpp.GNSS_SSR_CorrectionPoints_r16_element",
26665         FT_NONE, BASE_NONE, NULL, 0,
26666         NULL, HFILL }},
26667     { &hf_lpp_GNSS_TimeModelList_PDU,
26668       { "GNSS-TimeModelList", "lpp.GNSS_TimeModelList",
26669         FT_UINT32, BASE_DEC, NULL, 0,
26670         NULL, HFILL }},
26671     { &hf_lpp_GNSS_DifferentialCorrections_PDU,
26672       { "GNSS-DifferentialCorrections", "lpp.GNSS_DifferentialCorrections_element",
26673         FT_NONE, BASE_NONE, NULL, 0,
26674         NULL, HFILL }},
26675     { &hf_lpp_GNSS_NavigationModel_PDU,
26676       { "GNSS-NavigationModel", "lpp.GNSS_NavigationModel_element",
26677         FT_NONE, BASE_NONE, NULL, 0,
26678         NULL, HFILL }},
26679     { &hf_lpp_GNSS_RealTimeIntegrity_PDU,
26680       { "GNSS-RealTimeIntegrity", "lpp.GNSS_RealTimeIntegrity_element",
26681         FT_NONE, BASE_NONE, NULL, 0,
26682         NULL, HFILL }},
26683     { &hf_lpp_GNSS_DataBitAssistance_PDU,
26684       { "GNSS-DataBitAssistance", "lpp.GNSS_DataBitAssistance_element",
26685         FT_NONE, BASE_NONE, NULL, 0,
26686         NULL, HFILL }},
26687     { &hf_lpp_GNSS_AcquisitionAssistance_PDU,
26688       { "GNSS-AcquisitionAssistance", "lpp.GNSS_AcquisitionAssistance_element",
26689         FT_NONE, BASE_NONE, NULL, 0,
26690         NULL, HFILL }},
26691     { &hf_lpp_GNSS_Almanac_PDU,
26692       { "GNSS-Almanac", "lpp.GNSS_Almanac_element",
26693         FT_NONE, BASE_NONE, NULL, 0,
26694         NULL, HFILL }},
26695     { &hf_lpp_GNSS_UTC_Model_PDU,
26696       { "GNSS-UTC-Model", "lpp.GNSS_UTC_Model",
26697         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_UTC_Model_vals), 0,
26698         NULL, HFILL }},
26699     { &hf_lpp_GNSS_AuxiliaryInformation_PDU,
26700       { "GNSS-AuxiliaryInformation", "lpp.GNSS_AuxiliaryInformation",
26701         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_AuxiliaryInformation_vals), 0,
26702         NULL, HFILL }},
26703     { &hf_lpp_BDS_DifferentialCorrections_r12_PDU,
26704       { "BDS-DifferentialCorrections-r12", "lpp.BDS_DifferentialCorrections_r12_element",
26705         FT_NONE, BASE_NONE, NULL, 0,
26706         NULL, HFILL }},
26707     { &hf_lpp_BDS_GridModelParameter_r12_PDU,
26708       { "BDS-GridModelParameter-r12", "lpp.BDS_GridModelParameter_r12_element",
26709         FT_NONE, BASE_NONE, NULL, 0,
26710         NULL, HFILL }},
26711     { &hf_lpp_GNSS_RTK_Observations_r15_PDU,
26712       { "GNSS-RTK-Observations-r15", "lpp.GNSS_RTK_Observations_r15_element",
26713         FT_NONE, BASE_NONE, NULL, 0,
26714         NULL, HFILL }},
26715     { &hf_lpp_GLO_RTK_BiasInformation_r15_PDU,
26716       { "GLO-RTK-BiasInformation-r15", "lpp.GLO_RTK_BiasInformation_r15_element",
26717         FT_NONE, BASE_NONE, NULL, 0,
26718         NULL, HFILL }},
26719     { &hf_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15_PDU,
26720       { "GNSS-RTK-MAC-CorrectionDifferences-r15", "lpp.GNSS_RTK_MAC_CorrectionDifferences_r15_element",
26721         FT_NONE, BASE_NONE, NULL, 0,
26722         NULL, HFILL }},
26723     { &hf_lpp_GNSS_RTK_Residuals_r15_PDU,
26724       { "GNSS-RTK-Residuals-r15", "lpp.GNSS_RTK_Residuals_r15_element",
26725         FT_NONE, BASE_NONE, NULL, 0,
26726         NULL, HFILL }},
26727     { &hf_lpp_GNSS_RTK_FKP_Gradients_r15_PDU,
26728       { "GNSS-RTK-FKP-Gradients-r15", "lpp.GNSS_RTK_FKP_Gradients_r15_element",
26729         FT_NONE, BASE_NONE, NULL, 0,
26730         NULL, HFILL }},
26731     { &hf_lpp_GNSS_SSR_OrbitCorrections_r15_PDU,
26732       { "GNSS-SSR-OrbitCorrections-r15", "lpp.GNSS_SSR_OrbitCorrections_r15_element",
26733         FT_NONE, BASE_NONE, NULL, 0,
26734         NULL, HFILL }},
26735     { &hf_lpp_GNSS_SSR_ClockCorrections_r15_PDU,
26736       { "GNSS-SSR-ClockCorrections-r15", "lpp.GNSS_SSR_ClockCorrections_r15_element",
26737         FT_NONE, BASE_NONE, NULL, 0,
26738         NULL, HFILL }},
26739     { &hf_lpp_GNSS_SSR_CodeBias_r15_PDU,
26740       { "GNSS-SSR-CodeBias-r15", "lpp.GNSS_SSR_CodeBias_r15_element",
26741         FT_NONE, BASE_NONE, NULL, 0,
26742         NULL, HFILL }},
26743     { &hf_lpp_GNSS_SSR_URA_r16_PDU,
26744       { "GNSS-SSR-URA-r16", "lpp.GNSS_SSR_URA_r16_element",
26745         FT_NONE, BASE_NONE, NULL, 0,
26746         NULL, HFILL }},
26747     { &hf_lpp_GNSS_SSR_PhaseBias_r16_PDU,
26748       { "GNSS-SSR-PhaseBias-r16", "lpp.GNSS_SSR_PhaseBias_r16_element",
26749         FT_NONE, BASE_NONE, NULL, 0,
26750         NULL, HFILL }},
26751     { &hf_lpp_GNSS_SSR_STEC_Correction_r16_PDU,
26752       { "GNSS-SSR-STEC-Correction-r16", "lpp.GNSS_SSR_STEC_Correction_r16_element",
26753         FT_NONE, BASE_NONE, NULL, 0,
26754         NULL, HFILL }},
26755     { &hf_lpp_GNSS_SSR_GriddedCorrection_r16_PDU,
26756       { "GNSS-SSR-GriddedCorrection-r16", "lpp.GNSS_SSR_GriddedCorrection_r16_element",
26757         FT_NONE, BASE_NONE, NULL, 0,
26758         NULL, HFILL }},
26759     { &hf_lpp_NavIC_DifferentialCorrections_r16_PDU,
26760       { "NavIC-DifferentialCorrections-r16", "lpp.NavIC_DifferentialCorrections_r16_element",
26761         FT_NONE, BASE_NONE, NULL, 0,
26762         NULL, HFILL }},
26763     { &hf_lpp_NavIC_GridModelParameter_r16_PDU,
26764       { "NavIC-GridModelParameter-r16", "lpp.NavIC_GridModelParameter_r16_element",
26765         FT_NONE, BASE_NONE, NULL, 0,
26766         NULL, HFILL }},
26767     { &hf_lpp_TBS_AssistanceDataList_r14_PDU,
26768       { "TBS-AssistanceDataList-r14", "lpp.TBS_AssistanceDataList_r14_element",
26769         FT_NONE, BASE_NONE, NULL, 0,
26770         NULL, HFILL }},
26771     { &hf_lpp_lpp_Sensor_MeasurementInformation_r13_PDU,
26772       { "Sensor-MeasurementInformation-r13", "lpp.Sensor_MeasurementInformation_r13_element",
26773         FT_NONE, BASE_NONE, NULL, 0,
26774         NULL, HFILL }},
26775     { &hf_lpp_lpp_Sensor_MotionInformation_r15_PDU,
26776       { "Sensor-MotionInformation-r15", "lpp.Sensor_MotionInformation_r15_element",
26777         FT_NONE, BASE_NONE, NULL, 0,
26778         NULL, HFILL }},
26779     { &hf_lpp_lpp_DisplacementTimeStamp_r15_PDU,
26780       { "DisplacementTimeStamp-r15", "lpp.DisplacementTimeStamp_r15",
26781         FT_UINT32, BASE_DEC, VALS(lpp_DisplacementTimeStamp_r15_vals), 0,
26782         NULL, HFILL }},
26783     { &hf_lpp_Sensor_AssistanceDataList_r14_PDU,
26784       { "Sensor-AssistanceDataList-r14", "lpp.Sensor_AssistanceDataList_r14_element",
26785         FT_NONE, BASE_NONE, NULL, 0,
26786         NULL, HFILL }},
26787     { &hf_lpp_OTDOA_UE_Assisted_r15_PDU,
26788       { "OTDOA-UE-Assisted-r15", "lpp.OTDOA_UE_Assisted_r15_element",
26789         FT_NONE, BASE_NONE, NULL, 0,
26790         NULL, HFILL }},
26791     { &hf_lpp_NR_UEB_TRP_LocationData_r16_PDU,
26792       { "NR-UEB-TRP-LocationData-r16", "lpp.NR_UEB_TRP_LocationData_r16_element",
26793         FT_NONE, BASE_NONE, NULL, 0,
26794         NULL, HFILL }},
26795     { &hf_lpp_NR_UEB_TRP_RTD_Info_r16_PDU,
26796       { "NR-UEB-TRP-RTD-Info-r16", "lpp.NR_UEB_TRP_RTD_Info_r16_element",
26797         FT_NONE, BASE_NONE, NULL, 0,
26798         NULL, HFILL }},
26799     { &hf_lpp_transactionID,
26800       { "transactionID", "lpp.transactionID_element",
26801         FT_NONE, BASE_NONE, NULL, 0,
26802         "LPP_TransactionID", HFILL }},
26803     { &hf_lpp_endTransaction,
26804       { "endTransaction", "lpp.endTransaction",
26805         FT_BOOLEAN, BASE_NONE, NULL, 0,
26806         "BOOLEAN", HFILL }},
26807     { &hf_lpp_sequenceNumber,
26808       { "sequenceNumber", "lpp.sequenceNumber",
26809         FT_UINT32, BASE_DEC, NULL, 0,
26810         NULL, HFILL }},
26811     { &hf_lpp_acknowledgement,
26812       { "acknowledgement", "lpp.acknowledgement_element",
26813         FT_NONE, BASE_NONE, NULL, 0,
26814         NULL, HFILL }},
26815     { &hf_lpp_lpp_MessageBody,
26816       { "lpp-MessageBody", "lpp.lpp_MessageBody",
26817         FT_UINT32, BASE_DEC, VALS(lpp_LPP_MessageBody_vals), 0,
26818         NULL, HFILL }},
26819     { &hf_lpp_ackRequested,
26820       { "ackRequested", "lpp.ackRequested",
26821         FT_BOOLEAN, BASE_NONE, NULL, 0,
26822         "BOOLEAN", HFILL }},
26823     { &hf_lpp_ackIndicator,
26824       { "ackIndicator", "lpp.ackIndicator",
26825         FT_UINT32, BASE_DEC, NULL, 0,
26826         "SequenceNumber", HFILL }},
26827     { &hf_lpp_c1,
26828       { "c1", "lpp.c1",
26829         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_vals), 0,
26830         NULL, HFILL }},
26831     { &hf_lpp_requestCapabilities,
26832       { "requestCapabilities", "lpp.requestCapabilities_element",
26833         FT_NONE, BASE_NONE, NULL, 0,
26834         NULL, HFILL }},
26835     { &hf_lpp_provideCapabilities,
26836       { "provideCapabilities", "lpp.provideCapabilities_element",
26837         FT_NONE, BASE_NONE, NULL, 0,
26838         NULL, HFILL }},
26839     { &hf_lpp_requestAssistanceData,
26840       { "requestAssistanceData", "lpp.requestAssistanceData_element",
26841         FT_NONE, BASE_NONE, NULL, 0,
26842         NULL, HFILL }},
26843     { &hf_lpp_provideAssistanceData,
26844       { "provideAssistanceData", "lpp.provideAssistanceData_element",
26845         FT_NONE, BASE_NONE, NULL, 0,
26846         NULL, HFILL }},
26847     { &hf_lpp_requestLocationInformation,
26848       { "requestLocationInformation", "lpp.requestLocationInformation_element",
26849         FT_NONE, BASE_NONE, NULL, 0,
26850         NULL, HFILL }},
26851     { &hf_lpp_provideLocationInformation,
26852       { "provideLocationInformation", "lpp.provideLocationInformation_element",
26853         FT_NONE, BASE_NONE, NULL, 0,
26854         NULL, HFILL }},
26855     { &hf_lpp_abort,
26856       { "abort", "lpp.abort_element",
26857         FT_NONE, BASE_NONE, NULL, 0,
26858         NULL, HFILL }},
26859     { &hf_lpp_error,
26860       { "error", "lpp.error",
26861         FT_UINT32, BASE_DEC, VALS(lpp_Error_vals), 0,
26862         NULL, HFILL }},
26863     { &hf_lpp_spare7,
26864       { "spare7", "lpp.spare7_element",
26865         FT_NONE, BASE_NONE, NULL, 0,
26866         NULL, HFILL }},
26867     { &hf_lpp_spare6,
26868       { "spare6", "lpp.spare6_element",
26869         FT_NONE, BASE_NONE, NULL, 0,
26870         NULL, HFILL }},
26871     { &hf_lpp_spare5,
26872       { "spare5", "lpp.spare5_element",
26873         FT_NONE, BASE_NONE, NULL, 0,
26874         NULL, HFILL }},
26875     { &hf_lpp_spare4,
26876       { "spare4", "lpp.spare4_element",
26877         FT_NONE, BASE_NONE, NULL, 0,
26878         NULL, HFILL }},
26879     { &hf_lpp_spare3,
26880       { "spare3", "lpp.spare3_element",
26881         FT_NONE, BASE_NONE, NULL, 0,
26882         NULL, HFILL }},
26883     { &hf_lpp_spare2,
26884       { "spare2", "lpp.spare2_element",
26885         FT_NONE, BASE_NONE, NULL, 0,
26886         NULL, HFILL }},
26887     { &hf_lpp_spare1,
26888       { "spare1", "lpp.spare1_element",
26889         FT_NONE, BASE_NONE, NULL, 0,
26890         NULL, HFILL }},
26891     { &hf_lpp_spare0,
26892       { "spare0", "lpp.spare0_element",
26893         FT_NONE, BASE_NONE, NULL, 0,
26894         NULL, HFILL }},
26895     { &hf_lpp_messageClassExtension,
26896       { "messageClassExtension", "lpp.messageClassExtension_element",
26897         FT_NONE, BASE_NONE, NULL, 0,
26898         NULL, HFILL }},
26899     { &hf_lpp_initiator,
26900       { "initiator", "lpp.initiator",
26901         FT_UINT32, BASE_DEC, VALS(lpp_Initiator_vals), 0,
26902         NULL, HFILL }},
26903     { &hf_lpp_transactionNumber,
26904       { "transactionNumber", "lpp.transactionNumber",
26905         FT_UINT32, BASE_DEC, NULL, 0,
26906         NULL, HFILL }},
26907     { &hf_lpp_criticalExtensions,
26908       { "criticalExtensions", "lpp.criticalExtensions",
26909         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_vals), 0,
26910         NULL, HFILL }},
26911     { &hf_lpp_c1_01,
26912       { "c1", "lpp.c1",
26913         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_01_vals), 0,
26914         "T_c1_01", HFILL }},
26915     { &hf_lpp_requestCapabilities_r9,
26916       { "requestCapabilities-r9", "lpp.requestCapabilities_r9_element",
26917         FT_NONE, BASE_NONE, NULL, 0,
26918         "RequestCapabilities_r9_IEs", HFILL }},
26919     { &hf_lpp_criticalExtensionsFuture,
26920       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
26921         FT_NONE, BASE_NONE, NULL, 0,
26922         NULL, HFILL }},
26923     { &hf_lpp_commonIEsRequestCapabilities,
26924       { "commonIEsRequestCapabilities", "lpp.commonIEsRequestCapabilities_element",
26925         FT_NONE, BASE_NONE, NULL, 0,
26926         NULL, HFILL }},
26927     { &hf_lpp_a_gnss_RequestCapabilities,
26928       { "a-gnss-RequestCapabilities", "lpp.a_gnss_RequestCapabilities_element",
26929         FT_NONE, BASE_NONE, NULL, 0,
26930         NULL, HFILL }},
26931     { &hf_lpp_otdoa_RequestCapabilities,
26932       { "otdoa-RequestCapabilities", "lpp.otdoa_RequestCapabilities_element",
26933         FT_NONE, BASE_NONE, NULL, 0,
26934         NULL, HFILL }},
26935     { &hf_lpp_ecid_RequestCapabilities,
26936       { "ecid-RequestCapabilities", "lpp.ecid_RequestCapabilities_element",
26937         FT_NONE, BASE_NONE, NULL, 0,
26938         NULL, HFILL }},
26939     { &hf_lpp_epdu_RequestCapabilities,
26940       { "epdu-RequestCapabilities", "lpp.epdu_RequestCapabilities",
26941         FT_UINT32, BASE_DEC, NULL, 0,
26942         "EPDU_Sequence", HFILL }},
26943     { &hf_lpp_sensor_RequestCapabilities_r13,
26944       { "sensor-RequestCapabilities-r13", "lpp.sensor_RequestCapabilities_r13_element",
26945         FT_NONE, BASE_NONE, NULL, 0,
26946         NULL, HFILL }},
26947     { &hf_lpp_tbs_RequestCapabilities_r13,
26948       { "tbs-RequestCapabilities-r13", "lpp.tbs_RequestCapabilities_r13_element",
26949         FT_NONE, BASE_NONE, NULL, 0,
26950         NULL, HFILL }},
26951     { &hf_lpp_wlan_RequestCapabilities_r13,
26952       { "wlan-RequestCapabilities-r13", "lpp.wlan_RequestCapabilities_r13_element",
26953         FT_NONE, BASE_NONE, NULL, 0,
26954         NULL, HFILL }},
26955     { &hf_lpp_bt_RequestCapabilities_r13,
26956       { "bt-RequestCapabilities-r13", "lpp.bt_RequestCapabilities_r13_element",
26957         FT_NONE, BASE_NONE, NULL, 0,
26958         NULL, HFILL }},
26959     { &hf_lpp_nr_ECID_RequestCapabilities_r16,
26960       { "nr-ECID-RequestCapabilities-r16", "lpp.nr_ECID_RequestCapabilities_r16_element",
26961         FT_NONE, BASE_NONE, NULL, 0,
26962         NULL, HFILL }},
26963     { &hf_lpp_nr_Multi_RTT_RequestCapabilities_r16,
26964       { "nr-Multi-RTT-RequestCapabilities-r16", "lpp.nr_Multi_RTT_RequestCapabilities_r16_element",
26965         FT_NONE, BASE_NONE, NULL, 0,
26966         NULL, HFILL }},
26967     { &hf_lpp_nr_DL_AoD_RequestCapabilities_r16,
26968       { "nr-DL-AoD-RequestCapabilities-r16", "lpp.nr_DL_AoD_RequestCapabilities_r16_element",
26969         FT_NONE, BASE_NONE, NULL, 0,
26970         NULL, HFILL }},
26971     { &hf_lpp_nr_DL_TDOA_RequestCapabilities_r16,
26972       { "nr-DL-TDOA-RequestCapabilities-r16", "lpp.nr_DL_TDOA_RequestCapabilities_r16_element",
26973         FT_NONE, BASE_NONE, NULL, 0,
26974         NULL, HFILL }},
26975     { &hf_lpp_nr_UL_RequestCapabilities_r16,
26976       { "nr-UL-RequestCapabilities-r16", "lpp.nr_UL_RequestCapabilities_r16_element",
26977         FT_NONE, BASE_NONE, NULL, 0,
26978         NULL, HFILL }},
26979     { &hf_lpp_criticalExtensions_01,
26980       { "criticalExtensions", "lpp.criticalExtensions",
26981         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_01_vals), 0,
26982         "T_criticalExtensions_01", HFILL }},
26983     { &hf_lpp_c1_02,
26984       { "c1", "lpp.c1",
26985         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_02_vals), 0,
26986         "T_c1_02", HFILL }},
26987     { &hf_lpp_provideCapabilities_r9,
26988       { "provideCapabilities-r9", "lpp.provideCapabilities_r9_element",
26989         FT_NONE, BASE_NONE, NULL, 0,
26990         "ProvideCapabilities_r9_IEs", HFILL }},
26991     { &hf_lpp_criticalExtensionsFuture_01,
26992       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
26993         FT_NONE, BASE_NONE, NULL, 0,
26994         "T_criticalExtensionsFuture_01", HFILL }},
26995     { &hf_lpp_commonIEsProvideCapabilities,
26996       { "commonIEsProvideCapabilities", "lpp.commonIEsProvideCapabilities_element",
26997         FT_NONE, BASE_NONE, NULL, 0,
26998         NULL, HFILL }},
26999     { &hf_lpp_a_gnss_ProvideCapabilities,
27000       { "a-gnss-ProvideCapabilities", "lpp.a_gnss_ProvideCapabilities_element",
27001         FT_NONE, BASE_NONE, NULL, 0,
27002         NULL, HFILL }},
27003     { &hf_lpp_otdoa_ProvideCapabilities,
27004       { "otdoa-ProvideCapabilities", "lpp.otdoa_ProvideCapabilities_element",
27005         FT_NONE, BASE_NONE, NULL, 0,
27006         NULL, HFILL }},
27007     { &hf_lpp_ecid_ProvideCapabilities,
27008       { "ecid-ProvideCapabilities", "lpp.ecid_ProvideCapabilities_element",
27009         FT_NONE, BASE_NONE, NULL, 0,
27010         NULL, HFILL }},
27011     { &hf_lpp_epdu_ProvideCapabilities,
27012       { "epdu-ProvideCapabilities", "lpp.epdu_ProvideCapabilities",
27013         FT_UINT32, BASE_DEC, NULL, 0,
27014         "EPDU_Sequence", HFILL }},
27015     { &hf_lpp_sensor_ProvideCapabilities_r13,
27016       { "sensor-ProvideCapabilities-r13", "lpp.sensor_ProvideCapabilities_r13_element",
27017         FT_NONE, BASE_NONE, NULL, 0,
27018         NULL, HFILL }},
27019     { &hf_lpp_tbs_ProvideCapabilities_r13,
27020       { "tbs-ProvideCapabilities-r13", "lpp.tbs_ProvideCapabilities_r13_element",
27021         FT_NONE, BASE_NONE, NULL, 0,
27022         NULL, HFILL }},
27023     { &hf_lpp_wlan_ProvideCapabilities_r13,
27024       { "wlan-ProvideCapabilities-r13", "lpp.wlan_ProvideCapabilities_r13_element",
27025         FT_NONE, BASE_NONE, NULL, 0,
27026         NULL, HFILL }},
27027     { &hf_lpp_bt_ProvideCapabilities_r13,
27028       { "bt-ProvideCapabilities-r13", "lpp.bt_ProvideCapabilities_r13_element",
27029         FT_NONE, BASE_NONE, NULL, 0,
27030         NULL, HFILL }},
27031     { &hf_lpp_nr_ECID_ProvideCapabilities_r16,
27032       { "nr-ECID-ProvideCapabilities-r16", "lpp.nr_ECID_ProvideCapabilities_r16_element",
27033         FT_NONE, BASE_NONE, NULL, 0,
27034         NULL, HFILL }},
27035     { &hf_lpp_nr_Multi_RTT_ProvideCapabilities_r16,
27036       { "nr-Multi-RTT-ProvideCapabilities-r16", "lpp.nr_Multi_RTT_ProvideCapabilities_r16_element",
27037         FT_NONE, BASE_NONE, NULL, 0,
27038         NULL, HFILL }},
27039     { &hf_lpp_nr_DL_AoD_ProvideCapabilities_r16,
27040       { "nr-DL-AoD-ProvideCapabilities-r16", "lpp.nr_DL_AoD_ProvideCapabilities_r16_element",
27041         FT_NONE, BASE_NONE, NULL, 0,
27042         NULL, HFILL }},
27043     { &hf_lpp_nr_DL_TDOA_ProvideCapabilities_r16,
27044       { "nr-DL-TDOA-ProvideCapabilities-r16", "lpp.nr_DL_TDOA_ProvideCapabilities_r16_element",
27045         FT_NONE, BASE_NONE, NULL, 0,
27046         NULL, HFILL }},
27047     { &hf_lpp_nr_UL_ProvideCapabilities_r16,
27048       { "nr-UL-ProvideCapabilities-r16", "lpp.nr_UL_ProvideCapabilities_r16_element",
27049         FT_NONE, BASE_NONE, NULL, 0,
27050         NULL, HFILL }},
27051     { &hf_lpp_criticalExtensions_02,
27052       { "criticalExtensions", "lpp.criticalExtensions",
27053         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_02_vals), 0,
27054         "T_criticalExtensions_02", HFILL }},
27055     { &hf_lpp_c1_03,
27056       { "c1", "lpp.c1",
27057         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_03_vals), 0,
27058         "T_c1_03", HFILL }},
27059     { &hf_lpp_requestAssistanceData_r9,
27060       { "requestAssistanceData-r9", "lpp.requestAssistanceData_r9_element",
27061         FT_NONE, BASE_NONE, NULL, 0,
27062         "RequestAssistanceData_r9_IEs", HFILL }},
27063     { &hf_lpp_criticalExtensionsFuture_02,
27064       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
27065         FT_NONE, BASE_NONE, NULL, 0,
27066         "T_criticalExtensionsFuture_02", HFILL }},
27067     { &hf_lpp_commonIEsRequestAssistanceData,
27068       { "commonIEsRequestAssistanceData", "lpp.commonIEsRequestAssistanceData_element",
27069         FT_NONE, BASE_NONE, NULL, 0,
27070         NULL, HFILL }},
27071     { &hf_lpp_a_gnss_RequestAssistanceData,
27072       { "a-gnss-RequestAssistanceData", "lpp.a_gnss_RequestAssistanceData_element",
27073         FT_NONE, BASE_NONE, NULL, 0,
27074         NULL, HFILL }},
27075     { &hf_lpp_otdoa_RequestAssistanceData,
27076       { "otdoa-RequestAssistanceData", "lpp.otdoa_RequestAssistanceData_element",
27077         FT_NONE, BASE_NONE, NULL, 0,
27078         NULL, HFILL }},
27079     { &hf_lpp_epdu_RequestAssistanceData,
27080       { "epdu-RequestAssistanceData", "lpp.epdu_RequestAssistanceData",
27081         FT_UINT32, BASE_DEC, NULL, 0,
27082         "EPDU_Sequence", HFILL }},
27083     { &hf_lpp_sensor_RequestAssistanceData_r14,
27084       { "sensor-RequestAssistanceData-r14", "lpp.sensor_RequestAssistanceData_r14_element",
27085         FT_NONE, BASE_NONE, NULL, 0,
27086         NULL, HFILL }},
27087     { &hf_lpp_tbs_RequestAssistanceData_r14,
27088       { "tbs-RequestAssistanceData-r14", "lpp.tbs_RequestAssistanceData_r14_element",
27089         FT_NONE, BASE_NONE, NULL, 0,
27090         NULL, HFILL }},
27091     { &hf_lpp_wlan_RequestAssistanceData_r14,
27092       { "wlan-RequestAssistanceData-r14", "lpp.wlan_RequestAssistanceData_r14_element",
27093         FT_NONE, BASE_NONE, NULL, 0,
27094         NULL, HFILL }},
27095     { &hf_lpp_nr_Multi_RTT_RequestAssistanceData_r16,
27096       { "nr-Multi-RTT-RequestAssistanceData-r16", "lpp.nr_Multi_RTT_RequestAssistanceData_r16_element",
27097         FT_NONE, BASE_NONE, NULL, 0,
27098         NULL, HFILL }},
27099     { &hf_lpp_nr_DL_AoD_RequestAssistanceData_r16,
27100       { "nr-DL-AoD-RequestAssistanceData-r16", "lpp.nr_DL_AoD_RequestAssistanceData_r16_element",
27101         FT_NONE, BASE_NONE, NULL, 0,
27102         NULL, HFILL }},
27103     { &hf_lpp_nr_DL_TDOA_RequestAssistanceData_r16,
27104       { "nr-DL-TDOA-RequestAssistanceData-r16", "lpp.nr_DL_TDOA_RequestAssistanceData_r16_element",
27105         FT_NONE, BASE_NONE, NULL, 0,
27106         NULL, HFILL }},
27107     { &hf_lpp_criticalExtensions_03,
27108       { "criticalExtensions", "lpp.criticalExtensions",
27109         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_03_vals), 0,
27110         "T_criticalExtensions_03", HFILL }},
27111     { &hf_lpp_c1_04,
27112       { "c1", "lpp.c1",
27113         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_04_vals), 0,
27114         "T_c1_04", HFILL }},
27115     { &hf_lpp_provideAssistanceData_r9,
27116       { "provideAssistanceData-r9", "lpp.provideAssistanceData_r9_element",
27117         FT_NONE, BASE_NONE, NULL, 0,
27118         "ProvideAssistanceData_r9_IEs", HFILL }},
27119     { &hf_lpp_criticalExtensionsFuture_03,
27120       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
27121         FT_NONE, BASE_NONE, NULL, 0,
27122         "T_criticalExtensionsFuture_03", HFILL }},
27123     { &hf_lpp_commonIEsProvideAssistanceData,
27124       { "commonIEsProvideAssistanceData", "lpp.commonIEsProvideAssistanceData_element",
27125         FT_NONE, BASE_NONE, NULL, 0,
27126         NULL, HFILL }},
27127     { &hf_lpp_a_gnss_ProvideAssistanceData,
27128       { "a-gnss-ProvideAssistanceData", "lpp.a_gnss_ProvideAssistanceData_element",
27129         FT_NONE, BASE_NONE, NULL, 0,
27130         NULL, HFILL }},
27131     { &hf_lpp_otdoa_ProvideAssistanceData,
27132       { "otdoa-ProvideAssistanceData", "lpp.otdoa_ProvideAssistanceData_element",
27133         FT_NONE, BASE_NONE, NULL, 0,
27134         NULL, HFILL }},
27135     { &hf_lpp_epdu_Provide_Assistance_Data,
27136       { "epdu-Provide-Assistance-Data", "lpp.epdu_Provide_Assistance_Data",
27137         FT_UINT32, BASE_DEC, NULL, 0,
27138         "EPDU_Sequence", HFILL }},
27139     { &hf_lpp_sensor_ProvideAssistanceData_r14,
27140       { "sensor-ProvideAssistanceData-r14", "lpp.sensor_ProvideAssistanceData_r14_element",
27141         FT_NONE, BASE_NONE, NULL, 0,
27142         NULL, HFILL }},
27143     { &hf_lpp_tbs_ProvideAssistanceData_r14,
27144       { "tbs-ProvideAssistanceData-r14", "lpp.tbs_ProvideAssistanceData_r14_element",
27145         FT_NONE, BASE_NONE, NULL, 0,
27146         NULL, HFILL }},
27147     { &hf_lpp_wlan_ProvideAssistanceData_r14,
27148       { "wlan-ProvideAssistanceData-r14", "lpp.wlan_ProvideAssistanceData_r14_element",
27149         FT_NONE, BASE_NONE, NULL, 0,
27150         NULL, HFILL }},
27151     { &hf_lpp_nr_Multi_RTT_ProvideAssistanceData_r16,
27152       { "nr-Multi-RTT-ProvideAssistanceData-r16", "lpp.nr_Multi_RTT_ProvideAssistanceData_r16_element",
27153         FT_NONE, BASE_NONE, NULL, 0,
27154         NULL, HFILL }},
27155     { &hf_lpp_nr_DL_AoD_ProvideAssistanceData_r16,
27156       { "nr-DL-AoD-ProvideAssistanceData-r16", "lpp.nr_DL_AoD_ProvideAssistanceData_r16_element",
27157         FT_NONE, BASE_NONE, NULL, 0,
27158         NULL, HFILL }},
27159     { &hf_lpp_nr_DL_TDOA_ProvideAssistanceData_r16,
27160       { "nr-DL-TDOA-ProvideAssistanceData-r16", "lpp.nr_DL_TDOA_ProvideAssistanceData_r16_element",
27161         FT_NONE, BASE_NONE, NULL, 0,
27162         NULL, HFILL }},
27163     { &hf_lpp_criticalExtensions_04,
27164       { "criticalExtensions", "lpp.criticalExtensions",
27165         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_04_vals), 0,
27166         "T_criticalExtensions_04", HFILL }},
27167     { &hf_lpp_c1_05,
27168       { "c1", "lpp.c1",
27169         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_05_vals), 0,
27170         "T_c1_05", HFILL }},
27171     { &hf_lpp_requestLocationInformation_r9,
27172       { "requestLocationInformation-r9", "lpp.requestLocationInformation_r9_element",
27173         FT_NONE, BASE_NONE, NULL, 0,
27174         "RequestLocationInformation_r9_IEs", HFILL }},
27175     { &hf_lpp_criticalExtensionsFuture_04,
27176       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
27177         FT_NONE, BASE_NONE, NULL, 0,
27178         "T_criticalExtensionsFuture_04", HFILL }},
27179     { &hf_lpp_commonIEsRequestLocationInformation,
27180       { "commonIEsRequestLocationInformation", "lpp.commonIEsRequestLocationInformation_element",
27181         FT_NONE, BASE_NONE, NULL, 0,
27182         NULL, HFILL }},
27183     { &hf_lpp_a_gnss_RequestLocationInformation,
27184       { "a-gnss-RequestLocationInformation", "lpp.a_gnss_RequestLocationInformation_element",
27185         FT_NONE, BASE_NONE, NULL, 0,
27186         NULL, HFILL }},
27187     { &hf_lpp_otdoa_RequestLocationInformation,
27188       { "otdoa-RequestLocationInformation", "lpp.otdoa_RequestLocationInformation_element",
27189         FT_NONE, BASE_NONE, NULL, 0,
27190         NULL, HFILL }},
27191     { &hf_lpp_ecid_RequestLocationInformation,
27192       { "ecid-RequestLocationInformation", "lpp.ecid_RequestLocationInformation_element",
27193         FT_NONE, BASE_NONE, NULL, 0,
27194         NULL, HFILL }},
27195     { &hf_lpp_epdu_RequestLocationInformation,
27196       { "epdu-RequestLocationInformation", "lpp.epdu_RequestLocationInformation",
27197         FT_UINT32, BASE_DEC, NULL, 0,
27198         "EPDU_Sequence", HFILL }},
27199     { &hf_lpp_sensor_RequestLocationInformation_r13,
27200       { "sensor-RequestLocationInformation-r13", "lpp.sensor_RequestLocationInformation_r13_element",
27201         FT_NONE, BASE_NONE, NULL, 0,
27202         NULL, HFILL }},
27203     { &hf_lpp_tbs_RequestLocationInformation_r13,
27204       { "tbs-RequestLocationInformation-r13", "lpp.tbs_RequestLocationInformation_r13_element",
27205         FT_NONE, BASE_NONE, NULL, 0,
27206         NULL, HFILL }},
27207     { &hf_lpp_wlan_RequestLocationInformation_r13,
27208       { "wlan-RequestLocationInformation-r13", "lpp.wlan_RequestLocationInformation_r13_element",
27209         FT_NONE, BASE_NONE, NULL, 0,
27210         NULL, HFILL }},
27211     { &hf_lpp_bt_RequestLocationInformation_r13,
27212       { "bt-RequestLocationInformation-r13", "lpp.bt_RequestLocationInformation_r13_element",
27213         FT_NONE, BASE_NONE, NULL, 0,
27214         NULL, HFILL }},
27215     { &hf_lpp_nr_ECID_RequestLocationInformation_r16,
27216       { "nr-ECID-RequestLocationInformation-r16", "lpp.nr_ECID_RequestLocationInformation_r16_element",
27217         FT_NONE, BASE_NONE, NULL, 0,
27218         NULL, HFILL }},
27219     { &hf_lpp_nr_Multi_RTT_RequestLocationInformation_r16,
27220       { "nr-Multi-RTT-RequestLocationInformation-r16", "lpp.nr_Multi_RTT_RequestLocationInformation_r16_element",
27221         FT_NONE, BASE_NONE, NULL, 0,
27222         NULL, HFILL }},
27223     { &hf_lpp_nr_DL_AoD_RequestLocationInformation_r16,
27224       { "nr-DL-AoD-RequestLocationInformation-r16", "lpp.nr_DL_AoD_RequestLocationInformation_r16_element",
27225         FT_NONE, BASE_NONE, NULL, 0,
27226         NULL, HFILL }},
27227     { &hf_lpp_nr_DL_TDOA_RequestLocationInformation_r16,
27228       { "nr-DL-TDOA-RequestLocationInformation-r16", "lpp.nr_DL_TDOA_RequestLocationInformation_r16_element",
27229         FT_NONE, BASE_NONE, NULL, 0,
27230         NULL, HFILL }},
27231     { &hf_lpp_criticalExtensions_05,
27232       { "criticalExtensions", "lpp.criticalExtensions",
27233         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_05_vals), 0,
27234         "T_criticalExtensions_05", HFILL }},
27235     { &hf_lpp_c1_06,
27236       { "c1", "lpp.c1",
27237         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_06_vals), 0,
27238         "T_c1_06", HFILL }},
27239     { &hf_lpp_provideLocationInformation_r9,
27240       { "provideLocationInformation-r9", "lpp.provideLocationInformation_r9_element",
27241         FT_NONE, BASE_NONE, NULL, 0,
27242         "ProvideLocationInformation_r9_IEs", HFILL }},
27243     { &hf_lpp_criticalExtensionsFuture_05,
27244       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
27245         FT_NONE, BASE_NONE, NULL, 0,
27246         "T_criticalExtensionsFuture_05", HFILL }},
27247     { &hf_lpp_commonIEsProvideLocationInformation,
27248       { "commonIEsProvideLocationInformation", "lpp.commonIEsProvideLocationInformation_element",
27249         FT_NONE, BASE_NONE, NULL, 0,
27250         NULL, HFILL }},
27251     { &hf_lpp_a_gnss_ProvideLocationInformation,
27252       { "a-gnss-ProvideLocationInformation", "lpp.a_gnss_ProvideLocationInformation_element",
27253         FT_NONE, BASE_NONE, NULL, 0,
27254         NULL, HFILL }},
27255     { &hf_lpp_otdoa_ProvideLocationInformation,
27256       { "otdoa-ProvideLocationInformation", "lpp.otdoa_ProvideLocationInformation_element",
27257         FT_NONE, BASE_NONE, NULL, 0,
27258         NULL, HFILL }},
27259     { &hf_lpp_ecid_ProvideLocationInformation,
27260       { "ecid-ProvideLocationInformation", "lpp.ecid_ProvideLocationInformation_element",
27261         FT_NONE, BASE_NONE, NULL, 0,
27262         NULL, HFILL }},
27263     { &hf_lpp_epdu_ProvideLocationInformation,
27264       { "epdu-ProvideLocationInformation", "lpp.epdu_ProvideLocationInformation",
27265         FT_UINT32, BASE_DEC, NULL, 0,
27266         "EPDU_Sequence", HFILL }},
27267     { &hf_lpp_sensor_ProvideLocationInformation_r13,
27268       { "sensor-ProvideLocationInformation-r13", "lpp.sensor_ProvideLocationInformation_r13_element",
27269         FT_NONE, BASE_NONE, NULL, 0,
27270         NULL, HFILL }},
27271     { &hf_lpp_tbs_ProvideLocationInformation_r13,
27272       { "tbs-ProvideLocationInformation-r13", "lpp.tbs_ProvideLocationInformation_r13_element",
27273         FT_NONE, BASE_NONE, NULL, 0,
27274         NULL, HFILL }},
27275     { &hf_lpp_wlan_ProvideLocationInformation_r13,
27276       { "wlan-ProvideLocationInformation-r13", "lpp.wlan_ProvideLocationInformation_r13_element",
27277         FT_NONE, BASE_NONE, NULL, 0,
27278         NULL, HFILL }},
27279     { &hf_lpp_bt_ProvideLocationInformation_r13,
27280       { "bt-ProvideLocationInformation-r13", "lpp.bt_ProvideLocationInformation_r13_element",
27281         FT_NONE, BASE_NONE, NULL, 0,
27282         NULL, HFILL }},
27283     { &hf_lpp_nr_ECID_ProvideLocationInformation_r16,
27284       { "nr-ECID-ProvideLocationInformation-r16", "lpp.nr_ECID_ProvideLocationInformation_r16_element",
27285         FT_NONE, BASE_NONE, NULL, 0,
27286         NULL, HFILL }},
27287     { &hf_lpp_nr_Multi_RTT_ProvideLocationInformation_r16,
27288       { "nr-Multi-RTT-ProvideLocationInformation-r16", "lpp.nr_Multi_RTT_ProvideLocationInformation_r16_element",
27289         FT_NONE, BASE_NONE, NULL, 0,
27290         NULL, HFILL }},
27291     { &hf_lpp_nr_DL_AoD_ProvideLocationInformation_r16,
27292       { "nr-DL-AoD-ProvideLocationInformation-r16", "lpp.nr_DL_AoD_ProvideLocationInformation_r16_element",
27293         FT_NONE, BASE_NONE, NULL, 0,
27294         NULL, HFILL }},
27295     { &hf_lpp_nr_DL_TDOA_ProvideLocationInformation_r16,
27296       { "nr-DL-TDOA-ProvideLocationInformation-r16", "lpp.nr_DL_TDOA_ProvideLocationInformation_r16_element",
27297         FT_NONE, BASE_NONE, NULL, 0,
27298         NULL, HFILL }},
27299     { &hf_lpp_criticalExtensions_06,
27300       { "criticalExtensions", "lpp.criticalExtensions",
27301         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_06_vals), 0,
27302         "T_criticalExtensions_06", HFILL }},
27303     { &hf_lpp_c1_07,
27304       { "c1", "lpp.c1",
27305         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_07_vals), 0,
27306         "T_c1_07", HFILL }},
27307     { &hf_lpp_abort_r9,
27308       { "abort-r9", "lpp.abort_r9_element",
27309         FT_NONE, BASE_NONE, NULL, 0,
27310         "Abort_r9_IEs", HFILL }},
27311     { &hf_lpp_criticalExtensionsFuture_06,
27312       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
27313         FT_NONE, BASE_NONE, NULL, 0,
27314         "T_criticalExtensionsFuture_06", HFILL }},
27315     { &hf_lpp_commonIEsAbort,
27316       { "commonIEsAbort", "lpp.commonIEsAbort_element",
27317         FT_NONE, BASE_NONE, NULL, 0,
27318         NULL, HFILL }},
27319     { &hf_lpp_epdu_Abort,
27320       { "epdu-Abort", "lpp.epdu_Abort",
27321         FT_UINT32, BASE_DEC, NULL, 0,
27322         "EPDU_Sequence", HFILL }},
27323     { &hf_lpp_error_r9,
27324       { "error-r9", "lpp.error_r9_element",
27325         FT_NONE, BASE_NONE, NULL, 0,
27326         "Error_r9_IEs", HFILL }},
27327     { &hf_lpp_criticalExtensionsFuture_07,
27328       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture_element",
27329         FT_NONE, BASE_NONE, NULL, 0,
27330         "T_criticalExtensionsFuture_07", HFILL }},
27331     { &hf_lpp_commonIEsError,
27332       { "commonIEsError", "lpp.commonIEsError_element",
27333         FT_NONE, BASE_NONE, NULL, 0,
27334         NULL, HFILL }},
27335     { &hf_lpp_epdu_Error,
27336       { "epdu-Error", "lpp.epdu_Error",
27337         FT_UINT32, BASE_DEC, NULL, 0,
27338         "EPDU_Sequence", HFILL }},
27339     { &hf_lpp_accessTypes,
27340       { "accessTypes", "lpp.accessTypes",
27341         FT_BYTES, BASE_NONE, NULL, 0,
27342         NULL, HFILL }},
27343     { &hf_lpp_carrierFreq_r14,
27344       { "carrierFreq-r14", "lpp.carrierFreq_r14",
27345         FT_UINT32, BASE_DEC, NULL, 0,
27346         "ARFCN_ValueEUTRA_r14", HFILL }},
27347     { &hf_lpp_carrierFreqOffset_r14,
27348       { "carrierFreqOffset-r14", "lpp.carrierFreqOffset_r14",
27349         FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
27350         "CarrierFreqOffsetNB_r14", HFILL }},
27351     { &hf_lpp_plmn_Identity,
27352       { "plmn-Identity", "lpp.plmn_Identity_element",
27353         FT_NONE, BASE_NONE, NULL, 0,
27354         NULL, HFILL }},
27355     { &hf_lpp_mcc,
27356       { "mcc", "lpp.mcc",
27357         FT_UINT32, BASE_DEC, NULL, 0,
27358         NULL, HFILL }},
27359     { &hf_lpp_mcc_item,
27360       { "mcc item", "lpp.mcc_item",
27361         FT_UINT32, BASE_DEC, NULL, 0,
27362         "INTEGER_0_9", HFILL }},
27363     { &hf_lpp_mnc,
27364       { "mnc", "lpp.mnc",
27365         FT_UINT32, BASE_DEC, NULL, 0,
27366         NULL, HFILL }},
27367     { &hf_lpp_mnc_item,
27368       { "mnc item", "lpp.mnc_item",
27369         FT_UINT32, BASE_DEC, NULL, 0,
27370         "INTEGER_0_9", HFILL }},
27371     { &hf_lpp_cellIdentity,
27372       { "cellIdentity", "lpp.cellIdentity",
27373         FT_UINT32, BASE_DEC, VALS(lpp_T_cellIdentity_vals), 0,
27374         NULL, HFILL }},
27375     { &hf_lpp_eutra,
27376       { "eutra", "lpp.eutra",
27377         FT_BYTES, BASE_NONE, NULL, 0,
27378         "BIT_STRING_SIZE_28", HFILL }},
27379     { &hf_lpp_utra,
27380       { "utra", "lpp.utra",
27381         FT_BYTES, BASE_NONE, NULL, 0,
27382         "BIT_STRING_SIZE_32", HFILL }},
27383     { &hf_lpp_plmn_Identity_01,
27384       { "plmn-Identity", "lpp.plmn_Identity_element",
27385         FT_NONE, BASE_NONE, NULL, 0,
27386         "T_plmn_Identity_01", HFILL }},
27387     { &hf_lpp_mcc_01,
27388       { "mcc", "lpp.mcc",
27389         FT_UINT32, BASE_DEC, NULL, 0,
27390         "T_mcc_01", HFILL }},
27391     { &hf_lpp_mnc_01,
27392       { "mnc", "lpp.mnc",
27393         FT_UINT32, BASE_DEC, NULL, 0,
27394         "T_mnc_01", HFILL }},
27395     { &hf_lpp_locationAreaCode,
27396       { "locationAreaCode", "lpp.locationAreaCode",
27397         FT_BYTES, BASE_NONE, NULL, 0,
27398         "BIT_STRING_SIZE_16", HFILL }},
27399     { &hf_lpp_cellGlobalIdGERAN_cellIdentity,
27400       { "cellIdentity", "lpp.cellGlobalIdGERAN.cellIdentity",
27401         FT_BYTES, BASE_NONE, NULL, 0,
27402         "BIT_STRING_SIZE_16", HFILL }},
27403     { &hf_lpp_mcc_02,
27404       { "mcc", "lpp.mcc",
27405         FT_UINT32, BASE_DEC, NULL, 0,
27406         "T_mcc_02", HFILL }},
27407     { &hf_lpp_mnc_02,
27408       { "mnc", "lpp.mnc",
27409         FT_UINT32, BASE_DEC, NULL, 0,
27410         "T_mnc_02", HFILL }},
27411     { &hf_lpp_cellidentity,
27412       { "cellidentity", "lpp.cellidentity",
27413         FT_BYTES, BASE_NONE, NULL, 0,
27414         "BIT_STRING_SIZE_28", HFILL }},
27415     { &hf_lpp_latitudeSign,
27416       { "latitudeSign", "lpp.latitudeSign",
27417         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_vals), 0,
27418         NULL, HFILL }},
27419     { &hf_lpp_degreesLatitude,
27420       { "degreesLatitude", "lpp.degreesLatitude",
27421         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_degreesLatitude_fmt), 0,
27422         "INTEGER_0_8388607", HFILL }},
27423     { &hf_lpp_degreesLongitude,
27424       { "degreesLongitude", "lpp.degreesLongitude",
27425         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_degreesLongitude_fmt), 0,
27426         "INTEGER_M8388608_8388607", HFILL }},
27427     { &hf_lpp_latitudeSign_01,
27428       { "latitudeSign", "lpp.latitudeSign",
27429         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_01_vals), 0,
27430         "T_latitudeSign_01", HFILL }},
27431     { &hf_lpp_uncertainty,
27432       { "uncertainty", "lpp.uncertainty",
27433         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_uncertainty_fmt), 0,
27434         "INTEGER_0_127", HFILL }},
27435     { &hf_lpp_latitudeSign_02,
27436       { "latitudeSign", "lpp.latitudeSign",
27437         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_02_vals), 0,
27438         "T_latitudeSign_02", HFILL }},
27439     { &hf_lpp_uncertaintySemiMajor,
27440       { "uncertaintySemiMajor", "lpp.uncertaintySemiMajor",
27441         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_uncertainty_fmt), 0,
27442         "INTEGER_0_127", HFILL }},
27443     { &hf_lpp_uncertaintySemiMinor,
27444       { "uncertaintySemiMinor", "lpp.uncertaintySemiMinor",
27445         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_uncertainty_fmt), 0,
27446         "INTEGER_0_127", HFILL }},
27447     { &hf_lpp_orientationMajorAxis,
27448       { "orientationMajorAxis", "lpp.orientationMajorAxis",
27449         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_angle_fmt), 0,
27450         "INTEGER_0_179", HFILL }},
27451     { &hf_lpp_confidence,
27452       { "confidence", "lpp.confidence",
27453         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
27454         "INTEGER_0_100", HFILL }},
27455     { &hf_lpp_latitudeSign_03,
27456       { "latitudeSign", "lpp.latitudeSign",
27457         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_03_vals), 0,
27458         "T_latitudeSign_03", HFILL }},
27459     { &hf_lpp_altitudeDirection,
27460       { "altitudeDirection", "lpp.altitudeDirection",
27461         FT_UINT32, BASE_DEC, VALS(lpp_T_altitudeDirection_vals), 0,
27462         NULL, HFILL }},
27463     { &hf_lpp_altitude,
27464       { "altitude", "lpp.altitude",
27465         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_altitude_fmt), 0,
27466         "INTEGER_0_32767", HFILL }},
27467     { &hf_lpp_latitudeSign_04,
27468       { "latitudeSign", "lpp.latitudeSign",
27469         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_04_vals), 0,
27470         "T_latitudeSign_04", HFILL }},
27471     { &hf_lpp_altitudeDirection_01,
27472       { "altitudeDirection", "lpp.altitudeDirection",
27473         FT_UINT32, BASE_DEC, VALS(lpp_T_altitudeDirection_01_vals), 0,
27474         "T_altitudeDirection_01", HFILL }},
27475     { &hf_lpp_uncertaintyAltitude,
27476       { "uncertaintyAltitude", "lpp.uncertaintyAltitude",
27477         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_uncertaintyAltitude_fmt), 0,
27478         "INTEGER_0_127", HFILL }},
27479     { &hf_lpp_latitudeSign_05,
27480       { "latitudeSign", "lpp.latitudeSign",
27481         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_05_vals), 0,
27482         "T_latitudeSign_05", HFILL }},
27483     { &hf_lpp_innerRadius,
27484       { "innerRadius", "lpp.innerRadius",
27485         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_radius_fmt), 0,
27486         "INTEGER_0_65535", HFILL }},
27487     { &hf_lpp_uncertaintyRadius,
27488       { "uncertaintyRadius", "lpp.uncertaintyRadius",
27489         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_uncertainty_fmt), 0,
27490         "INTEGER_0_127", HFILL }},
27491     { &hf_lpp_offsetAngle,
27492       { "offsetAngle", "lpp.offsetAngle",
27493         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_angle_fmt), 0,
27494         "INTEGER_0_179", HFILL }},
27495     { &hf_lpp_includedAngle,
27496       { "includedAngle", "lpp.includedAngle",
27497         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_angle_fmt), 0,
27498         "INTEGER_0_179", HFILL }},
27499     { &hf_lpp_EPDU_Sequence_item,
27500       { "EPDU", "lpp.EPDU_element",
27501         FT_NONE, BASE_NONE, NULL, 0,
27502         NULL, HFILL }},
27503     { &hf_lpp_ePDU_Identifier,
27504       { "ePDU-Identifier", "lpp.ePDU_Identifier_element",
27505         FT_NONE, BASE_NONE, NULL, 0,
27506         NULL, HFILL }},
27507     { &hf_lpp_ePDU_Body,
27508       { "ePDU-Body", "lpp.ePDU_Body",
27509         FT_BYTES, BASE_NONE, NULL, 0,
27510         NULL, HFILL }},
27511     { &hf_lpp_ePDU_ID,
27512       { "ePDU-ID", "lpp.ePDU_ID",
27513         FT_UINT32, BASE_DEC, VALS(lpp_ePDU_ID_vals), 0,
27514         NULL, HFILL }},
27515     { &hf_lpp_ePDU_Name,
27516       { "ePDU-Name", "lpp.ePDU_Name",
27517         FT_STRING, BASE_NONE, NULL, 0,
27518         NULL, HFILL }},
27519     { &hf_lpp_degreesLatitude_r15,
27520       { "degreesLatitude-r15", "lpp.degreesLatitude_r15",
27521         FT_INT32, BASE_DEC, NULL, 0,
27522         "INTEGER_M2147483648_2147483647", HFILL }},
27523     { &hf_lpp_degreesLongitude_r15,
27524       { "degreesLongitude-r15", "lpp.degreesLongitude_r15",
27525         FT_INT32, BASE_DEC, NULL, 0,
27526         "INTEGER_M2147483648_2147483647", HFILL }},
27527     { &hf_lpp_uncertaintySemiMajor_r15,
27528       { "uncertaintySemiMajor-r15", "lpp.uncertaintySemiMajor_r15",
27529         FT_UINT32, BASE_DEC, NULL, 0,
27530         "INTEGER_0_255", HFILL }},
27531     { &hf_lpp_uncertaintySemiMinor_r15,
27532       { "uncertaintySemiMinor-r15", "lpp.uncertaintySemiMinor_r15",
27533         FT_UINT32, BASE_DEC, NULL, 0,
27534         "INTEGER_0_255", HFILL }},
27535     { &hf_lpp_orientationMajorAxis_r15,
27536       { "orientationMajorAxis-r15", "lpp.orientationMajorAxis_r15",
27537         FT_UINT32, BASE_DEC, NULL, 0,
27538         "INTEGER_0_179", HFILL }},
27539     { &hf_lpp_confidence_r15,
27540       { "confidence-r15", "lpp.confidence_r15",
27541         FT_UINT32, BASE_DEC, NULL, 0,
27542         "INTEGER_0_100", HFILL }},
27543     { &hf_lpp_altitude_r15,
27544       { "altitude-r15", "lpp.altitude_r15",
27545         FT_INT32, BASE_DEC, NULL, 0,
27546         "INTEGER_M64000_1280000", HFILL }},
27547     { &hf_lpp_horizontalConfidence_r15,
27548       { "horizontalConfidence-r15", "lpp.horizontalConfidence_r15",
27549         FT_UINT32, BASE_DEC, NULL, 0,
27550         "INTEGER_0_100", HFILL }},
27551     { &hf_lpp_uncertaintyAltitude_r15,
27552       { "uncertaintyAltitude-r15", "lpp.uncertaintyAltitude_r15",
27553         FT_UINT32, BASE_DEC, NULL, 0,
27554         "INTEGER_0_255", HFILL }},
27555     { &hf_lpp_verticalConfidence_r15,
27556       { "verticalConfidence-r15", "lpp.verticalConfidence_r15",
27557         FT_UINT32, BASE_DEC, NULL, 0,
27558         "INTEGER_0_100", HFILL }},
27559     { &hf_lpp_bearing,
27560       { "bearing", "lpp.bearing",
27561         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_degree_degrees, 0,
27562         "INTEGER_0_359", HFILL }},
27563     { &hf_lpp_horizontalSpeed,
27564       { "horizontalSpeed", "lpp.horizontalSpeed",
27565         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_kmh, 0,
27566         "INTEGER_0_2047", HFILL }},
27567     { &hf_lpp_verticalDirection,
27568       { "verticalDirection", "lpp.verticalDirection",
27569         FT_UINT32, BASE_DEC, VALS(lpp_T_verticalDirection_vals), 0,
27570         NULL, HFILL }},
27571     { &hf_lpp_verticalSpeed,
27572       { "verticalSpeed", "lpp.verticalSpeed",
27573         FT_UINT32, BASE_DEC, NULL, 0,
27574         "INTEGER_0_255", HFILL }},
27575     { &hf_lpp_uncertaintySpeed,
27576       { "uncertaintySpeed", "lpp.uncertaintySpeed",
27577         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_kmh, 0,
27578         "INTEGER_0_255", HFILL }},
27579     { &hf_lpp_verticalDirection_01,
27580       { "verticalDirection", "lpp.verticalDirection",
27581         FT_UINT32, BASE_DEC, VALS(lpp_T_verticalDirection_01_vals), 0,
27582         "T_verticalDirection_01", HFILL }},
27583     { &hf_lpp_horizontalUncertaintySpeed,
27584       { "horizontalUncertaintySpeed", "lpp.horizontalUncertaintySpeed",
27585         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_kmh, 0,
27586         "INTEGER_0_255", HFILL }},
27587     { &hf_lpp_verticalUncertaintySpeed,
27588       { "verticalUncertaintySpeed", "lpp.verticalUncertaintySpeed",
27589         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_kmh, 0,
27590         "INTEGER_0_255", HFILL }},
27591     { &hf_lpp_ellipsoidPoint,
27592       { "ellipsoidPoint", "lpp.ellipsoidPoint",
27593         FT_BOOLEAN, BASE_NONE, NULL, 0,
27594         "BOOLEAN", HFILL }},
27595     { &hf_lpp_ellipsoidPointWithUncertaintyCircle,
27596       { "ellipsoidPointWithUncertaintyCircle", "lpp.ellipsoidPointWithUncertaintyCircle",
27597         FT_BOOLEAN, BASE_NONE, NULL, 0,
27598         "BOOLEAN", HFILL }},
27599     { &hf_lpp_ellipsoidPointWithUncertaintyEllipse,
27600       { "ellipsoidPointWithUncertaintyEllipse", "lpp.ellipsoidPointWithUncertaintyEllipse",
27601         FT_BOOLEAN, BASE_NONE, NULL, 0,
27602         "BOOLEAN", HFILL }},
27603     { &hf_lpp_polygon,
27604       { "polygon", "lpp.polygon",
27605         FT_BOOLEAN, BASE_NONE, NULL, 0,
27606         "BOOLEAN", HFILL }},
27607     { &hf_lpp_ellipsoidPointWithAltitude,
27608       { "ellipsoidPointWithAltitude", "lpp.ellipsoidPointWithAltitude",
27609         FT_BOOLEAN, BASE_NONE, NULL, 0,
27610         "BOOLEAN", HFILL }},
27611     { &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid,
27612       { "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid", "lpp.ellipsoidPointWithAltitudeAndUncertaintyEllipsoid",
27613         FT_BOOLEAN, BASE_NONE, NULL, 0,
27614         "BOOLEAN", HFILL }},
27615     { &hf_lpp_ellipsoidArc,
27616       { "ellipsoidArc", "lpp.ellipsoidArc",
27617         FT_BOOLEAN, BASE_NONE, NULL, 0,
27618         "BOOLEAN", HFILL }},
27619     { &hf_lpp_highAccuracyEllipsoidPointWithUncertaintyEllipse_r15,
27620       { "highAccuracyEllipsoidPointWithUncertaintyEllipse-r15", "lpp.highAccuracyEllipsoidPointWithUncertaintyEllipse_r15",
27621         FT_BOOLEAN, BASE_NONE, NULL, 0,
27622         "BOOLEAN", HFILL }},
27623     { &hf_lpp_highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15,
27624       { "highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15", "lpp.highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15",
27625         FT_BOOLEAN, BASE_NONE, NULL, 0,
27626         "BOOLEAN", HFILL }},
27627     { &hf_lpp_mcc_r15,
27628       { "mcc-r15", "lpp.mcc_r15",
27629         FT_UINT32, BASE_DEC, NULL, 0,
27630         NULL, HFILL }},
27631     { &hf_lpp_mcc_r15_item,
27632       { "mcc-r15 item", "lpp.mcc_r15_item",
27633         FT_UINT32, BASE_DEC, NULL, 0,
27634         "INTEGER_0_9", HFILL }},
27635     { &hf_lpp_mnc_r15,
27636       { "mnc-r15", "lpp.mnc_r15",
27637         FT_UINT32, BASE_DEC, NULL, 0,
27638         NULL, HFILL }},
27639     { &hf_lpp_mnc_r15_item,
27640       { "mnc-r15 item", "lpp.mnc_r15_item",
27641         FT_UINT32, BASE_DEC, NULL, 0,
27642         "INTEGER_0_9", HFILL }},
27643     { &hf_lpp_nr_cellidentity_r15,
27644       { "nr-cellidentity-r15", "lpp.nr_cellidentity_r15",
27645         FT_BYTES, BASE_NONE, NULL, 0,
27646         "BIT_STRING_SIZE_36", HFILL }},
27647     { &hf_lpp_periodicSessionID_r15,
27648       { "periodicSessionID-r15", "lpp.periodicSessionID_r15_element",
27649         FT_NONE, BASE_NONE, NULL, 0,
27650         NULL, HFILL }},
27651     { &hf_lpp_updateCapabilities_r15,
27652       { "updateCapabilities-r15", "lpp.updateCapabilities_r15",
27653         FT_BYTES, BASE_NONE, NULL, 0,
27654         NULL, HFILL }},
27655     { &hf_lpp_periodicSessionInitiator_r15,
27656       { "periodicSessionInitiator-r15", "lpp.periodicSessionInitiator_r15",
27657         FT_UINT32, BASE_DEC, VALS(lpp_T_periodicSessionInitiator_r15_vals), 0,
27658         NULL, HFILL }},
27659     { &hf_lpp_periodicSessionNumber_r15,
27660       { "periodicSessionNumber-r15", "lpp.periodicSessionNumber_r15",
27661         FT_UINT32, BASE_DEC, NULL, 0,
27662         "INTEGER_0_255", HFILL }},
27663     { &hf_lpp_Polygon_item,
27664       { "PolygonPoints", "lpp.PolygonPoints_element",
27665         FT_NONE, BASE_NONE, NULL, 0,
27666         NULL, HFILL }},
27667     { &hf_lpp_latitudeSign_06,
27668       { "latitudeSign", "lpp.latitudeSign",
27669         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_06_vals), 0,
27670         "T_latitudeSign_06", HFILL }},
27671     { &hf_lpp_posModes,
27672       { "posModes", "lpp.posModes",
27673         FT_BYTES, BASE_NONE, NULL, 0,
27674         NULL, HFILL }},
27675     { &hf_lpp_horizontalVelocity,
27676       { "horizontalVelocity", "lpp.horizontalVelocity",
27677         FT_BOOLEAN, BASE_NONE, NULL, 0,
27678         "BOOLEAN", HFILL }},
27679     { &hf_lpp_horizontalWithVerticalVelocity,
27680       { "horizontalWithVerticalVelocity", "lpp.horizontalWithVerticalVelocity",
27681         FT_BOOLEAN, BASE_NONE, NULL, 0,
27682         "BOOLEAN", HFILL }},
27683     { &hf_lpp_horizontalVelocityWithUncertainty,
27684       { "horizontalVelocityWithUncertainty", "lpp.horizontalVelocityWithUncertainty",
27685         FT_BOOLEAN, BASE_NONE, NULL, 0,
27686         "BOOLEAN", HFILL }},
27687     { &hf_lpp_horizontalWithVerticalVelocityAndUncertainty,
27688       { "horizontalWithVerticalVelocityAndUncertainty", "lpp.horizontalWithVerticalVelocityAndUncertainty",
27689         FT_BOOLEAN, BASE_NONE, NULL, 0,
27690         "BOOLEAN", HFILL }},
27691     { &hf_lpp_lpp_message_segmentation_req_r14,
27692       { "lpp-message-segmentation-req-r14", "lpp.lpp_message_segmentation_req_r14",
27693         FT_BYTES, BASE_NONE, NULL, 0,
27694         NULL, HFILL }},
27695     { &hf_lpp_segmentationInfo_r14,
27696       { "segmentationInfo-r14", "lpp.segmentationInfo_r14",
27697         FT_UINT32, BASE_DEC, VALS(lpp_SegmentationInfo_r14_vals), 0,
27698         NULL, HFILL }},
27699     { &hf_lpp_lpp_message_segmentation_r14,
27700       { "lpp-message-segmentation-r14", "lpp.lpp_message_segmentation_r14",
27701         FT_BYTES, BASE_NONE, NULL, 0,
27702         NULL, HFILL }},
27703     { &hf_lpp_primaryCellID,
27704       { "primaryCellID", "lpp.primaryCellID_element",
27705         FT_NONE, BASE_NONE, NULL, 0,
27706         "ECGI", HFILL }},
27707     { &hf_lpp_periodicAssistanceDataReq_r15,
27708       { "periodicAssistanceDataReq-r15", "lpp.periodicAssistanceDataReq_r15_element",
27709         FT_NONE, BASE_NONE, NULL, 0,
27710         "PeriodicAssistanceDataControlParameters_r15", HFILL }},
27711     { &hf_lpp_primaryCellID_r15,
27712       { "primaryCellID-r15", "lpp.primaryCellID_r15_element",
27713         FT_NONE, BASE_NONE, NULL, 0,
27714         "NCGI_r15", HFILL }},
27715     { &hf_lpp_periodicAssistanceData_r15,
27716       { "periodicAssistanceData-r15", "lpp.periodicAssistanceData_r15_element",
27717         FT_NONE, BASE_NONE, NULL, 0,
27718         "PeriodicAssistanceDataControlParameters_r15", HFILL }},
27719     { &hf_lpp_locationInformationType,
27720       { "locationInformationType", "lpp.locationInformationType",
27721         FT_UINT32, BASE_DEC, VALS(lpp_LocationInformationType_vals), 0,
27722         NULL, HFILL }},
27723     { &hf_lpp_triggeredReporting,
27724       { "triggeredReporting", "lpp.triggeredReporting_element",
27725         FT_NONE, BASE_NONE, NULL, 0,
27726         "TriggeredReportingCriteria", HFILL }},
27727     { &hf_lpp_periodicalReporting,
27728       { "periodicalReporting", "lpp.periodicalReporting_element",
27729         FT_NONE, BASE_NONE, NULL, 0,
27730         "PeriodicalReportingCriteria", HFILL }},
27731     { &hf_lpp_additionalInformation,
27732       { "additionalInformation", "lpp.additionalInformation",
27733         FT_UINT32, BASE_DEC, VALS(lpp_AdditionalInformation_vals), 0,
27734         NULL, HFILL }},
27735     { &hf_lpp_qos,
27736       { "qos", "lpp.qos_element",
27737         FT_NONE, BASE_NONE, NULL, 0,
27738         NULL, HFILL }},
27739     { &hf_lpp_environment,
27740       { "environment", "lpp.environment",
27741         FT_UINT32, BASE_DEC, VALS(lpp_Environment_vals), 0,
27742         NULL, HFILL }},
27743     { &hf_lpp_locationCoordinateTypes,
27744       { "locationCoordinateTypes", "lpp.locationCoordinateTypes_element",
27745         FT_NONE, BASE_NONE, NULL, 0,
27746         NULL, HFILL }},
27747     { &hf_lpp_velocityTypes,
27748       { "velocityTypes", "lpp.velocityTypes_element",
27749         FT_NONE, BASE_NONE, NULL, 0,
27750         NULL, HFILL }},
27751     { &hf_lpp_messageSizeLimitNB_r14,
27752       { "messageSizeLimitNB-r14", "lpp.messageSizeLimitNB_r14_element",
27753         FT_NONE, BASE_NONE, NULL, 0,
27754         NULL, HFILL }},
27755     { &hf_lpp_reportingAmount,
27756       { "reportingAmount", "lpp.reportingAmount",
27757         FT_UINT32, BASE_DEC, VALS(lpp_T_reportingAmount_vals), 0,
27758         NULL, HFILL }},
27759     { &hf_lpp_reportingInterval,
27760       { "reportingInterval", "lpp.reportingInterval",
27761         FT_UINT32, BASE_DEC, VALS(lpp_T_reportingInterval_vals), 0,
27762         NULL, HFILL }},
27763     { &hf_lpp_cellChange,
27764       { "cellChange", "lpp.cellChange",
27765         FT_BOOLEAN, BASE_NONE, NULL, 0,
27766         "BOOLEAN", HFILL }},
27767     { &hf_lpp_reportingDuration,
27768       { "reportingDuration", "lpp.reportingDuration",
27769         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
27770         NULL, HFILL }},
27771     { &hf_lpp_horizontalAccuracy,
27772       { "horizontalAccuracy", "lpp.horizontalAccuracy_element",
27773         FT_NONE, BASE_NONE, NULL, 0,
27774         NULL, HFILL }},
27775     { &hf_lpp_verticalCoordinateRequest,
27776       { "verticalCoordinateRequest", "lpp.verticalCoordinateRequest",
27777         FT_BOOLEAN, BASE_NONE, NULL, 0,
27778         "BOOLEAN", HFILL }},
27779     { &hf_lpp_verticalAccuracy,
27780       { "verticalAccuracy", "lpp.verticalAccuracy_element",
27781         FT_NONE, BASE_NONE, NULL, 0,
27782         NULL, HFILL }},
27783     { &hf_lpp_responseTime,
27784       { "responseTime", "lpp.responseTime_element",
27785         FT_NONE, BASE_NONE, NULL, 0,
27786         NULL, HFILL }},
27787     { &hf_lpp_velocityRequest,
27788       { "velocityRequest", "lpp.velocityRequest",
27789         FT_BOOLEAN, BASE_NONE, NULL, 0,
27790         "BOOLEAN", HFILL }},
27791     { &hf_lpp_responseTimeNB_r14,
27792       { "responseTimeNB-r14", "lpp.responseTimeNB_r14_element",
27793         FT_NONE, BASE_NONE, NULL, 0,
27794         NULL, HFILL }},
27795     { &hf_lpp_horizontalAccuracyExt_r15,
27796       { "horizontalAccuracyExt-r15", "lpp.horizontalAccuracyExt_r15_element",
27797         FT_NONE, BASE_NONE, NULL, 0,
27798         NULL, HFILL }},
27799     { &hf_lpp_verticalAccuracyExt_r15,
27800       { "verticalAccuracyExt-r15", "lpp.verticalAccuracyExt_r15_element",
27801         FT_NONE, BASE_NONE, NULL, 0,
27802         NULL, HFILL }},
27803     { &hf_lpp_accuracy,
27804       { "accuracy", "lpp.accuracy",
27805         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_uncertainty_fmt), 0,
27806         "INTEGER_0_127", HFILL }},
27807     { &hf_lpp_accuracyExt_r15,
27808       { "accuracyExt-r15", "lpp.accuracyExt_r15",
27809         FT_UINT32, BASE_DEC, NULL, 0,
27810         "INTEGER_0_255", HFILL }},
27811     { &hf_lpp_time,
27812       { "time", "lpp.time",
27813         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
27814         "INTEGER_1_128", HFILL }},
27815     { &hf_lpp_responseTimeEarlyFix_r12,
27816       { "responseTimeEarlyFix-r12", "lpp.responseTimeEarlyFix_r12",
27817         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
27818         "INTEGER_1_128", HFILL }},
27819     { &hf_lpp_unit_r15,
27820       { "unit-r15", "lpp.unit_r15",
27821         FT_UINT32, BASE_DEC, VALS(lpp_T_unit_r15_vals), 0,
27822         "T_unit_r15", HFILL }},
27823     { &hf_lpp_timeNB_r14,
27824       { "timeNB-r14", "lpp.timeNB_r14",
27825         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
27826         "INTEGER_1_512", HFILL }},
27827     { &hf_lpp_responseTimeEarlyFixNB_r14,
27828       { "responseTimeEarlyFixNB-r14", "lpp.responseTimeEarlyFixNB_r14",
27829         FT_UINT32, BASE_DEC, NULL, 0,
27830         "INTEGER_1_512", HFILL }},
27831     { &hf_lpp_unitNB_r15,
27832       { "unitNB-r15", "lpp.unitNB_r15",
27833         FT_UINT32, BASE_DEC, VALS(lpp_T_unitNB_r15_vals), 0,
27834         NULL, HFILL }},
27835     { &hf_lpp_measurementLimit_r14,
27836       { "measurementLimit-r14", "lpp.measurementLimit_r14",
27837         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_measurementLimit_fmt), 0,
27838         "INTEGER_1_512", HFILL }},
27839     { &hf_lpp_locationEstimate,
27840       { "locationEstimate", "lpp.locationEstimate",
27841         FT_UINT32, BASE_DEC, VALS(lpp_LocationCoordinates_vals), 0,
27842         "LocationCoordinates", HFILL }},
27843     { &hf_lpp_velocityEstimate,
27844       { "velocityEstimate", "lpp.velocityEstimate",
27845         FT_UINT32, BASE_DEC, VALS(lpp_Velocity_vals), 0,
27846         "Velocity", HFILL }},
27847     { &hf_lpp_locationError,
27848       { "locationError", "lpp.locationError_element",
27849         FT_NONE, BASE_NONE, NULL, 0,
27850         NULL, HFILL }},
27851     { &hf_lpp_earlyFixReport_r12,
27852       { "earlyFixReport-r12", "lpp.earlyFixReport_r12",
27853         FT_UINT32, BASE_DEC, VALS(lpp_EarlyFixReport_r12_vals), 0,
27854         NULL, HFILL }},
27855     { &hf_lpp_locationSource_r13,
27856       { "locationSource-r13", "lpp.locationSource_r13",
27857         FT_BYTES, BASE_NONE, NULL, 0,
27858         NULL, HFILL }},
27859     { &hf_lpp_locationTimestamp_r13,
27860       { "locationTimestamp-r13", "lpp.locationTimestamp_r13",
27861         FT_STRING, BASE_NONE, NULL, 0,
27862         "UTCTime", HFILL }},
27863     { &hf_lpp_ellipsoidPoint_01,
27864       { "ellipsoidPoint", "lpp.ellipsoidPoint_element",
27865         FT_NONE, BASE_NONE, NULL, 0,
27866         "Ellipsoid_Point", HFILL }},
27867     { &hf_lpp_ellipsoidPointWithUncertaintyCircle_01,
27868       { "ellipsoidPointWithUncertaintyCircle", "lpp.ellipsoidPointWithUncertaintyCircle_element",
27869         FT_NONE, BASE_NONE, NULL, 0,
27870         "Ellipsoid_PointWithUncertaintyCircle", HFILL }},
27871     { &hf_lpp_ellipsoidPointWithUncertaintyEllipse_01,
27872       { "ellipsoidPointWithUncertaintyEllipse", "lpp.ellipsoidPointWithUncertaintyEllipse_element",
27873         FT_NONE, BASE_NONE, NULL, 0,
27874         NULL, HFILL }},
27875     { &hf_lpp_locationCoordinates_polygon,
27876       { "polygon", "lpp.locationCoordinates.polygon",
27877         FT_UINT32, BASE_DEC, NULL, 0,
27878         NULL, HFILL }},
27879     { &hf_lpp_ellipsoidPointWithAltitude_01,
27880       { "ellipsoidPointWithAltitude", "lpp.ellipsoidPointWithAltitude_element",
27881         FT_NONE, BASE_NONE, NULL, 0,
27882         NULL, HFILL }},
27883     { &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_01,
27884       { "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid", "lpp.ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_element",
27885         FT_NONE, BASE_NONE, NULL, 0,
27886         NULL, HFILL }},
27887     { &hf_lpp_ellipsoidArc_01,
27888       { "ellipsoidArc", "lpp.ellipsoidArc_element",
27889         FT_NONE, BASE_NONE, NULL, 0,
27890         NULL, HFILL }},
27891     { &hf_lpp_highAccuracyEllipsoidPointWithUncertaintyEllipse_v1510,
27892       { "highAccuracyEllipsoidPointWithUncertaintyEllipse-v1510", "lpp.highAccuracyEllipsoidPointWithUncertaintyEllipse_v1510_element",
27893         FT_NONE, BASE_NONE, NULL, 0,
27894         "HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15", HFILL }},
27895     { &hf_lpp_highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_v1510,
27896       { "highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-v1510", "lpp.highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_v1510_element",
27897         FT_NONE, BASE_NONE, NULL, 0,
27898         "HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15", HFILL }},
27899     { &hf_lpp_horizontalVelocity_01,
27900       { "horizontalVelocity", "lpp.horizontalVelocity_element",
27901         FT_NONE, BASE_NONE, NULL, 0,
27902         NULL, HFILL }},
27903     { &hf_lpp_horizontalWithVerticalVelocity_01,
27904       { "horizontalWithVerticalVelocity", "lpp.horizontalWithVerticalVelocity_element",
27905         FT_NONE, BASE_NONE, NULL, 0,
27906         NULL, HFILL }},
27907     { &hf_lpp_horizontalVelocityWithUncertainty_01,
27908       { "horizontalVelocityWithUncertainty", "lpp.horizontalVelocityWithUncertainty_element",
27909         FT_NONE, BASE_NONE, NULL, 0,
27910         NULL, HFILL }},
27911     { &hf_lpp_horizontalWithVerticalVelocityAndUncertainty_01,
27912       { "horizontalWithVerticalVelocityAndUncertainty", "lpp.horizontalWithVerticalVelocityAndUncertainty_element",
27913         FT_NONE, BASE_NONE, NULL, 0,
27914         NULL, HFILL }},
27915     { &hf_lpp_locationfailurecause,
27916       { "locationfailurecause", "lpp.locationfailurecause",
27917         FT_UINT32, BASE_DEC, VALS(lpp_LocationFailureCause_vals), 0,
27918         NULL, HFILL }},
27919     { &hf_lpp_abortCause,
27920       { "abortCause", "lpp.abortCause",
27921         FT_UINT32, BASE_DEC, VALS(lpp_T_abortCause_vals), 0,
27922         NULL, HFILL }},
27923     { &hf_lpp_errorCause,
27924       { "errorCause", "lpp.errorCause",
27925         FT_UINT32, BASE_DEC, VALS(lpp_T_errorCause_vals), 0,
27926         NULL, HFILL }},
27927     { &hf_lpp_dl_PRS_ID_r16,
27928       { "dl-PRS-ID-r16", "lpp.dl_PRS_ID_r16",
27929         FT_UINT32, BASE_DEC, NULL, 0,
27930         "INTEGER_0_255", HFILL }},
27931     { &hf_lpp_nr_DL_PRS_ResourceID_List_r16,
27932       { "nr-DL-PRS-ResourceID-List-r16", "lpp.nr_DL_PRS_ResourceID_List_r16",
27933         FT_UINT32, BASE_DEC, NULL, 0,
27934         "SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16", HFILL }},
27935     { &hf_lpp_nr_DL_PRS_ResourceID_List_r16_item,
27936       { "NR-DL-PRS-ResourceID-r16", "lpp.NR_DL_PRS_ResourceID_r16",
27937         FT_UINT32, BASE_DEC, NULL, 0,
27938         NULL, HFILL }},
27939     { &hf_lpp_nr_DL_PRS_ResourceSetID_r16,
27940       { "nr-DL-PRS-ResourceSetID-r16", "lpp.nr_DL_PRS_ResourceSetID_r16",
27941         FT_UINT32, BASE_DEC, NULL, 0,
27942         NULL, HFILL }},
27943     { &hf_lpp_NR_AdditionalPathList_r16_item,
27944       { "NR-AdditionalPath-r16", "lpp.NR_AdditionalPath_r16_element",
27945         FT_NONE, BASE_NONE, NULL, 0,
27946         NULL, HFILL }},
27947     { &hf_lpp_nr_RelativeTimeDifference_r16,
27948       { "nr-RelativeTimeDifference-r16", "lpp.nr_RelativeTimeDifference_r16",
27949         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_RelativeTimeDifference_r16_vals), 0,
27950         NULL, HFILL }},
27951     { &hf_lpp_k0_r16,
27952       { "k0-r16", "lpp.k0_r16",
27953         FT_UINT32, BASE_DEC, NULL, 0,
27954         "INTEGER_0_16351", HFILL }},
27955     { &hf_lpp_k1_r16,
27956       { "k1-r16", "lpp.k1_r16",
27957         FT_UINT32, BASE_DEC, NULL, 0,
27958         "INTEGER_0_8176", HFILL }},
27959     { &hf_lpp_k2_r16,
27960       { "k2-r16", "lpp.k2_r16",
27961         FT_UINT32, BASE_DEC, NULL, 0,
27962         "INTEGER_0_4088", HFILL }},
27963     { &hf_lpp_k3_r16,
27964       { "k3-r16", "lpp.k3_r16",
27965         FT_UINT32, BASE_DEC, NULL, 0,
27966         "INTEGER_0_2044", HFILL }},
27967     { &hf_lpp_k4_r16,
27968       { "k4-r16", "lpp.k4_r16",
27969         FT_UINT32, BASE_DEC, NULL, 0,
27970         "INTEGER_0_1022", HFILL }},
27971     { &hf_lpp_k5_r16,
27972       { "k5-r16", "lpp.k5_r16",
27973         FT_UINT32, BASE_DEC, NULL, 0,
27974         "INTEGER_0_511", HFILL }},
27975     { &hf_lpp_nr_PathQuality_r16,
27976       { "nr-PathQuality-r16", "lpp.nr_PathQuality_r16_element",
27977         FT_NONE, BASE_NONE, NULL, 0,
27978         "NR_TimingQuality_r16", HFILL }},
27979     { &hf_lpp_nr_DL_PRS_ReferenceInfo_r16,
27980       { "nr-DL-PRS-ReferenceInfo-r16", "lpp.nr_DL_PRS_ReferenceInfo_r16_element",
27981         FT_NONE, BASE_NONE, NULL, 0,
27982         "DL_PRS_ID_Info_r16", HFILL }},
27983     { &hf_lpp_nr_DL_PRS_AssistanceDataList_r16,
27984       { "nr-DL-PRS-AssistanceDataList-r16", "lpp.nr_DL_PRS_AssistanceDataList_r16",
27985         FT_UINT32, BASE_DEC, NULL, 0,
27986         "SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16", HFILL }},
27987     { &hf_lpp_nr_DL_PRS_AssistanceDataList_r16_item,
27988       { "NR-DL-PRS-AssistanceDataPerFreq-r16", "lpp.NR_DL_PRS_AssistanceDataPerFreq_r16_element",
27989         FT_NONE, BASE_NONE, NULL, 0,
27990         NULL, HFILL }},
27991     { &hf_lpp_nr_SSB_Config_r16,
27992       { "nr-SSB-Config-r16", "lpp.nr_SSB_Config_r16",
27993         FT_UINT32, BASE_DEC, NULL, 0,
27994         "SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16", HFILL }},
27995     { &hf_lpp_nr_SSB_Config_r16_item,
27996       { "NR-SSB-Config-r16", "lpp.NR_SSB_Config_r16_element",
27997         FT_NONE, BASE_NONE, NULL, 0,
27998         NULL, HFILL }},
27999     { &hf_lpp_nr_DL_PRS_PositioningFrequencyLayer_r16,
28000       { "nr-DL-PRS-PositioningFrequencyLayer-r16", "lpp.nr_DL_PRS_PositioningFrequencyLayer_r16_element",
28001         FT_NONE, BASE_NONE, NULL, 0,
28002         NULL, HFILL }},
28003     { &hf_lpp_nr_DL_PRS_AssistanceDataPerFreq_r16,
28004       { "nr-DL-PRS-AssistanceDataPerFreq-r16", "lpp.nr_DL_PRS_AssistanceDataPerFreq_r16",
28005         FT_UINT32, BASE_DEC, NULL, 0,
28006         "SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16", HFILL }},
28007     { &hf_lpp_nr_DL_PRS_AssistanceDataPerFreq_r16_item,
28008       { "NR-DL-PRS-AssistanceDataPerTRP-r16", "lpp.NR_DL_PRS_AssistanceDataPerTRP_r16_element",
28009         FT_NONE, BASE_NONE, NULL, 0,
28010         NULL, HFILL }},
28011     { &hf_lpp_nr_PhysCellID_r16,
28012       { "nr-PhysCellID-r16", "lpp.nr_PhysCellID_r16",
28013         FT_UINT32, BASE_DEC, NULL, 0,
28014         NULL, HFILL }},
28015     { &hf_lpp_nr_CellGlobalID_r16,
28016       { "nr-CellGlobalID-r16", "lpp.nr_CellGlobalID_r16_element",
28017         FT_NONE, BASE_NONE, NULL, 0,
28018         "NCGI_r15", HFILL }},
28019     { &hf_lpp_nr_ARFCN_r16,
28020       { "nr-ARFCN-r16", "lpp.nr_ARFCN_r16",
28021         FT_UINT32, BASE_DEC, NULL, 0,
28022         "ARFCN_ValueNR_r15", HFILL }},
28023     { &hf_lpp_nr_DL_PRS_SFN0_Offset_r16,
28024       { "nr-DL-PRS-SFN0-Offset-r16", "lpp.nr_DL_PRS_SFN0_Offset_r16_element",
28025         FT_NONE, BASE_NONE, NULL, 0,
28026         NULL, HFILL }},
28027     { &hf_lpp_nr_DL_PRS_ExpectedRSTD_r16,
28028       { "nr-DL-PRS-ExpectedRSTD-r16", "lpp.nr_DL_PRS_ExpectedRSTD_r16",
28029         FT_INT32, BASE_DEC, NULL, 0,
28030         "INTEGER_M3841_3841", HFILL }},
28031     { &hf_lpp_nr_DL_PRS_ExpectedRSTD_Uncertainty_r16,
28032       { "nr-DL-PRS-ExpectedRSTD-Uncertainty-r16", "lpp.nr_DL_PRS_ExpectedRSTD_Uncertainty_r16",
28033         FT_UINT32, BASE_DEC, NULL, 0,
28034         "INTEGER_0_246", HFILL }},
28035     { &hf_lpp_nr_DL_PRS_Info_r16,
28036       { "nr-DL-PRS-Info-r16", "lpp.nr_DL_PRS_Info_r16_element",
28037         FT_NONE, BASE_NONE, NULL, 0,
28038         NULL, HFILL }},
28039     { &hf_lpp_prs_OnlyTP_r16,
28040       { "prs-OnlyTP-r16", "lpp.prs_OnlyTP_r16",
28041         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_OnlyTP_r16_vals), 0,
28042         NULL, HFILL }},
28043     { &hf_lpp_dl_PRS_SubcarrierSpacing_r16,
28044       { "dl-PRS-SubcarrierSpacing-r16", "lpp.dl_PRS_SubcarrierSpacing_r16",
28045         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_SubcarrierSpacing_r16_vals), 0,
28046         NULL, HFILL }},
28047     { &hf_lpp_dl_PRS_ResourceBandwidth_r16,
28048       { "dl-PRS-ResourceBandwidth-r16", "lpp.dl_PRS_ResourceBandwidth_r16",
28049         FT_UINT32, BASE_DEC, NULL, 0,
28050         "INTEGER_1_63", HFILL }},
28051     { &hf_lpp_dl_PRS_StartPRB_r16,
28052       { "dl-PRS-StartPRB-r16", "lpp.dl_PRS_StartPRB_r16",
28053         FT_UINT32, BASE_DEC, NULL, 0,
28054         "INTEGER_0_2176", HFILL }},
28055     { &hf_lpp_dl_PRS_PointA_r16,
28056       { "dl-PRS-PointA-r16", "lpp.dl_PRS_PointA_r16",
28057         FT_UINT32, BASE_DEC, NULL, 0,
28058         "ARFCN_ValueNR_r15", HFILL }},
28059     { &hf_lpp_dl_PRS_CombSizeN_r16,
28060       { "dl-PRS-CombSizeN-r16", "lpp.dl_PRS_CombSizeN_r16",
28061         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_CombSizeN_r16_vals), 0,
28062         NULL, HFILL }},
28063     { &hf_lpp_dl_PRS_CyclicPrefix_r16,
28064       { "dl-PRS-CyclicPrefix-r16", "lpp.dl_PRS_CyclicPrefix_r16",
28065         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_CyclicPrefix_r16_vals), 0,
28066         NULL, HFILL }},
28067     { &hf_lpp_sfn_Offset_r16,
28068       { "sfn-Offset-r16", "lpp.sfn_Offset_r16",
28069         FT_UINT32, BASE_DEC, NULL, 0,
28070         "INTEGER_0_1023", HFILL }},
28071     { &hf_lpp_integerSubframeOffset_r16,
28072       { "integerSubframeOffset-r16", "lpp.integerSubframeOffset_r16",
28073         FT_UINT32, BASE_DEC, NULL, 0,
28074         "INTEGER_0_9", HFILL }},
28075     { &hf_lpp_NR_DL_PRS_BeamInfo_r16_item,
28076       { "NR-DL-PRS-BeamInfoPerFreqLayer-r16", "lpp.NR_DL_PRS_BeamInfoPerFreqLayer_r16",
28077         FT_UINT32, BASE_DEC, NULL, 0,
28078         NULL, HFILL }},
28079     { &hf_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16_item,
28080       { "NR-DL-PRS-BeamInfoPerTRP-r16", "lpp.NR_DL_PRS_BeamInfoPerTRP_r16_element",
28081         FT_NONE, BASE_NONE, NULL, 0,
28082         NULL, HFILL }},
28083     { &hf_lpp_associated_DL_PRS_ID_r16,
28084       { "associated-DL-PRS-ID-r16", "lpp.associated_DL_PRS_ID_r16",
28085         FT_UINT32, BASE_DEC, NULL, 0,
28086         "INTEGER_0_255", HFILL }},
28087     { &hf_lpp_lcs_GCS_TranslationParameter_r16,
28088       { "lcs-GCS-TranslationParameter-r16", "lpp.lcs_GCS_TranslationParameter_r16_element",
28089         FT_NONE, BASE_NONE, NULL, 0,
28090         NULL, HFILL }},
28091     { &hf_lpp_dl_PRS_BeamInfoSet_r16,
28092       { "dl-PRS-BeamInfoSet-r16", "lpp.dl_PRS_BeamInfoSet_r16",
28093         FT_UINT32, BASE_DEC, NULL, 0,
28094         NULL, HFILL }},
28095     { &hf_lpp_DL_PRS_BeamInfoSet_r16_item,
28096       { "DL-PRS-BeamInfoResourceSet-r16", "lpp.DL_PRS_BeamInfoResourceSet_r16",
28097         FT_UINT32, BASE_DEC, NULL, 0,
28098         NULL, HFILL }},
28099     { &hf_lpp_DL_PRS_BeamInfoResourceSet_r16_item,
28100       { "DL-PRS-BeamInfoElement-r16", "lpp.DL_PRS_BeamInfoElement_r16_element",
28101         FT_NONE, BASE_NONE, NULL, 0,
28102         NULL, HFILL }},
28103     { &hf_lpp_dl_PRS_Azimuth_r16,
28104       { "dl-PRS-Azimuth-r16", "lpp.dl_PRS_Azimuth_r16",
28105         FT_UINT32, BASE_DEC, NULL, 0,
28106         "INTEGER_0_359", HFILL }},
28107     { &hf_lpp_dl_PRS_Azimuth_fine_r16,
28108       { "dl-PRS-Azimuth-fine-r16", "lpp.dl_PRS_Azimuth_fine_r16",
28109         FT_UINT32, BASE_DEC, NULL, 0,
28110         "INTEGER_0_9", HFILL }},
28111     { &hf_lpp_dl_PRS_Elevation_r16,
28112       { "dl-PRS-Elevation-r16", "lpp.dl_PRS_Elevation_r16",
28113         FT_UINT32, BASE_DEC, NULL, 0,
28114         "INTEGER_0_180", HFILL }},
28115     { &hf_lpp_dl_PRS_Elevation_fine_r16,
28116       { "dl-PRS-Elevation-fine-r16", "lpp.dl_PRS_Elevation_fine_r16",
28117         FT_UINT32, BASE_DEC, NULL, 0,
28118         "INTEGER_0_9", HFILL }},
28119     { &hf_lpp_alpha_r16,
28120       { "alpha-r16", "lpp.alpha_r16",
28121         FT_UINT32, BASE_DEC, NULL, 0,
28122         "INTEGER_0_359", HFILL }},
28123     { &hf_lpp_alpha_fine_r16,
28124       { "alpha-fine-r16", "lpp.alpha_fine_r16",
28125         FT_UINT32, BASE_DEC, NULL, 0,
28126         "INTEGER_0_9", HFILL }},
28127     { &hf_lpp_beta_r16,
28128       { "beta-r16", "lpp.beta_r16",
28129         FT_UINT32, BASE_DEC, NULL, 0,
28130         "INTEGER_0_359", HFILL }},
28131     { &hf_lpp_beta_fine_r16,
28132       { "beta-fine-r16", "lpp.beta_fine_r16",
28133         FT_UINT32, BASE_DEC, NULL, 0,
28134         "INTEGER_0_9", HFILL }},
28135     { &hf_lpp_gamma_r16,
28136       { "gamma-r16", "lpp.gamma_r16",
28137         FT_UINT32, BASE_DEC, NULL, 0,
28138         "INTEGER_0_359", HFILL }},
28139     { &hf_lpp_gamma_fine_r16,
28140       { "gamma-fine-r16", "lpp.gamma_fine_r16",
28141         FT_UINT32, BASE_DEC, NULL, 0,
28142         "INTEGER_0_9", HFILL }},
28143     { &hf_lpp_nr_DL_PRS_ResourceSetList_r16,
28144       { "nr-DL-PRS-ResourceSetList-r16", "lpp.nr_DL_PRS_ResourceSetList_r16",
28145         FT_UINT32, BASE_DEC, NULL, 0,
28146         "SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16", HFILL }},
28147     { &hf_lpp_nr_DL_PRS_ResourceSetList_r16_item,
28148       { "NR-DL-PRS-ResourceSet-r16", "lpp.NR_DL_PRS_ResourceSet_r16_element",
28149         FT_NONE, BASE_NONE, NULL, 0,
28150         NULL, HFILL }},
28151     { &hf_lpp_dl_PRS_Periodicity_and_ResourceSetSlotOffset_r16,
28152       { "dl-PRS-Periodicity-and-ResourceSetSlotOffset-r16", "lpp.dl_PRS_Periodicity_and_ResourceSetSlotOffset_r16",
28153         FT_UINT32, BASE_DEC, VALS(lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16_vals), 0,
28154         "NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16", HFILL }},
28155     { &hf_lpp_dl_PRS_ResourceRepetitionFactor_r16,
28156       { "dl-PRS-ResourceRepetitionFactor-r16", "lpp.dl_PRS_ResourceRepetitionFactor_r16",
28157         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_ResourceRepetitionFactor_r16_vals), 0,
28158         NULL, HFILL }},
28159     { &hf_lpp_dl_PRS_ResourceTimeGap_r16,
28160       { "dl-PRS-ResourceTimeGap-r16", "lpp.dl_PRS_ResourceTimeGap_r16",
28161         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_ResourceTimeGap_r16_vals), 0,
28162         NULL, HFILL }},
28163     { &hf_lpp_dl_PRS_NumSymbols_r16,
28164       { "dl-PRS-NumSymbols-r16", "lpp.dl_PRS_NumSymbols_r16",
28165         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_NumSymbols_r16_vals), 0,
28166         NULL, HFILL }},
28167     { &hf_lpp_dl_PRS_MutingOption1_r16,
28168       { "dl-PRS-MutingOption1-r16", "lpp.dl_PRS_MutingOption1_r16_element",
28169         FT_NONE, BASE_NONE, NULL, 0,
28170         NULL, HFILL }},
28171     { &hf_lpp_dl_PRS_MutingOption2_r16,
28172       { "dl-PRS-MutingOption2-r16", "lpp.dl_PRS_MutingOption2_r16_element",
28173         FT_NONE, BASE_NONE, NULL, 0,
28174         NULL, HFILL }},
28175     { &hf_lpp_dl_PRS_ResourcePower_r16,
28176       { "dl-PRS-ResourcePower-r16", "lpp.dl_PRS_ResourcePower_r16",
28177         FT_INT32, BASE_DEC, NULL, 0,
28178         "INTEGER_M60_50", HFILL }},
28179     { &hf_lpp_dl_PRS_ResourceList_r16,
28180       { "dl-PRS-ResourceList-r16", "lpp.dl_PRS_ResourceList_r16",
28181         FT_UINT32, BASE_DEC, NULL, 0,
28182         "SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16", HFILL }},
28183     { &hf_lpp_dl_PRS_ResourceList_r16_item,
28184       { "NR-DL-PRS-Resource-r16", "lpp.NR_DL_PRS_Resource_r16_element",
28185         FT_NONE, BASE_NONE, NULL, 0,
28186         NULL, HFILL }},
28187     { &hf_lpp_dl_prs_MutingBitRepetitionFactor_r16,
28188       { "dl-prs-MutingBitRepetitionFactor-r16", "lpp.dl_prs_MutingBitRepetitionFactor_r16",
28189         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_prs_MutingBitRepetitionFactor_r16_vals), 0,
28190         NULL, HFILL }},
28191     { &hf_lpp_nr_option1_muting_r16,
28192       { "nr-option1-muting-r16", "lpp.nr_option1_muting_r16",
28193         FT_UINT32, BASE_DEC, VALS(lpp_NR_MutingPattern_r16_vals), 0,
28194         "NR_MutingPattern_r16", HFILL }},
28195     { &hf_lpp_nr_option2_muting_r16,
28196       { "nr-option2-muting-r16", "lpp.nr_option2_muting_r16",
28197         FT_UINT32, BASE_DEC, VALS(lpp_NR_MutingPattern_r16_vals), 0,
28198         "NR_MutingPattern_r16", HFILL }},
28199     { &hf_lpp_po2_r16,
28200       { "po2-r16", "lpp.po2_r16",
28201         FT_BYTES, BASE_NONE, NULL, 0,
28202         "BIT_STRING_SIZE_2", HFILL }},
28203     { &hf_lpp_po4_r16,
28204       { "po4-r16", "lpp.po4_r16",
28205         FT_BYTES, BASE_NONE, NULL, 0,
28206         "BIT_STRING_SIZE_4", HFILL }},
28207     { &hf_lpp_po6_r16,
28208       { "po6-r16", "lpp.po6_r16",
28209         FT_BYTES, BASE_NONE, NULL, 0,
28210         "BIT_STRING_SIZE_6", HFILL }},
28211     { &hf_lpp_po8_r16,
28212       { "po8-r16", "lpp.po8_r16",
28213         FT_BYTES, BASE_NONE, NULL, 0,
28214         "BIT_STRING_SIZE_8", HFILL }},
28215     { &hf_lpp_po16_r16,
28216       { "po16-r16", "lpp.po16_r16",
28217         FT_BYTES, BASE_NONE, NULL, 0,
28218         "BIT_STRING_SIZE_16", HFILL }},
28219     { &hf_lpp_po32_r16,
28220       { "po32-r16", "lpp.po32_r16",
28221         FT_BYTES, BASE_NONE, NULL, 0,
28222         "BIT_STRING_SIZE_32", HFILL }},
28223     { &hf_lpp_nr_DL_PRS_ResourceID_r16,
28224       { "nr-DL-PRS-ResourceID-r16", "lpp.nr_DL_PRS_ResourceID_r16",
28225         FT_UINT32, BASE_DEC, NULL, 0,
28226         NULL, HFILL }},
28227     { &hf_lpp_dl_PRS_SequenceID_r16,
28228       { "dl-PRS-SequenceID-r16", "lpp.dl_PRS_SequenceID_r16",
28229         FT_UINT32, BASE_DEC, NULL, 0,
28230         "INTEGER_0_4095", HFILL }},
28231     { &hf_lpp_dl_PRS_CombSizeN_AndReOffset_r16,
28232       { "dl-PRS-CombSizeN-AndReOffset-r16", "lpp.dl_PRS_CombSizeN_AndReOffset_r16",
28233         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_CombSizeN_AndReOffset_r16_vals), 0,
28234         "T_dl_PRS_CombSizeN_AndReOffset_r16", HFILL }},
28235     { &hf_lpp_n2_r16,
28236       { "n2-r16", "lpp.n2_r16",
28237         FT_UINT32, BASE_DEC, NULL, 0,
28238         "INTEGER_0_1", HFILL }},
28239     { &hf_lpp_n4_r16,
28240       { "n4-r16", "lpp.n4_r16",
28241         FT_UINT32, BASE_DEC, NULL, 0,
28242         "INTEGER_0_3", HFILL }},
28243     { &hf_lpp_n6_r16,
28244       { "n6-r16", "lpp.n6_r16",
28245         FT_UINT32, BASE_DEC, NULL, 0,
28246         "INTEGER_0_5", HFILL }},
28247     { &hf_lpp_n12_r16,
28248       { "n12-r16", "lpp.n12_r16",
28249         FT_UINT32, BASE_DEC, NULL, 0,
28250         "INTEGER_0_11", HFILL }},
28251     { &hf_lpp_dl_PRS_ResourceSlotOffset_r16,
28252       { "dl-PRS-ResourceSlotOffset-r16", "lpp.dl_PRS_ResourceSlotOffset_r16",
28253         FT_UINT32, BASE_DEC, NULL, 0,
28254         "INTEGER_0_nrMaxResourceOffsetValue_1_r16", HFILL }},
28255     { &hf_lpp_dl_PRS_ResourceSymbolOffset_r16,
28256       { "dl-PRS-ResourceSymbolOffset-r16", "lpp.dl_PRS_ResourceSymbolOffset_r16",
28257         FT_UINT32, BASE_DEC, NULL, 0,
28258         "INTEGER_0_12", HFILL }},
28259     { &hf_lpp_dl_PRS_QCL_Info_r16,
28260       { "dl-PRS-QCL-Info-r16", "lpp.dl_PRS_QCL_Info_r16",
28261         FT_UINT32, BASE_DEC, VALS(lpp_DL_PRS_QCL_Info_r16_vals), 0,
28262         NULL, HFILL }},
28263     { &hf_lpp_ssb_r16,
28264       { "ssb-r16", "lpp.ssb_r16_element",
28265         FT_NONE, BASE_NONE, NULL, 0,
28266         NULL, HFILL }},
28267     { &hf_lpp_pci_r16,
28268       { "pci-r16", "lpp.pci_r16",
28269         FT_UINT32, BASE_DEC, NULL, 0,
28270         "NR_PhysCellID_r16", HFILL }},
28271     { &hf_lpp_ssb_Index_r16,
28272       { "ssb-Index-r16", "lpp.ssb_Index_r16",
28273         FT_UINT32, BASE_DEC, NULL, 0,
28274         "INTEGER_0_63", HFILL }},
28275     { &hf_lpp_rs_Type_r16,
28276       { "rs-Type-r16", "lpp.rs_Type_r16",
28277         FT_UINT32, BASE_DEC, VALS(lpp_T_rs_Type_r16_vals), 0,
28278         NULL, HFILL }},
28279     { &hf_lpp_dl_PRS_r16,
28280       { "dl-PRS-r16", "lpp.dl_PRS_r16_element",
28281         FT_NONE, BASE_NONE, NULL, 0,
28282         NULL, HFILL }},
28283     { &hf_lpp_qcl_DL_PRS_ResourceID_r16,
28284       { "qcl-DL-PRS-ResourceID-r16", "lpp.qcl_DL_PRS_ResourceID_r16",
28285         FT_UINT32, BASE_DEC, NULL, 0,
28286         "NR_DL_PRS_ResourceID_r16", HFILL }},
28287     { &hf_lpp_qcl_DL_PRS_ResourceSetID_r16,
28288       { "qcl-DL-PRS-ResourceSetID-r16", "lpp.qcl_DL_PRS_ResourceSetID_r16",
28289         FT_UINT32, BASE_DEC, NULL, 0,
28290         "NR_DL_PRS_ResourceSetID_r16", HFILL }},
28291     { &hf_lpp_scs15_r16,
28292       { "scs15-r16", "lpp.scs15_r16",
28293         FT_UINT32, BASE_DEC, VALS(lpp_T_scs15_r16_vals), 0,
28294         NULL, HFILL }},
28295     { &hf_lpp_n5_r16,
28296       { "n5-r16", "lpp.n5_r16",
28297         FT_UINT32, BASE_DEC, NULL, 0,
28298         "INTEGER_0_4", HFILL }},
28299     { &hf_lpp_n8_r16,
28300       { "n8-r16", "lpp.n8_r16",
28301         FT_UINT32, BASE_DEC, NULL, 0,
28302         "INTEGER_0_7", HFILL }},
28303     { &hf_lpp_n10_r16,
28304       { "n10-r16", "lpp.n10_r16",
28305         FT_UINT32, BASE_DEC, NULL, 0,
28306         "INTEGER_0_9", HFILL }},
28307     { &hf_lpp_n16_r16,
28308       { "n16-r16", "lpp.n16_r16",
28309         FT_UINT32, BASE_DEC, NULL, 0,
28310         "INTEGER_0_15", HFILL }},
28311     { &hf_lpp_n20_r16,
28312       { "n20-r16", "lpp.n20_r16",
28313         FT_UINT32, BASE_DEC, NULL, 0,
28314         "INTEGER_0_19", HFILL }},
28315     { &hf_lpp_n32_r16,
28316       { "n32-r16", "lpp.n32_r16",
28317         FT_UINT32, BASE_DEC, NULL, 0,
28318         "INTEGER_0_31", HFILL }},
28319     { &hf_lpp_n40_r16,
28320       { "n40-r16", "lpp.n40_r16",
28321         FT_UINT32, BASE_DEC, NULL, 0,
28322         "INTEGER_0_39", HFILL }},
28323     { &hf_lpp_n64_r16,
28324       { "n64-r16", "lpp.n64_r16",
28325         FT_UINT32, BASE_DEC, NULL, 0,
28326         "INTEGER_0_63", HFILL }},
28327     { &hf_lpp_n80_r16,
28328       { "n80-r16", "lpp.n80_r16",
28329         FT_UINT32, BASE_DEC, NULL, 0,
28330         "INTEGER_0_79", HFILL }},
28331     { &hf_lpp_n160_r16,
28332       { "n160-r16", "lpp.n160_r16",
28333         FT_UINT32, BASE_DEC, NULL, 0,
28334         "INTEGER_0_159", HFILL }},
28335     { &hf_lpp_n320_r16,
28336       { "n320-r16", "lpp.n320_r16",
28337         FT_UINT32, BASE_DEC, NULL, 0,
28338         "INTEGER_0_319", HFILL }},
28339     { &hf_lpp_n640_r16,
28340       { "n640-r16", "lpp.n640_r16",
28341         FT_UINT32, BASE_DEC, NULL, 0,
28342         "INTEGER_0_639", HFILL }},
28343     { &hf_lpp_n1280_r16,
28344       { "n1280-r16", "lpp.n1280_r16",
28345         FT_UINT32, BASE_DEC, NULL, 0,
28346         "INTEGER_0_1279", HFILL }},
28347     { &hf_lpp_n2560_r16,
28348       { "n2560-r16", "lpp.n2560_r16",
28349         FT_UINT32, BASE_DEC, NULL, 0,
28350         "INTEGER_0_2559", HFILL }},
28351     { &hf_lpp_n5120_r16,
28352       { "n5120-r16", "lpp.n5120_r16",
28353         FT_UINT32, BASE_DEC, NULL, 0,
28354         "INTEGER_0_5119", HFILL }},
28355     { &hf_lpp_n10240_r16,
28356       { "n10240-r16", "lpp.n10240_r16",
28357         FT_UINT32, BASE_DEC, NULL, 0,
28358         "INTEGER_0_10239", HFILL }},
28359     { &hf_lpp_scs30_r16,
28360       { "scs30-r16", "lpp.scs30_r16",
28361         FT_UINT32, BASE_DEC, VALS(lpp_T_scs30_r16_vals), 0,
28362         NULL, HFILL }},
28363     { &hf_lpp_n128_r16,
28364       { "n128-r16", "lpp.n128_r16",
28365         FT_UINT32, BASE_DEC, NULL, 0,
28366         "INTEGER_0_127", HFILL }},
28367     { &hf_lpp_n20480_r16,
28368       { "n20480-r16", "lpp.n20480_r16",
28369         FT_UINT32, BASE_DEC, NULL, 0,
28370         "INTEGER_0_20479", HFILL }},
28371     { &hf_lpp_scs60_r16,
28372       { "scs60-r16", "lpp.scs60_r16",
28373         FT_UINT32, BASE_DEC, VALS(lpp_T_scs60_r16_vals), 0,
28374         NULL, HFILL }},
28375     { &hf_lpp_n256_r16,
28376       { "n256-r16", "lpp.n256_r16",
28377         FT_UINT32, BASE_DEC, NULL, 0,
28378         "INTEGER_0_255", HFILL }},
28379     { &hf_lpp_n40960_r16,
28380       { "n40960-r16", "lpp.n40960_r16",
28381         FT_UINT32, BASE_DEC, NULL, 0,
28382         "INTEGER_0_40959", HFILL }},
28383     { &hf_lpp_scs120_r16,
28384       { "scs120-r16", "lpp.scs120_r16",
28385         FT_UINT32, BASE_DEC, VALS(lpp_T_scs120_r16_vals), 0,
28386         NULL, HFILL }},
28387     { &hf_lpp_n512_r16,
28388       { "n512-r16", "lpp.n512_r16",
28389         FT_UINT32, BASE_DEC, NULL, 0,
28390         "INTEGER_0_511", HFILL }},
28391     { &hf_lpp_n81920_r16,
28392       { "n81920-r16", "lpp.n81920_r16",
28393         FT_UINT32, BASE_DEC, NULL, 0,
28394         "INTEGER_0_81919", HFILL }},
28395     { &hf_lpp_prs_ProcessingCapabilityBandList_r16,
28396       { "prs-ProcessingCapabilityBandList-r16", "lpp.prs_ProcessingCapabilityBandList_r16",
28397         FT_UINT32, BASE_DEC, NULL, 0,
28398         "SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16", HFILL }},
28399     { &hf_lpp_prs_ProcessingCapabilityBandList_r16_item,
28400       { "PRS-ProcessingCapabilityPerBand-r16", "lpp.PRS_ProcessingCapabilityPerBand_r16_element",
28401         FT_NONE, BASE_NONE, NULL, 0,
28402         NULL, HFILL }},
28403     { &hf_lpp_maxSupportedFreqLayers_r16,
28404       { "maxSupportedFreqLayers-r16", "lpp.maxSupportedFreqLayers_r16",
28405         FT_UINT32, BASE_DEC, NULL, 0,
28406         "INTEGER_1_4", HFILL }},
28407     { &hf_lpp_simulLTE_NR_PRS_r16,
28408       { "simulLTE-NR-PRS-r16", "lpp.simulLTE_NR_PRS_r16",
28409         FT_UINT32, BASE_DEC, VALS(lpp_T_simulLTE_NR_PRS_r16_vals), 0,
28410         NULL, HFILL }},
28411     { &hf_lpp_freqBandIndicatorNR_r16,
28412       { "freqBandIndicatorNR-r16", "lpp.freqBandIndicatorNR_r16",
28413         FT_UINT32, BASE_DEC, NULL, 0,
28414         NULL, HFILL }},
28415     { &hf_lpp_supportedBandwidthPRS_r16,
28416       { "supportedBandwidthPRS-r16", "lpp.supportedBandwidthPRS_r16",
28417         FT_UINT32, BASE_DEC, VALS(lpp_T_supportedBandwidthPRS_r16_vals), 0,
28418         NULL, HFILL }},
28419     { &hf_lpp_fr1,
28420       { "fr1", "lpp.fr1",
28421         FT_UINT32, BASE_DEC, VALS(lpp_T_fr1_vals), 0,
28422         NULL, HFILL }},
28423     { &hf_lpp_fr2,
28424       { "fr2", "lpp.fr2",
28425         FT_UINT32, BASE_DEC, VALS(lpp_T_fr2_vals), 0,
28426         NULL, HFILL }},
28427     { &hf_lpp_dl_PRS_BufferType_r16,
28428       { "dl-PRS-BufferType-r16", "lpp.dl_PRS_BufferType_r16",
28429         FT_UINT32, BASE_DEC, VALS(lpp_T_dl_PRS_BufferType_r16_vals), 0,
28430         NULL, HFILL }},
28431     { &hf_lpp_durationOfPRS_Processing_r16,
28432       { "durationOfPRS-Processing-r16", "lpp.durationOfPRS_Processing_r16_element",
28433         FT_NONE, BASE_NONE, NULL, 0,
28434         NULL, HFILL }},
28435     { &hf_lpp_durationOfPRS_ProcessingSymbols_r16,
28436       { "durationOfPRS-ProcessingSymbols-r16", "lpp.durationOfPRS_ProcessingSymbols_r16",
28437         FT_UINT32, BASE_DEC, VALS(lpp_T_durationOfPRS_ProcessingSymbols_r16_vals), 0,
28438         NULL, HFILL }},
28439     { &hf_lpp_durationOfPRS_ProcessingSymbolsInEveryTms_r16,
28440       { "durationOfPRS-ProcessingSymbolsInEveryTms-r16", "lpp.durationOfPRS_ProcessingSymbolsInEveryTms_r16",
28441         FT_UINT32, BASE_DEC, VALS(lpp_T_durationOfPRS_ProcessingSymbolsInEveryTms_r16_vals), 0,
28442         NULL, HFILL }},
28443     { &hf_lpp_maxNumOfDL_PRS_ResProcessedPerSlot_r16,
28444       { "maxNumOfDL-PRS-ResProcessedPerSlot-r16", "lpp.maxNumOfDL_PRS_ResProcessedPerSlot_r16_element",
28445         FT_NONE, BASE_NONE, NULL, 0,
28446         "T_maxNumOfDL_PRS_ResProcessedPerSlot_r16", HFILL }},
28447     { &hf_lpp_scs15_r16_01,
28448       { "scs15-r16", "lpp.scs15_r16",
28449         FT_UINT32, BASE_DEC, VALS(lpp_T_scs15_r16_01_vals), 0,
28450         "T_scs15_r16_01", HFILL }},
28451     { &hf_lpp_scs30_r16_01,
28452       { "scs30-r16", "lpp.scs30_r16",
28453         FT_UINT32, BASE_DEC, VALS(lpp_T_scs30_r16_01_vals), 0,
28454         "T_scs30_r16_01", HFILL }},
28455     { &hf_lpp_scs60_r16_01,
28456       { "scs60-r16", "lpp.scs60_r16",
28457         FT_UINT32, BASE_DEC, VALS(lpp_T_scs60_r16_01_vals), 0,
28458         "T_scs60_r16_01", HFILL }},
28459     { &hf_lpp_scs120_r16_01,
28460       { "scs120-r16", "lpp.scs120_r16",
28461         FT_UINT32, BASE_DEC, VALS(lpp_T_scs120_r16_01_vals), 0,
28462         "T_scs120_r16_01", HFILL }},
28463     { &hf_lpp_dl_PRS_QCL_ProcessingCapabilityBandList_r16,
28464       { "dl-PRS-QCL-ProcessingCapabilityBandList-r16", "lpp.dl_PRS_QCL_ProcessingCapabilityBandList_r16",
28465         FT_UINT32, BASE_DEC, NULL, 0,
28466         "SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16", HFILL }},
28467     { &hf_lpp_dl_PRS_QCL_ProcessingCapabilityBandList_r16_item,
28468       { "DL-PRS-QCL-ProcessingCapabilityPerBand-r16", "lpp.DL_PRS_QCL_ProcessingCapabilityPerBand_r16_element",
28469         FT_NONE, BASE_NONE, NULL, 0,
28470         NULL, HFILL }},
28471     { &hf_lpp_ssb_FromNeighCellAsQCL_r16,
28472       { "ssb-FromNeighCellAsQCL-r16", "lpp.ssb_FromNeighCellAsQCL_r16",
28473         FT_UINT32, BASE_DEC, VALS(lpp_T_ssb_FromNeighCellAsQCL_r16_vals), 0,
28474         NULL, HFILL }},
28475     { &hf_lpp_prs_FromServNeighCellAsQCL_r16,
28476       { "prs-FromServNeighCellAsQCL-r16", "lpp.prs_FromServNeighCellAsQCL_r16",
28477         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_FromServNeighCellAsQCL_r16_vals), 0,
28478         NULL, HFILL }},
28479     { &hf_lpp_maxNrOfDL_PRS_ResourceSetPerTrpPerFrequencyLayer_r16,
28480       { "maxNrOfDL-PRS-ResourceSetPerTrpPerFrequencyLayer-r16", "lpp.maxNrOfDL_PRS_ResourceSetPerTrpPerFrequencyLayer_r16",
28481         FT_UINT32, BASE_DEC, NULL, 0,
28482         "INTEGER_1_2", HFILL }},
28483     { &hf_lpp_maxNrOfTRP_AcrossFreqs_r16,
28484       { "maxNrOfTRP-AcrossFreqs-r16", "lpp.maxNrOfTRP_AcrossFreqs_r16",
28485         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNrOfTRP_AcrossFreqs_r16_vals), 0,
28486         NULL, HFILL }},
28487     { &hf_lpp_maxNrOfPosLayer_r16,
28488       { "maxNrOfPosLayer-r16", "lpp.maxNrOfPosLayer_r16",
28489         FT_UINT32, BASE_DEC, NULL, 0,
28490         "INTEGER_1_4", HFILL }},
28491     { &hf_lpp_dl_PRS_ResourcesCapabilityBandList_r16,
28492       { "dl-PRS-ResourcesCapabilityBandList-r16", "lpp.dl_PRS_ResourcesCapabilityBandList_r16",
28493         FT_UINT32, BASE_DEC, NULL, 0,
28494         "SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16", HFILL }},
28495     { &hf_lpp_dl_PRS_ResourcesCapabilityBandList_r16_item,
28496       { "DL-PRS-ResourcesCapabilityPerBand-r16", "lpp.DL_PRS_ResourcesCapabilityPerBand_r16_element",
28497         FT_NONE, BASE_NONE, NULL, 0,
28498         NULL, HFILL }},
28499     { &hf_lpp_dl_PRS_ResourcesBandCombinationList_r16,
28500       { "dl-PRS-ResourcesBandCombinationList-r16", "lpp.dl_PRS_ResourcesBandCombinationList_r16",
28501         FT_UINT32, BASE_DEC, NULL, 0,
28502         NULL, HFILL }},
28503     { &hf_lpp_maxNrOfDL_PRS_ResourcesPerResourceSet_r16,
28504       { "maxNrOfDL-PRS-ResourcesPerResourceSet-r16", "lpp.maxNrOfDL_PRS_ResourcesPerResourceSet_r16",
28505         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16_vals), 0,
28506         "T_maxNrOfDL_PRS_ResourcesPerResourceSet_r16", HFILL }},
28507     { &hf_lpp_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16,
28508       { "maxNrOfDL-PRS-ResourcesPerPositioningFrequencylayer-r16", "lpp.maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16",
28509         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNrOfDL_PRS_ResourcesPerPositioningFrequencylayer_r16_vals), 0,
28510         NULL, HFILL }},
28511     { &hf_lpp_DL_PRS_ResourcesBandCombinationList_r16_item,
28512       { "DL-PRS-ResourcesBandCombination-r16", "lpp.DL_PRS_ResourcesBandCombination_r16_element",
28513         FT_NONE, BASE_NONE, NULL, 0,
28514         NULL, HFILL }},
28515     { &hf_lpp_bandList_r16,
28516       { "bandList-r16", "lpp.bandList_r16",
28517         FT_UINT32, BASE_DEC, NULL, 0,
28518         "SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16", HFILL }},
28519     { &hf_lpp_bandList_r16_item,
28520       { "FreqBandIndicatorNR-r16", "lpp.FreqBandIndicatorNR_r16",
28521         FT_UINT32, BASE_DEC, NULL, 0,
28522         NULL, HFILL }},
28523     { &hf_lpp_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16,
28524       { "maxNrOfDL-PRS-ResourcesAcrossAllFL-TRP-ResourceSet-r16", "lpp.maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16",
28525         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16_vals), 0,
28526         "T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16", HFILL }},
28527     { &hf_lpp_fr1_Only_r16,
28528       { "fr1-Only-r16", "lpp.fr1_Only_r16",
28529         FT_UINT32, BASE_DEC, VALS(lpp_T_fr1_Only_r16_vals), 0,
28530         NULL, HFILL }},
28531     { &hf_lpp_fr2_Only_r16,
28532       { "fr2-Only-r16", "lpp.fr2_Only_r16",
28533         FT_UINT32, BASE_DEC, VALS(lpp_T_fr2_Only_r16_vals), 0,
28534         NULL, HFILL }},
28535     { &hf_lpp_fr1_FR2Mix_r16,
28536       { "fr1-FR2Mix-r16", "lpp.fr1_FR2Mix_r16_element",
28537         FT_NONE, BASE_NONE, NULL, 0,
28538         NULL, HFILL }},
28539     { &hf_lpp_fr1_r16,
28540       { "fr1-r16", "lpp.fr1_r16",
28541         FT_UINT32, BASE_DEC, VALS(lpp_T_fr1_r16_vals), 0,
28542         NULL, HFILL }},
28543     { &hf_lpp_fr2_r16,
28544       { "fr2-r16", "lpp.fr2_r16",
28545         FT_UINT32, BASE_DEC, VALS(lpp_T_fr2_r16_vals), 0,
28546         NULL, HFILL }},
28547     { &hf_lpp_nr_TRP_LocationInfo_r16,
28548       { "nr-TRP-LocationInfo-r16", "lpp.nr_TRP_LocationInfo_r16",
28549         FT_UINT32, BASE_DEC, NULL, 0,
28550         NULL, HFILL }},
28551     { &hf_lpp_nr_DL_PRS_BeamInfo_r16,
28552       { "nr-DL-PRS-BeamInfo-r16", "lpp.nr_DL_PRS_BeamInfo_r16",
28553         FT_UINT32, BASE_DEC, NULL, 0,
28554         NULL, HFILL }},
28555     { &hf_lpp_nr_RTD_Info_r16,
28556       { "nr-RTD-Info-r16", "lpp.nr_RTD_Info_r16_element",
28557         FT_NONE, BASE_NONE, NULL, 0,
28558         NULL, HFILL }},
28559     { &hf_lpp_referenceTRP_RTD_Info_r16,
28560       { "referenceTRP-RTD-Info-r16", "lpp.referenceTRP_RTD_Info_r16_element",
28561         FT_NONE, BASE_NONE, NULL, 0,
28562         NULL, HFILL }},
28563     { &hf_lpp_rtd_InfoList_r16,
28564       { "rtd-InfoList-r16", "lpp.rtd_InfoList_r16",
28565         FT_UINT32, BASE_DEC, NULL, 0,
28566         NULL, HFILL }},
28567     { &hf_lpp_dl_PRS_ID_Ref_r16,
28568       { "dl-PRS-ID-Ref-r16", "lpp.dl_PRS_ID_Ref_r16",
28569         FT_UINT32, BASE_DEC, NULL, 0,
28570         "INTEGER_0_255", HFILL }},
28571     { &hf_lpp_nr_PhysCellID_Ref_r16,
28572       { "nr-PhysCellID-Ref-r16", "lpp.nr_PhysCellID_Ref_r16",
28573         FT_UINT32, BASE_DEC, NULL, 0,
28574         "NR_PhysCellID_r16", HFILL }},
28575     { &hf_lpp_nr_CellGlobalID_Ref_r16,
28576       { "nr-CellGlobalID-Ref-r16", "lpp.nr_CellGlobalID_Ref_r16_element",
28577         FT_NONE, BASE_NONE, NULL, 0,
28578         "NCGI_r15", HFILL }},
28579     { &hf_lpp_nr_ARFCN_Ref_r16,
28580       { "nr-ARFCN-Ref-r16", "lpp.nr_ARFCN_Ref_r16",
28581         FT_UINT32, BASE_DEC, NULL, 0,
28582         "ARFCN_ValueNR_r15", HFILL }},
28583     { &hf_lpp_refTime_r16,
28584       { "refTime-r16", "lpp.refTime_r16",
28585         FT_UINT32, BASE_DEC, VALS(lpp_T_refTime_r16_vals), 0,
28586         NULL, HFILL }},
28587     { &hf_lpp_systemFrameNumber_r16,
28588       { "systemFrameNumber-r16", "lpp.systemFrameNumber_r16",
28589         FT_BYTES, BASE_NONE, NULL, 0,
28590         "BIT_STRING_SIZE_10", HFILL }},
28591     { &hf_lpp_utc_r16,
28592       { "utc-r16", "lpp.utc_r16",
28593         FT_STRING, BASE_NONE, NULL, 0,
28594         "UTCTime", HFILL }},
28595     { &hf_lpp_rtd_RefQuality_r16,
28596       { "rtd-RefQuality-r16", "lpp.rtd_RefQuality_r16_element",
28597         FT_NONE, BASE_NONE, NULL, 0,
28598         "NR_TimingQuality_r16", HFILL }},
28599     { &hf_lpp_RTD_InfoList_r16_item,
28600       { "RTD-InfoListPerFreqLayer-r16", "lpp.RTD_InfoListPerFreqLayer_r16",
28601         FT_UINT32, BASE_DEC, NULL, 0,
28602         NULL, HFILL }},
28603     { &hf_lpp_RTD_InfoListPerFreqLayer_r16_item,
28604       { "RTD-InfoElement-r16", "lpp.RTD_InfoElement_r16_element",
28605         FT_NONE, BASE_NONE, NULL, 0,
28606         NULL, HFILL }},
28607     { &hf_lpp_subframeOffset_r16,
28608       { "subframeOffset-r16", "lpp.subframeOffset_r16",
28609         FT_UINT32, BASE_DEC, NULL, 0,
28610         "INTEGER_0_1966079", HFILL }},
28611     { &hf_lpp_rtd_Quality_r16,
28612       { "rtd-Quality-r16", "lpp.rtd_Quality_r16_element",
28613         FT_NONE, BASE_NONE, NULL, 0,
28614         "NR_TimingQuality_r16", HFILL }},
28615     { &hf_lpp_NR_SelectedDL_PRS_IndexList_r16_item,
28616       { "NR-SelectedDL-PRS-PerFreq-r16", "lpp.NR_SelectedDL_PRS_PerFreq_r16_element",
28617         FT_NONE, BASE_NONE, NULL, 0,
28618         NULL, HFILL }},
28619     { &hf_lpp_nr_SelectedDL_PRS_FrequencyLayerIndex_r16,
28620       { "nr-SelectedDL-PRS-FrequencyLayerIndex-r16", "lpp.nr_SelectedDL_PRS_FrequencyLayerIndex_r16",
28621         FT_UINT32, BASE_DEC, NULL, 0,
28622         "INTEGER_0_nrMaxFreqLayers_1_r16", HFILL }},
28623     { &hf_lpp_nr_SelectedDL_PRS_IndexListPerFreq_r16,
28624       { "nr-SelectedDL-PRS-IndexListPerFreq-r16", "lpp.nr_SelectedDL_PRS_IndexListPerFreq_r16",
28625         FT_UINT32, BASE_DEC, NULL, 0,
28626         "SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16", HFILL }},
28627     { &hf_lpp_nr_SelectedDL_PRS_IndexListPerFreq_r16_item,
28628       { "NR-SelectedDL-PRS-IndexPerTRP-r16", "lpp.NR_SelectedDL_PRS_IndexPerTRP_r16_element",
28629         FT_NONE, BASE_NONE, NULL, 0,
28630         NULL, HFILL }},
28631     { &hf_lpp_nr_SelectedTRP_Index_r16,
28632       { "nr-SelectedTRP-Index-r16", "lpp.nr_SelectedTRP_Index_r16",
28633         FT_UINT32, BASE_DEC, NULL, 0,
28634         "INTEGER_0_nrMaxTRPsPerFreq_1_r16", HFILL }},
28635     { &hf_lpp_dl_SelectedPRS_ResourceSetIndexList_r16,
28636       { "dl-SelectedPRS-ResourceSetIndexList-r16", "lpp.dl_SelectedPRS_ResourceSetIndexList_r16",
28637         FT_UINT32, BASE_DEC, NULL, 0,
28638         "SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16", HFILL }},
28639     { &hf_lpp_dl_SelectedPRS_ResourceSetIndexList_r16_item,
28640       { "DL-SelectedPRS-ResourceSetIndex-r16", "lpp.DL_SelectedPRS_ResourceSetIndex_r16_element",
28641         FT_NONE, BASE_NONE, NULL, 0,
28642         NULL, HFILL }},
28643     { &hf_lpp_nr_DL_SelectedPRS_ResourceSetIndex_r16,
28644       { "nr-DL-SelectedPRS-ResourceSetIndex-r16", "lpp.nr_DL_SelectedPRS_ResourceSetIndex_r16",
28645         FT_UINT32, BASE_DEC, NULL, 0,
28646         "INTEGER_0_nrMaxSetsPerTrpPerFreqLayer_1_r16", HFILL }},
28647     { &hf_lpp_dl_SelectedPRS_ResourceIndexList_r16,
28648       { "dl-SelectedPRS-ResourceIndexList-r16", "lpp.dl_SelectedPRS_ResourceIndexList_r16",
28649         FT_UINT32, BASE_DEC, NULL, 0,
28650         "SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16", HFILL }},
28651     { &hf_lpp_dl_SelectedPRS_ResourceIndexList_r16_item,
28652       { "DL-SelectedPRS-ResourceIndex-r16", "lpp.DL_SelectedPRS_ResourceIndex_r16_element",
28653         FT_NONE, BASE_NONE, NULL, 0,
28654         NULL, HFILL }},
28655     { &hf_lpp_nr_DL_SelectedPRS_ResourceIdIndex_r16,
28656       { "nr-DL-SelectedPRS-ResourceIdIndex-r16", "lpp.nr_DL_SelectedPRS_ResourceIdIndex_r16",
28657         FT_UINT32, BASE_DEC, NULL, 0,
28658         "INTEGER_0_nrMaxNumDL_PRS_ResourcesPerSet_1_r16", HFILL }},
28659     { &hf_lpp_ss_PBCH_BlockPower_r16,
28660       { "ss-PBCH-BlockPower-r16", "lpp.ss_PBCH_BlockPower_r16",
28661         FT_INT32, BASE_DEC, NULL, 0,
28662         "INTEGER_M60_50", HFILL }},
28663     { &hf_lpp_halfFrameIndex_r16,
28664       { "halfFrameIndex-r16", "lpp.halfFrameIndex_r16",
28665         FT_UINT32, BASE_DEC, NULL, 0,
28666         "INTEGER_0_1", HFILL }},
28667     { &hf_lpp_ssb_periodicity_r16,
28668       { "ssb-periodicity-r16", "lpp.ssb_periodicity_r16",
28669         FT_UINT32, BASE_DEC, VALS(lpp_T_ssb_periodicity_r16_vals), 0,
28670         NULL, HFILL }},
28671     { &hf_lpp_ssb_PositionsInBurst_r16,
28672       { "ssb-PositionsInBurst-r16", "lpp.ssb_PositionsInBurst_r16",
28673         FT_UINT32, BASE_DEC, VALS(lpp_T_ssb_PositionsInBurst_r16_vals), 0,
28674         "T_ssb_PositionsInBurst_r16", HFILL }},
28675     { &hf_lpp_shortBitmap_r16,
28676       { "shortBitmap-r16", "lpp.shortBitmap_r16",
28677         FT_BYTES, BASE_NONE, NULL, 0,
28678         "BIT_STRING_SIZE_4", HFILL }},
28679     { &hf_lpp_mediumBitmap_r16,
28680       { "mediumBitmap-r16", "lpp.mediumBitmap_r16",
28681         FT_BYTES, BASE_NONE, NULL, 0,
28682         "BIT_STRING_SIZE_8", HFILL }},
28683     { &hf_lpp_longBitmap_r16,
28684       { "longBitmap-r16", "lpp.longBitmap_r16",
28685         FT_BYTES, BASE_NONE, NULL, 0,
28686         "BIT_STRING_SIZE_64", HFILL }},
28687     { &hf_lpp_ssb_SubcarrierSpacing_r16,
28688       { "ssb-SubcarrierSpacing-r16", "lpp.ssb_SubcarrierSpacing_r16",
28689         FT_UINT32, BASE_DEC, VALS(lpp_T_ssb_SubcarrierSpacing_r16_vals), 0,
28690         NULL, HFILL }},
28691     { &hf_lpp_sfn_SSB_Offset_r16,
28692       { "sfn-SSB-Offset-r16", "lpp.sfn_SSB_Offset_r16",
28693         FT_UINT32, BASE_DEC, NULL, 0,
28694         "INTEGER_0_15", HFILL }},
28695     { &hf_lpp_nr_SFN_r16,
28696       { "nr-SFN-r16", "lpp.nr_SFN_r16",
28697         FT_UINT32, BASE_DEC, NULL, 0,
28698         "INTEGER_0_1023", HFILL }},
28699     { &hf_lpp_nr_Slot_r16,
28700       { "nr-Slot-r16", "lpp.nr_Slot_r16",
28701         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_Slot_r16_vals), 0,
28702         "T_nr_Slot_r16", HFILL }},
28703     { &hf_lpp_scs15_r16_02,
28704       { "scs15-r16", "lpp.scs15_r16",
28705         FT_UINT32, BASE_DEC, NULL, 0,
28706         "INTEGER_0_9", HFILL }},
28707     { &hf_lpp_scs30_r16_02,
28708       { "scs30-r16", "lpp.scs30_r16",
28709         FT_UINT32, BASE_DEC, NULL, 0,
28710         "INTEGER_0_19", HFILL }},
28711     { &hf_lpp_scs60_r16_02,
28712       { "scs60-r16", "lpp.scs60_r16",
28713         FT_UINT32, BASE_DEC, NULL, 0,
28714         "INTEGER_0_39", HFILL }},
28715     { &hf_lpp_scs120_r16_02,
28716       { "scs120-r16", "lpp.scs120_r16",
28717         FT_UINT32, BASE_DEC, NULL, 0,
28718         "INTEGER_0_79", HFILL }},
28719     { &hf_lpp_timingQualityValue_r16,
28720       { "timingQualityValue-r16", "lpp.timingQualityValue_r16",
28721         FT_UINT32, BASE_DEC, NULL, 0,
28722         "INTEGER_0_31", HFILL }},
28723     { &hf_lpp_timingQualityResolution_r16,
28724       { "timingQualityResolution-r16", "lpp.timingQualityResolution_r16",
28725         FT_UINT32, BASE_DEC, VALS(lpp_T_timingQualityResolution_r16_vals), 0,
28726         NULL, HFILL }},
28727     { &hf_lpp_NR_TRP_LocationInfo_r16_item,
28728       { "NR-TRP-LocationInfoPerFreqLayer-r16", "lpp.NR_TRP_LocationInfoPerFreqLayer_r16_element",
28729         FT_NONE, BASE_NONE, NULL, 0,
28730         NULL, HFILL }},
28731     { &hf_lpp_referencePoint_r16,
28732       { "referencePoint-r16", "lpp.referencePoint_r16_element",
28733         FT_NONE, BASE_NONE, NULL, 0,
28734         NULL, HFILL }},
28735     { &hf_lpp_trp_LocationInfoList_r16,
28736       { "trp-LocationInfoList-r16", "lpp.trp_LocationInfoList_r16",
28737         FT_UINT32, BASE_DEC, NULL, 0,
28738         "SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16", HFILL }},
28739     { &hf_lpp_trp_LocationInfoList_r16_item,
28740       { "TRP-LocationInfoElement-r16", "lpp.TRP_LocationInfoElement_r16_element",
28741         FT_NONE, BASE_NONE, NULL, 0,
28742         NULL, HFILL }},
28743     { &hf_lpp_trp_Location_r16,
28744       { "trp-Location-r16", "lpp.trp_Location_r16_element",
28745         FT_NONE, BASE_NONE, NULL, 0,
28746         "RelativeLocation_r16", HFILL }},
28747     { &hf_lpp_trp_DL_PRS_ResourceSets_r16,
28748       { "trp-DL-PRS-ResourceSets-r16", "lpp.trp_DL_PRS_ResourceSets_r16",
28749         FT_UINT32, BASE_DEC, NULL, 0,
28750         "SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16", HFILL }},
28751     { &hf_lpp_trp_DL_PRS_ResourceSets_r16_item,
28752       { "DL-PRS-ResourceSets-TRP-Element-r16", "lpp.DL_PRS_ResourceSets_TRP_Element_r16_element",
28753         FT_NONE, BASE_NONE, NULL, 0,
28754         NULL, HFILL }},
28755     { &hf_lpp_dl_PRS_ResourceSetARP_r16,
28756       { "dl-PRS-ResourceSetARP-r16", "lpp.dl_PRS_ResourceSetARP_r16_element",
28757         FT_NONE, BASE_NONE, NULL, 0,
28758         "RelativeLocation_r16", HFILL }},
28759     { &hf_lpp_dl_PRS_Resource_ARP_List_r16,
28760       { "dl-PRS-Resource-ARP-List-r16", "lpp.dl_PRS_Resource_ARP_List_r16",
28761         FT_UINT32, BASE_DEC, NULL, 0,
28762         "SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16", HFILL }},
28763     { &hf_lpp_dl_PRS_Resource_ARP_List_r16_item,
28764       { "DL-PRS-Resource-ARP-Element-r16", "lpp.DL_PRS_Resource_ARP_Element_r16_element",
28765         FT_NONE, BASE_NONE, NULL, 0,
28766         NULL, HFILL }},
28767     { &hf_lpp_dl_PRS_Resource_ARP_location_r16,
28768       { "dl-PRS-Resource-ARP-location-r16", "lpp.dl_PRS_Resource_ARP_location_r16_element",
28769         FT_NONE, BASE_NONE, NULL, 0,
28770         "RelativeLocation_r16", HFILL }},
28771     { &hf_lpp_srs_CapabilityBandList_r16,
28772       { "srs-CapabilityBandList-r16", "lpp.srs_CapabilityBandList_r16",
28773         FT_UINT32, BASE_DEC, NULL, 0,
28774         "SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16", HFILL }},
28775     { &hf_lpp_srs_CapabilityBandList_r16_item,
28776       { "SRS-CapabilityPerBand-r16", "lpp.SRS_CapabilityPerBand_r16_element",
28777         FT_NONE, BASE_NONE, NULL, 0,
28778         NULL, HFILL }},
28779     { &hf_lpp_srs_PosResourceConfigCA_BandList_r16,
28780       { "srs-PosResourceConfigCA-BandList-r16", "lpp.srs_PosResourceConfigCA_BandList_r16",
28781         FT_UINT32, BASE_DEC, NULL, 0,
28782         "SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16", HFILL }},
28783     { &hf_lpp_srs_PosResourceConfigCA_BandList_r16_item,
28784       { "SRS-PosResourcesPerBand-r16", "lpp.SRS_PosResourcesPerBand_r16_element",
28785         FT_NONE, BASE_NONE, NULL, 0,
28786         NULL, HFILL }},
28787     { &hf_lpp_maxNumberSRS_PosPathLossEstimateAllServingCells_r16,
28788       { "maxNumberSRS-PosPathLossEstimateAllServingCells-r16", "lpp.maxNumberSRS_PosPathLossEstimateAllServingCells_r16",
28789         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberSRS_PosPathLossEstimateAllServingCells_r16_vals), 0,
28790         NULL, HFILL }},
28791     { &hf_lpp_maxNumberSRS_PosSpatialRelationsAllServingCells_r16,
28792       { "maxNumberSRS-PosSpatialRelationsAllServingCells-r16", "lpp.maxNumberSRS_PosSpatialRelationsAllServingCells_r16",
28793         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberSRS_PosSpatialRelationsAllServingCells_r16_vals), 0,
28794         NULL, HFILL }},
28795     { &hf_lpp_olpc_SRS_Pos_r16,
28796       { "olpc-SRS-Pos-r16", "lpp.olpc_SRS_Pos_r16_element",
28797         FT_NONE, BASE_NONE, NULL, 0,
28798         NULL, HFILL }},
28799     { &hf_lpp_spatialRelationsSRS_Pos_r16,
28800       { "spatialRelationsSRS-Pos-r16", "lpp.spatialRelationsSRS_Pos_r16_element",
28801         FT_NONE, BASE_NONE, NULL, 0,
28802         NULL, HFILL }},
28803     { &hf_lpp_olpc_SRS_PosBasedOnPRS_Serving_r16,
28804       { "olpc-SRS-PosBasedOnPRS-Serving-r16", "lpp.olpc_SRS_PosBasedOnPRS_Serving_r16",
28805         FT_UINT32, BASE_DEC, VALS(lpp_T_olpc_SRS_PosBasedOnPRS_Serving_r16_vals), 0,
28806         NULL, HFILL }},
28807     { &hf_lpp_olpc_SRS_PosBasedOnSSB_Neigh_r16,
28808       { "olpc-SRS-PosBasedOnSSB-Neigh-r16", "lpp.olpc_SRS_PosBasedOnSSB_Neigh_r16",
28809         FT_UINT32, BASE_DEC, VALS(lpp_T_olpc_SRS_PosBasedOnSSB_Neigh_r16_vals), 0,
28810         NULL, HFILL }},
28811     { &hf_lpp_olpc_SRS_PosBasedOnPRS_Neigh_r16,
28812       { "olpc-SRS-PosBasedOnPRS-Neigh-r16", "lpp.olpc_SRS_PosBasedOnPRS_Neigh_r16",
28813         FT_UINT32, BASE_DEC, VALS(lpp_T_olpc_SRS_PosBasedOnPRS_Neigh_r16_vals), 0,
28814         NULL, HFILL }},
28815     { &hf_lpp_maxNumberPathLossEstimatePerServing_r16,
28816       { "maxNumberPathLossEstimatePerServing-r16", "lpp.maxNumberPathLossEstimatePerServing_r16",
28817         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberPathLossEstimatePerServing_r16_vals), 0,
28818         NULL, HFILL }},
28819     { &hf_lpp_spatialRelation_SRS_PosBasedOnSSB_Serving_r16,
28820       { "spatialRelation-SRS-PosBasedOnSSB-Serving-r16", "lpp.spatialRelation_SRS_PosBasedOnSSB_Serving_r16",
28821         FT_UINT32, BASE_DEC, VALS(lpp_T_spatialRelation_SRS_PosBasedOnSSB_Serving_r16_vals), 0,
28822         NULL, HFILL }},
28823     { &hf_lpp_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16,
28824       { "spatialRelation-SRS-PosBasedOnCSI-RS-Serving-r16", "lpp.spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16",
28825         FT_UINT32, BASE_DEC, VALS(lpp_T_spatialRelation_SRS_PosBasedOnCSI_RS_Serving_r16_vals), 0,
28826         NULL, HFILL }},
28827     { &hf_lpp_spatialRelation_SRS_PosBasedOnPRS_Serving_r16,
28828       { "spatialRelation-SRS-PosBasedOnPRS-Serving-r16", "lpp.spatialRelation_SRS_PosBasedOnPRS_Serving_r16",
28829         FT_UINT32, BASE_DEC, VALS(lpp_T_spatialRelation_SRS_PosBasedOnPRS_Serving_r16_vals), 0,
28830         NULL, HFILL }},
28831     { &hf_lpp_spatialRelation_SRS_PosBasedOnSRS_r16,
28832       { "spatialRelation-SRS-PosBasedOnSRS-r16", "lpp.spatialRelation_SRS_PosBasedOnSRS_r16",
28833         FT_UINT32, BASE_DEC, VALS(lpp_T_spatialRelation_SRS_PosBasedOnSRS_r16_vals), 0,
28834         NULL, HFILL }},
28835     { &hf_lpp_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16,
28836       { "spatialRelation-SRS-PosBasedOnSSB-Neigh-r16", "lpp.spatialRelation_SRS_PosBasedOnSSB_Neigh_r16",
28837         FT_UINT32, BASE_DEC, VALS(lpp_T_spatialRelation_SRS_PosBasedOnSSB_Neigh_r16_vals), 0,
28838         NULL, HFILL }},
28839     { &hf_lpp_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16,
28840       { "spatialRelation-SRS-PosBasedOnPRS-Neigh-r16", "lpp.spatialRelation_SRS_PosBasedOnPRS_Neigh_r16",
28841         FT_UINT32, BASE_DEC, VALS(lpp_T_spatialRelation_SRS_PosBasedOnPRS_Neigh_r16_vals), 0,
28842         NULL, HFILL }},
28843     { &hf_lpp_maxNumberSRS_PosResourceSetsPerBWP_r16,
28844       { "maxNumberSRS-PosResourceSetsPerBWP-r16", "lpp.maxNumberSRS_PosResourceSetsPerBWP_r16",
28845         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberSRS_PosResourceSetsPerBWP_r16_vals), 0,
28846         NULL, HFILL }},
28847     { &hf_lpp_maxNumberSRS_PosResourcesPerBWP_r16,
28848       { "maxNumberSRS-PosResourcesPerBWP-r16", "lpp.maxNumberSRS_PosResourcesPerBWP_r16",
28849         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberSRS_PosResourcesPerBWP_r16_vals), 0,
28850         NULL, HFILL }},
28851     { &hf_lpp_maxNumberPeriodicSRS_PosResourcesPerBWP_r16,
28852       { "maxNumberPeriodicSRS-PosResourcesPerBWP-r16", "lpp.maxNumberPeriodicSRS_PosResourcesPerBWP_r16",
28853         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberPeriodicSRS_PosResourcesPerBWP_r16_vals), 0,
28854         NULL, HFILL }},
28855     { &hf_lpp_maxNumberAP_SRS_PosResourcesPerBWP_r16,
28856       { "maxNumberAP-SRS-PosResourcesPerBWP-r16", "lpp.maxNumberAP_SRS_PosResourcesPerBWP_r16",
28857         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberAP_SRS_PosResourcesPerBWP_r16_vals), 0,
28858         NULL, HFILL }},
28859     { &hf_lpp_maxNumberSP_SRS_PosResourcesPerBWP_r16,
28860       { "maxNumberSP-SRS-PosResourcesPerBWP-r16", "lpp.maxNumberSP_SRS_PosResourcesPerBWP_r16",
28861         FT_UINT32, BASE_DEC, VALS(lpp_T_maxNumberSP_SRS_PosResourcesPerBWP_r16_vals), 0,
28862         NULL, HFILL }},
28863     { &hf_lpp_referencePointGeographicLocation_r16,
28864       { "referencePointGeographicLocation-r16", "lpp.referencePointGeographicLocation_r16",
28865         FT_UINT32, BASE_DEC, VALS(lpp_T_referencePointGeographicLocation_r16_vals), 0,
28866         NULL, HFILL }},
28867     { &hf_lpp_location3D_r16,
28868       { "location3D-r16", "lpp.location3D_r16_element",
28869         FT_NONE, BASE_NONE, NULL, 0,
28870         "EllipsoidPointWithAltitudeAndUncertaintyEllipsoid", HFILL }},
28871     { &hf_lpp_ha_location3D_r16,
28872       { "ha-location3D-r16", "lpp.ha_location3D_r16_element",
28873         FT_NONE, BASE_NONE, NULL, 0,
28874         "HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15", HFILL }},
28875     { &hf_lpp_milli_arc_second_units_r16,
28876       { "milli-arc-second-units-r16", "lpp.milli_arc_second_units_r16",
28877         FT_UINT32, BASE_DEC, VALS(lpp_T_milli_arc_second_units_r16_vals), 0,
28878         NULL, HFILL }},
28879     { &hf_lpp_height_units_r16,
28880       { "height-units-r16", "lpp.height_units_r16",
28881         FT_UINT32, BASE_DEC, VALS(lpp_T_height_units_r16_vals), 0,
28882         "T_height_units_r16", HFILL }},
28883     { &hf_lpp_delta_latitude_r16,
28884       { "delta-latitude-r16", "lpp.delta_latitude_r16_element",
28885         FT_NONE, BASE_NONE, NULL, 0,
28886         NULL, HFILL }},
28887     { &hf_lpp_delta_longitude_r16,
28888       { "delta-longitude-r16", "lpp.delta_longitude_r16_element",
28889         FT_NONE, BASE_NONE, NULL, 0,
28890         NULL, HFILL }},
28891     { &hf_lpp_delta_height_r16,
28892       { "delta-height-r16", "lpp.delta_height_r16_element",
28893         FT_NONE, BASE_NONE, NULL, 0,
28894         NULL, HFILL }},
28895     { &hf_lpp_locationUNC_r16,
28896       { "locationUNC-r16", "lpp.locationUNC_r16_element",
28897         FT_NONE, BASE_NONE, NULL, 0,
28898         "LocationUncertainty_r16", HFILL }},
28899     { &hf_lpp_delta_Latitude_r16,
28900       { "delta-Latitude-r16", "lpp.delta_Latitude_r16",
28901         FT_INT32, BASE_DEC, NULL, 0,
28902         "INTEGER_M1024_1023", HFILL }},
28903     { &hf_lpp_coarse_delta_Latitude_r16,
28904       { "coarse-delta-Latitude-r16", "lpp.coarse_delta_Latitude_r16",
28905         FT_UINT32, BASE_DEC, NULL, 0,
28906         "INTEGER_0_4095", HFILL }},
28907     { &hf_lpp_delta_Longitude_r16,
28908       { "delta-Longitude-r16", "lpp.delta_Longitude_r16",
28909         FT_INT32, BASE_DEC, NULL, 0,
28910         "INTEGER_M1024_1023", HFILL }},
28911     { &hf_lpp_coarse_delta_Longitude_r16,
28912       { "coarse-delta-Longitude-r16", "lpp.coarse_delta_Longitude_r16",
28913         FT_UINT32, BASE_DEC, NULL, 0,
28914         "INTEGER_0_4095", HFILL }},
28915     { &hf_lpp_delta_Height_r16,
28916       { "delta-Height-r16", "lpp.delta_Height_r16",
28917         FT_INT32, BASE_DEC, NULL, 0,
28918         "INTEGER_M1024_1023", HFILL }},
28919     { &hf_lpp_coarse_delta_Height_r16,
28920       { "coarse-delta-Height-r16", "lpp.coarse_delta_Height_r16",
28921         FT_UINT32, BASE_DEC, NULL, 0,
28922         "INTEGER_0_4095", HFILL }},
28923     { &hf_lpp_horizontalUncertainty_r16,
28924       { "horizontalUncertainty-r16", "lpp.horizontalUncertainty_r16",
28925         FT_UINT32, BASE_DEC, NULL, 0,
28926         "INTEGER_0_255", HFILL }},
28927     { &hf_lpp_horizontalConfidence_r16,
28928       { "horizontalConfidence-r16", "lpp.horizontalConfidence_r16",
28929         FT_UINT32, BASE_DEC, NULL, 0,
28930         "INTEGER_0_100", HFILL }},
28931     { &hf_lpp_verticalUncertainty_r16,
28932       { "verticalUncertainty-r16", "lpp.verticalUncertainty_r16",
28933         FT_UINT32, BASE_DEC, NULL, 0,
28934         "INTEGER_0_255", HFILL }},
28935     { &hf_lpp_verticalConfidence_r16,
28936       { "verticalConfidence-r16", "lpp.verticalConfidence_r16",
28937         FT_UINT32, BASE_DEC, NULL, 0,
28938         "INTEGER_0_100", HFILL }},
28939     { &hf_lpp_otdoa_ReferenceCellInfo,
28940       { "otdoa-ReferenceCellInfo", "lpp.otdoa_ReferenceCellInfo_element",
28941         FT_NONE, BASE_NONE, NULL, 0,
28942         NULL, HFILL }},
28943     { &hf_lpp_otdoa_NeighbourCellInfo,
28944       { "otdoa-NeighbourCellInfo", "lpp.otdoa_NeighbourCellInfo",
28945         FT_UINT32, BASE_DEC, NULL, 0,
28946         "OTDOA_NeighbourCellInfoList", HFILL }},
28947     { &hf_lpp_otdoa_Error,
28948       { "otdoa-Error", "lpp.otdoa_Error",
28949         FT_UINT32, BASE_DEC, VALS(lpp_OTDOA_Error_vals), 0,
28950         NULL, HFILL }},
28951     { &hf_lpp_otdoa_ReferenceCellInfoNB_r14,
28952       { "otdoa-ReferenceCellInfoNB-r14", "lpp.otdoa_ReferenceCellInfoNB_r14_element",
28953         FT_NONE, BASE_NONE, NULL, 0,
28954         NULL, HFILL }},
28955     { &hf_lpp_otdoa_NeighbourCellInfoNB_r14,
28956       { "otdoa-NeighbourCellInfoNB-r14", "lpp.otdoa_NeighbourCellInfoNB_r14",
28957         FT_UINT32, BASE_DEC, NULL, 0,
28958         "OTDOA_NeighbourCellInfoListNB_r14", HFILL }},
28959     { &hf_lpp_physCellId,
28960       { "physCellId", "lpp.physCellId",
28961         FT_UINT32, BASE_DEC, NULL, 0,
28962         "INTEGER_0_503", HFILL }},
28963     { &hf_lpp_cellGlobalId,
28964       { "cellGlobalId", "lpp.cellGlobalId_element",
28965         FT_NONE, BASE_NONE, NULL, 0,
28966         "ECGI", HFILL }},
28967     { &hf_lpp_earfcnRef,
28968       { "earfcnRef", "lpp.earfcnRef",
28969         FT_UINT32, BASE_DEC, NULL, 0,
28970         "ARFCN_ValueEUTRA", HFILL }},
28971     { &hf_lpp_antennaPortConfig,
28972       { "antennaPortConfig", "lpp.antennaPortConfig",
28973         FT_UINT32, BASE_DEC, VALS(lpp_T_antennaPortConfig_vals), 0,
28974         NULL, HFILL }},
28975     { &hf_lpp_cpLength,
28976       { "cpLength", "lpp.cpLength",
28977         FT_UINT32, BASE_DEC, VALS(lpp_T_cpLength_vals), 0,
28978         NULL, HFILL }},
28979     { &hf_lpp_prsInfo,
28980       { "prsInfo", "lpp.prsInfo_element",
28981         FT_NONE, BASE_NONE, NULL, 0,
28982         "PRS_Info", HFILL }},
28983     { &hf_lpp_earfcnRef_v9a0,
28984       { "earfcnRef-v9a0", "lpp.earfcnRef_v9a0",
28985         FT_UINT32, BASE_DEC, NULL, 0,
28986         "ARFCN_ValueEUTRA_v9a0", HFILL }},
28987     { &hf_lpp_tpId_r14,
28988       { "tpId-r14", "lpp.tpId_r14",
28989         FT_UINT32, BASE_DEC, NULL, 0,
28990         "INTEGER_0_4095", HFILL }},
28991     { &hf_lpp_cpLengthCRS_r14,
28992       { "cpLengthCRS-r14", "lpp.cpLengthCRS_r14",
28993         FT_UINT32, BASE_DEC, VALS(lpp_T_cpLengthCRS_r14_vals), 0,
28994         NULL, HFILL }},
28995     { &hf_lpp_sameMBSFNconfigRef_r14,
28996       { "sameMBSFNconfigRef-r14", "lpp.sameMBSFNconfigRef_r14",
28997         FT_BOOLEAN, BASE_NONE, NULL, 0,
28998         "BOOLEAN", HFILL }},
28999     { &hf_lpp_dlBandwidth_r14,
29000       { "dlBandwidth-r14", "lpp.dlBandwidth_r14",
29001         FT_UINT32, BASE_DEC, VALS(lpp_T_dlBandwidth_r14_vals), 0,
29002         NULL, HFILL }},
29003     { &hf_lpp_addPRSconfigRef_r14,
29004       { "addPRSconfigRef-r14", "lpp.addPRSconfigRef_r14",
29005         FT_UINT32, BASE_DEC, NULL, 0,
29006         "SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info", HFILL }},
29007     { &hf_lpp_addPRSconfigRef_r14_item,
29008       { "PRS-Info", "lpp.PRS_Info_element",
29009         FT_NONE, BASE_NONE, NULL, 0,
29010         NULL, HFILL }},
29011     { &hf_lpp_nr_LTE_SFN_Offset_r15,
29012       { "nr-LTE-SFN-Offset-r15", "lpp.nr_LTE_SFN_Offset_r15",
29013         FT_UINT32, BASE_DEC, NULL, 0,
29014         "INTEGER_0_1023", HFILL }},
29015     { &hf_lpp_tdd_config_v1520,
29016       { "tdd-config-v1520", "lpp.tdd_config_v1520_element",
29017         FT_NONE, BASE_NONE, NULL, 0,
29018         NULL, HFILL }},
29019     { &hf_lpp_nr_LTE_fineTiming_Offset_r15,
29020       { "nr-LTE-fineTiming-Offset-r15", "lpp.nr_LTE_fineTiming_Offset_r15",
29021         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_nr_LTE_fineTiming_Offset_fmt), 0,
29022         "INTEGER_0_19", HFILL }},
29023     { &hf_lpp_prs_Bandwidth,
29024       { "prs-Bandwidth", "lpp.prs_Bandwidth",
29025         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_Bandwidth_vals), 0,
29026         NULL, HFILL }},
29027     { &hf_lpp_prs_ConfigurationIndex,
29028       { "prs-ConfigurationIndex", "lpp.prs_ConfigurationIndex",
29029         FT_UINT32, BASE_DEC, NULL, 0,
29030         "INTEGER_0_4095", HFILL }},
29031     { &hf_lpp_numDL_Frames,
29032       { "numDL-Frames", "lpp.numDL_Frames",
29033         FT_UINT32, BASE_DEC, VALS(lpp_T_numDL_Frames_vals), 0,
29034         NULL, HFILL }},
29035     { &hf_lpp_prs_MutingInfo_r9,
29036       { "prs-MutingInfo-r9", "lpp.prs_MutingInfo_r9",
29037         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_MutingInfo_r9_vals), 0,
29038         NULL, HFILL }},
29039     { &hf_lpp_po2_r9,
29040       { "po2-r9", "lpp.po2_r9",
29041         FT_BYTES, BASE_NONE, NULL, 0,
29042         "BIT_STRING_SIZE_2", HFILL }},
29043     { &hf_lpp_po4_r9,
29044       { "po4-r9", "lpp.po4_r9",
29045         FT_BYTES, BASE_NONE, NULL, 0,
29046         "BIT_STRING_SIZE_4", HFILL }},
29047     { &hf_lpp_po8_r9,
29048       { "po8-r9", "lpp.po8_r9",
29049         FT_BYTES, BASE_NONE, NULL, 0,
29050         "BIT_STRING_SIZE_8", HFILL }},
29051     { &hf_lpp_po16_r9,
29052       { "po16-r9", "lpp.po16_r9",
29053         FT_BYTES, BASE_NONE, NULL, 0,
29054         "BIT_STRING_SIZE_16", HFILL }},
29055     { &hf_lpp_po32_v1420,
29056       { "po32-v1420", "lpp.po32_v1420",
29057         FT_BYTES, BASE_NONE, NULL, 0,
29058         "BIT_STRING_SIZE_32", HFILL }},
29059     { &hf_lpp_po64_v1420,
29060       { "po64-v1420", "lpp.po64_v1420",
29061         FT_BYTES, BASE_NONE, NULL, 0,
29062         "BIT_STRING_SIZE_64", HFILL }},
29063     { &hf_lpp_po128_v1420,
29064       { "po128-v1420", "lpp.po128_v1420",
29065         FT_BYTES, BASE_NONE, NULL, 0,
29066         "BIT_STRING_SIZE_128", HFILL }},
29067     { &hf_lpp_po256_v1420,
29068       { "po256-v1420", "lpp.po256_v1420",
29069         FT_BYTES, BASE_NONE, NULL, 0,
29070         "BIT_STRING_SIZE_256", HFILL }},
29071     { &hf_lpp_po512_v1420,
29072       { "po512-v1420", "lpp.po512_v1420",
29073         FT_BYTES, BASE_NONE, NULL, 0,
29074         "BIT_STRING_SIZE_512", HFILL }},
29075     { &hf_lpp_po1024_v1420,
29076       { "po1024-v1420", "lpp.po1024_v1420",
29077         FT_BYTES, BASE_NONE, NULL, 0,
29078         "BIT_STRING_SIZE_1024", HFILL }},
29079     { &hf_lpp_prsID_r14,
29080       { "prsID-r14", "lpp.prsID_r14",
29081         FT_UINT32, BASE_DEC, NULL, 0,
29082         "INTEGER_0_4095", HFILL }},
29083     { &hf_lpp_add_numDL_Frames_r14,
29084       { "add-numDL-Frames-r14", "lpp.add_numDL_Frames_r14",
29085         FT_UINT32, BASE_DEC, NULL, 0,
29086         "INTEGER_1_160", HFILL }},
29087     { &hf_lpp_prsOccGroupLen_r14,
29088       { "prsOccGroupLen-r14", "lpp.prsOccGroupLen_r14",
29089         FT_UINT32, BASE_DEC, VALS(lpp_T_prsOccGroupLen_r14_vals), 0,
29090         NULL, HFILL }},
29091     { &hf_lpp_prsHoppingInfo_r14,
29092       { "prsHoppingInfo-r14", "lpp.prsHoppingInfo_r14",
29093         FT_UINT32, BASE_DEC, VALS(lpp_T_prsHoppingInfo_r14_vals), 0,
29094         NULL, HFILL }},
29095     { &hf_lpp_nb2_r14,
29096       { "nb2-r14", "lpp.nb2_r14",
29097         FT_UINT32, BASE_DEC, NULL, 0,
29098         "INTEGER_0_maxAvailNarrowBands_Minus1_r14", HFILL }},
29099     { &hf_lpp_nb4_r14,
29100       { "nb4-r14", "lpp.nb4_r14",
29101         FT_UINT32, BASE_DEC, NULL, 0,
29102         NULL, HFILL }},
29103     { &hf_lpp_nb4_r14_item,
29104       { "nb4-r14 item", "lpp.nb4_r14_item",
29105         FT_UINT32, BASE_DEC, NULL, 0,
29106         "INTEGER_0_maxAvailNarrowBands_Minus1_r14", HFILL }},
29107     { &hf_lpp_subframeAssignment_v1520,
29108       { "subframeAssignment-v1520", "lpp.subframeAssignment_v1520",
29109         FT_UINT32, BASE_DEC, VALS(lpp_T_subframeAssignment_v1520_vals), 0,
29110         "T_subframeAssignment_v1520", HFILL }},
29111     { &hf_lpp_OTDOA_NeighbourCellInfoList_item,
29112       { "OTDOA-NeighbourFreqInfo", "lpp.OTDOA_NeighbourFreqInfo",
29113         FT_UINT32, BASE_DEC, NULL, 0,
29114         NULL, HFILL }},
29115     { &hf_lpp_OTDOA_NeighbourFreqInfo_item,
29116       { "OTDOA-NeighbourCellInfoElement", "lpp.OTDOA_NeighbourCellInfoElement_element",
29117         FT_NONE, BASE_NONE, NULL, 0,
29118         NULL, HFILL }},
29119     { &hf_lpp_earfcn,
29120       { "earfcn", "lpp.earfcn",
29121         FT_UINT32, BASE_DEC, NULL, 0,
29122         "ARFCN_ValueEUTRA", HFILL }},
29123     { &hf_lpp_cpLength_01,
29124       { "cpLength", "lpp.cpLength",
29125         FT_UINT32, BASE_DEC, VALS(lpp_T_cpLength_01_vals), 0,
29126         "T_cpLength_01", HFILL }},
29127     { &hf_lpp_antennaPortConfig_01,
29128       { "antennaPortConfig", "lpp.antennaPortConfig",
29129         FT_UINT32, BASE_DEC, VALS(lpp_T_antennaPortConfig_01_vals), 0,
29130         "T_antennaPortConfig_01", HFILL }},
29131     { &hf_lpp_slotNumberOffset,
29132       { "slotNumberOffset", "lpp.slotNumberOffset",
29133         FT_UINT32, BASE_DEC, NULL, 0,
29134         "INTEGER_0_19", HFILL }},
29135     { &hf_lpp_prs_SubframeOffset,
29136       { "prs-SubframeOffset", "lpp.prs_SubframeOffset",
29137         FT_UINT32, BASE_DEC, NULL, 0,
29138         "INTEGER_0_1279", HFILL }},
29139     { &hf_lpp_expectedRSTD,
29140       { "expectedRSTD", "lpp.expectedRSTD",
29141         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_expectedRSTD_fmt), 0,
29142         "INTEGER_0_16383", HFILL }},
29143     { &hf_lpp_expectedRSTD_Uncertainty,
29144       { "expectedRSTD-Uncertainty", "lpp.expectedRSTD_Uncertainty",
29145         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_expectedRSTD_Uncertainty_fmt), 0,
29146         "INTEGER_0_1023", HFILL }},
29147     { &hf_lpp_earfcn_v9a0,
29148       { "earfcn-v9a0", "lpp.earfcn_v9a0",
29149         FT_UINT32, BASE_DEC, NULL, 0,
29150         "ARFCN_ValueEUTRA_v9a0", HFILL }},
29151     { &hf_lpp_prs_only_tp_r14,
29152       { "prs-only-tp-r14", "lpp.prs_only_tp_r14",
29153         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_only_tp_r14_vals), 0,
29154         NULL, HFILL }},
29155     { &hf_lpp_cpLengthCRS_r14_01,
29156       { "cpLengthCRS-r14", "lpp.cpLengthCRS_r14",
29157         FT_UINT32, BASE_DEC, VALS(lpp_T_cpLengthCRS_r14_01_vals), 0,
29158         "T_cpLengthCRS_r14_01", HFILL }},
29159     { &hf_lpp_sameMBSFNconfigNeighbour_r14,
29160       { "sameMBSFNconfigNeighbour-r14", "lpp.sameMBSFNconfigNeighbour_r14",
29161         FT_BOOLEAN, BASE_NONE, NULL, 0,
29162         "BOOLEAN", HFILL }},
29163     { &hf_lpp_dlBandwidth_r14_01,
29164       { "dlBandwidth-r14", "lpp.dlBandwidth_r14",
29165         FT_UINT32, BASE_DEC, VALS(lpp_T_dlBandwidth_r14_01_vals), 0,
29166         "T_dlBandwidth_r14_01", HFILL }},
29167     { &hf_lpp_addPRSconfigNeighbour_r14,
29168       { "addPRSconfigNeighbour-r14", "lpp.addPRSconfigNeighbour_r14",
29169         FT_UINT32, BASE_DEC, NULL, 0,
29170         "SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14", HFILL }},
29171     { &hf_lpp_addPRSconfigNeighbour_r14_item,
29172       { "Add-PRSconfigNeighbourElement-r14", "lpp.Add_PRSconfigNeighbourElement_r14_element",
29173         FT_NONE, BASE_NONE, NULL, 0,
29174         NULL, HFILL }},
29175     { &hf_lpp_add_prsInfo_r14,
29176       { "add-prsInfo-r14", "lpp.add_prsInfo_r14_element",
29177         FT_NONE, BASE_NONE, NULL, 0,
29178         "PRS_Info", HFILL }},
29179     { &hf_lpp_physCellIdNB_r14,
29180       { "physCellIdNB-r14", "lpp.physCellIdNB_r14",
29181         FT_UINT32, BASE_DEC, NULL, 0,
29182         "INTEGER_0_503", HFILL }},
29183     { &hf_lpp_cellGlobalIdNB_r14,
29184       { "cellGlobalIdNB-r14", "lpp.cellGlobalIdNB_r14_element",
29185         FT_NONE, BASE_NONE, NULL, 0,
29186         "ECGI", HFILL }},
29187     { &hf_lpp_carrierFreqRef_r14,
29188       { "carrierFreqRef-r14", "lpp.carrierFreqRef_r14_element",
29189         FT_NONE, BASE_NONE, NULL, 0,
29190         "CarrierFreq_NB_r14", HFILL }},
29191     { &hf_lpp_earfcn_r14,
29192       { "earfcn-r14", "lpp.earfcn_r14",
29193         FT_UINT32, BASE_DEC, NULL, 0,
29194         "ARFCN_ValueEUTRA_r14", HFILL }},
29195     { &hf_lpp_eutra_NumCRS_Ports_r14,
29196       { "eutra-NumCRS-Ports-r14", "lpp.eutra_NumCRS_Ports_r14",
29197         FT_UINT32, BASE_DEC, VALS(lpp_T_eutra_NumCRS_Ports_r14_vals), 0,
29198         NULL, HFILL }},
29199     { &hf_lpp_otdoa_SIB1_NB_repetitions_r14,
29200       { "otdoa-SIB1-NB-repetitions-r14", "lpp.otdoa_SIB1_NB_repetitions_r14",
29201         FT_UINT32, BASE_DEC, VALS(lpp_T_otdoa_SIB1_NB_repetitions_r14_vals), 0,
29202         NULL, HFILL }},
29203     { &hf_lpp_nprsInfo_r14,
29204       { "nprsInfo-r14", "lpp.nprsInfo_r14",
29205         FT_UINT32, BASE_DEC, NULL, 0,
29206         "PRS_Info_NB_r14", HFILL }},
29207     { &hf_lpp_nprsInfo_Type2_v1470,
29208       { "nprsInfo-Type2-v1470", "lpp.nprsInfo_Type2_v1470",
29209         FT_UINT32, BASE_DEC, NULL, 0,
29210         "PRS_Info_NB_r14", HFILL }},
29211     { &hf_lpp_tdd_config_r15,
29212       { "tdd-config-r15", "lpp.tdd_config_r15_element",
29213         FT_NONE, BASE_NONE, NULL, 0,
29214         "TDD_Config_v1520", HFILL }},
29215     { &hf_lpp_PRS_Info_NB_r14_item,
29216       { "NPRS-Info-r14", "lpp.NPRS_Info_r14_element",
29217         FT_NONE, BASE_NONE, NULL, 0,
29218         NULL, HFILL }},
29219     { &hf_lpp_operationModeInfoNPRS_r14,
29220       { "operationModeInfoNPRS-r14", "lpp.operationModeInfoNPRS_r14",
29221         FT_UINT32, BASE_DEC, VALS(lpp_T_operationModeInfoNPRS_r14_vals), 0,
29222         NULL, HFILL }},
29223     { &hf_lpp_nprs_carrier_r14,
29224       { "nprs-carrier-r14", "lpp.nprs_carrier_r14_element",
29225         FT_NONE, BASE_NONE, NULL, 0,
29226         "CarrierFreq_NB_r14", HFILL }},
29227     { &hf_lpp_nprsSequenceInfo_r14,
29228       { "nprsSequenceInfo-r14", "lpp.nprsSequenceInfo_r14",
29229         FT_UINT32, BASE_DEC, NULL, 0,
29230         "INTEGER_0_174", HFILL }},
29231     { &hf_lpp_nprsID_r14,
29232       { "nprsID-r14", "lpp.nprsID_r14",
29233         FT_UINT32, BASE_DEC, NULL, 0,
29234         "INTEGER_0_4095", HFILL }},
29235     { &hf_lpp_partA_r14,
29236       { "partA-r14", "lpp.partA_r14_element",
29237         FT_NONE, BASE_NONE, NULL, 0,
29238         NULL, HFILL }},
29239     { &hf_lpp_nprsBitmap_r14,
29240       { "nprsBitmap-r14", "lpp.nprsBitmap_r14",
29241         FT_UINT32, BASE_DEC, VALS(lpp_T_nprsBitmap_r14_vals), 0,
29242         NULL, HFILL }},
29243     { &hf_lpp_subframePattern10_r14,
29244       { "subframePattern10-r14", "lpp.subframePattern10_r14",
29245         FT_BYTES, BASE_NONE, NULL, 0,
29246         "BIT_STRING_SIZE_10", HFILL }},
29247     { &hf_lpp_subframePattern40_r14,
29248       { "subframePattern40-r14", "lpp.subframePattern40_r14",
29249         FT_BYTES, BASE_NONE, NULL, 0,
29250         "BIT_STRING_SIZE_40", HFILL }},
29251     { &hf_lpp_nprs_MutingInfoA_r14,
29252       { "nprs-MutingInfoA-r14", "lpp.nprs_MutingInfoA_r14",
29253         FT_UINT32, BASE_DEC, VALS(lpp_T_nprs_MutingInfoA_r14_vals), 0,
29254         NULL, HFILL }},
29255     { &hf_lpp_po2_r14,
29256       { "po2-r14", "lpp.po2_r14",
29257         FT_BYTES, BASE_NONE, NULL, 0,
29258         "BIT_STRING_SIZE_2", HFILL }},
29259     { &hf_lpp_po4_r14,
29260       { "po4-r14", "lpp.po4_r14",
29261         FT_BYTES, BASE_NONE, NULL, 0,
29262         "BIT_STRING_SIZE_4", HFILL }},
29263     { &hf_lpp_po8_r14,
29264       { "po8-r14", "lpp.po8_r14",
29265         FT_BYTES, BASE_NONE, NULL, 0,
29266         "BIT_STRING_SIZE_8", HFILL }},
29267     { &hf_lpp_po16_r14,
29268       { "po16-r14", "lpp.po16_r14",
29269         FT_BYTES, BASE_NONE, NULL, 0,
29270         "BIT_STRING_SIZE_16", HFILL }},
29271     { &hf_lpp_partB_r14,
29272       { "partB-r14", "lpp.partB_r14_element",
29273         FT_NONE, BASE_NONE, NULL, 0,
29274         NULL, HFILL }},
29275     { &hf_lpp_nprs_Period_r14,
29276       { "nprs-Period-r14", "lpp.nprs_Period_r14",
29277         FT_UINT32, BASE_DEC, VALS(lpp_T_nprs_Period_r14_vals), 0,
29278         NULL, HFILL }},
29279     { &hf_lpp_nprs_startSF_r14,
29280       { "nprs-startSF-r14", "lpp.nprs_startSF_r14",
29281         FT_UINT32, BASE_DEC, VALS(lpp_T_nprs_startSF_r14_vals), 0,
29282         NULL, HFILL }},
29283     { &hf_lpp_nprs_NumSF_r14,
29284       { "nprs-NumSF-r14", "lpp.nprs_NumSF_r14",
29285         FT_UINT32, BASE_DEC, VALS(lpp_T_nprs_NumSF_r14_vals), 0,
29286         NULL, HFILL }},
29287     { &hf_lpp_nprs_MutingInfoB_r14,
29288       { "nprs-MutingInfoB-r14", "lpp.nprs_MutingInfoB_r14",
29289         FT_UINT32, BASE_DEC, VALS(lpp_T_nprs_MutingInfoB_r14_vals), 0,
29290         NULL, HFILL }},
29291     { &hf_lpp_sib1_SF_TDD_r15,
29292       { "sib1-SF-TDD-r15", "lpp.sib1_SF_TDD_r15",
29293         FT_UINT32, BASE_DEC, VALS(lpp_T_sib1_SF_TDD_r15_vals), 0,
29294         NULL, HFILL }},
29295     { &hf_lpp_partA_TDD_r15,
29296       { "partA-TDD-r15", "lpp.partA_TDD_r15_element",
29297         FT_NONE, BASE_NONE, NULL, 0,
29298         NULL, HFILL }},
29299     { &hf_lpp_nprsBitmap_r15,
29300       { "nprsBitmap-r15", "lpp.nprsBitmap_r15",
29301         FT_UINT32, BASE_DEC, VALS(lpp_T_nprsBitmap_r15_vals), 0,
29302         NULL, HFILL }},
29303     { &hf_lpp_subframePattern10_TDD_r15,
29304       { "subframePattern10-TDD-r15", "lpp.subframePattern10_TDD_r15",
29305         FT_BYTES, BASE_NONE, NULL, 0,
29306         "BIT_STRING_SIZE_8", HFILL }},
29307     { &hf_lpp_subframePattern40_TDD_r15,
29308       { "subframePattern40-TDD-r15", "lpp.subframePattern40_TDD_r15",
29309         FT_BYTES, BASE_NONE, NULL, 0,
29310         "BIT_STRING_SIZE_32", HFILL }},
29311     { &hf_lpp_nprs_MutingInfoA_r15,
29312       { "nprs-MutingInfoA-r15", "lpp.nprs_MutingInfoA_r15",
29313         FT_UINT32, BASE_DEC, VALS(lpp_T_nprs_MutingInfoA_r15_vals), 0,
29314         NULL, HFILL }},
29315     { &hf_lpp_po2_r15,
29316       { "po2-r15", "lpp.po2_r15",
29317         FT_BYTES, BASE_NONE, NULL, 0,
29318         "BIT_STRING_SIZE_2", HFILL }},
29319     { &hf_lpp_po4_r15,
29320       { "po4-r15", "lpp.po4_r15",
29321         FT_BYTES, BASE_NONE, NULL, 0,
29322         "BIT_STRING_SIZE_4", HFILL }},
29323     { &hf_lpp_po8_r15,
29324       { "po8-r15", "lpp.po8_r15",
29325         FT_BYTES, BASE_NONE, NULL, 0,
29326         "BIT_STRING_SIZE_8", HFILL }},
29327     { &hf_lpp_po16_r15,
29328       { "po16-r15", "lpp.po16_r15",
29329         FT_BYTES, BASE_NONE, NULL, 0,
29330         "BIT_STRING_SIZE_16", HFILL }},
29331     { &hf_lpp_OTDOA_NeighbourCellInfoListNB_r14_item,
29332       { "OTDOA-NeighbourCellInfoNB-r14", "lpp.OTDOA_NeighbourCellInfoNB_r14_element",
29333         FT_NONE, BASE_NONE, NULL, 0,
29334         NULL, HFILL }},
29335     { &hf_lpp_carrierFreq_r14_01,
29336       { "carrierFreq-r14", "lpp.carrierFreq_r14_element",
29337         FT_NONE, BASE_NONE, NULL, 0,
29338         "CarrierFreq_NB_r14", HFILL }},
29339     { &hf_lpp_eutra_NumCRS_Ports_r14_01,
29340       { "eutra-NumCRS-Ports-r14", "lpp.eutra_NumCRS_Ports_r14",
29341         FT_UINT32, BASE_DEC, VALS(lpp_T_eutra_NumCRS_Ports_r14_01_vals), 0,
29342         "T_eutra_NumCRS_Ports_r14_01", HFILL }},
29343     { &hf_lpp_otdoa_SIB1_NB_repetitions_r14_01,
29344       { "otdoa-SIB1-NB-repetitions-r14", "lpp.otdoa_SIB1_NB_repetitions_r14",
29345         FT_UINT32, BASE_DEC, VALS(lpp_T_otdoa_SIB1_NB_repetitions_r14_01_vals), 0,
29346         "T_otdoa_SIB1_NB_repetitions_r14_01", HFILL }},
29347     { &hf_lpp_nprs_slotNumberOffset_r14,
29348       { "nprs-slotNumberOffset-r14", "lpp.nprs_slotNumberOffset_r14",
29349         FT_UINT32, BASE_DEC, NULL, 0,
29350         "INTEGER_0_19", HFILL }},
29351     { &hf_lpp_nprs_SFN_Offset_r14,
29352       { "nprs-SFN-Offset-r14", "lpp.nprs_SFN_Offset_r14",
29353         FT_UINT32, BASE_DEC, NULL, 0,
29354         "INTEGER_0_63", HFILL }},
29355     { &hf_lpp_nprs_SubframeOffset_r14,
29356       { "nprs-SubframeOffset-r14", "lpp.nprs_SubframeOffset_r14",
29357         FT_UINT32, BASE_DEC, NULL, 0,
29358         "INTEGER_0_1279", HFILL }},
29359     { &hf_lpp_expectedRSTD_r14,
29360       { "expectedRSTD-r14", "lpp.expectedRSTD_r14",
29361         FT_UINT32, BASE_DEC, NULL, 0,
29362         "INTEGER_0_16383", HFILL }},
29363     { &hf_lpp_expectedRSTD_Uncertainty_r14,
29364       { "expectedRSTD-Uncertainty-r14", "lpp.expectedRSTD_Uncertainty_r14",
29365         FT_UINT32, BASE_DEC, NULL, 0,
29366         "INTEGER_0_1023", HFILL }},
29367     { &hf_lpp_prsNeighbourCellIndex_r14,
29368       { "prsNeighbourCellIndex-r14", "lpp.prsNeighbourCellIndex_r14",
29369         FT_UINT32, BASE_DEC, NULL, 0,
29370         "INTEGER_1_72", HFILL }},
29371     { &hf_lpp_adType_r14,
29372       { "adType-r14", "lpp.adType_r14",
29373         FT_BYTES, BASE_NONE, NULL, 0,
29374         NULL, HFILL }},
29375     { &hf_lpp_nrPhysCellId_r15,
29376       { "nrPhysCellId-r15", "lpp.nrPhysCellId_r15",
29377         FT_UINT32, BASE_DEC, NULL, 0,
29378         "INTEGER_0_1007", HFILL }},
29379     { &hf_lpp_otdoaSignalMeasurementInformation,
29380       { "otdoaSignalMeasurementInformation", "lpp.otdoaSignalMeasurementInformation_element",
29381         FT_NONE, BASE_NONE, NULL, 0,
29382         "OTDOA_SignalMeasurementInformation", HFILL }},
29383     { &hf_lpp_otdoaSignalMeasurementInformation_NB_r14,
29384       { "otdoaSignalMeasurementInformation-NB-r14", "lpp.otdoaSignalMeasurementInformation_NB_r14_element",
29385         FT_NONE, BASE_NONE, NULL, 0,
29386         "OTDOA_SignalMeasurementInformation_NB_r14", HFILL }},
29387     { &hf_lpp_systemFrameNumber,
29388       { "systemFrameNumber", "lpp.systemFrameNumber",
29389         FT_BYTES, BASE_NONE, NULL, 0,
29390         "BIT_STRING_SIZE_10", HFILL }},
29391     { &hf_lpp_physCellIdRef,
29392       { "physCellIdRef", "lpp.physCellIdRef",
29393         FT_UINT32, BASE_DEC, NULL, 0,
29394         "INTEGER_0_503", HFILL }},
29395     { &hf_lpp_cellGlobalIdRef,
29396       { "cellGlobalIdRef", "lpp.cellGlobalIdRef_element",
29397         FT_NONE, BASE_NONE, NULL, 0,
29398         "ECGI", HFILL }},
29399     { &hf_lpp_referenceQuality,
29400       { "referenceQuality", "lpp.referenceQuality_element",
29401         FT_NONE, BASE_NONE, NULL, 0,
29402         "OTDOA_MeasQuality", HFILL }},
29403     { &hf_lpp_neighbourMeasurementList,
29404       { "neighbourMeasurementList", "lpp.neighbourMeasurementList",
29405         FT_UINT32, BASE_DEC, NULL, 0,
29406         NULL, HFILL }},
29407     { &hf_lpp_tpIdRef_r14,
29408       { "tpIdRef-r14", "lpp.tpIdRef_r14",
29409         FT_UINT32, BASE_DEC, NULL, 0,
29410         "INTEGER_0_4095", HFILL }},
29411     { &hf_lpp_prsIdRef_r14,
29412       { "prsIdRef-r14", "lpp.prsIdRef_r14",
29413         FT_UINT32, BASE_DEC, NULL, 0,
29414         "INTEGER_0_4095", HFILL }},
29415     { &hf_lpp_additionalPathsRef_r14,
29416       { "additionalPathsRef-r14", "lpp.additionalPathsRef_r14",
29417         FT_UINT32, BASE_DEC, NULL, 0,
29418         "AdditionalPathList_r14", HFILL }},
29419     { &hf_lpp_nprsIdRef_r14,
29420       { "nprsIdRef-r14", "lpp.nprsIdRef_r14",
29421         FT_UINT32, BASE_DEC, NULL, 0,
29422         "INTEGER_0_4095", HFILL }},
29423     { &hf_lpp_carrierFreqOffsetNB_Ref_r14,
29424       { "carrierFreqOffsetNB-Ref-r14", "lpp.carrierFreqOffsetNB_Ref_r14",
29425         FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
29426         "CarrierFreqOffsetNB_r14", HFILL }},
29427     { &hf_lpp_hyperSFN_r14,
29428       { "hyperSFN-r14", "lpp.hyperSFN_r14",
29429         FT_BYTES, BASE_NONE, NULL, 0,
29430         "BIT_STRING_SIZE_10", HFILL }},
29431     { &hf_lpp_motionTimeSource_r15,
29432       { "motionTimeSource-r15", "lpp.motionTimeSource_r15_element",
29433         FT_NONE, BASE_NONE, NULL, 0,
29434         NULL, HFILL }},
29435     { &hf_lpp_NeighbourMeasurementList_item,
29436       { "NeighbourMeasurementElement", "lpp.NeighbourMeasurementElement_element",
29437         FT_NONE, BASE_NONE, NULL, 0,
29438         NULL, HFILL }},
29439     { &hf_lpp_physCellIdNeighbour,
29440       { "physCellIdNeighbour", "lpp.physCellIdNeighbour",
29441         FT_UINT32, BASE_DEC, NULL, 0,
29442         "INTEGER_0_503", HFILL }},
29443     { &hf_lpp_cellGlobalIdNeighbour,
29444       { "cellGlobalIdNeighbour", "lpp.cellGlobalIdNeighbour_element",
29445         FT_NONE, BASE_NONE, NULL, 0,
29446         "ECGI", HFILL }},
29447     { &hf_lpp_earfcnNeighbour,
29448       { "earfcnNeighbour", "lpp.earfcnNeighbour",
29449         FT_UINT32, BASE_DEC, NULL, 0,
29450         "ARFCN_ValueEUTRA", HFILL }},
29451     { &hf_lpp_rstd,
29452       { "rstd", "lpp.rstd",
29453         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_rstd_fmt), 0,
29454         "INTEGER_0_12711", HFILL }},
29455     { &hf_lpp_rstd_Quality,
29456       { "rstd-Quality", "lpp.rstd_Quality_element",
29457         FT_NONE, BASE_NONE, NULL, 0,
29458         "OTDOA_MeasQuality", HFILL }},
29459     { &hf_lpp_earfcnNeighbour_v9a0,
29460       { "earfcnNeighbour-v9a0", "lpp.earfcnNeighbour_v9a0",
29461         FT_UINT32, BASE_DEC, NULL, 0,
29462         "ARFCN_ValueEUTRA_v9a0", HFILL }},
29463     { &hf_lpp_tpIdNeighbour_r14,
29464       { "tpIdNeighbour-r14", "lpp.tpIdNeighbour_r14",
29465         FT_UINT32, BASE_DEC, NULL, 0,
29466         "INTEGER_0_4095", HFILL }},
29467     { &hf_lpp_prsIdNeighbour_r14,
29468       { "prsIdNeighbour-r14", "lpp.prsIdNeighbour_r14",
29469         FT_UINT32, BASE_DEC, NULL, 0,
29470         "INTEGER_0_4095", HFILL }},
29471     { &hf_lpp_delta_rstd_r14,
29472       { "delta-rstd-r14", "lpp.delta_rstd_r14",
29473         FT_UINT32, BASE_DEC, NULL, 0,
29474         "INTEGER_0_5", HFILL }},
29475     { &hf_lpp_additionalPathsNeighbour_r14,
29476       { "additionalPathsNeighbour-r14", "lpp.additionalPathsNeighbour_r14",
29477         FT_UINT32, BASE_DEC, NULL, 0,
29478         "AdditionalPathList_r14", HFILL }},
29479     { &hf_lpp_nprsIdNeighbour_r14,
29480       { "nprsIdNeighbour-r14", "lpp.nprsIdNeighbour_r14",
29481         FT_UINT32, BASE_DEC, NULL, 0,
29482         "INTEGER_0_4095", HFILL }},
29483     { &hf_lpp_carrierFreqOffsetNB_Neighbour_r14,
29484       { "carrierFreqOffsetNB-Neighbour-r14", "lpp.carrierFreqOffsetNB_Neighbour_r14",
29485         FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
29486         "CarrierFreqOffsetNB_r14", HFILL }},
29487     { &hf_lpp_delta_SFN_r15,
29488       { "delta-SFN-r15", "lpp.delta_SFN_r15",
29489         FT_INT32, BASE_DEC, NULL, 0,
29490         "INTEGER_M8192_8191", HFILL }},
29491     { &hf_lpp_AdditionalPathList_r14_item,
29492       { "AdditionalPath-r14", "lpp.AdditionalPath_r14_element",
29493         FT_NONE, BASE_NONE, NULL, 0,
29494         NULL, HFILL }},
29495     { &hf_lpp_timeSource_r15,
29496       { "timeSource-r15", "lpp.timeSource_r15",
29497         FT_UINT32, BASE_DEC, VALS(lpp_T_timeSource_r15_vals), 0,
29498         NULL, HFILL }},
29499     { &hf_lpp_systemFrameNumber_r14,
29500       { "systemFrameNumber-r14", "lpp.systemFrameNumber_r14",
29501         FT_BYTES, BASE_NONE, NULL, 0,
29502         "BIT_STRING_SIZE_10", HFILL }},
29503     { &hf_lpp_physCellIdRef_r14,
29504       { "physCellIdRef-r14", "lpp.physCellIdRef_r14",
29505         FT_UINT32, BASE_DEC, NULL, 0,
29506         "INTEGER_0_503", HFILL }},
29507     { &hf_lpp_cellGlobalIdRef_r14,
29508       { "cellGlobalIdRef-r14", "lpp.cellGlobalIdRef_r14_element",
29509         FT_NONE, BASE_NONE, NULL, 0,
29510         "ECGI", HFILL }},
29511     { &hf_lpp_earfcnRef_r14,
29512       { "earfcnRef-r14", "lpp.earfcnRef_r14",
29513         FT_UINT32, BASE_DEC, NULL, 0,
29514         "ARFCN_ValueEUTRA_r14", HFILL }},
29515     { &hf_lpp_referenceQuality_r14,
29516       { "referenceQuality-r14", "lpp.referenceQuality_r14_element",
29517         FT_NONE, BASE_NONE, NULL, 0,
29518         "OTDOA_MeasQuality", HFILL }},
29519     { &hf_lpp_neighbourMeasurementList_r14,
29520       { "neighbourMeasurementList-r14", "lpp.neighbourMeasurementList_r14",
29521         FT_UINT32, BASE_DEC, NULL, 0,
29522         "NeighbourMeasurementList_NB_r14", HFILL }},
29523     { &hf_lpp_NeighbourMeasurementList_NB_r14_item,
29524       { "NeighbourMeasurementElement-NB-r14", "lpp.NeighbourMeasurementElement_NB_r14_element",
29525         FT_NONE, BASE_NONE, NULL, 0,
29526         NULL, HFILL }},
29527     { &hf_lpp_physCellIdNeighbour_r14,
29528       { "physCellIdNeighbour-r14", "lpp.physCellIdNeighbour_r14",
29529         FT_UINT32, BASE_DEC, NULL, 0,
29530         "INTEGER_0_503", HFILL }},
29531     { &hf_lpp_cellGlobalIdNeighbour_r14,
29532       { "cellGlobalIdNeighbour-r14", "lpp.cellGlobalIdNeighbour_r14_element",
29533         FT_NONE, BASE_NONE, NULL, 0,
29534         "ECGI", HFILL }},
29535     { &hf_lpp_earfcnNeighbour_r14,
29536       { "earfcnNeighbour-r14", "lpp.earfcnNeighbour_r14",
29537         FT_UINT32, BASE_DEC, NULL, 0,
29538         "ARFCN_ValueEUTRA_r14", HFILL }},
29539     { &hf_lpp_rstd_r14,
29540       { "rstd-r14", "lpp.rstd_r14",
29541         FT_UINT32, BASE_DEC, NULL, 0,
29542         "INTEGER_0_12711", HFILL }},
29543     { &hf_lpp_rstd_Quality_r14,
29544       { "rstd-Quality-r14", "lpp.rstd_Quality_r14_element",
29545         FT_NONE, BASE_NONE, NULL, 0,
29546         "OTDOA_MeasQuality", HFILL }},
29547     { &hf_lpp_error_Resolution,
29548       { "error-Resolution", "lpp.error_Resolution",
29549         FT_UINT8, BASE_DEC, VALS(lpp_error_Resolution_vals), 0,
29550         NULL, HFILL }},
29551     { &hf_lpp_error_Value,
29552       { "error-Value", "lpp.error_Value",
29553         FT_UINT8, BASE_DEC|BASE_EXT_STRING, &lpp_error_Value_vals_ext, 0,
29554         NULL, HFILL }},
29555     { &hf_lpp_error_NumSamples,
29556       { "error-NumSamples", "lpp.error_NumSamples",
29557         FT_UINT8, BASE_DEC, VALS(lpp_error_NumSamples_vals), 0,
29558         NULL, HFILL }},
29559     { &hf_lpp_relativeTimeDifference_r14,
29560       { "relativeTimeDifference-r14", "lpp.relativeTimeDifference_r14",
29561         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_relativeTimeDifference_fmt), 0,
29562         "INTEGER_M256_255", HFILL }},
29563     { &hf_lpp_path_Quality_r14,
29564       { "path-Quality-r14", "lpp.path_Quality_r14_element",
29565         FT_NONE, BASE_NONE, NULL, 0,
29566         "OTDOA_MeasQuality", HFILL }},
29567     { &hf_lpp_assistanceAvailability,
29568       { "assistanceAvailability", "lpp.assistanceAvailability",
29569         FT_BOOLEAN, BASE_NONE, NULL, 0,
29570         "BOOLEAN", HFILL }},
29571     { &hf_lpp_multipathRSTD_r14,
29572       { "multipathRSTD-r14", "lpp.multipathRSTD_r14",
29573         FT_UINT32, BASE_DEC, VALS(lpp_T_multipathRSTD_r14_vals), 0,
29574         NULL, HFILL }},
29575     { &hf_lpp_maxNoOfRSTDmeas_r14,
29576       { "maxNoOfRSTDmeas-r14", "lpp.maxNoOfRSTDmeas_r14",
29577         FT_UINT32, BASE_DEC, NULL, 0,
29578         "INTEGER_1_32", HFILL }},
29579     { &hf_lpp_motionMeasurements_r15,
29580       { "motionMeasurements-r15", "lpp.motionMeasurements_r15",
29581         FT_UINT32, BASE_DEC, VALS(lpp_T_motionMeasurements_r15_vals), 0,
29582         NULL, HFILL }},
29583     { &hf_lpp_otdoa_Mode,
29584       { "otdoa-Mode", "lpp.otdoa_Mode",
29585         FT_BYTES, BASE_NONE, NULL, 0,
29586         NULL, HFILL }},
29587     { &hf_lpp_supportedBandListEUTRA,
29588       { "supportedBandListEUTRA", "lpp.supportedBandListEUTRA",
29589         FT_UINT32, BASE_DEC, NULL, 0,
29590         "SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA", HFILL }},
29591     { &hf_lpp_supportedBandListEUTRA_item,
29592       { "SupportedBandEUTRA", "lpp.SupportedBandEUTRA_element",
29593         FT_NONE, BASE_NONE, NULL, 0,
29594         NULL, HFILL }},
29595     { &hf_lpp_supportedBandListEUTRA_v9a0,
29596       { "supportedBandListEUTRA-v9a0", "lpp.supportedBandListEUTRA_v9a0",
29597         FT_UINT32, BASE_DEC, NULL, 0,
29598         "SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0", HFILL }},
29599     { &hf_lpp_supportedBandListEUTRA_v9a0_item,
29600       { "SupportedBandEUTRA-v9a0", "lpp.SupportedBandEUTRA_v9a0_element",
29601         FT_NONE, BASE_NONE, NULL, 0,
29602         NULL, HFILL }},
29603     { &hf_lpp_interFreqRSTDmeasurement_r10,
29604       { "interFreqRSTDmeasurement-r10", "lpp.interFreqRSTDmeasurement_r10",
29605         FT_UINT32, BASE_DEC, VALS(lpp_T_interFreqRSTDmeasurement_r10_vals), 0,
29606         "T_interFreqRSTDmeasurement_r10", HFILL }},
29607     { &hf_lpp_additionalNeighbourCellInfoList_r10,
29608       { "additionalNeighbourCellInfoList-r10", "lpp.additionalNeighbourCellInfoList_r10",
29609         FT_UINT32, BASE_DEC, VALS(lpp_T_additionalNeighbourCellInfoList_r10_vals), 0,
29610         "T_additionalNeighbourCellInfoList_r10", HFILL }},
29611     { &hf_lpp_prs_id_r14,
29612       { "prs-id-r14", "lpp.prs_id_r14",
29613         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_id_r14_vals), 0,
29614         NULL, HFILL }},
29615     { &hf_lpp_tp_separation_via_muting_r14,
29616       { "tp-separation-via-muting-r14", "lpp.tp_separation_via_muting_r14",
29617         FT_UINT32, BASE_DEC, VALS(lpp_T_tp_separation_via_muting_r14_vals), 0,
29618         NULL, HFILL }},
29619     { &hf_lpp_additional_prs_config_r14,
29620       { "additional-prs-config-r14", "lpp.additional_prs_config_r14",
29621         FT_UINT32, BASE_DEC, VALS(lpp_T_additional_prs_config_r14_vals), 0,
29622         NULL, HFILL }},
29623     { &hf_lpp_prs_based_tbs_r14,
29624       { "prs-based-tbs-r14", "lpp.prs_based_tbs_r14",
29625         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_based_tbs_r14_vals), 0,
29626         NULL, HFILL }},
29627     { &hf_lpp_additionalPathsReport_r14,
29628       { "additionalPathsReport-r14", "lpp.additionalPathsReport_r14",
29629         FT_UINT32, BASE_DEC, VALS(lpp_T_additionalPathsReport_r14_vals), 0,
29630         "T_additionalPathsReport_r14", HFILL }},
29631     { &hf_lpp_densePrsConfig_r14,
29632       { "densePrsConfig-r14", "lpp.densePrsConfig_r14",
29633         FT_UINT32, BASE_DEC, VALS(lpp_T_densePrsConfig_r14_vals), 0,
29634         NULL, HFILL }},
29635     { &hf_lpp_maxSupportedPrsBandwidth_r14,
29636       { "maxSupportedPrsBandwidth-r14", "lpp.maxSupportedPrsBandwidth_r14",
29637         FT_UINT32, BASE_DEC, VALS(lpp_T_maxSupportedPrsBandwidth_r14_vals), 0,
29638         NULL, HFILL }},
29639     { &hf_lpp_prsOccGroup_r14,
29640       { "prsOccGroup-r14", "lpp.prsOccGroup_r14",
29641         FT_UINT32, BASE_DEC, VALS(lpp_T_prsOccGroup_r14_vals), 0,
29642         NULL, HFILL }},
29643     { &hf_lpp_prsFrequencyHopping_r14,
29644       { "prsFrequencyHopping-r14", "lpp.prsFrequencyHopping_r14",
29645         FT_UINT32, BASE_DEC, VALS(lpp_T_prsFrequencyHopping_r14_vals), 0,
29646         NULL, HFILL }},
29647     { &hf_lpp_maxSupportedPrsConfigs_r14,
29648       { "maxSupportedPrsConfigs-r14", "lpp.maxSupportedPrsConfigs_r14",
29649         FT_UINT32, BASE_DEC, VALS(lpp_T_maxSupportedPrsConfigs_r14_vals), 0,
29650         NULL, HFILL }},
29651     { &hf_lpp_periodicalReporting_r14,
29652       { "periodicalReporting-r14", "lpp.periodicalReporting_r14",
29653         FT_UINT32, BASE_DEC, VALS(lpp_T_periodicalReporting_r14_vals), 0,
29654         NULL, HFILL }},
29655     { &hf_lpp_multiPrbNprs_r14,
29656       { "multiPrbNprs-r14", "lpp.multiPrbNprs_r14",
29657         FT_UINT32, BASE_DEC, VALS(lpp_T_multiPrbNprs_r14_vals), 0,
29658         NULL, HFILL }},
29659     { &hf_lpp_idleStateForMeasurements_r14,
29660       { "idleStateForMeasurements-r14", "lpp.idleStateForMeasurements_r14",
29661         FT_UINT32, BASE_DEC, VALS(lpp_T_idleStateForMeasurements_r14_vals), 0,
29662         NULL, HFILL }},
29663     { &hf_lpp_numberOfRXantennas_r14,
29664       { "numberOfRXantennas-r14", "lpp.numberOfRXantennas_r14",
29665         FT_UINT32, BASE_DEC, VALS(lpp_T_numberOfRXantennas_r14_vals), 0,
29666         NULL, HFILL }},
29667     { &hf_lpp_motionMeasurements_r15_01,
29668       { "motionMeasurements-r15", "lpp.motionMeasurements_r15",
29669         FT_UINT32, BASE_DEC, VALS(lpp_T_motionMeasurements_r15_01_vals), 0,
29670         "T_motionMeasurements_r15_01", HFILL }},
29671     { &hf_lpp_interRAT_RSTDmeasurement_r15,
29672       { "interRAT-RSTDmeasurement-r15", "lpp.interRAT_RSTDmeasurement_r15",
29673         FT_UINT32, BASE_DEC, VALS(lpp_T_interRAT_RSTDmeasurement_r15_vals), 0,
29674         "T_interRAT_RSTDmeasurement_r15", HFILL }},
29675     { &hf_lpp_bandEUTRA,
29676       { "bandEUTRA", "lpp.bandEUTRA",
29677         FT_UINT32, BASE_DEC, NULL, 0,
29678         "INTEGER_1_maxFBI", HFILL }},
29679     { &hf_lpp_bandEUTRA_v9a0,
29680       { "bandEUTRA-v9a0", "lpp.bandEUTRA_v9a0",
29681         FT_UINT32, BASE_DEC, NULL, 0,
29682         "INTEGER_maxFBI_Plus1_maxFBI2", HFILL }},
29683     { &hf_lpp_locationServerErrorCauses,
29684       { "locationServerErrorCauses", "lpp.locationServerErrorCauses_element",
29685         FT_NONE, BASE_NONE, NULL, 0,
29686         "OTDOA_LocationServerErrorCauses", HFILL }},
29687     { &hf_lpp_targetDeviceErrorCauses,
29688       { "targetDeviceErrorCauses", "lpp.targetDeviceErrorCauses_element",
29689         FT_NONE, BASE_NONE, NULL, 0,
29690         "OTDOA_TargetDeviceErrorCauses", HFILL }},
29691     { &hf_lpp_cause,
29692       { "cause", "lpp.cause",
29693         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_vals), 0,
29694         NULL, HFILL }},
29695     { &hf_lpp_cause_01,
29696       { "cause", "lpp.cause",
29697         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_01_vals), 0,
29698         "T_cause_01", HFILL }},
29699     { &hf_lpp_gnss_CommonAssistData,
29700       { "gnss-CommonAssistData", "lpp.gnss_CommonAssistData_element",
29701         FT_NONE, BASE_NONE, NULL, 0,
29702         NULL, HFILL }},
29703     { &hf_lpp_gnss_GenericAssistData,
29704       { "gnss-GenericAssistData", "lpp.gnss_GenericAssistData",
29705         FT_UINT32, BASE_DEC, NULL, 0,
29706         NULL, HFILL }},
29707     { &hf_lpp_gnss_Error,
29708       { "gnss-Error", "lpp.gnss_Error",
29709         FT_UINT32, BASE_DEC, VALS(lpp_A_GNSS_Error_vals), 0,
29710         "A_GNSS_Error", HFILL }},
29711     { &hf_lpp_gnss_PeriodicAssistData_r15,
29712       { "gnss-PeriodicAssistData-r15", "lpp.gnss_PeriodicAssistData_r15_element",
29713         FT_NONE, BASE_NONE, NULL, 0,
29714         NULL, HFILL }},
29715     { &hf_lpp_gnss_ReferenceTime,
29716       { "gnss-ReferenceTime", "lpp.gnss_ReferenceTime_element",
29717         FT_NONE, BASE_NONE, NULL, 0,
29718         NULL, HFILL }},
29719     { &hf_lpp_gnss_ReferenceLocation,
29720       { "gnss-ReferenceLocation", "lpp.gnss_ReferenceLocation_element",
29721         FT_NONE, BASE_NONE, NULL, 0,
29722         NULL, HFILL }},
29723     { &hf_lpp_gnss_IonosphericModel,
29724       { "gnss-IonosphericModel", "lpp.gnss_IonosphericModel_element",
29725         FT_NONE, BASE_NONE, NULL, 0,
29726         NULL, HFILL }},
29727     { &hf_lpp_gnss_EarthOrientationParameters,
29728       { "gnss-EarthOrientationParameters", "lpp.gnss_EarthOrientationParameters_element",
29729         FT_NONE, BASE_NONE, NULL, 0,
29730         NULL, HFILL }},
29731     { &hf_lpp_gnss_RTK_ReferenceStationInfo_r15,
29732       { "gnss-RTK-ReferenceStationInfo-r15", "lpp.gnss_RTK_ReferenceStationInfo_r15_element",
29733         FT_NONE, BASE_NONE, NULL, 0,
29734         NULL, HFILL }},
29735     { &hf_lpp_gnss_RTK_CommonObservationInfo_r15,
29736       { "gnss-RTK-CommonObservationInfo-r15", "lpp.gnss_RTK_CommonObservationInfo_r15_element",
29737         FT_NONE, BASE_NONE, NULL, 0,
29738         NULL, HFILL }},
29739     { &hf_lpp_gnss_RTK_AuxiliaryStationData_r15,
29740       { "gnss-RTK-AuxiliaryStationData-r15", "lpp.gnss_RTK_AuxiliaryStationData_r15_element",
29741         FT_NONE, BASE_NONE, NULL, 0,
29742         NULL, HFILL }},
29743     { &hf_lpp_gnss_SSR_CorrectionPoints_r16,
29744       { "gnss-SSR-CorrectionPoints-r16", "lpp.gnss_SSR_CorrectionPoints_r16_element",
29745         FT_NONE, BASE_NONE, NULL, 0,
29746         NULL, HFILL }},
29747     { &hf_lpp_GNSS_GenericAssistData_item,
29748       { "GNSS-GenericAssistDataElement", "lpp.GNSS_GenericAssistDataElement_element",
29749         FT_NONE, BASE_NONE, NULL, 0,
29750         NULL, HFILL }},
29751     { &hf_lpp_gnss_ID,
29752       { "gnss-ID", "lpp.gnss_ID_element",
29753         FT_NONE, BASE_NONE, NULL, 0,
29754         NULL, HFILL }},
29755     { &hf_lpp_sbas_ID,
29756       { "sbas-ID", "lpp.sbas_ID_element",
29757         FT_NONE, BASE_NONE, NULL, 0,
29758         NULL, HFILL }},
29759     { &hf_lpp_gnss_TimeModels,
29760       { "gnss-TimeModels", "lpp.gnss_TimeModels",
29761         FT_UINT32, BASE_DEC, NULL, 0,
29762         "GNSS_TimeModelList", HFILL }},
29763     { &hf_lpp_gnss_DifferentialCorrections,
29764       { "gnss-DifferentialCorrections", "lpp.gnss_DifferentialCorrections_element",
29765         FT_NONE, BASE_NONE, NULL, 0,
29766         NULL, HFILL }},
29767     { &hf_lpp_gnss_NavigationModel,
29768       { "gnss-NavigationModel", "lpp.gnss_NavigationModel_element",
29769         FT_NONE, BASE_NONE, NULL, 0,
29770         NULL, HFILL }},
29771     { &hf_lpp_gnss_RealTimeIntegrity,
29772       { "gnss-RealTimeIntegrity", "lpp.gnss_RealTimeIntegrity_element",
29773         FT_NONE, BASE_NONE, NULL, 0,
29774         NULL, HFILL }},
29775     { &hf_lpp_gnss_DataBitAssistance,
29776       { "gnss-DataBitAssistance", "lpp.gnss_DataBitAssistance_element",
29777         FT_NONE, BASE_NONE, NULL, 0,
29778         NULL, HFILL }},
29779     { &hf_lpp_gnss_AcquisitionAssistance,
29780       { "gnss-AcquisitionAssistance", "lpp.gnss_AcquisitionAssistance_element",
29781         FT_NONE, BASE_NONE, NULL, 0,
29782         NULL, HFILL }},
29783     { &hf_lpp_gnss_Almanac,
29784       { "gnss-Almanac", "lpp.gnss_Almanac_element",
29785         FT_NONE, BASE_NONE, NULL, 0,
29786         NULL, HFILL }},
29787     { &hf_lpp_gnss_UTC_Model,
29788       { "gnss-UTC-Model", "lpp.gnss_UTC_Model",
29789         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_UTC_Model_vals), 0,
29790         NULL, HFILL }},
29791     { &hf_lpp_gnss_AuxiliaryInformation,
29792       { "gnss-AuxiliaryInformation", "lpp.gnss_AuxiliaryInformation",
29793         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_AuxiliaryInformation_vals), 0,
29794         NULL, HFILL }},
29795     { &hf_lpp_bds_DifferentialCorrections_r12,
29796       { "bds-DifferentialCorrections-r12", "lpp.bds_DifferentialCorrections_r12_element",
29797         FT_NONE, BASE_NONE, NULL, 0,
29798         NULL, HFILL }},
29799     { &hf_lpp_bds_GridModel_r12,
29800       { "bds-GridModel-r12", "lpp.bds_GridModel_r12_element",
29801         FT_NONE, BASE_NONE, NULL, 0,
29802         "BDS_GridModelParameter_r12", HFILL }},
29803     { &hf_lpp_gnss_RTK_Observations_r15,
29804       { "gnss-RTK-Observations-r15", "lpp.gnss_RTK_Observations_r15_element",
29805         FT_NONE, BASE_NONE, NULL, 0,
29806         NULL, HFILL }},
29807     { &hf_lpp_glo_RTK_BiasInformation_r15,
29808       { "glo-RTK-BiasInformation-r15", "lpp.glo_RTK_BiasInformation_r15_element",
29809         FT_NONE, BASE_NONE, NULL, 0,
29810         NULL, HFILL }},
29811     { &hf_lpp_gnss_RTK_MAC_CorrectionDifferences_r15,
29812       { "gnss-RTK-MAC-CorrectionDifferences-r15", "lpp.gnss_RTK_MAC_CorrectionDifferences_r15_element",
29813         FT_NONE, BASE_NONE, NULL, 0,
29814         NULL, HFILL }},
29815     { &hf_lpp_gnss_RTK_Residuals_r15,
29816       { "gnss-RTK-Residuals-r15", "lpp.gnss_RTK_Residuals_r15_element",
29817         FT_NONE, BASE_NONE, NULL, 0,
29818         NULL, HFILL }},
29819     { &hf_lpp_gnss_RTK_FKP_Gradients_r15,
29820       { "gnss-RTK-FKP-Gradients-r15", "lpp.gnss_RTK_FKP_Gradients_r15_element",
29821         FT_NONE, BASE_NONE, NULL, 0,
29822         NULL, HFILL }},
29823     { &hf_lpp_gnss_SSR_OrbitCorrections_r15,
29824       { "gnss-SSR-OrbitCorrections-r15", "lpp.gnss_SSR_OrbitCorrections_r15_element",
29825         FT_NONE, BASE_NONE, NULL, 0,
29826         NULL, HFILL }},
29827     { &hf_lpp_gnss_SSR_ClockCorrections_r15,
29828       { "gnss-SSR-ClockCorrections-r15", "lpp.gnss_SSR_ClockCorrections_r15_element",
29829         FT_NONE, BASE_NONE, NULL, 0,
29830         NULL, HFILL }},
29831     { &hf_lpp_gnss_SSR_CodeBias_r15,
29832       { "gnss-SSR-CodeBias-r15", "lpp.gnss_SSR_CodeBias_r15_element",
29833         FT_NONE, BASE_NONE, NULL, 0,
29834         NULL, HFILL }},
29835     { &hf_lpp_gnss_SSR_URA_r16,
29836       { "gnss-SSR-URA-r16", "lpp.gnss_SSR_URA_r16_element",
29837         FT_NONE, BASE_NONE, NULL, 0,
29838         NULL, HFILL }},
29839     { &hf_lpp_gnss_SSR_PhaseBias_r16,
29840       { "gnss-SSR-PhaseBias-r16", "lpp.gnss_SSR_PhaseBias_r16_element",
29841         FT_NONE, BASE_NONE, NULL, 0,
29842         NULL, HFILL }},
29843     { &hf_lpp_gnss_SSR_STEC_Correction_r16,
29844       { "gnss-SSR-STEC-Correction-r16", "lpp.gnss_SSR_STEC_Correction_r16_element",
29845         FT_NONE, BASE_NONE, NULL, 0,
29846         NULL, HFILL }},
29847     { &hf_lpp_gnss_SSR_GriddedCorrection_r16,
29848       { "gnss-SSR-GriddedCorrection-r16", "lpp.gnss_SSR_GriddedCorrection_r16_element",
29849         FT_NONE, BASE_NONE, NULL, 0,
29850         NULL, HFILL }},
29851     { &hf_lpp_navic_DifferentialCorrections_r16,
29852       { "navic-DifferentialCorrections-r16", "lpp.navic_DifferentialCorrections_r16_element",
29853         FT_NONE, BASE_NONE, NULL, 0,
29854         NULL, HFILL }},
29855     { &hf_lpp_navic_GridModel_r16,
29856       { "navic-GridModel-r16", "lpp.navic_GridModel_r16_element",
29857         FT_NONE, BASE_NONE, NULL, 0,
29858         "NavIC_GridModelParameter_r16", HFILL }},
29859     { &hf_lpp_gnss_RTK_PeriodicObservations_r15,
29860       { "gnss-RTK-PeriodicObservations-r15", "lpp.gnss_RTK_PeriodicObservations_r15_element",
29861         FT_NONE, BASE_NONE, NULL, 0,
29862         "GNSS_PeriodicControlParam_r15", HFILL }},
29863     { &hf_lpp_glo_RTK_PeriodicBiasInformation_r15,
29864       { "glo-RTK-PeriodicBiasInformation-r15", "lpp.glo_RTK_PeriodicBiasInformation_r15_element",
29865         FT_NONE, BASE_NONE, NULL, 0,
29866         "GNSS_PeriodicControlParam_r15", HFILL }},
29867     { &hf_lpp_gnss_RTK_MAC_PeriodicCorrectionDifferences_r15,
29868       { "gnss-RTK-MAC-PeriodicCorrectionDifferences-r15", "lpp.gnss_RTK_MAC_PeriodicCorrectionDifferences_r15_element",
29869         FT_NONE, BASE_NONE, NULL, 0,
29870         "GNSS_PeriodicControlParam_r15", HFILL }},
29871     { &hf_lpp_gnss_RTK_PeriodicResiduals_r15,
29872       { "gnss-RTK-PeriodicResiduals-r15", "lpp.gnss_RTK_PeriodicResiduals_r15_element",
29873         FT_NONE, BASE_NONE, NULL, 0,
29874         "GNSS_PeriodicControlParam_r15", HFILL }},
29875     { &hf_lpp_gnss_RTK_FKP_PeriodicGradients_r15,
29876       { "gnss-RTK-FKP-PeriodicGradients-r15", "lpp.gnss_RTK_FKP_PeriodicGradients_r15_element",
29877         FT_NONE, BASE_NONE, NULL, 0,
29878         "GNSS_PeriodicControlParam_r15", HFILL }},
29879     { &hf_lpp_gnss_SSR_PeriodicOrbitCorrections_r15,
29880       { "gnss-SSR-PeriodicOrbitCorrections-r15", "lpp.gnss_SSR_PeriodicOrbitCorrections_r15_element",
29881         FT_NONE, BASE_NONE, NULL, 0,
29882         "GNSS_PeriodicControlParam_r15", HFILL }},
29883     { &hf_lpp_gnss_SSR_PeriodicClockCorrections_r15,
29884       { "gnss-SSR-PeriodicClockCorrections-r15", "lpp.gnss_SSR_PeriodicClockCorrections_r15_element",
29885         FT_NONE, BASE_NONE, NULL, 0,
29886         "GNSS_PeriodicControlParam_r15", HFILL }},
29887     { &hf_lpp_gnss_SSR_PeriodicCodeBias_r15,
29888       { "gnss-SSR-PeriodicCodeBias-r15", "lpp.gnss_SSR_PeriodicCodeBias_r15_element",
29889         FT_NONE, BASE_NONE, NULL, 0,
29890         "GNSS_PeriodicControlParam_r15", HFILL }},
29891     { &hf_lpp_gnss_SSR_PeriodicURA_r16,
29892       { "gnss-SSR-PeriodicURA-r16", "lpp.gnss_SSR_PeriodicURA_r16_element",
29893         FT_NONE, BASE_NONE, NULL, 0,
29894         "GNSS_PeriodicControlParam_r15", HFILL }},
29895     { &hf_lpp_gnss_SSR_PeriodicPhaseBias_r16,
29896       { "gnss-SSR-PeriodicPhaseBias-r16", "lpp.gnss_SSR_PeriodicPhaseBias_r16_element",
29897         FT_NONE, BASE_NONE, NULL, 0,
29898         "GNSS_PeriodicControlParam_r15", HFILL }},
29899     { &hf_lpp_gnss_SSR_PeriodicSTEC_Correction_r16,
29900       { "gnss-SSR-PeriodicSTEC-Correction-r16", "lpp.gnss_SSR_PeriodicSTEC_Correction_r16_element",
29901         FT_NONE, BASE_NONE, NULL, 0,
29902         "GNSS_PeriodicControlParam_r15", HFILL }},
29903     { &hf_lpp_gnss_SSR_PeriodicGriddedCorrection_r16,
29904       { "gnss-SSR-PeriodicGriddedCorrection-r16", "lpp.gnss_SSR_PeriodicGriddedCorrection_r16_element",
29905         FT_NONE, BASE_NONE, NULL, 0,
29906         "GNSS_PeriodicControlParam_r15", HFILL }},
29907     { &hf_lpp_gnss_SystemTime,
29908       { "gnss-SystemTime", "lpp.gnss_SystemTime_element",
29909         FT_NONE, BASE_NONE, NULL, 0,
29910         NULL, HFILL }},
29911     { &hf_lpp_referenceTimeUnc,
29912       { "referenceTimeUnc", "lpp.referenceTimeUnc",
29913         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_referenceTimeUnc_fmt), 0,
29914         "INTEGER_0_127", HFILL }},
29915     { &hf_lpp_gnss_ReferenceTimeForCells,
29916       { "gnss-ReferenceTimeForCells", "lpp.gnss_ReferenceTimeForCells",
29917         FT_UINT32, BASE_DEC, NULL, 0,
29918         "SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell", HFILL }},
29919     { &hf_lpp_gnss_ReferenceTimeForCells_item,
29920       { "GNSS-ReferenceTimeForOneCell", "lpp.GNSS_ReferenceTimeForOneCell_element",
29921         FT_NONE, BASE_NONE, NULL, 0,
29922         NULL, HFILL }},
29923     { &hf_lpp_networkTime,
29924       { "networkTime", "lpp.networkTime_element",
29925         FT_NONE, BASE_NONE, NULL, 0,
29926         NULL, HFILL }},
29927     { &hf_lpp_bsAlign,
29928       { "bsAlign", "lpp.bsAlign",
29929         FT_UINT32, BASE_DEC, VALS(lpp_T_bsAlign_vals), 0,
29930         NULL, HFILL }},
29931     { &hf_lpp_gnss_TimeID,
29932       { "gnss-TimeID", "lpp.gnss_TimeID_element",
29933         FT_NONE, BASE_NONE, NULL, 0,
29934         "GNSS_ID", HFILL }},
29935     { &hf_lpp_gnss_DayNumber,
29936       { "gnss-DayNumber", "lpp.gnss_DayNumber",
29937         FT_UINT32, BASE_DEC, NULL, 0,
29938         "INTEGER_0_32767", HFILL }},
29939     { &hf_lpp_gnss_TimeOfDay,
29940       { "gnss-TimeOfDay", "lpp.gnss_TimeOfDay",
29941         FT_UINT32, BASE_DEC, NULL, 0,
29942         "INTEGER_0_86399", HFILL }},
29943     { &hf_lpp_gnss_TimeOfDayFrac_msec,
29944       { "gnss-TimeOfDayFrac-msec", "lpp.gnss_TimeOfDayFrac_msec",
29945         FT_UINT32, BASE_DEC, NULL, 0,
29946         "INTEGER_0_999", HFILL }},
29947     { &hf_lpp_notificationOfLeapSecond,
29948       { "notificationOfLeapSecond", "lpp.notificationOfLeapSecond",
29949         FT_UINT8, BASE_DEC, VALS(lpp_kp_vals), 0,
29950         NULL, HFILL }},
29951     { &hf_lpp_gps_TOW_Assist,
29952       { "gps-TOW-Assist", "lpp.gps_TOW_Assist",
29953         FT_UINT32, BASE_DEC, NULL, 0,
29954         NULL, HFILL }},
29955     { &hf_lpp_GPS_TOW_Assist_item,
29956       { "GPS-TOW-AssistElement", "lpp.GPS_TOW_AssistElement_element",
29957         FT_NONE, BASE_NONE, NULL, 0,
29958         NULL, HFILL }},
29959     { &hf_lpp_satelliteID,
29960       { "satelliteID", "lpp.satelliteID",
29961         FT_UINT32, BASE_DEC, NULL, 0,
29962         "INTEGER_1_64", HFILL }},
29963     { &hf_lpp_tlmWord,
29964       { "tlmWord", "lpp.tlmWord",
29965         FT_UINT32, BASE_DEC, NULL, 0,
29966         "INTEGER_0_16383", HFILL }},
29967     { &hf_lpp_antiSpoof,
29968       { "antiSpoof", "lpp.antiSpoof",
29969         FT_UINT32, BASE_DEC, NULL, 0,
29970         "INTEGER_0_1", HFILL }},
29971     { &hf_lpp_alert,
29972       { "alert", "lpp.alert",
29973         FT_UINT32, BASE_DEC, NULL, 0,
29974         "INTEGER_0_1", HFILL }},
29975     { &hf_lpp_tlmRsvdBits,
29976       { "tlmRsvdBits", "lpp.tlmRsvdBits",
29977         FT_UINT32, BASE_DEC, NULL, 0,
29978         "INTEGER_0_3", HFILL }},
29979     { &hf_lpp_secondsFromFrameStructureStart,
29980       { "secondsFromFrameStructureStart", "lpp.secondsFromFrameStructureStart",
29981         FT_UINT32, BASE_DEC, NULL, 0,
29982         "INTEGER_0_12533", HFILL }},
29983     { &hf_lpp_fractionalSecondsFromFrameStructureStart,
29984       { "fractionalSecondsFromFrameStructureStart", "lpp.fractionalSecondsFromFrameStructureStart",
29985         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt), 0,
29986         "INTEGER_0_3999999", HFILL }},
29987     { &hf_lpp_frameDrift,
29988       { "frameDrift", "lpp.frameDrift",
29989         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_frameDrift_fmt), 0,
29990         "INTEGER_M64_63", HFILL }},
29991     { &hf_lpp_cellID,
29992       { "cellID", "lpp.cellID",
29993         FT_UINT32, BASE_DEC, VALS(lpp_T_cellID_vals), 0,
29994         NULL, HFILL }},
29995     { &hf_lpp_eUTRA,
29996       { "eUTRA", "lpp.eUTRA_element",
29997         FT_NONE, BASE_NONE, NULL, 0,
29998         NULL, HFILL }},
29999     { &hf_lpp_cellGlobalIdEUTRA,
30000       { "cellGlobalIdEUTRA", "lpp.cellGlobalIdEUTRA_element",
30001         FT_NONE, BASE_NONE, NULL, 0,
30002         "CellGlobalIdEUTRA_AndUTRA", HFILL }},
30003     { &hf_lpp_uTRA,
30004       { "uTRA", "lpp.uTRA_element",
30005         FT_NONE, BASE_NONE, NULL, 0,
30006         NULL, HFILL }},
30007     { &hf_lpp_mode,
30008       { "mode", "lpp.mode",
30009         FT_UINT32, BASE_DEC, VALS(lpp_T_mode_vals), 0,
30010         NULL, HFILL }},
30011     { &hf_lpp_fdd,
30012       { "fdd", "lpp.fdd_element",
30013         FT_NONE, BASE_NONE, NULL, 0,
30014         NULL, HFILL }},
30015     { &hf_lpp_primary_CPICH_Info,
30016       { "primary-CPICH-Info", "lpp.primary_CPICH_Info",
30017         FT_UINT32, BASE_DEC, NULL, 0,
30018         "INTEGER_0_511", HFILL }},
30019     { &hf_lpp_tdd,
30020       { "tdd", "lpp.tdd_element",
30021         FT_NONE, BASE_NONE, NULL, 0,
30022         NULL, HFILL }},
30023     { &hf_lpp_cellParameters,
30024       { "cellParameters", "lpp.cellParameters",
30025         FT_UINT32, BASE_DEC, NULL, 0,
30026         "INTEGER_0_127", HFILL }},
30027     { &hf_lpp_cellGlobalIdUTRA,
30028       { "cellGlobalIdUTRA", "lpp.cellGlobalIdUTRA_element",
30029         FT_NONE, BASE_NONE, NULL, 0,
30030         "CellGlobalIdEUTRA_AndUTRA", HFILL }},
30031     { &hf_lpp_uarfcn,
30032       { "uarfcn", "lpp.uarfcn",
30033         FT_UINT32, BASE_DEC, NULL, 0,
30034         "ARFCN_ValueUTRA", HFILL }},
30035     { &hf_lpp_gSM,
30036       { "gSM", "lpp.gSM_element",
30037         FT_NONE, BASE_NONE, NULL, 0,
30038         NULL, HFILL }},
30039     { &hf_lpp_bcchCarrier,
30040       { "bcchCarrier", "lpp.bcchCarrier",
30041         FT_UINT32, BASE_DEC, NULL, 0,
30042         "INTEGER_0_1023", HFILL }},
30043     { &hf_lpp_bsic,
30044       { "bsic", "lpp.bsic",
30045         FT_UINT32, BASE_DEC, NULL, 0,
30046         "INTEGER_0_63", HFILL }},
30047     { &hf_lpp_cellGlobalIdGERAN,
30048       { "cellGlobalIdGERAN", "lpp.cellGlobalIdGERAN_element",
30049         FT_NONE, BASE_NONE, NULL, 0,
30050         NULL, HFILL }},
30051     { &hf_lpp_nBIoT_r14,
30052       { "nBIoT-r14", "lpp.nBIoT_r14_element",
30053         FT_NONE, BASE_NONE, NULL, 0,
30054         "T_nBIoT_r14", HFILL }},
30055     { &hf_lpp_nbPhysCellId_r14,
30056       { "nbPhysCellId-r14", "lpp.nbPhysCellId_r14",
30057         FT_UINT32, BASE_DEC, NULL, 0,
30058         "INTEGER_0_503", HFILL }},
30059     { &hf_lpp_nbCellGlobalId_r14,
30060       { "nbCellGlobalId-r14", "lpp.nbCellGlobalId_r14_element",
30061         FT_NONE, BASE_NONE, NULL, 0,
30062         "ECGI", HFILL }},
30063     { &hf_lpp_nbCarrierFreq_r14,
30064       { "nbCarrierFreq-r14", "lpp.nbCarrierFreq_r14_element",
30065         FT_NONE, BASE_NONE, NULL, 0,
30066         "CarrierFreq_NB_r14", HFILL }},
30067     { &hf_lpp_nr_r15,
30068       { "nr-r15", "lpp.nr_r15_element",
30069         FT_NONE, BASE_NONE, NULL, 0,
30070         NULL, HFILL }},
30071     { &hf_lpp_nrCellGlobalID_r15,
30072       { "nrCellGlobalID-r15", "lpp.nrCellGlobalID_r15_element",
30073         FT_NONE, BASE_NONE, NULL, 0,
30074         "NCGI_r15", HFILL }},
30075     { &hf_lpp_nrARFCN_r15,
30076       { "nrARFCN-r15", "lpp.nrARFCN_r15",
30077         FT_UINT32, BASE_DEC, NULL, 0,
30078         "ARFCN_ValueNR_r15", HFILL }},
30079     { &hf_lpp_threeDlocation,
30080       { "threeDlocation", "lpp.threeDlocation_element",
30081         FT_NONE, BASE_NONE, NULL, 0,
30082         "EllipsoidPointWithAltitudeAndUncertaintyEllipsoid", HFILL }},
30083     { &hf_lpp_klobucharModel,
30084       { "klobucharModel", "lpp.klobucharModel_element",
30085         FT_NONE, BASE_NONE, NULL, 0,
30086         "KlobucharModelParameter", HFILL }},
30087     { &hf_lpp_neQuickModel,
30088       { "neQuickModel", "lpp.neQuickModel_element",
30089         FT_NONE, BASE_NONE, NULL, 0,
30090         "NeQuickModelParameter", HFILL }},
30091     { &hf_lpp_klobucharModel2_r16,
30092       { "klobucharModel2-r16", "lpp.klobucharModel2_r16_element",
30093         FT_NONE, BASE_NONE, NULL, 0,
30094         "KlobucharModel2Parameter_r16", HFILL }},
30095     { &hf_lpp_dataID,
30096       { "dataID", "lpp.dataID",
30097         FT_UINT8, BASE_DEC, VALS(lpp_dataID_vals), 0,
30098         NULL, HFILL }},
30099     { &hf_lpp_alfa0,
30100       { "alfa0", "lpp.alfa0",
30101         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_alpha0_fmt), 0,
30102         "INTEGER_M128_127", HFILL }},
30103     { &hf_lpp_alfa1,
30104       { "alfa1", "lpp.alfa1",
30105         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_alpha1_fmt), 0,
30106         "INTEGER_M128_127", HFILL }},
30107     { &hf_lpp_alfa2,
30108       { "alfa2", "lpp.alfa2",
30109         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_alpha2_3_fmt), 0,
30110         "INTEGER_M128_127", HFILL }},
30111     { &hf_lpp_alfa3,
30112       { "alfa3", "lpp.alfa3",
30113         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_alpha2_3_fmt), 0,
30114         "INTEGER_M128_127", HFILL }},
30115     { &hf_lpp_beta0,
30116       { "beta0", "lpp.beta0",
30117         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_beta0_fmt), 0,
30118         "INTEGER_M128_127", HFILL }},
30119     { &hf_lpp_beta1,
30120       { "beta1", "lpp.beta1",
30121         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_beta1_fmt), 0,
30122         "INTEGER_M128_127", HFILL }},
30123     { &hf_lpp_beta2,
30124       { "beta2", "lpp.beta2",
30125         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_beta2_3_fmt), 0,
30126         "INTEGER_M128_127", HFILL }},
30127     { &hf_lpp_beta3,
30128       { "beta3", "lpp.beta3",
30129         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_beta2_3_fmt), 0,
30130         "INTEGER_M128_127", HFILL }},
30131     { &hf_lpp_alfa1_r16,
30132       { "alfa1-r16", "lpp.alfa1_r16",
30133         FT_UINT32, BASE_DEC, NULL, 0,
30134         "INTEGER_0_1023", HFILL }},
30135     { &hf_lpp_alfa2_r16,
30136       { "alfa2-r16", "lpp.alfa2_r16",
30137         FT_INT32, BASE_DEC, NULL, 0,
30138         "INTEGER_M128_127", HFILL }},
30139     { &hf_lpp_alfa3_r16,
30140       { "alfa3-r16", "lpp.alfa3_r16",
30141         FT_UINT32, BASE_DEC, NULL, 0,
30142         "INTEGER_0_255", HFILL }},
30143     { &hf_lpp_alfa4_r16,
30144       { "alfa4-r16", "lpp.alfa4_r16",
30145         FT_UINT32, BASE_DEC, NULL, 0,
30146         "INTEGER_0_255", HFILL }},
30147     { &hf_lpp_alfa5_r16,
30148       { "alfa5-r16", "lpp.alfa5_r16",
30149         FT_UINT32, BASE_DEC, NULL, 0,
30150         "INTEGER_0_255", HFILL }},
30151     { &hf_lpp_alfa6_r16,
30152       { "alfa6-r16", "lpp.alfa6_r16",
30153         FT_INT32, BASE_DEC, NULL, 0,
30154         "INTEGER_M128_127", HFILL }},
30155     { &hf_lpp_alfa7_r16,
30156       { "alfa7-r16", "lpp.alfa7_r16",
30157         FT_INT32, BASE_DEC, NULL, 0,
30158         "INTEGER_M128_127", HFILL }},
30159     { &hf_lpp_alfa8_r16,
30160       { "alfa8-r16", "lpp.alfa8_r16",
30161         FT_INT32, BASE_DEC, NULL, 0,
30162         "INTEGER_M128_127", HFILL }},
30163     { &hf_lpp_alfa9_r16,
30164       { "alfa9-r16", "lpp.alfa9_r16",
30165         FT_INT32, BASE_DEC, NULL, 0,
30166         "INTEGER_M128_127", HFILL }},
30167     { &hf_lpp_ai0,
30168       { "ai0", "lpp.ai0",
30169         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_ai0_fmt), 0,
30170         "INTEGER_0_2047", HFILL }},
30171     { &hf_lpp_ai1,
30172       { "ai1", "lpp.ai1",
30173         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_ai1_fmt), 0,
30174         "INTEGER_M1024_1023", HFILL }},
30175     { &hf_lpp_ai2,
30176       { "ai2", "lpp.ai2",
30177         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_ai2_fmt), 0,
30178         "INTEGER_M8192_8191", HFILL }},
30179     { &hf_lpp_ionoStormFlag1,
30180       { "ionoStormFlag1", "lpp.ionoStormFlag1",
30181         FT_UINT32, BASE_DEC, NULL, 0,
30182         "INTEGER_0_1", HFILL }},
30183     { &hf_lpp_ionoStormFlag2,
30184       { "ionoStormFlag2", "lpp.ionoStormFlag2",
30185         FT_UINT32, BASE_DEC, NULL, 0,
30186         "INTEGER_0_1", HFILL }},
30187     { &hf_lpp_ionoStormFlag3,
30188       { "ionoStormFlag3", "lpp.ionoStormFlag3",
30189         FT_UINT32, BASE_DEC, NULL, 0,
30190         "INTEGER_0_1", HFILL }},
30191     { &hf_lpp_ionoStormFlag4,
30192       { "ionoStormFlag4", "lpp.ionoStormFlag4",
30193         FT_UINT32, BASE_DEC, NULL, 0,
30194         "INTEGER_0_1", HFILL }},
30195     { &hf_lpp_ionoStormFlag5,
30196       { "ionoStormFlag5", "lpp.ionoStormFlag5",
30197         FT_UINT32, BASE_DEC, NULL, 0,
30198         "INTEGER_0_1", HFILL }},
30199     { &hf_lpp_teop,
30200       { "teop", "lpp.teop",
30201         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_teop_fmt), 0,
30202         "INTEGER_0_65535", HFILL }},
30203     { &hf_lpp_pmX,
30204       { "pmX", "lpp.pmX",
30205         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_pmX_Y_fmt), 0,
30206         "INTEGER_M1048576_1048575", HFILL }},
30207     { &hf_lpp_pmXdot,
30208       { "pmXdot", "lpp.pmXdot",
30209         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_pmX_Ydot_fmt), 0,
30210         "INTEGER_M16384_16383", HFILL }},
30211     { &hf_lpp_pmY,
30212       { "pmY", "lpp.pmY",
30213         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_pmX_Y_fmt), 0,
30214         "INTEGER_M1048576_1048575", HFILL }},
30215     { &hf_lpp_pmYdot,
30216       { "pmYdot", "lpp.pmYdot",
30217         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_pmX_Ydot_fmt), 0,
30218         "INTEGER_M16384_16383", HFILL }},
30219     { &hf_lpp_deltaUT1,
30220       { "deltaUT1", "lpp.deltaUT1",
30221         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_deltaUT1_fmt), 0,
30222         "INTEGER_M1073741824_1073741823", HFILL }},
30223     { &hf_lpp_deltaUT1dot,
30224       { "deltaUT1dot", "lpp.deltaUT1dot",
30225         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_deltaUT1dot_fmt), 0,
30226         "INTEGER_M262144_262143", HFILL }},
30227     { &hf_lpp_referenceStationID_r15,
30228       { "referenceStationID-r15", "lpp.referenceStationID_r15_element",
30229         FT_NONE, BASE_NONE, NULL, 0,
30230         "GNSS_ReferenceStationID_r15", HFILL }},
30231     { &hf_lpp_referenceStationIndicator_r15,
30232       { "referenceStationIndicator-r15", "lpp.referenceStationIndicator_r15",
30233         FT_UINT32, BASE_DEC, VALS(lpp_T_referenceStationIndicator_r15_vals), 0,
30234         NULL, HFILL }},
30235     { &hf_lpp_antenna_reference_point_ECEF_X_r15,
30236       { "antenna-reference-point-ECEF-X-r15", "lpp.antenna_reference_point_ECEF_X_r15",
30237         FT_INT64, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_64_fmt), 0,
30238         "INTEGER_M137438953472_137438953471", HFILL }},
30239     { &hf_lpp_antenna_reference_point_ECEF_Y_r15,
30240       { "antenna-reference-point-ECEF-Y-r15", "lpp.antenna_reference_point_ECEF_Y_r15",
30241         FT_INT64, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_64_fmt), 0,
30242         "INTEGER_M137438953472_137438953471", HFILL }},
30243     { &hf_lpp_antenna_reference_point_ECEF_Z_r15,
30244       { "antenna-reference-point-ECEF-Z-r15", "lpp.antenna_reference_point_ECEF_Z_r15",
30245         FT_INT64, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_64_fmt), 0,
30246         "INTEGER_M137438953472_137438953471", HFILL }},
30247     { &hf_lpp_antennaHeight_r15,
30248       { "antennaHeight-r15", "lpp.antennaHeight_r15",
30249         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_32_fmt), 0,
30250         "INTEGER_0_65535", HFILL }},
30251     { &hf_lpp_antennaDescription_r15,
30252       { "antennaDescription-r15", "lpp.antennaDescription_r15_element",
30253         FT_NONE, BASE_NONE, NULL, 0,
30254         NULL, HFILL }},
30255     { &hf_lpp_antenna_reference_point_unc_r15,
30256       { "antenna-reference-point-unc-r15", "lpp.antenna_reference_point_unc_r15_element",
30257         FT_NONE, BASE_NONE, NULL, 0,
30258         "AntennaReferencePointUnc_r15", HFILL }},
30259     { &hf_lpp_physical_reference_station_info_r15,
30260       { "physical-reference-station-info-r15", "lpp.physical_reference_station_info_r15_element",
30261         FT_NONE, BASE_NONE, NULL, 0,
30262         "PhysicalReferenceStationInfo_r15", HFILL }},
30263     { &hf_lpp_equalIntegerAmbiguityLevel_r16,
30264       { "equalIntegerAmbiguityLevel-r16", "lpp.equalIntegerAmbiguityLevel_r16",
30265         FT_UINT32, BASE_DEC, VALS(lpp_EqualIntegerAmbiguityLevel_r16_vals), 0,
30266         NULL, HFILL }},
30267     { &hf_lpp_antennaDescriptor_r15,
30268       { "antennaDescriptor-r15", "lpp.antennaDescriptor_r15",
30269         FT_STRING, BASE_NONE, NULL, 0,
30270         "VisibleString_SIZE_1_256", HFILL }},
30271     { &hf_lpp_antennaSetUpID_r15,
30272       { "antennaSetUpID-r15", "lpp.antennaSetUpID_r15",
30273         FT_UINT32, BASE_DEC, VALS(lpp_T_antennaSetUpID_r15_vals), 0,
30274         NULL, HFILL }},
30275     { &hf_lpp_uncertainty_X_r15,
30276       { "uncertainty-X-r15", "lpp.uncertainty_X_r15",
30277         FT_UINT32, BASE_DEC, NULL, 0,
30278         "INTEGER_0_255", HFILL }},
30279     { &hf_lpp_confidence_X_r15,
30280       { "confidence-X-r15", "lpp.confidence_X_r15",
30281         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
30282         "INTEGER_0_100", HFILL }},
30283     { &hf_lpp_uncertainty_Y_r15,
30284       { "uncertainty-Y-r15", "lpp.uncertainty_Y_r15",
30285         FT_UINT32, BASE_DEC, NULL, 0,
30286         "INTEGER_0_255", HFILL }},
30287     { &hf_lpp_confidence_Y_r15,
30288       { "confidence-Y-r15", "lpp.confidence_Y_r15",
30289         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
30290         "INTEGER_0_100", HFILL }},
30291     { &hf_lpp_uncertainty_Z_r15,
30292       { "uncertainty-Z-r15", "lpp.uncertainty_Z_r15",
30293         FT_UINT32, BASE_DEC, NULL, 0,
30294         "INTEGER_0_255", HFILL }},
30295     { &hf_lpp_confidence_Z_r15,
30296       { "confidence-Z-r15", "lpp.confidence_Z_r15",
30297         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
30298         "INTEGER_0_100", HFILL }},
30299     { &hf_lpp_physicalReferenceStationID_r15,
30300       { "physicalReferenceStationID-r15", "lpp.physicalReferenceStationID_r15_element",
30301         FT_NONE, BASE_NONE, NULL, 0,
30302         "GNSS_ReferenceStationID_r15", HFILL }},
30303     { &hf_lpp_physical_ARP_ECEF_X_r15,
30304       { "physical-ARP-ECEF-X-r15", "lpp.physical_ARP_ECEF_X_r15",
30305         FT_INT64, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_64_fmt), 0,
30306         "INTEGER_M137438953472_137438953471", HFILL }},
30307     { &hf_lpp_physical_ARP_ECEF_Y_r15,
30308       { "physical-ARP-ECEF-Y-r15", "lpp.physical_ARP_ECEF_Y_r15",
30309         FT_INT64, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_64_fmt), 0,
30310         "INTEGER_M137438953472_137438953471", HFILL }},
30311     { &hf_lpp_physical_ARP_ECEF_Z_r15,
30312       { "physical-ARP-ECEF-Z-r15", "lpp.physical_ARP_ECEF_Z_r15",
30313         FT_INT64, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_64_fmt), 0,
30314         "INTEGER_M137438953472_137438953471", HFILL }},
30315     { &hf_lpp_physical_ARP_unc_r15,
30316       { "physical-ARP-unc-r15", "lpp.physical_ARP_unc_r15_element",
30317         FT_NONE, BASE_NONE, NULL, 0,
30318         "AntennaReferencePointUnc_r15", HFILL }},
30319     { &hf_lpp_allReferenceStations_r16,
30320       { "allReferenceStations-r16", "lpp.allReferenceStations_r16_element",
30321         FT_NONE, BASE_NONE, NULL, 0,
30322         NULL, HFILL }},
30323     { &hf_lpp_referenceStationList_r16,
30324       { "referenceStationList-r16", "lpp.referenceStationList_r16",
30325         FT_UINT32, BASE_DEC, NULL, 0,
30326         NULL, HFILL }},
30327     { &hf_lpp_ReferenceStationList_r16_item,
30328       { "GNSS-ReferenceStationID-r15", "lpp.GNSS_ReferenceStationID_r15_element",
30329         FT_NONE, BASE_NONE, NULL, 0,
30330         NULL, HFILL }},
30331     { &hf_lpp_clockSteeringIndicator_r15,
30332       { "clockSteeringIndicator-r15", "lpp.clockSteeringIndicator_r15",
30333         FT_UINT8, BASE_DEC, VALS(lpp_clockSteeringIndicator_vals), 0,
30334         "INTEGER_0_3", HFILL }},
30335     { &hf_lpp_externalClockIndicator_r15,
30336       { "externalClockIndicator-r15", "lpp.externalClockIndicator_r15",
30337         FT_UINT8, BASE_DEC, VALS(lpp_externalClockIndicator_vals), 0,
30338         "INTEGER_0_3", HFILL }},
30339     { &hf_lpp_smoothingIndicator_r15,
30340       { "smoothingIndicator-r15", "lpp.smoothingIndicator_r15",
30341         FT_UINT8, BASE_DEC, VALS(lpp_smoothingIndicator_r15_vals), 0,
30342         NULL, HFILL }},
30343     { &hf_lpp_smoothingInterval_r15,
30344       { "smoothingInterval-r15", "lpp.smoothingInterval_r15",
30345         FT_UINT8, BASE_DEC, VALS(lpp_smoothingInterval_r15_vals), 0,
30346         NULL, HFILL }},
30347     { &hf_lpp_networkID_r15,
30348       { "networkID-r15", "lpp.networkID_r15_element",
30349         FT_NONE, BASE_NONE, NULL, 0,
30350         "GNSS_NetworkID_r15", HFILL }},
30351     { &hf_lpp_subNetworkID_r15,
30352       { "subNetworkID-r15", "lpp.subNetworkID_r15_element",
30353         FT_NONE, BASE_NONE, NULL, 0,
30354         "GNSS_SubNetworkID_r15", HFILL }},
30355     { &hf_lpp_master_referenceStationID_r15,
30356       { "master-referenceStationID-r15", "lpp.master_referenceStationID_r15_element",
30357         FT_NONE, BASE_NONE, NULL, 0,
30358         "GNSS_ReferenceStationID_r15", HFILL }},
30359     { &hf_lpp_auxiliaryStationList_r15,
30360       { "auxiliaryStationList-r15", "lpp.auxiliaryStationList_r15",
30361         FT_UINT32, BASE_DEC, NULL, 0,
30362         NULL, HFILL }},
30363     { &hf_lpp_AuxiliaryStationList_r15_item,
30364       { "AuxiliaryStationElement-r15", "lpp.AuxiliaryStationElement_r15_element",
30365         FT_NONE, BASE_NONE, NULL, 0,
30366         NULL, HFILL }},
30367     { &hf_lpp_aux_referenceStationID_r15,
30368       { "aux-referenceStationID-r15", "lpp.aux_referenceStationID_r15_element",
30369         FT_NONE, BASE_NONE, NULL, 0,
30370         "GNSS_ReferenceStationID_r15", HFILL }},
30371     { &hf_lpp_aux_master_delta_latitude_r15,
30372       { "aux-master-delta-latitude-r15", "lpp.aux_master_delta_latitude_r15",
30373         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_aux_master_delta_fmt), 0,
30374         "INTEGER_M524288_524287", HFILL }},
30375     { &hf_lpp_aux_master_delta_longitude_r15,
30376       { "aux-master-delta-longitude-r15", "lpp.aux_master_delta_longitude_r15",
30377         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_aux_master_delta_fmt), 0,
30378         "INTEGER_M1048576_1048575", HFILL }},
30379     { &hf_lpp_aux_master_delta_height_r15,
30380       { "aux-master-delta-height-r15", "lpp.aux_master_delta_height_r15",
30381         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_1000m_32_fmt), 0,
30382         "INTEGER_M4194304_4194303", HFILL }},
30383     { &hf_lpp_aux_ARP_unc_r15,
30384       { "aux-ARP-unc-r15", "lpp.aux_ARP_unc_r15_element",
30385         FT_NONE, BASE_NONE, NULL, 0,
30386         NULL, HFILL }},
30387     { &hf_lpp_horizontalUncertainty_r15,
30388       { "horizontalUncertainty-r15", "lpp.horizontalUncertainty_r15",
30389         FT_UINT32, BASE_DEC, NULL, 0,
30390         "INTEGER_0_255", HFILL }},
30391     { &hf_lpp_verticalUncertainty_r15,
30392       { "verticalUncertainty-r15", "lpp.verticalUncertainty_r15",
30393         FT_UINT32, BASE_DEC, NULL, 0,
30394         "INTEGER_0_255", HFILL }},
30395     { &hf_lpp_correctionPointSetID_r16,
30396       { "correctionPointSetID-r16", "lpp.correctionPointSetID_r16",
30397         FT_UINT32, BASE_DEC, NULL, 0,
30398         "INTEGER_0_16383", HFILL }},
30399     { &hf_lpp_correctionPoints_r16,
30400       { "correctionPoints-r16", "lpp.correctionPoints_r16",
30401         FT_UINT32, BASE_DEC, VALS(lpp_T_correctionPoints_r16_vals), 0,
30402         NULL, HFILL }},
30403     { &hf_lpp_listOfCorrectionPoints_r16,
30404       { "listOfCorrectionPoints-r16", "lpp.listOfCorrectionPoints_r16_element",
30405         FT_NONE, BASE_NONE, NULL, 0,
30406         "GNSS_SSR_ListOfCorrectionPoints_r16", HFILL }},
30407     { &hf_lpp_arrayOfCorrectionPoints_r16,
30408       { "arrayOfCorrectionPoints-r16", "lpp.arrayOfCorrectionPoints_r16_element",
30409         FT_NONE, BASE_NONE, NULL, 0,
30410         "GNSS_SSR_ArrayOfCorrectionPoints_r16", HFILL }},
30411     { &hf_lpp_referencePointLatitude_r16,
30412       { "referencePointLatitude-r16", "lpp.referencePointLatitude_r16",
30413         FT_INT32, BASE_DEC, NULL, 0,
30414         "INTEGER_M16384_16383", HFILL }},
30415     { &hf_lpp_referencePointLongitude_r16,
30416       { "referencePointLongitude-r16", "lpp.referencePointLongitude_r16",
30417         FT_INT32, BASE_DEC, NULL, 0,
30418         "INTEGER_M32768_32767", HFILL }},
30419     { &hf_lpp_relativeLocationsList_r16,
30420       { "relativeLocationsList-r16", "lpp.relativeLocationsList_r16",
30421         FT_UINT32, BASE_DEC, NULL, 0,
30422         "SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16", HFILL }},
30423     { &hf_lpp_relativeLocationsList_r16_item,
30424       { "RelativeLocationElement-r16", "lpp.RelativeLocationElement_r16_element",
30425         FT_NONE, BASE_NONE, NULL, 0,
30426         NULL, HFILL }},
30427     { &hf_lpp_deltaLatitude_r16,
30428       { "deltaLatitude-r16", "lpp.deltaLatitude_r16",
30429         FT_INT32, BASE_DEC, NULL, 0,
30430         "INTEGER_M512_511", HFILL }},
30431     { &hf_lpp_deltaLongitude_r16,
30432       { "deltaLongitude-r16", "lpp.deltaLongitude_r16",
30433         FT_INT32, BASE_DEC, NULL, 0,
30434         "INTEGER_M1024_1023", HFILL }},
30435     { &hf_lpp_numberOfStepsLatitude_r16,
30436       { "numberOfStepsLatitude-r16", "lpp.numberOfStepsLatitude_r16",
30437         FT_UINT32, BASE_DEC, NULL, 0,
30438         "INTEGER_0_63", HFILL }},
30439     { &hf_lpp_numberOfStepsLongitude_r16,
30440       { "numberOfStepsLongitude-r16", "lpp.numberOfStepsLongitude_r16",
30441         FT_UINT32, BASE_DEC, NULL, 0,
30442         "INTEGER_0_63", HFILL }},
30443     { &hf_lpp_stepOfLatitude_r16,
30444       { "stepOfLatitude-r16", "lpp.stepOfLatitude_r16",
30445         FT_UINT32, BASE_DEC, NULL, 0,
30446         "INTEGER_1_511", HFILL }},
30447     { &hf_lpp_stepOfLongitude_r16,
30448       { "stepOfLongitude-r16", "lpp.stepOfLongitude_r16",
30449         FT_UINT32, BASE_DEC, NULL, 0,
30450         "INTEGER_1_1023", HFILL }},
30451     { &hf_lpp_bitmaskOfGrids_r16,
30452       { "bitmaskOfGrids-r16", "lpp.bitmaskOfGrids_r16",
30453         FT_BYTES, BASE_NONE, NULL, 0,
30454         "BIT_STRING_SIZE_64", HFILL }},
30455     { &hf_lpp_GNSS_TimeModelList_item,
30456       { "GNSS-TimeModelElement", "lpp.GNSS_TimeModelElement_element",
30457         FT_NONE, BASE_NONE, NULL, 0,
30458         NULL, HFILL }},
30459     { &hf_lpp_gnss_TimeModelRefTime,
30460       { "gnss-TimeModelRefTime", "lpp.gnss_TimeModelRefTime",
30461         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_TimeModelRefTime_fmt), 0,
30462         "INTEGER_0_65535", HFILL }},
30463     { &hf_lpp_tA0,
30464       { "tA0", "lpp.tA0",
30465         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tA0_fmt), 0,
30466         "INTEGER_M67108864_67108863", HFILL }},
30467     { &hf_lpp_tA1,
30468       { "tA1", "lpp.tA1",
30469         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tA1_fmt), 0,
30470         "INTEGER_M4096_4095", HFILL }},
30471     { &hf_lpp_tA2,
30472       { "tA2", "lpp.tA2",
30473         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tA2_fmt), 0,
30474         "INTEGER_M64_63", HFILL }},
30475     { &hf_lpp_gnss_TO_ID,
30476       { "gnss-TO-ID", "lpp.gnss_TO_ID",
30477         FT_UINT32, BASE_DEC, VALS(lpp_gnss_TO_ID_vals), 0,
30478         "INTEGER_1_15", HFILL }},
30479     { &hf_lpp_weekNumber,
30480       { "weekNumber", "lpp.weekNumber",
30481         FT_UINT32, BASE_DEC, NULL, 0,
30482         "INTEGER_0_8191", HFILL }},
30483     { &hf_lpp_deltaT,
30484       { "deltaT", "lpp.deltaT",
30485         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
30486         "INTEGER_M128_127", HFILL }},
30487     { &hf_lpp_dgnss_RefTime,
30488       { "dgnss-RefTime", "lpp.dgnss_RefTime",
30489         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
30490         "INTEGER_0_3599", HFILL }},
30491     { &hf_lpp_dgnss_SgnTypeList,
30492       { "dgnss-SgnTypeList", "lpp.dgnss_SgnTypeList",
30493         FT_UINT32, BASE_DEC, NULL, 0,
30494         NULL, HFILL }},
30495     { &hf_lpp_DGNSS_SgnTypeList_item,
30496       { "DGNSS-SgnTypeElement", "lpp.DGNSS_SgnTypeElement_element",
30497         FT_NONE, BASE_NONE, NULL, 0,
30498         NULL, HFILL }},
30499     { &hf_lpp_gnss_SignalID,
30500       { "gnss-SignalID", "lpp.gnss_SignalID_element",
30501         FT_NONE, BASE_NONE, NULL, 0,
30502         NULL, HFILL }},
30503     { &hf_lpp_gnss_StatusHealth,
30504       { "gnss-StatusHealth", "lpp.gnss_StatusHealth",
30505         FT_UINT32, BASE_DEC, VALS(lpp_gnss_StatusHealth_vals), 0,
30506         "INTEGER_0_7", HFILL }},
30507     { &hf_lpp_dgnss_SatList,
30508       { "dgnss-SatList", "lpp.dgnss_SatList",
30509         FT_UINT32, BASE_DEC, NULL, 0,
30510         NULL, HFILL }},
30511     { &hf_lpp_DGNSS_SatList_item,
30512       { "DGNSS-CorrectionsElement", "lpp.DGNSS_CorrectionsElement_element",
30513         FT_NONE, BASE_NONE, NULL, 0,
30514         NULL, HFILL }},
30515     { &hf_lpp_svID,
30516       { "svID", "lpp.svID_element",
30517         FT_NONE, BASE_NONE, NULL, 0,
30518         "SV_ID", HFILL }},
30519     { &hf_lpp_iod,
30520       { "iod", "lpp.iod",
30521         FT_BYTES, BASE_NONE, NULL, 0,
30522         "BIT_STRING_SIZE_11", HFILL }},
30523     { &hf_lpp_udre,
30524       { "udre", "lpp.udre",
30525         FT_UINT32, BASE_DEC, VALS(lpp_udre_vals), 0,
30526         "INTEGER_0_3", HFILL }},
30527     { &hf_lpp_pseudoRangeCor,
30528       { "pseudoRangeCor", "lpp.pseudoRangeCor",
30529         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_pseudoRangeCor_fmt), 0,
30530         "INTEGER_M2047_2047", HFILL }},
30531     { &hf_lpp_rangeRateCor,
30532       { "rangeRateCor", "lpp.rangeRateCor",
30533         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_rangeRateCor_fmt), 0,
30534         "INTEGER_M127_127", HFILL }},
30535     { &hf_lpp_udreGrowthRate,
30536       { "udreGrowthRate", "lpp.udreGrowthRate",
30537         FT_UINT32, BASE_DEC, VALS(lpp_udreGrowthRate_vals), 0,
30538         "INTEGER_0_7", HFILL }},
30539     { &hf_lpp_udreValidityTime,
30540       { "udreValidityTime", "lpp.udreValidityTime",
30541         FT_UINT32, BASE_DEC, VALS(lpp_udreValidityTime_vals), 0,
30542         "INTEGER_0_7", HFILL }},
30543     { &hf_lpp_nonBroadcastIndFlag,
30544       { "nonBroadcastIndFlag", "lpp.nonBroadcastIndFlag",
30545         FT_UINT32, BASE_DEC, NULL, 0,
30546         "INTEGER_0_1", HFILL }},
30547     { &hf_lpp_gnss_SatelliteList,
30548       { "gnss-SatelliteList", "lpp.gnss_SatelliteList",
30549         FT_UINT32, BASE_DEC, NULL, 0,
30550         "GNSS_NavModelSatelliteList", HFILL }},
30551     { &hf_lpp_GNSS_NavModelSatelliteList_item,
30552       { "GNSS-NavModelSatelliteElement", "lpp.GNSS_NavModelSatelliteElement_element",
30553         FT_NONE, BASE_NONE, NULL, 0,
30554         NULL, HFILL }},
30555     { &hf_lpp_svHealth,
30556       { "svHealth", "lpp.svHealth",
30557         FT_BYTES, BASE_NONE, NULL, 0,
30558         "BIT_STRING_SIZE_8", HFILL }},
30559     { &hf_lpp_gnss_ClockModel,
30560       { "gnss-ClockModel", "lpp.gnss_ClockModel",
30561         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_ClockModel_vals), 0,
30562         NULL, HFILL }},
30563     { &hf_lpp_gnss_OrbitModel,
30564       { "gnss-OrbitModel", "lpp.gnss_OrbitModel",
30565         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_OrbitModel_vals), 0,
30566         NULL, HFILL }},
30567     { &hf_lpp_svHealthExt_v1240,
30568       { "svHealthExt-v1240", "lpp.svHealthExt_v1240",
30569         FT_BYTES, BASE_NONE, NULL, 0,
30570         "T_svHealthExt_v1240", HFILL }},
30571     { &hf_lpp_standardClockModelList,
30572       { "standardClockModelList", "lpp.standardClockModelList",
30573         FT_UINT32, BASE_DEC, NULL, 0,
30574         NULL, HFILL }},
30575     { &hf_lpp_nav_ClockModel,
30576       { "nav-ClockModel", "lpp.nav_ClockModel_element",
30577         FT_NONE, BASE_NONE, NULL, 0,
30578         NULL, HFILL }},
30579     { &hf_lpp_cnav_ClockModel,
30580       { "cnav-ClockModel", "lpp.cnav_ClockModel_element",
30581         FT_NONE, BASE_NONE, NULL, 0,
30582         NULL, HFILL }},
30583     { &hf_lpp_glonass_ClockModel,
30584       { "glonass-ClockModel", "lpp.glonass_ClockModel_element",
30585         FT_NONE, BASE_NONE, NULL, 0,
30586         NULL, HFILL }},
30587     { &hf_lpp_sbas_ClockModel,
30588       { "sbas-ClockModel", "lpp.sbas_ClockModel_element",
30589         FT_NONE, BASE_NONE, NULL, 0,
30590         NULL, HFILL }},
30591     { &hf_lpp_bds_ClockModel_r12,
30592       { "bds-ClockModel-r12", "lpp.bds_ClockModel_r12_element",
30593         FT_NONE, BASE_NONE, NULL, 0,
30594         NULL, HFILL }},
30595     { &hf_lpp_bds_ClockModel2_r16,
30596       { "bds-ClockModel2-r16", "lpp.bds_ClockModel2_r16_element",
30597         FT_NONE, BASE_NONE, NULL, 0,
30598         NULL, HFILL }},
30599     { &hf_lpp_navic_ClockModel_r16,
30600       { "navic-ClockModel-r16", "lpp.navic_ClockModel_r16_element",
30601         FT_NONE, BASE_NONE, NULL, 0,
30602         NULL, HFILL }},
30603     { &hf_lpp_keplerianSet,
30604       { "keplerianSet", "lpp.keplerianSet_element",
30605         FT_NONE, BASE_NONE, NULL, 0,
30606         "NavModelKeplerianSet", HFILL }},
30607     { &hf_lpp_nav_KeplerianSet,
30608       { "nav-KeplerianSet", "lpp.nav_KeplerianSet_element",
30609         FT_NONE, BASE_NONE, NULL, 0,
30610         "NavModelNAV_KeplerianSet", HFILL }},
30611     { &hf_lpp_cnav_KeplerianSet,
30612       { "cnav-KeplerianSet", "lpp.cnav_KeplerianSet_element",
30613         FT_NONE, BASE_NONE, NULL, 0,
30614         "NavModelCNAV_KeplerianSet", HFILL }},
30615     { &hf_lpp_glonass_ECEF,
30616       { "glonass-ECEF", "lpp.glonass_ECEF_element",
30617         FT_NONE, BASE_NONE, NULL, 0,
30618         "NavModel_GLONASS_ECEF", HFILL }},
30619     { &hf_lpp_sbas_ECEF,
30620       { "sbas-ECEF", "lpp.sbas_ECEF_element",
30621         FT_NONE, BASE_NONE, NULL, 0,
30622         "NavModel_SBAS_ECEF", HFILL }},
30623     { &hf_lpp_bds_KeplerianSet_r12,
30624       { "bds-KeplerianSet-r12", "lpp.bds_KeplerianSet_r12_element",
30625         FT_NONE, BASE_NONE, NULL, 0,
30626         "NavModel_BDS_KeplerianSet_r12", HFILL }},
30627     { &hf_lpp_bds_KeplerianSet2_r16,
30628       { "bds-KeplerianSet2-r16", "lpp.bds_KeplerianSet2_r16_element",
30629         FT_NONE, BASE_NONE, NULL, 0,
30630         "NavModel_BDS_KeplerianSet2_r16", HFILL }},
30631     { &hf_lpp_navic_KeplerianSet_r16,
30632       { "navic-KeplerianSet-r16", "lpp.navic_KeplerianSet_r16_element",
30633         FT_NONE, BASE_NONE, NULL, 0,
30634         "NavModel_NavIC_KeplerianSet_r16", HFILL }},
30635     { &hf_lpp_StandardClockModelList_item,
30636       { "StandardClockModelElement", "lpp.StandardClockModelElement_element",
30637         FT_NONE, BASE_NONE, NULL, 0,
30638         NULL, HFILL }},
30639     { &hf_lpp_stanClockToc,
30640       { "stanClockToc", "lpp.stanClockToc",
30641         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_stanClockToc_fmt), 0,
30642         "INTEGER_0_16383", HFILL }},
30643     { &hf_lpp_stanClockAF2,
30644       { "stanClockAF2", "lpp.stanClockAF2",
30645         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_stanClockAF2_fmt), 0,
30646         "INTEGER_M32_31", HFILL }},
30647     { &hf_lpp_stanClockAF1,
30648       { "stanClockAF1", "lpp.stanClockAF1",
30649         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_stanClockAF1_fmt), 0,
30650         "INTEGER_M1048576_1048575", HFILL }},
30651     { &hf_lpp_stanClockAF0,
30652       { "stanClockAF0", "lpp.stanClockAF0",
30653         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_stanClockAF0_fmt), 0,
30654         "INTEGER_M1073741824_1073741823", HFILL }},
30655     { &hf_lpp_stanClockTgd,
30656       { "stanClockTgd", "lpp.stanClockTgd",
30657         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_stanClockTgd_fmt), 0,
30658         "INTEGER_M512_511", HFILL }},
30659     { &hf_lpp_sisa,
30660       { "sisa", "lpp.sisa",
30661         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_sisa_fmt), 0,
30662         "INTEGER_0_255", HFILL }},
30663     { &hf_lpp_stanModelID,
30664       { "stanModelID", "lpp.stanModelID",
30665         FT_UINT32, BASE_DEC, VALS(lpp_stanModelID_vals), 0,
30666         "INTEGER_0_1", HFILL }},
30667     { &hf_lpp_navToc,
30668       { "navToc", "lpp.navToc",
30669         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_navToc_fmt), 0,
30670         "INTEGER_0_37799", HFILL }},
30671     { &hf_lpp_navaf2,
30672       { "navaf2", "lpp.navaf2",
30673         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navaf2_fmt), 0,
30674         "INTEGER_M128_127", HFILL }},
30675     { &hf_lpp_navaf1,
30676       { "navaf1", "lpp.navaf1",
30677         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navaf1_fmt), 0,
30678         "INTEGER_M32768_32767", HFILL }},
30679     { &hf_lpp_navaf0,
30680       { "navaf0", "lpp.navaf0",
30681         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navaf0_navTgd_fmt), 0,
30682         "INTEGER_M2097152_2097151", HFILL }},
30683     { &hf_lpp_navTgd,
30684       { "navTgd", "lpp.navTgd",
30685         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navaf0_navTgd_fmt), 0,
30686         "INTEGER_M128_127", HFILL }},
30687     { &hf_lpp_cnavToc,
30688       { "cnavToc", "lpp.cnavToc",
30689         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_cnavToc_cnavTop_fmt), 0,
30690         "INTEGER_0_2015", HFILL }},
30691     { &hf_lpp_cnavTop,
30692       { "cnavTop", "lpp.cnavTop",
30693         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_cnavToc_cnavTop_fmt), 0,
30694         "INTEGER_0_2015", HFILL }},
30695     { &hf_lpp_cnavURA0,
30696       { "cnavURA0", "lpp.cnavURA0",
30697         FT_INT32, BASE_DEC, NULL, 0,
30698         "INTEGER_M16_15", HFILL }},
30699     { &hf_lpp_cnavURA1,
30700       { "cnavURA1", "lpp.cnavURA1",
30701         FT_UINT32, BASE_DEC, NULL, 0,
30702         "INTEGER_0_7", HFILL }},
30703     { &hf_lpp_cnavURA2,
30704       { "cnavURA2", "lpp.cnavURA2",
30705         FT_UINT32, BASE_DEC, NULL, 0,
30706         "INTEGER_0_7", HFILL }},
30707     { &hf_lpp_cnavAf2,
30708       { "cnavAf2", "lpp.cnavAf2",
30709         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavAf2_fmt), 0,
30710         "INTEGER_M512_511", HFILL }},
30711     { &hf_lpp_cnavAf1,
30712       { "cnavAf1", "lpp.cnavAf1",
30713         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavAf1_fmt), 0,
30714         "INTEGER_M524288_524287", HFILL }},
30715     { &hf_lpp_cnavAf0,
30716       { "cnavAf0", "lpp.cnavAf0",
30717         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30718         "INTEGER_M33554432_33554431", HFILL }},
30719     { &hf_lpp_cnavTgd,
30720       { "cnavTgd", "lpp.cnavTgd",
30721         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30722         "INTEGER_M4096_4095", HFILL }},
30723     { &hf_lpp_cnavISCl1cp,
30724       { "cnavISCl1cp", "lpp.cnavISCl1cp",
30725         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30726         "INTEGER_M4096_4095", HFILL }},
30727     { &hf_lpp_cnavISCl1cd,
30728       { "cnavISCl1cd", "lpp.cnavISCl1cd",
30729         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30730         "INTEGER_M4096_4095", HFILL }},
30731     { &hf_lpp_cnavISCl1ca,
30732       { "cnavISCl1ca", "lpp.cnavISCl1ca",
30733         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30734         "INTEGER_M4096_4095", HFILL }},
30735     { &hf_lpp_cnavISCl2c,
30736       { "cnavISCl2c", "lpp.cnavISCl2c",
30737         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30738         "INTEGER_M4096_4095", HFILL }},
30739     { &hf_lpp_cnavISCl5i5,
30740       { "cnavISCl5i5", "lpp.cnavISCl5i5",
30741         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30742         "INTEGER_M4096_4095", HFILL }},
30743     { &hf_lpp_cnavISCl5q5,
30744       { "cnavISCl5q5", "lpp.cnavISCl5q5",
30745         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavX_fmt), 0,
30746         "INTEGER_M4096_4095", HFILL }},
30747     { &hf_lpp_gloTau,
30748       { "gloTau", "lpp.gloTau",
30749         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloTau_gloDeltaTau_fmt), 0,
30750         "INTEGER_M2097152_2097151", HFILL }},
30751     { &hf_lpp_gloGamma,
30752       { "gloGamma", "lpp.gloGamma",
30753         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloGamma_fmt), 0,
30754         "INTEGER_M1024_1023", HFILL }},
30755     { &hf_lpp_gloDeltaTau,
30756       { "gloDeltaTau", "lpp.gloDeltaTau",
30757         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloTau_gloDeltaTau_fmt), 0,
30758         "INTEGER_M16_15", HFILL }},
30759     { &hf_lpp_sbasTo,
30760       { "sbasTo", "lpp.sbasTo",
30761         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_sbasTo_fmt), 0,
30762         "INTEGER_0_5399", HFILL }},
30763     { &hf_lpp_sbasAgfo,
30764       { "sbasAgfo", "lpp.sbasAgfo",
30765         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAgfo_fmt), 0,
30766         "INTEGER_M2048_2047", HFILL }},
30767     { &hf_lpp_sbasAgf1,
30768       { "sbasAgf1", "lpp.sbasAgf1",
30769         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAgf1_fmt), 0,
30770         "INTEGER_M128_127", HFILL }},
30771     { &hf_lpp_bdsAODC_r12,
30772       { "bdsAODC-r12", "lpp.bdsAODC_r12",
30773         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAODC_AODE_r12_fmt), 0,
30774         "INTEGER_0_31", HFILL }},
30775     { &hf_lpp_bdsToc_r12,
30776       { "bdsToc-r12", "lpp.bdsToc_r12",
30777         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsToc_Toe_r12_fmt), 0,
30778         "INTEGER_0_131071", HFILL }},
30779     { &hf_lpp_bdsA0_r12,
30780       { "bdsA0-r12", "lpp.bdsA0_r12",
30781         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsA0_r12_fmt), 0,
30782         "INTEGER_M8388608_8388607", HFILL }},
30783     { &hf_lpp_bdsA1_r12,
30784       { "bdsA1-r12", "lpp.bdsA1_r12",
30785         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsA1_r12_fmt), 0,
30786         "INTEGER_M2097152_2097151", HFILL }},
30787     { &hf_lpp_bdsA2_r12,
30788       { "bdsA2-r12", "lpp.bdsA2_r12",
30789         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsA2_r12_fmt), 0,
30790         "INTEGER_M1024_1023", HFILL }},
30791     { &hf_lpp_bdsTgd1_r12,
30792       { "bdsTgd1-r12", "lpp.bdsTgd1_r12",
30793         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsTgd1_r12_fmt), 0,
30794         "INTEGER_M512_511", HFILL }},
30795     { &hf_lpp_bdsToc_r16,
30796       { "bdsToc-r16", "lpp.bdsToc_r16",
30797         FT_UINT32, BASE_DEC, NULL, 0,
30798         "INTEGER_0_2047", HFILL }},
30799     { &hf_lpp_bdsA0_r16,
30800       { "bdsA0-r16", "lpp.bdsA0_r16",
30801         FT_INT32, BASE_DEC, NULL, 0,
30802         "INTEGER_M16777216_16777215", HFILL }},
30803     { &hf_lpp_bdsA1_r16,
30804       { "bdsA1-r16", "lpp.bdsA1_r16",
30805         FT_INT32, BASE_DEC, NULL, 0,
30806         "INTEGER_M2097152_2097151", HFILL }},
30807     { &hf_lpp_bdsA2_r16,
30808       { "bdsA2-r16", "lpp.bdsA2_r16",
30809         FT_INT32, BASE_DEC, NULL, 0,
30810         "INTEGER_M1024_1023", HFILL }},
30811     { &hf_lpp_bdsTgdB1Cp_r16,
30812       { "bdsTgdB1Cp-r16", "lpp.bdsTgdB1Cp_r16",
30813         FT_INT32, BASE_DEC, NULL, 0,
30814         "INTEGER_M2048_2047", HFILL }},
30815     { &hf_lpp_bdsIscB1Cd_r16,
30816       { "bdsIscB1Cd-r16", "lpp.bdsIscB1Cd_r16",
30817         FT_INT32, BASE_DEC, NULL, 0,
30818         "INTEGER_M2048_2047", HFILL }},
30819     { &hf_lpp_navic_Toc_r16,
30820       { "navic-Toc-r16", "lpp.navic_Toc_r16",
30821         FT_UINT32, BASE_DEC, NULL, 0,
30822         "INTEGER_0_65535", HFILL }},
30823     { &hf_lpp_navic_af2_r16,
30824       { "navic-af2-r16", "lpp.navic_af2_r16",
30825         FT_INT32, BASE_DEC, NULL, 0,
30826         "INTEGER_M128_127", HFILL }},
30827     { &hf_lpp_navic_af1_r16,
30828       { "navic-af1-r16", "lpp.navic_af1_r16",
30829         FT_INT32, BASE_DEC, NULL, 0,
30830         "INTEGER_M32768_32767", HFILL }},
30831     { &hf_lpp_navic_af0_r16,
30832       { "navic-af0-r16", "lpp.navic_af0_r16",
30833         FT_INT32, BASE_DEC, NULL, 0,
30834         "INTEGER_M2097152_2097151", HFILL }},
30835     { &hf_lpp_navic_Tgd_r16,
30836       { "navic-Tgd-r16", "lpp.navic_Tgd_r16",
30837         FT_INT32, BASE_DEC, NULL, 0,
30838         "INTEGER_M128_127", HFILL }},
30839     { &hf_lpp_keplerToe,
30840       { "keplerToe", "lpp.keplerToe",
30841         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_keplerToe_fmt), 0,
30842         "INTEGER_0_16383", HFILL }},
30843     { &hf_lpp_keplerW,
30844       { "keplerW", "lpp.keplerW",
30845         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt), 0,
30846         "INTEGER_M2147483648_2147483647", HFILL }},
30847     { &hf_lpp_keplerDeltaN,
30848       { "keplerDeltaN", "lpp.keplerDeltaN",
30849         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt), 0,
30850         "INTEGER_M32768_32767", HFILL }},
30851     { &hf_lpp_keplerM0,
30852       { "keplerM0", "lpp.keplerM0",
30853         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt), 0,
30854         "INTEGER_M2147483648_2147483647", HFILL }},
30855     { &hf_lpp_keplerOmegaDot,
30856       { "keplerOmegaDot", "lpp.keplerOmegaDot",
30857         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt), 0,
30858         "INTEGER_M8388608_8388607", HFILL }},
30859     { &hf_lpp_keplerE,
30860       { "keplerE", "lpp.keplerE",
30861         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_keplerE_fmt), 0,
30862         "INTEGER_0_4294967295", HFILL }},
30863     { &hf_lpp_keplerIDot,
30864       { "keplerIDot", "lpp.keplerIDot",
30865         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt), 0,
30866         "INTEGER_M8192_8191", HFILL }},
30867     { &hf_lpp_keplerAPowerHalf,
30868       { "keplerAPowerHalf", "lpp.keplerAPowerHalf",
30869         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_keplerAPowerHalf_fmt), 0,
30870         "INTEGER_0_4294967295", HFILL }},
30871     { &hf_lpp_keplerI0,
30872       { "keplerI0", "lpp.keplerI0",
30873         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt), 0,
30874         "INTEGER_M2147483648_2147483647", HFILL }},
30875     { &hf_lpp_keplerOmega0,
30876       { "keplerOmega0", "lpp.keplerOmega0",
30877         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt), 0,
30878         "INTEGER_M2147483648_2147483647", HFILL }},
30879     { &hf_lpp_keplerCrs,
30880       { "keplerCrs", "lpp.keplerCrs",
30881         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerCrs_Crc_fmt), 0,
30882         "INTEGER_M32768_32767", HFILL }},
30883     { &hf_lpp_keplerCis,
30884       { "keplerCis", "lpp.keplerCis",
30885         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerCx_fmt), 0,
30886         "INTEGER_M32768_32767", HFILL }},
30887     { &hf_lpp_keplerCus,
30888       { "keplerCus", "lpp.keplerCus",
30889         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerCx_fmt), 0,
30890         "INTEGER_M32768_32767", HFILL }},
30891     { &hf_lpp_keplerCrc,
30892       { "keplerCrc", "lpp.keplerCrc",
30893         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerCrs_Crc_fmt), 0,
30894         "INTEGER_M32768_32767", HFILL }},
30895     { &hf_lpp_keplerCic,
30896       { "keplerCic", "lpp.keplerCic",
30897         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerCx_fmt), 0,
30898         "INTEGER_M32768_32767", HFILL }},
30899     { &hf_lpp_keplerCuc,
30900       { "keplerCuc", "lpp.keplerCuc",
30901         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_keplerCx_fmt), 0,
30902         "INTEGER_M32768_32767", HFILL }},
30903     { &hf_lpp_navURA,
30904       { "navURA", "lpp.navURA",
30905         FT_UINT32, BASE_DEC, NULL, 0,
30906         "INTEGER_0_15", HFILL }},
30907     { &hf_lpp_navFitFlag,
30908       { "navFitFlag", "lpp.navFitFlag",
30909         FT_UINT32, BASE_DEC, NULL, 0,
30910         "INTEGER_0_1", HFILL }},
30911     { &hf_lpp_navToe,
30912       { "navToe", "lpp.navToe",
30913         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_navToe_fmt), 0,
30914         "INTEGER_0_37799", HFILL }},
30915     { &hf_lpp_navOmega,
30916       { "navOmega", "lpp.navOmega",
30917         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt), 0,
30918         "INTEGER_M2147483648_2147483647", HFILL }},
30919     { &hf_lpp_navDeltaN,
30920       { "navDeltaN", "lpp.navDeltaN",
30921         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt), 0,
30922         "INTEGER_M32768_32767", HFILL }},
30923     { &hf_lpp_navM0,
30924       { "navM0", "lpp.navM0",
30925         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt), 0,
30926         "INTEGER_M2147483648_2147483647", HFILL }},
30927     { &hf_lpp_navOmegaADot,
30928       { "navOmegaADot", "lpp.navOmegaADot",
30929         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt), 0,
30930         "INTEGER_M8388608_8388607", HFILL }},
30931     { &hf_lpp_navE,
30932       { "navE", "lpp.navE",
30933         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_navE_fmt), 0,
30934         "INTEGER_0_4294967295", HFILL }},
30935     { &hf_lpp_navIDot,
30936       { "navIDot", "lpp.navIDot",
30937         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt), 0,
30938         "INTEGER_M8192_8191", HFILL }},
30939     { &hf_lpp_navAPowerHalf,
30940       { "navAPowerHalf", "lpp.navAPowerHalf",
30941         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_navAPowerHalf_fmt), 0,
30942         "INTEGER_0_4294967295", HFILL }},
30943     { &hf_lpp_navI0,
30944       { "navI0", "lpp.navI0",
30945         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt), 0,
30946         "INTEGER_M2147483648_2147483647", HFILL }},
30947     { &hf_lpp_navOmegaA0,
30948       { "navOmegaA0", "lpp.navOmegaA0",
30949         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt), 0,
30950         "INTEGER_M2147483648_2147483647", HFILL }},
30951     { &hf_lpp_navCrs,
30952       { "navCrs", "lpp.navCrs",
30953         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navCrs_Crc_fmt), 0,
30954         "INTEGER_M32768_32767", HFILL }},
30955     { &hf_lpp_navCis,
30956       { "navCis", "lpp.navCis",
30957         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navCx_fmt), 0,
30958         "INTEGER_M32768_32767", HFILL }},
30959     { &hf_lpp_navCus,
30960       { "navCus", "lpp.navCus",
30961         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navCx_fmt), 0,
30962         "INTEGER_M32768_32767", HFILL }},
30963     { &hf_lpp_navCrc,
30964       { "navCrc", "lpp.navCrc",
30965         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navCrs_Crc_fmt), 0,
30966         "INTEGER_M32768_32767", HFILL }},
30967     { &hf_lpp_navCic,
30968       { "navCic", "lpp.navCic",
30969         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navCx_fmt), 0,
30970         "INTEGER_M32768_32767", HFILL }},
30971     { &hf_lpp_navCuc,
30972       { "navCuc", "lpp.navCuc",
30973         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navCx_fmt), 0,
30974         "INTEGER_M32768_32767", HFILL }},
30975     { &hf_lpp_addNAVparam,
30976       { "addNAVparam", "lpp.addNAVparam_element",
30977         FT_NONE, BASE_NONE, NULL, 0,
30978         NULL, HFILL }},
30979     { &hf_lpp_ephemCodeOnL2,
30980       { "ephemCodeOnL2", "lpp.ephemCodeOnL2",
30981         FT_UINT32, BASE_DEC, NULL, 0,
30982         "INTEGER_0_3", HFILL }},
30983     { &hf_lpp_ephemL2Pflag,
30984       { "ephemL2Pflag", "lpp.ephemL2Pflag",
30985         FT_UINT32, BASE_DEC, NULL, 0,
30986         "INTEGER_0_1", HFILL }},
30987     { &hf_lpp_ephemSF1Rsvd,
30988       { "ephemSF1Rsvd", "lpp.ephemSF1Rsvd_element",
30989         FT_NONE, BASE_NONE, NULL, 0,
30990         NULL, HFILL }},
30991     { &hf_lpp_reserved1,
30992       { "reserved1", "lpp.reserved1",
30993         FT_UINT32, BASE_DEC, NULL, 0,
30994         "INTEGER_0_8388607", HFILL }},
30995     { &hf_lpp_reserved2,
30996       { "reserved2", "lpp.reserved2",
30997         FT_UINT32, BASE_DEC, NULL, 0,
30998         "INTEGER_0_16777215", HFILL }},
30999     { &hf_lpp_reserved3,
31000       { "reserved3", "lpp.reserved3",
31001         FT_UINT32, BASE_DEC, NULL, 0,
31002         "INTEGER_0_16777215", HFILL }},
31003     { &hf_lpp_reserved4,
31004       { "reserved4", "lpp.reserved4",
31005         FT_UINT32, BASE_DEC, NULL, 0,
31006         "INTEGER_0_65535", HFILL }},
31007     { &hf_lpp_ephemAODA,
31008       { "ephemAODA", "lpp.ephemAODA",
31009         FT_UINT32, BASE_DEC, NULL, 0,
31010         "INTEGER_0_31", HFILL }},
31011     { &hf_lpp_cnavURAindex,
31012       { "cnavURAindex", "lpp.cnavURAindex",
31013         FT_INT32, BASE_DEC, NULL, 0,
31014         "INTEGER_M16_15", HFILL }},
31015     { &hf_lpp_cnavDeltaA,
31016       { "cnavDeltaA", "lpp.cnavDeltaA",
31017         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavDeltaA_fmt), 0,
31018         "INTEGER_M33554432_33554431", HFILL }},
31019     { &hf_lpp_cnavAdot,
31020       { "cnavAdot", "lpp.cnavAdot",
31021         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavAdot_fmt), 0,
31022         "INTEGER_M16777216_16777215", HFILL }},
31023     { &hf_lpp_cnavDeltaNo,
31024       { "cnavDeltaNo", "lpp.cnavDeltaNo",
31025         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavDeltaNo_fmt), 0,
31026         "INTEGER_M65536_65535", HFILL }},
31027     { &hf_lpp_cnavDeltaNoDot,
31028       { "cnavDeltaNoDot", "lpp.cnavDeltaNoDot",
31029         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavDeltaNoDot_fmt), 0,
31030         "INTEGER_M4194304_4194303", HFILL }},
31031     { &hf_lpp_cnavMo,
31032       { "cnavMo", "lpp.cnavMo",
31033         FT_INT64, BASE_DEC, NULL, 0,
31034         NULL, HFILL }},
31035     { &hf_lpp_cnavE,
31036       { "cnavE", "lpp.cnavE",
31037         FT_UINT64, BASE_DEC, NULL, 0,
31038         NULL, HFILL }},
31039     { &hf_lpp_cnavOmega,
31040       { "cnavOmega", "lpp.cnavOmega",
31041         FT_INT64, BASE_DEC, NULL, 0,
31042         NULL, HFILL }},
31043     { &hf_lpp_cnavOMEGA0,
31044       { "cnavOMEGA0", "lpp.cnavOMEGA0",
31045         FT_INT64, BASE_DEC, NULL, 0,
31046         NULL, HFILL }},
31047     { &hf_lpp_cnavDeltaOmegaDot,
31048       { "cnavDeltaOmegaDot", "lpp.cnavDeltaOmegaDot",
31049         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavDeltaOmegaDot_IoDot_fmt), 0,
31050         "INTEGER_M65536_65535", HFILL }},
31051     { &hf_lpp_cnavIo,
31052       { "cnavIo", "lpp.cnavIo",
31053         FT_INT64, BASE_DEC, NULL, 0,
31054         NULL, HFILL }},
31055     { &hf_lpp_cnavIoDot,
31056       { "cnavIoDot", "lpp.cnavIoDot",
31057         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavDeltaOmegaDot_IoDot_fmt), 0,
31058         "INTEGER_M16384_16383", HFILL }},
31059     { &hf_lpp_cnavCis,
31060       { "cnavCis", "lpp.cnavCis",
31061         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavCx_fmt), 0,
31062         "INTEGER_M32768_32767", HFILL }},
31063     { &hf_lpp_cnavCic,
31064       { "cnavCic", "lpp.cnavCic",
31065         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavCx_fmt), 0,
31066         "INTEGER_M32768_32767", HFILL }},
31067     { &hf_lpp_cnavCrs,
31068       { "cnavCrs", "lpp.cnavCrs",
31069         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavCrs_Crc_fmt), 0,
31070         "INTEGER_M8388608_8388607", HFILL }},
31071     { &hf_lpp_cnavCrc,
31072       { "cnavCrc", "lpp.cnavCrc",
31073         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavCrs_Crc_fmt), 0,
31074         "INTEGER_M8388608_8388607", HFILL }},
31075     { &hf_lpp_cnavCus,
31076       { "cnavCus", "lpp.cnavCus",
31077         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavCx_fmt), 0,
31078         "INTEGER_M1048576_1048575", HFILL }},
31079     { &hf_lpp_cnavCuc,
31080       { "cnavCuc", "lpp.cnavCuc",
31081         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cnavCx_fmt), 0,
31082         "INTEGER_M1048576_1048575", HFILL }},
31083     { &hf_lpp_gloEn,
31084       { "gloEn", "lpp.gloEn",
31085         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
31086         "INTEGER_0_31", HFILL }},
31087     { &hf_lpp_gloP1,
31088       { "gloP1", "lpp.gloP1",
31089         FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &units_minutes, 0,
31090         NULL, HFILL }},
31091     { &hf_lpp_gloP2,
31092       { "gloP2", "lpp.gloP2",
31093         FT_BOOLEAN, BASE_NONE, NULL, 0,
31094         "BOOLEAN", HFILL }},
31095     { &hf_lpp_gloM,
31096       { "gloM", "lpp.gloM",
31097         FT_UINT32, BASE_DEC, NULL, 0,
31098         "INTEGER_0_3", HFILL }},
31099     { &hf_lpp_gloX,
31100       { "gloX", "lpp.gloX",
31101         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloX_Y_Z_fmt), 0,
31102         "INTEGER_M67108864_67108863", HFILL }},
31103     { &hf_lpp_gloXdot,
31104       { "gloXdot", "lpp.gloXdot",
31105         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt), 0,
31106         "INTEGER_M8388608_8388607", HFILL }},
31107     { &hf_lpp_gloXdotdot,
31108       { "gloXdotdot", "lpp.gloXdotdot",
31109         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt), 0,
31110         "INTEGER_M16_15", HFILL }},
31111     { &hf_lpp_gloY,
31112       { "gloY", "lpp.gloY",
31113         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloX_Y_Z_fmt), 0,
31114         "INTEGER_M67108864_67108863", HFILL }},
31115     { &hf_lpp_gloYdot,
31116       { "gloYdot", "lpp.gloYdot",
31117         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt), 0,
31118         "INTEGER_M8388608_8388607", HFILL }},
31119     { &hf_lpp_gloYdotdot,
31120       { "gloYdotdot", "lpp.gloYdotdot",
31121         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt), 0,
31122         "INTEGER_M16_15", HFILL }},
31123     { &hf_lpp_gloZ,
31124       { "gloZ", "lpp.gloZ",
31125         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloX_Y_Z_fmt), 0,
31126         "INTEGER_M67108864_67108863", HFILL }},
31127     { &hf_lpp_gloZdot,
31128       { "gloZdot", "lpp.gloZdot",
31129         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt), 0,
31130         "INTEGER_M8388608_8388607", HFILL }},
31131     { &hf_lpp_gloZdotdot,
31132       { "gloZdotdot", "lpp.gloZdotdot",
31133         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt), 0,
31134         "INTEGER_M16_15", HFILL }},
31135     { &hf_lpp_sbasAccuracy,
31136       { "sbasAccuracy", "lpp.sbasAccuracy",
31137         FT_BYTES, BASE_NONE, NULL, 0,
31138         "BIT_STRING_SIZE_4", HFILL }},
31139     { &hf_lpp_sbasXg,
31140       { "sbasXg", "lpp.sbasXg",
31141         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasXg_Yg_fmt), 0,
31142         "INTEGER_M536870912_536870911", HFILL }},
31143     { &hf_lpp_sbasYg,
31144       { "sbasYg", "lpp.sbasYg",
31145         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasXg_Yg_fmt), 0,
31146         "INTEGER_M536870912_536870911", HFILL }},
31147     { &hf_lpp_sbasZg,
31148       { "sbasZg", "lpp.sbasZg",
31149         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasZg_fmt), 0,
31150         "INTEGER_M16777216_16777215", HFILL }},
31151     { &hf_lpp_sbasXgDot,
31152       { "sbasXgDot", "lpp.sbasXgDot",
31153         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasXgDot_YgDot_fmt), 0,
31154         "INTEGER_M65536_65535", HFILL }},
31155     { &hf_lpp_sbasYgDot,
31156       { "sbasYgDot", "lpp.sbasYgDot",
31157         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasXgDot_YgDot_fmt), 0,
31158         "INTEGER_M65536_65535", HFILL }},
31159     { &hf_lpp_sbasZgDot,
31160       { "sbasZgDot", "lpp.sbasZgDot",
31161         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasZgDot_fmt), 0,
31162         "INTEGER_M131072_131071", HFILL }},
31163     { &hf_lpp_sbasXgDotDot,
31164       { "sbasXgDotDot", "lpp.sbasXgDotDot",
31165         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasXgDotDot_YgDotDot_fmt), 0,
31166         "INTEGER_M512_511", HFILL }},
31167     { &hf_lpp_sbagYgDotDot,
31168       { "sbagYgDotDot", "lpp.sbagYgDotDot",
31169         FT_INT32, BASE_DEC, NULL, 0,
31170         "INTEGER_M512_511", HFILL }},
31171     { &hf_lpp_sbasZgDotDot,
31172       { "sbasZgDotDot", "lpp.sbasZgDotDot",
31173         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasZgDotDot_fmt), 0,
31174         "INTEGER_M512_511", HFILL }},
31175     { &hf_lpp_bdsAODE_r12,
31176       { "bdsAODE-r12", "lpp.bdsAODE_r12",
31177         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAODC_AODE_r12_fmt), 0,
31178         "INTEGER_0_31", HFILL }},
31179     { &hf_lpp_bdsURAI_r12,
31180       { "bdsURAI-r12", "lpp.bdsURAI_r12",
31181         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_meters, 0,
31182         "INTEGER_0_15", HFILL }},
31183     { &hf_lpp_bdsToe_r12,
31184       { "bdsToe-r12", "lpp.bdsToe_r12",
31185         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsToc_Toe_r12_fmt), 0,
31186         "INTEGER_0_131071", HFILL }},
31187     { &hf_lpp_bdsAPowerHalf_r12,
31188       { "bdsAPowerHalf-r12", "lpp.bdsAPowerHalf_r12",
31189         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAPowerHalf_r12_fmt), 0,
31190         "INTEGER_0_4294967295", HFILL }},
31191     { &hf_lpp_bdsE_r12,
31192       { "bdsE-r12", "lpp.bdsE_r12",
31193         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsE_r12_fmt), 0,
31194         "INTEGER_0_4294967295", HFILL }},
31195     { &hf_lpp_bdsW_r12,
31196       { "bdsW-r12", "lpp.bdsW_r12",
31197         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt), 0,
31198         "INTEGER_M2147483648_2147483647", HFILL }},
31199     { &hf_lpp_bdsDeltaN_r12,
31200       { "bdsDeltaN-r12", "lpp.bdsDeltaN_r12",
31201         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt), 0,
31202         "INTEGER_M32768_32767", HFILL }},
31203     { &hf_lpp_bdsM0_r12,
31204       { "bdsM0-r12", "lpp.bdsM0_r12",
31205         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt), 0,
31206         "INTEGER_M2147483648_2147483647", HFILL }},
31207     { &hf_lpp_bdsOmega0_r12,
31208       { "bdsOmega0-r12", "lpp.bdsOmega0_r12",
31209         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt), 0,
31210         "INTEGER_M2147483648_2147483647", HFILL }},
31211     { &hf_lpp_bdsOmegaDot_r12,
31212       { "bdsOmegaDot-r12", "lpp.bdsOmegaDot_r12",
31213         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt), 0,
31214         "INTEGER_M8388608_8388607", HFILL }},
31215     { &hf_lpp_bdsI0_r12,
31216       { "bdsI0-r12", "lpp.bdsI0_r12",
31217         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt), 0,
31218         "INTEGER_M2147483648_2147483647", HFILL }},
31219     { &hf_lpp_bdsIDot_r12,
31220       { "bdsIDot-r12", "lpp.bdsIDot_r12",
31221         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt), 0,
31222         "INTEGER_M8192_8191", HFILL }},
31223     { &hf_lpp_bdsCuc_r12,
31224       { "bdsCuc-r12", "lpp.bdsCuc_r12",
31225         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt), 0,
31226         "INTEGER_M131072_131071", HFILL }},
31227     { &hf_lpp_bdsCus_r12,
31228       { "bdsCus-r12", "lpp.bdsCus_r12",
31229         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt), 0,
31230         "INTEGER_M131072_131071", HFILL }},
31231     { &hf_lpp_bdsCrc_r12,
31232       { "bdsCrc-r12", "lpp.bdsCrc_r12",
31233         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsCrc_Crs_r12_fmt), 0,
31234         "INTEGER_M131072_131071", HFILL }},
31235     { &hf_lpp_bdsCrs_r12,
31236       { "bdsCrs-r12", "lpp.bdsCrs_r12",
31237         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsCrc_Crs_r12_fmt), 0,
31238         "INTEGER_M131072_131071", HFILL }},
31239     { &hf_lpp_bdsCic_r12,
31240       { "bdsCic-r12", "lpp.bdsCic_r12",
31241         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt), 0,
31242         "INTEGER_M131072_131071", HFILL }},
31243     { &hf_lpp_bdsCis_r12,
31244       { "bdsCis-r12", "lpp.bdsCis_r12",
31245         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt), 0,
31246         "INTEGER_M131072_131071", HFILL }},
31247     { &hf_lpp_bdsIODE_r16,
31248       { "bdsIODE-r16", "lpp.bdsIODE_r16",
31249         FT_UINT32, BASE_DEC, NULL, 0,
31250         "INTEGER_0_255", HFILL }},
31251     { &hf_lpp_bdsToe_r16,
31252       { "bdsToe-r16", "lpp.bdsToe_r16",
31253         FT_UINT32, BASE_DEC, NULL, 0,
31254         "INTEGER_0_2047", HFILL }},
31255     { &hf_lpp_bdsDeltaA_r16,
31256       { "bdsDeltaA-r16", "lpp.bdsDeltaA_r16",
31257         FT_INT32, BASE_DEC, NULL, 0,
31258         "INTEGER_M33554432_33554431", HFILL }},
31259     { &hf_lpp_bdsAdot_r16,
31260       { "bdsAdot-r16", "lpp.bdsAdot_r16",
31261         FT_INT32, BASE_DEC, NULL, 0,
31262         "INTEGER_M16777216_16777216", HFILL }},
31263     { &hf_lpp_bdsDeltaN0_r16,
31264       { "bdsDeltaN0-r16", "lpp.bdsDeltaN0_r16",
31265         FT_INT32, BASE_DEC, NULL, 0,
31266         "INTEGER_M65536_65535", HFILL }},
31267     { &hf_lpp_bdsDeltaN0dot_r16,
31268       { "bdsDeltaN0dot-r16", "lpp.bdsDeltaN0dot_r16",
31269         FT_INT32, BASE_DEC, NULL, 0,
31270         "INTEGER_M4194304_4194303", HFILL }},
31271     { &hf_lpp_bdsM0_r16,
31272       { "bdsM0-r16", "lpp.bdsM0_r16",
31273         FT_INT64, BASE_DEC, NULL, 0,
31274         "INTEGER_M4294967296_4294967295", HFILL }},
31275     { &hf_lpp_bdsE_r16,
31276       { "bdsE-r16", "lpp.bdsE_r16",
31277         FT_UINT64, BASE_DEC, NULL, 0,
31278         "INTEGER_0_8589934591", HFILL }},
31279     { &hf_lpp_bdsOmega_r16,
31280       { "bdsOmega-r16", "lpp.bdsOmega_r16",
31281         FT_INT64, BASE_DEC, NULL, 0,
31282         "INTEGER_M4294967296_4294967295", HFILL }},
31283     { &hf_lpp_bdsOmega0_r16,
31284       { "bdsOmega0-r16", "lpp.bdsOmega0_r16",
31285         FT_INT64, BASE_DEC, NULL, 0,
31286         "INTEGER_M4294967296_4294967295", HFILL }},
31287     { &hf_lpp_bdsI0_r16,
31288       { "bdsI0-r16", "lpp.bdsI0_r16",
31289         FT_INT64, BASE_DEC, NULL, 0,
31290         "INTEGER_M4294967296_4294967295", HFILL }},
31291     { &hf_lpp_bdsOmegaDot_r16,
31292       { "bdsOmegaDot-r16", "lpp.bdsOmegaDot_r16",
31293         FT_INT32, BASE_DEC, NULL, 0,
31294         "INTEGER_M262144_262143", HFILL }},
31295     { &hf_lpp_bdsI0Dot_r16,
31296       { "bdsI0Dot-r16", "lpp.bdsI0Dot_r16",
31297         FT_INT32, BASE_DEC, NULL, 0,
31298         "INTEGER_M16384_16383", HFILL }},
31299     { &hf_lpp_bdsCuc_r16,
31300       { "bdsCuc-r16", "lpp.bdsCuc_r16",
31301         FT_INT32, BASE_DEC, NULL, 0,
31302         "INTEGER_M1048576_1048575", HFILL }},
31303     { &hf_lpp_bdsCus_r16,
31304       { "bdsCus-r16", "lpp.bdsCus_r16",
31305         FT_INT32, BASE_DEC, NULL, 0,
31306         "INTEGER_M1048576_1048575", HFILL }},
31307     { &hf_lpp_bdsCrc_r16,
31308       { "bdsCrc-r16", "lpp.bdsCrc_r16",
31309         FT_INT32, BASE_DEC, NULL, 0,
31310         "INTEGER_M8388608_8388607", HFILL }},
31311     { &hf_lpp_bdsCrs_r16,
31312       { "bdsCrs-r16", "lpp.bdsCrs_r16",
31313         FT_INT32, BASE_DEC, NULL, 0,
31314         "INTEGER_M8388608_8388607", HFILL }},
31315     { &hf_lpp_bdsCic_r16,
31316       { "bdsCic-r16", "lpp.bdsCic_r16",
31317         FT_INT32, BASE_DEC, NULL, 0,
31318         "INTEGER_M32768_32767", HFILL }},
31319     { &hf_lpp_bdsCis_r16,
31320       { "bdsCis-r16", "lpp.bdsCis_r16",
31321         FT_INT32, BASE_DEC, NULL, 0,
31322         "INTEGER_M32768_32767", HFILL }},
31323     { &hf_lpp_navic_Toe_r16,
31324       { "navic-Toe-r16", "lpp.navic_Toe_r16",
31325         FT_UINT32, BASE_DEC, NULL, 0,
31326         "INTEGER_0_65536", HFILL }},
31327     { &hf_lpp_navic_URAI_r16,
31328       { "navic-URAI-r16", "lpp.navic_URAI_r16",
31329         FT_UINT32, BASE_DEC, NULL, 0,
31330         "INTEGER_0_15", HFILL }},
31331     { &hf_lpp_navic_W_r16,
31332       { "navic-W-r16", "lpp.navic_W_r16",
31333         FT_INT32, BASE_DEC, NULL, 0,
31334         "INTEGER_M2147483648_2147483647", HFILL }},
31335     { &hf_lpp_navic_DeltaN_r16,
31336       { "navic-DeltaN-r16", "lpp.navic_DeltaN_r16",
31337         FT_INT32, BASE_DEC, NULL, 0,
31338         "INTEGER_M2097152_2097151", HFILL }},
31339     { &hf_lpp_navic_M0_r16,
31340       { "navic-M0-r16", "lpp.navic_M0_r16",
31341         FT_INT32, BASE_DEC, NULL, 0,
31342         "INTEGER_M2147483648_2147483647", HFILL }},
31343     { &hf_lpp_navic_OmegaDot_r16,
31344       { "navic-OmegaDot-r16", "lpp.navic_OmegaDot_r16",
31345         FT_INT32, BASE_DEC, NULL, 0,
31346         "INTEGER_M2147483648_2147483647", HFILL }},
31347     { &hf_lpp_navic_E_r16,
31348       { "navic-E-r16", "lpp.navic_E_r16",
31349         FT_UINT32, BASE_DEC, NULL, 0,
31350         "INTEGER_0_4294967295", HFILL }},
31351     { &hf_lpp_navic_IDot_r16,
31352       { "navic-IDot-r16", "lpp.navic_IDot_r16",
31353         FT_INT32, BASE_DEC, NULL, 0,
31354         "INTEGER_M8192_8191", HFILL }},
31355     { &hf_lpp_navic_APowerHalf_r16,
31356       { "navic-APowerHalf-r16", "lpp.navic_APowerHalf_r16",
31357         FT_UINT32, BASE_DEC, NULL, 0,
31358         "INTEGER_0_4294967295", HFILL }},
31359     { &hf_lpp_navic_I0_r16,
31360       { "navic-I0-r16", "lpp.navic_I0_r16",
31361         FT_INT32, BASE_DEC, NULL, 0,
31362         "INTEGER_M2147483648_2147483647", HFILL }},
31363     { &hf_lpp_navic_Omega0_r16,
31364       { "navic-Omega0-r16", "lpp.navic_Omega0_r16",
31365         FT_INT32, BASE_DEC, NULL, 0,
31366         "INTEGER_M2147483648_2147483647", HFILL }},
31367     { &hf_lpp_navic_Crs_r16,
31368       { "navic-Crs-r16", "lpp.navic_Crs_r16",
31369         FT_INT32, BASE_DEC, NULL, 0,
31370         "INTEGER_M32768_32767", HFILL }},
31371     { &hf_lpp_navic_Cis_r16,
31372       { "navic-Cis-r16", "lpp.navic_Cis_r16",
31373         FT_INT32, BASE_DEC, NULL, 0,
31374         "INTEGER_M32768_32767", HFILL }},
31375     { &hf_lpp_navic_Cus_r16,
31376       { "navic-Cus-r16", "lpp.navic_Cus_r16",
31377         FT_INT32, BASE_DEC, NULL, 0,
31378         "INTEGER_M32768_32767", HFILL }},
31379     { &hf_lpp_navic_Crc_r16,
31380       { "navic-Crc-r16", "lpp.navic_Crc_r16",
31381         FT_INT32, BASE_DEC, NULL, 0,
31382         "INTEGER_M32768_32767", HFILL }},
31383     { &hf_lpp_navic_Cic_r16,
31384       { "navic-Cic-r16", "lpp.navic_Cic_r16",
31385         FT_INT32, BASE_DEC, NULL, 0,
31386         "INTEGER_M32768_32767", HFILL }},
31387     { &hf_lpp_navic_Cuc_r16,
31388       { "navic-Cuc-r16", "lpp.navic_Cuc_r16",
31389         FT_INT32, BASE_DEC, NULL, 0,
31390         "INTEGER_M32768_32767", HFILL }},
31391     { &hf_lpp_gnss_BadSignalList,
31392       { "gnss-BadSignalList", "lpp.gnss_BadSignalList",
31393         FT_UINT32, BASE_DEC, NULL, 0,
31394         NULL, HFILL }},
31395     { &hf_lpp_GNSS_BadSignalList_item,
31396       { "BadSignalElement", "lpp.BadSignalElement_element",
31397         FT_NONE, BASE_NONE, NULL, 0,
31398         NULL, HFILL }},
31399     { &hf_lpp_badSVID,
31400       { "badSVID", "lpp.badSVID_element",
31401         FT_NONE, BASE_NONE, NULL, 0,
31402         "SV_ID", HFILL }},
31403     { &hf_lpp_badSignalID,
31404       { "badSignalID", "lpp.badSignalID_element",
31405         FT_NONE, BASE_NONE, NULL, 0,
31406         "GNSS_SignalIDs", HFILL }},
31407     { &hf_lpp_gnss_TOD,
31408       { "gnss-TOD", "lpp.gnss_TOD",
31409         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
31410         "INTEGER_0_3599", HFILL }},
31411     { &hf_lpp_gnss_TODfrac,
31412       { "gnss-TODfrac", "lpp.gnss_TODfrac",
31413         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
31414         "INTEGER_0_999", HFILL }},
31415     { &hf_lpp_gnss_DataBitsSatList,
31416       { "gnss-DataBitsSatList", "lpp.gnss_DataBitsSatList",
31417         FT_UINT32, BASE_DEC, NULL, 0,
31418         NULL, HFILL }},
31419     { &hf_lpp_GNSS_DataBitsSatList_item,
31420       { "GNSS-DataBitsSatElement", "lpp.GNSS_DataBitsSatElement_element",
31421         FT_NONE, BASE_NONE, NULL, 0,
31422         NULL, HFILL }},
31423     { &hf_lpp_gnss_DataBitsSgnList,
31424       { "gnss-DataBitsSgnList", "lpp.gnss_DataBitsSgnList",
31425         FT_UINT32, BASE_DEC, NULL, 0,
31426         NULL, HFILL }},
31427     { &hf_lpp_GNSS_DataBitsSgnList_item,
31428       { "GNSS-DataBitsSgnElement", "lpp.GNSS_DataBitsSgnElement_element",
31429         FT_NONE, BASE_NONE, NULL, 0,
31430         NULL, HFILL }},
31431     { &hf_lpp_gnss_SignalType,
31432       { "gnss-SignalType", "lpp.gnss_SignalType_element",
31433         FT_NONE, BASE_NONE, NULL, 0,
31434         "GNSS_SignalID", HFILL }},
31435     { &hf_lpp_gnss_DataBits,
31436       { "gnss-DataBits", "lpp.gnss_DataBits",
31437         FT_BYTES, BASE_NONE, NULL, 0,
31438         "BIT_STRING_SIZE_1_1024", HFILL }},
31439     { &hf_lpp_gnss_AcquisitionAssistList,
31440       { "gnss-AcquisitionAssistList", "lpp.gnss_AcquisitionAssistList",
31441         FT_UINT32, BASE_DEC, NULL, 0,
31442         NULL, HFILL }},
31443     { &hf_lpp_confidence_r10,
31444       { "confidence-r10", "lpp.confidence_r10",
31445         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
31446         "INTEGER_0_100", HFILL }},
31447     { &hf_lpp_GNSS_AcquisitionAssistList_item,
31448       { "GNSS-AcquisitionAssistElement", "lpp.GNSS_AcquisitionAssistElement_element",
31449         FT_NONE, BASE_NONE, NULL, 0,
31450         NULL, HFILL }},
31451     { &hf_lpp_doppler0,
31452       { "doppler0", "lpp.doppler0",
31453         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_doppler0_fmt), 0,
31454         "INTEGER_M2048_2047", HFILL }},
31455     { &hf_lpp_doppler1,
31456       { "doppler1", "lpp.doppler1",
31457         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_doppler1_fmt), 0,
31458         "INTEGER_0_63", HFILL }},
31459     { &hf_lpp_dopplerUncertainty,
31460       { "dopplerUncertainty", "lpp.dopplerUncertainty",
31461         FT_UINT32, BASE_DEC, VALS(lpp_dopplerUncertainty_vals), 0,
31462         "INTEGER_0_4", HFILL }},
31463     { &hf_lpp_codePhase,
31464       { "codePhase", "lpp.codePhase",
31465         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_codePhase_fmt), 0,
31466         "INTEGER_0_1022", HFILL }},
31467     { &hf_lpp_intCodePhase,
31468       { "intCodePhase", "lpp.intCodePhase",
31469         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
31470         "INTEGER_0_127", HFILL }},
31471     { &hf_lpp_codePhaseSearchWindow,
31472       { "codePhaseSearchWindow", "lpp.codePhaseSearchWindow",
31473         FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_codePhaseSearchWindow_vals_ext, 0,
31474         "INTEGER_0_31", HFILL }},
31475     { &hf_lpp_azimuth,
31476       { "azimuth", "lpp.azimuth",
31477         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_azimuth_elevation_fmt), 0,
31478         "INTEGER_0_511", HFILL }},
31479     { &hf_lpp_elevation,
31480       { "elevation", "lpp.elevation",
31481         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_azimuth_elevation_fmt), 0,
31482         "INTEGER_0_127", HFILL }},
31483     { &hf_lpp_codePhase1023,
31484       { "codePhase1023", "lpp.codePhase1023",
31485         FT_BOOLEAN, BASE_NONE, NULL, 0,
31486         "BOOLEAN", HFILL }},
31487     { &hf_lpp_dopplerUncertaintyExt_r10,
31488       { "dopplerUncertaintyExt-r10", "lpp.dopplerUncertaintyExt_r10",
31489         FT_UINT32, BASE_DEC, VALS(lpp_T_dopplerUncertaintyExt_r10_vals), 0,
31490         "T_dopplerUncertaintyExt_r10", HFILL }},
31491     { &hf_lpp_weekNumber_01,
31492       { "weekNumber", "lpp.weekNumber",
31493         FT_UINT32, BASE_DEC, NULL, 0,
31494         "INTEGER_0_255", HFILL }},
31495     { &hf_lpp_toa,
31496       { "toa", "lpp.toa",
31497         FT_UINT32, BASE_DEC, NULL, 0,
31498         NULL, HFILL }},
31499     { &hf_lpp_ioda,
31500       { "ioda", "lpp.ioda",
31501         FT_UINT32, BASE_DEC, NULL, 0,
31502         "INTEGER_0_3", HFILL }},
31503     { &hf_lpp_completeAlmanacProvided,
31504       { "completeAlmanacProvided", "lpp.completeAlmanacProvided",
31505         FT_BOOLEAN, BASE_NONE, NULL, 0,
31506         "BOOLEAN", HFILL }},
31507     { &hf_lpp_gnss_AlmanacList,
31508       { "gnss-AlmanacList", "lpp.gnss_AlmanacList",
31509         FT_UINT32, BASE_DEC, NULL, 0,
31510         NULL, HFILL }},
31511     { &hf_lpp_toa_ext_v1240,
31512       { "toa-ext-v1240", "lpp.toa_ext_v1240",
31513         FT_UINT32, BASE_DEC, NULL, 0,
31514         "T_toa_ext_v1240", HFILL }},
31515     { &hf_lpp_ioda_ext_v1240,
31516       { "ioda-ext-v1240", "lpp.ioda_ext_v1240",
31517         FT_UINT32, BASE_DEC, NULL, 0,
31518         "INTEGER_4_15", HFILL }},
31519     { &hf_lpp_weekNumber_ext_r16,
31520       { "weekNumber-ext-r16", "lpp.weekNumber_ext_r16",
31521         FT_UINT32, BASE_DEC, NULL, 0,
31522         "INTEGER_256_8191", HFILL }},
31523     { &hf_lpp_toa_ext2_r16,
31524       { "toa-ext2-r16", "lpp.toa_ext2_r16",
31525         FT_UINT32, BASE_DEC, NULL, 0,
31526         "INTEGER_256_65535", HFILL }},
31527     { &hf_lpp_GNSS_AlmanacList_item,
31528       { "GNSS-AlmanacElement", "lpp.GNSS_AlmanacElement",
31529         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_AlmanacElement_vals), 0,
31530         NULL, HFILL }},
31531     { &hf_lpp_keplerianAlmanacSet,
31532       { "keplerianAlmanacSet", "lpp.keplerianAlmanacSet_element",
31533         FT_NONE, BASE_NONE, NULL, 0,
31534         "AlmanacKeplerianSet", HFILL }},
31535     { &hf_lpp_keplerianNAV_Almanac,
31536       { "keplerianNAV-Almanac", "lpp.keplerianNAV_Almanac_element",
31537         FT_NONE, BASE_NONE, NULL, 0,
31538         "AlmanacNAV_KeplerianSet", HFILL }},
31539     { &hf_lpp_keplerianReducedAlmanac,
31540       { "keplerianReducedAlmanac", "lpp.keplerianReducedAlmanac_element",
31541         FT_NONE, BASE_NONE, NULL, 0,
31542         "AlmanacReducedKeplerianSet", HFILL }},
31543     { &hf_lpp_keplerianMidiAlmanac,
31544       { "keplerianMidiAlmanac", "lpp.keplerianMidiAlmanac_element",
31545         FT_NONE, BASE_NONE, NULL, 0,
31546         "AlmanacMidiAlmanacSet", HFILL }},
31547     { &hf_lpp_keplerianGLONASS,
31548       { "keplerianGLONASS", "lpp.keplerianGLONASS_element",
31549         FT_NONE, BASE_NONE, NULL, 0,
31550         "AlmanacGLONASS_AlmanacSet", HFILL }},
31551     { &hf_lpp_ecef_SBAS_Almanac,
31552       { "ecef-SBAS-Almanac", "lpp.ecef_SBAS_Almanac_element",
31553         FT_NONE, BASE_NONE, NULL, 0,
31554         "AlmanacECEF_SBAS_AlmanacSet", HFILL }},
31555     { &hf_lpp_keplerianBDS_Almanac_r12,
31556       { "keplerianBDS-Almanac-r12", "lpp.keplerianBDS_Almanac_r12_element",
31557         FT_NONE, BASE_NONE, NULL, 0,
31558         "AlmanacBDS_AlmanacSet_r12", HFILL }},
31559     { &hf_lpp_keplerianNavIC_Almanac_r16,
31560       { "keplerianNavIC-Almanac-r16", "lpp.keplerianNavIC_Almanac_r16_element",
31561         FT_NONE, BASE_NONE, NULL, 0,
31562         "AlmanacNavIC_AlmanacSet_r16", HFILL }},
31563     { &hf_lpp_kepAlmanacE,
31564       { "kepAlmanacE", "lpp.kepAlmanacE",
31565         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacE_fmt), 0,
31566         "INTEGER_0_2047", HFILL }},
31567     { &hf_lpp_kepAlmanacDeltaI,
31568       { "kepAlmanacDeltaI", "lpp.kepAlmanacDeltaI",
31569         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacDeltaI_fmt), 0,
31570         "INTEGER_M1024_1023", HFILL }},
31571     { &hf_lpp_kepAlmanacOmegaDot,
31572       { "kepAlmanacOmegaDot", "lpp.kepAlmanacOmegaDot",
31573         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacOmegaDot_fmt), 0,
31574         "INTEGER_M1024_1023", HFILL }},
31575     { &hf_lpp_kepSV_StatusINAV,
31576       { "kepSV-StatusINAV", "lpp.kepSV_StatusINAV",
31577         FT_BYTES, BASE_NONE, NULL, 0,
31578         NULL, HFILL }},
31579     { &hf_lpp_kepSV_StatusFNAV,
31580       { "kepSV-StatusFNAV", "lpp.kepSV_StatusFNAV",
31581         FT_BYTES, BASE_NONE, NULL, 0,
31582         NULL, HFILL }},
31583     { &hf_lpp_kepAlmanacAPowerHalf,
31584       { "kepAlmanacAPowerHalf", "lpp.kepAlmanacAPowerHalf",
31585         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacAPowerHalf_fmt), 0,
31586         "INTEGER_M4096_4095", HFILL }},
31587     { &hf_lpp_kepAlmanacOmega0,
31588       { "kepAlmanacOmega0", "lpp.kepAlmanacOmega0",
31589         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt), 0,
31590         "INTEGER_M32768_32767", HFILL }},
31591     { &hf_lpp_kepAlmanacW,
31592       { "kepAlmanacW", "lpp.kepAlmanacW",
31593         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt), 0,
31594         "INTEGER_M32768_32767", HFILL }},
31595     { &hf_lpp_kepAlmanacM0,
31596       { "kepAlmanacM0", "lpp.kepAlmanacM0",
31597         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt), 0,
31598         "INTEGER_M32768_32767", HFILL }},
31599     { &hf_lpp_kepAlmanacAF0,
31600       { "kepAlmanacAF0", "lpp.kepAlmanacAF0",
31601         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacAF0_fmt), 0,
31602         "INTEGER_M32768_32767", HFILL }},
31603     { &hf_lpp_kepAlmanacAF1,
31604       { "kepAlmanacAF1", "lpp.kepAlmanacAF1",
31605         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_kepAlmanacAF1_fmt), 0,
31606         "INTEGER_M4096_4095", HFILL }},
31607     { &hf_lpp_navAlmE,
31608       { "navAlmE", "lpp.navAlmE",
31609         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmE_fmt), 0,
31610         "INTEGER_0_65535", HFILL }},
31611     { &hf_lpp_navAlmDeltaI,
31612       { "navAlmDeltaI", "lpp.navAlmDeltaI",
31613         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmDeltaI_fmt), 0,
31614         "INTEGER_M32768_32767", HFILL }},
31615     { &hf_lpp_navAlmOMEGADOT,
31616       { "navAlmOMEGADOT", "lpp.navAlmOMEGADOT",
31617         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmOMEGADOT_fmt), 0,
31618         "INTEGER_M32768_32767", HFILL }},
31619     { &hf_lpp_navAlmSVHealth,
31620       { "navAlmSVHealth", "lpp.navAlmSVHealth",
31621         FT_UINT32, BASE_DEC, NULL, 0,
31622         "INTEGER_0_255", HFILL }},
31623     { &hf_lpp_navAlmSqrtA,
31624       { "navAlmSqrtA", "lpp.navAlmSqrtA",
31625         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmSqrtA_fmt), 0,
31626         "INTEGER_0_16777215", HFILL }},
31627     { &hf_lpp_navAlmOMEGAo,
31628       { "navAlmOMEGAo", "lpp.navAlmOMEGAo",
31629         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt), 0,
31630         "INTEGER_M8388608_8388607", HFILL }},
31631     { &hf_lpp_navAlmOmega,
31632       { "navAlmOmega", "lpp.navAlmOmega",
31633         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt), 0,
31634         "INTEGER_M8388608_8388607", HFILL }},
31635     { &hf_lpp_navAlmMo,
31636       { "navAlmMo", "lpp.navAlmMo",
31637         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt), 0,
31638         "INTEGER_M8388608_8388607", HFILL }},
31639     { &hf_lpp_navAlmaf0,
31640       { "navAlmaf0", "lpp.navAlmaf0",
31641         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmaf0_fmt), 0,
31642         "INTEGER_M1024_1023", HFILL }},
31643     { &hf_lpp_navAlmaf1,
31644       { "navAlmaf1", "lpp.navAlmaf1",
31645         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_navAlmaf1_fmt), 0,
31646         "INTEGER_M1024_1023", HFILL }},
31647     { &hf_lpp_redAlmDeltaA,
31648       { "redAlmDeltaA", "lpp.redAlmDeltaA",
31649         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_redAlmDeltaA_fmt), 0,
31650         "INTEGER_M128_127", HFILL }},
31651     { &hf_lpp_redAlmOmega0,
31652       { "redAlmOmega0", "lpp.redAlmOmega0",
31653         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_redAlmOmega0_Phi0_fmt), 0,
31654         "INTEGER_M64_63", HFILL }},
31655     { &hf_lpp_redAlmPhi0,
31656       { "redAlmPhi0", "lpp.redAlmPhi0",
31657         FT_INT32, BASE_DEC, NULL, 0,
31658         "INTEGER_M64_63", HFILL }},
31659     { &hf_lpp_redAlmL1Health,
31660       { "redAlmL1Health", "lpp.redAlmL1Health",
31661         FT_BOOLEAN, BASE_NONE, NULL, 0,
31662         "BOOLEAN", HFILL }},
31663     { &hf_lpp_redAlmL2Health,
31664       { "redAlmL2Health", "lpp.redAlmL2Health",
31665         FT_BOOLEAN, BASE_NONE, NULL, 0,
31666         "BOOLEAN", HFILL }},
31667     { &hf_lpp_redAlmL5Health,
31668       { "redAlmL5Health", "lpp.redAlmL5Health",
31669         FT_BOOLEAN, BASE_NONE, NULL, 0,
31670         "BOOLEAN", HFILL }},
31671     { &hf_lpp_midiAlmE,
31672       { "midiAlmE", "lpp.midiAlmE",
31673         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmE_fmt), 0,
31674         "INTEGER_0_2047", HFILL }},
31675     { &hf_lpp_midiAlmDeltaI,
31676       { "midiAlmDeltaI", "lpp.midiAlmDeltaI",
31677         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmDeltaI_fmt), 0,
31678         "INTEGER_M1024_1023", HFILL }},
31679     { &hf_lpp_midiAlmOmegaDot,
31680       { "midiAlmOmegaDot", "lpp.midiAlmOmegaDot",
31681         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmOmegaDot_fmt), 0,
31682         "INTEGER_M1024_1023", HFILL }},
31683     { &hf_lpp_midiAlmSqrtA,
31684       { "midiAlmSqrtA", "lpp.midiAlmSqrtA",
31685         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmSqrtA_fmt), 0,
31686         "INTEGER_0_131071", HFILL }},
31687     { &hf_lpp_midiAlmOmega0,
31688       { "midiAlmOmega0", "lpp.midiAlmOmega0",
31689         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt), 0,
31690         "INTEGER_M32768_32767", HFILL }},
31691     { &hf_lpp_midiAlmOmega,
31692       { "midiAlmOmega", "lpp.midiAlmOmega",
31693         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt), 0,
31694         "INTEGER_M32768_32767", HFILL }},
31695     { &hf_lpp_midiAlmMo,
31696       { "midiAlmMo", "lpp.midiAlmMo",
31697         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt), 0,
31698         "INTEGER_M32768_32767", HFILL }},
31699     { &hf_lpp_midiAlmaf0,
31700       { "midiAlmaf0", "lpp.midiAlmaf0",
31701         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmaf0_fmt), 0,
31702         "INTEGER_M1024_1023", HFILL }},
31703     { &hf_lpp_midiAlmaf1,
31704       { "midiAlmaf1", "lpp.midiAlmaf1",
31705         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_midiAlmaf1_fmt), 0,
31706         "INTEGER_M512_511", HFILL }},
31707     { &hf_lpp_midiAlmL1Health,
31708       { "midiAlmL1Health", "lpp.midiAlmL1Health",
31709         FT_BOOLEAN, BASE_NONE, NULL, 0,
31710         "BOOLEAN", HFILL }},
31711     { &hf_lpp_midiAlmL2Health,
31712       { "midiAlmL2Health", "lpp.midiAlmL2Health",
31713         FT_BOOLEAN, BASE_NONE, NULL, 0,
31714         "BOOLEAN", HFILL }},
31715     { &hf_lpp_midiAlmL5Health,
31716       { "midiAlmL5Health", "lpp.midiAlmL5Health",
31717         FT_BOOLEAN, BASE_NONE, NULL, 0,
31718         "BOOLEAN", HFILL }},
31719     { &hf_lpp_gloAlm_NA,
31720       { "gloAlm-NA", "lpp.gloAlm_NA",
31721         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
31722         "INTEGER_1_1461", HFILL }},
31723     { &hf_lpp_gloAlmnA,
31724       { "gloAlmnA", "lpp.gloAlmnA",
31725         FT_UINT32, BASE_DEC, NULL, 0,
31726         "INTEGER_1_24", HFILL }},
31727     { &hf_lpp_gloAlmHA,
31728       { "gloAlmHA", "lpp.gloAlmHA",
31729         FT_UINT32, BASE_DEC, NULL, 0,
31730         "INTEGER_0_31", HFILL }},
31731     { &hf_lpp_gloAlmLambdaA,
31732       { "gloAlmLambdaA", "lpp.gloAlmLambdaA",
31733         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt), 0,
31734         "INTEGER_M1048576_1048575", HFILL }},
31735     { &hf_lpp_gloAlmtlambdaA,
31736       { "gloAlmtlambdaA", "lpp.gloAlmtlambdaA",
31737         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmtlambdaA_fmt), 0,
31738         "INTEGER_0_2097151", HFILL }},
31739     { &hf_lpp_gloAlmDeltaIa,
31740       { "gloAlmDeltaIa", "lpp.gloAlmDeltaIa",
31741         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt), 0,
31742         "INTEGER_M131072_131071", HFILL }},
31743     { &hf_lpp_gloAlmDeltaTA,
31744       { "gloAlmDeltaTA", "lpp.gloAlmDeltaTA",
31745         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmDeltaTA_fmt), 0,
31746         "INTEGER_M2097152_2097151", HFILL }},
31747     { &hf_lpp_gloAlmDeltaTdotA,
31748       { "gloAlmDeltaTdotA", "lpp.gloAlmDeltaTdotA",
31749         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmDeltaTdotA_fmt), 0,
31750         "INTEGER_M64_63", HFILL }},
31751     { &hf_lpp_gloAlmEpsilonA,
31752       { "gloAlmEpsilonA", "lpp.gloAlmEpsilonA",
31753         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmEpsilonA_fmt), 0,
31754         "INTEGER_0_32767", HFILL }},
31755     { &hf_lpp_gloAlmOmegaA,
31756       { "gloAlmOmegaA", "lpp.gloAlmOmegaA",
31757         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmOmegaA_fmt), 0,
31758         "INTEGER_M32768_32767", HFILL }},
31759     { &hf_lpp_gloAlmTauA,
31760       { "gloAlmTauA", "lpp.gloAlmTauA",
31761         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gloAlmTauA_fmt), 0,
31762         "INTEGER_M512_511", HFILL }},
31763     { &hf_lpp_gloAlmCA,
31764       { "gloAlmCA", "lpp.gloAlmCA",
31765         FT_UINT32, BASE_DEC, NULL, 0,
31766         "INTEGER_0_1", HFILL }},
31767     { &hf_lpp_gloAlmMA,
31768       { "gloAlmMA", "lpp.gloAlmMA",
31769         FT_BYTES, BASE_NONE, NULL, 0,
31770         "BIT_STRING_SIZE_2", HFILL }},
31771     { &hf_lpp_sbasAlmDataID,
31772       { "sbasAlmDataID", "lpp.sbasAlmDataID",
31773         FT_UINT32, BASE_DEC, NULL, 0,
31774         "INTEGER_0_3", HFILL }},
31775     { &hf_lpp_sbasAlmHealth,
31776       { "sbasAlmHealth", "lpp.sbasAlmHealth",
31777         FT_BYTES, BASE_NONE, NULL, 0,
31778         "BIT_STRING_SIZE_8", HFILL }},
31779     { &hf_lpp_sbasAlmXg,
31780       { "sbasAlmXg", "lpp.sbasAlmXg",
31781         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmXg_Yg_fmt), 0,
31782         "INTEGER_M16384_16383", HFILL }},
31783     { &hf_lpp_sbasAlmYg,
31784       { "sbasAlmYg", "lpp.sbasAlmYg",
31785         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmXg_Yg_fmt), 0,
31786         "INTEGER_M16384_16383", HFILL }},
31787     { &hf_lpp_sbasAlmZg,
31788       { "sbasAlmZg", "lpp.sbasAlmZg",
31789         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmZg_fmt), 0,
31790         "INTEGER_M256_255", HFILL }},
31791     { &hf_lpp_sbasAlmXgdot,
31792       { "sbasAlmXgdot", "lpp.sbasAlmXgdot",
31793         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmXgdot_YgDot_fmt), 0,
31794         "INTEGER_M4_3", HFILL }},
31795     { &hf_lpp_sbasAlmYgDot,
31796       { "sbasAlmYgDot", "lpp.sbasAlmYgDot",
31797         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmXgdot_YgDot_fmt), 0,
31798         "INTEGER_M4_3", HFILL }},
31799     { &hf_lpp_sbasAlmZgDot,
31800       { "sbasAlmZgDot", "lpp.sbasAlmZgDot",
31801         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmZgDot_fmt), 0,
31802         "INTEGER_M8_7", HFILL }},
31803     { &hf_lpp_sbasAlmTo,
31804       { "sbasAlmTo", "lpp.sbasAlmTo",
31805         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_sbasAlmTo_fmt), 0,
31806         "INTEGER_0_2047", HFILL }},
31807     { &hf_lpp_bdsAlmToa_r12,
31808       { "bdsAlmToa-r12", "lpp.bdsAlmToa_r12",
31809         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmToa_r12_fmt), 0,
31810         "INTEGER_0_255", HFILL }},
31811     { &hf_lpp_bdsAlmSqrtA_r12,
31812       { "bdsAlmSqrtA-r12", "lpp.bdsAlmSqrtA_r12",
31813         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmSqrtA_r12_fmt), 0,
31814         "INTEGER_0_16777215", HFILL }},
31815     { &hf_lpp_bdsAlmE_r12,
31816       { "bdsAlmE-r12", "lpp.bdsAlmE_r12",
31817         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmE_r12_fmt), 0,
31818         "INTEGER_0_131071", HFILL }},
31819     { &hf_lpp_bdsAlmW_r12,
31820       { "bdsAlmW-r12", "lpp.bdsAlmW_r12",
31821         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt), 0,
31822         "INTEGER_M8388608_8388607", HFILL }},
31823     { &hf_lpp_bdsAlmM0_r12,
31824       { "bdsAlmM0-r12", "lpp.bdsAlmM0_r12",
31825         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt), 0,
31826         "INTEGER_M8388608_8388607", HFILL }},
31827     { &hf_lpp_bdsAlmOmega0_r12,
31828       { "bdsAlmOmega0-r12", "lpp.bdsAlmOmega0_r12",
31829         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt), 0,
31830         "INTEGER_M8388608_8388607", HFILL }},
31831     { &hf_lpp_bdsAlmOmegaDot_r12,
31832       { "bdsAlmOmegaDot-r12", "lpp.bdsAlmOmegaDot_r12",
31833         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmOmegaDot_r12_fmt), 0,
31834         "INTEGER_M65536_65535", HFILL }},
31835     { &hf_lpp_bdsAlmDeltaI_r12,
31836       { "bdsAlmDeltaI-r12", "lpp.bdsAlmDeltaI_r12",
31837         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmDeltaI_r12_fmt), 0,
31838         "INTEGER_M32768_32767", HFILL }},
31839     { &hf_lpp_bdsAlmA0_r12,
31840       { "bdsAlmA0-r12", "lpp.bdsAlmA0_r12",
31841         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmA0_r12_fmt), 0,
31842         "INTEGER_M1024_1023", HFILL }},
31843     { &hf_lpp_bdsAlmA1_r12,
31844       { "bdsAlmA1-r12", "lpp.bdsAlmA1_r12",
31845         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bdsAlmA1_r12_fmt), 0,
31846         "INTEGER_M1024_1023", HFILL }},
31847     { &hf_lpp_bdsSvHealth_r12,
31848       { "bdsSvHealth-r12", "lpp.bdsSvHealth_r12",
31849         FT_BYTES, BASE_NONE, NULL, 0,
31850         NULL, HFILL }},
31851     { &hf_lpp_svID_r16,
31852       { "svID-r16", "lpp.svID_r16_element",
31853         FT_NONE, BASE_NONE, NULL, 0,
31854         "SV_ID", HFILL }},
31855     { &hf_lpp_navic_AlmToa_r16,
31856       { "navic-AlmToa-r16", "lpp.navic_AlmToa_r16",
31857         FT_UINT32, BASE_DEC, NULL, 0,
31858         "INTEGER_0_65535", HFILL }},
31859     { &hf_lpp_navic_AlmE_r16,
31860       { "navic-AlmE-r16", "lpp.navic_AlmE_r16",
31861         FT_UINT32, BASE_DEC, NULL, 0,
31862         "INTEGER_0_65535", HFILL }},
31863     { &hf_lpp_navic_AlmOMEGADOT_r16,
31864       { "navic-AlmOMEGADOT-r16", "lpp.navic_AlmOMEGADOT_r16",
31865         FT_INT32, BASE_DEC, NULL, 0,
31866         "INTEGER_M32768_32767", HFILL }},
31867     { &hf_lpp_navic_AlmSqrtA_r16,
31868       { "navic-AlmSqrtA-r16", "lpp.navic_AlmSqrtA_r16",
31869         FT_UINT32, BASE_DEC, NULL, 0,
31870         "INTEGER_0_16777215", HFILL }},
31871     { &hf_lpp_navic_AlmOMEGAo_r16,
31872       { "navic-AlmOMEGAo-r16", "lpp.navic_AlmOMEGAo_r16",
31873         FT_INT32, BASE_DEC, NULL, 0,
31874         "INTEGER_M8388608_8388607", HFILL }},
31875     { &hf_lpp_navic_AlmOmega_r16,
31876       { "navic-AlmOmega-r16", "lpp.navic_AlmOmega_r16",
31877         FT_INT32, BASE_DEC, NULL, 0,
31878         "INTEGER_M8388608_8388607", HFILL }},
31879     { &hf_lpp_navic_AlmMo_r16,
31880       { "navic-AlmMo-r16", "lpp.navic_AlmMo_r16",
31881         FT_INT32, BASE_DEC, NULL, 0,
31882         "INTEGER_M8388608_8388607", HFILL }},
31883     { &hf_lpp_navic_Almaf0_r16,
31884       { "navic-Almaf0-r16", "lpp.navic_Almaf0_r16",
31885         FT_INT32, BASE_DEC, NULL, 0,
31886         "INTEGER_M1024_1023", HFILL }},
31887     { &hf_lpp_navic_Almaf1_r16,
31888       { "navic-Almaf1-r16", "lpp.navic_Almaf1_r16",
31889         FT_INT32, BASE_DEC, NULL, 0,
31890         "INTEGER_M1024_1023", HFILL }},
31891     { &hf_lpp_utcModel1,
31892       { "utcModel1", "lpp.utcModel1_element",
31893         FT_NONE, BASE_NONE, NULL, 0,
31894         "UTC_ModelSet1", HFILL }},
31895     { &hf_lpp_utcModel2,
31896       { "utcModel2", "lpp.utcModel2_element",
31897         FT_NONE, BASE_NONE, NULL, 0,
31898         "UTC_ModelSet2", HFILL }},
31899     { &hf_lpp_utcModel3,
31900       { "utcModel3", "lpp.utcModel3_element",
31901         FT_NONE, BASE_NONE, NULL, 0,
31902         "UTC_ModelSet3", HFILL }},
31903     { &hf_lpp_utcModel4,
31904       { "utcModel4", "lpp.utcModel4_element",
31905         FT_NONE, BASE_NONE, NULL, 0,
31906         "UTC_ModelSet4", HFILL }},
31907     { &hf_lpp_utcModel5_r12,
31908       { "utcModel5-r12", "lpp.utcModel5_r12_element",
31909         FT_NONE, BASE_NONE, NULL, 0,
31910         "UTC_ModelSet5_r12", HFILL }},
31911     { &hf_lpp_gnss_Utc_A1,
31912       { "gnss-Utc-A1", "lpp.gnss_Utc_A1",
31913         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_A1_fmt), 0,
31914         "INTEGER_M8388608_8388607", HFILL }},
31915     { &hf_lpp_gnss_Utc_A0,
31916       { "gnss-Utc-A0", "lpp.gnss_Utc_A0",
31917         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_A0_fmt), 0,
31918         "INTEGER_M2147483648_2147483647", HFILL }},
31919     { &hf_lpp_gnss_Utc_Tot,
31920       { "gnss-Utc-Tot", "lpp.gnss_Utc_Tot",
31921         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_Tot_fmt), 0,
31922         "INTEGER_0_255", HFILL }},
31923     { &hf_lpp_gnss_Utc_WNt,
31924       { "gnss-Utc-WNt", "lpp.gnss_Utc_WNt",
31925         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_week_weeks, 0,
31926         "INTEGER_0_255", HFILL }},
31927     { &hf_lpp_gnss_Utc_DeltaTls,
31928       { "gnss-Utc-DeltaTls", "lpp.gnss_Utc_DeltaTls",
31929         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
31930         "INTEGER_M128_127", HFILL }},
31931     { &hf_lpp_gnss_Utc_WNlsf,
31932       { "gnss-Utc-WNlsf", "lpp.gnss_Utc_WNlsf",
31933         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_week_weeks, 0,
31934         "INTEGER_0_255", HFILL }},
31935     { &hf_lpp_gnss_Utc_DN,
31936       { "gnss-Utc-DN", "lpp.gnss_Utc_DN",
31937         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
31938         "INTEGER_M128_127", HFILL }},
31939     { &hf_lpp_gnss_Utc_DeltaTlsf,
31940       { "gnss-Utc-DeltaTlsf", "lpp.gnss_Utc_DeltaTlsf",
31941         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
31942         "INTEGER_M128_127", HFILL }},
31943     { &hf_lpp_utcA0,
31944       { "utcA0", "lpp.utcA0",
31945         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tA0_fmt), 0,
31946         "INTEGER_M32768_32767", HFILL }},
31947     { &hf_lpp_utcA1,
31948       { "utcA1", "lpp.utcA1",
31949         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tA1_fmt), 0,
31950         "INTEGER_M4096_4095", HFILL }},
31951     { &hf_lpp_utcA2,
31952       { "utcA2", "lpp.utcA2",
31953         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tA2_fmt), 0,
31954         "INTEGER_M64_63", HFILL }},
31955     { &hf_lpp_utcDeltaTls,
31956       { "utcDeltaTls", "lpp.utcDeltaTls",
31957         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
31958         "INTEGER_M128_127", HFILL }},
31959     { &hf_lpp_utcTot,
31960       { "utcTot", "lpp.utcTot",
31961         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_TimeModelRefTime_fmt), 0,
31962         "INTEGER_0_65535", HFILL }},
31963     { &hf_lpp_utcWNot,
31964       { "utcWNot", "lpp.utcWNot",
31965         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_week_weeks, 0,
31966         "INTEGER_0_8191", HFILL }},
31967     { &hf_lpp_utcWNlsf,
31968       { "utcWNlsf", "lpp.utcWNlsf",
31969         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_week_weeks, 0,
31970         "INTEGER_0_255", HFILL }},
31971     { &hf_lpp_utcDN,
31972       { "utcDN", "lpp.utcDN",
31973         FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
31974         NULL, HFILL }},
31975     { &hf_lpp_utcDeltaTlsf,
31976       { "utcDeltaTlsf", "lpp.utcDeltaTlsf",
31977         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
31978         "INTEGER_M128_127", HFILL }},
31979     { &hf_lpp_utcWNlsf_ext_r16,
31980       { "utcWNlsf-ext-r16", "lpp.utcWNlsf_ext_r16",
31981         FT_UINT32, BASE_DEC, NULL, 0,
31982         "INTEGER_256_8191", HFILL }},
31983     { &hf_lpp_nA,
31984       { "nA", "lpp.nA",
31985         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
31986         "INTEGER_1_1461", HFILL }},
31987     { &hf_lpp_tauC,
31988       { "tauC", "lpp.tauC",
31989         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_tauC_fmt), 0,
31990         "INTEGER_M2147483648_2147483647", HFILL }},
31991     { &hf_lpp_b1,
31992       { "b1", "lpp.b1",
31993         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_b1_fmt), 0,
31994         "INTEGER_M1024_1023", HFILL }},
31995     { &hf_lpp_b2,
31996       { "b2", "lpp.b2",
31997         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_b2_fmt), 0,
31998         "INTEGER_M512_511", HFILL }},
31999     { &hf_lpp_kp,
32000       { "kp", "lpp.kp",
32001         FT_UINT8, BASE_DEC, VALS(lpp_kp_vals), 0,
32002         NULL, HFILL }},
32003     { &hf_lpp_utcA1wnt,
32004       { "utcA1wnt", "lpp.utcA1wnt",
32005         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_A1_fmt), 0,
32006         "INTEGER_M8388608_8388607", HFILL }},
32007     { &hf_lpp_utcA0wnt,
32008       { "utcA0wnt", "lpp.utcA0wnt",
32009         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_A0_fmt), 0,
32010         "INTEGER_M2147483648_2147483647", HFILL }},
32011     { &hf_lpp_utcTot_01,
32012       { "utcTot", "lpp.utcTot",
32013         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_Tot_fmt), 0,
32014         "INTEGER_0_255", HFILL }},
32015     { &hf_lpp_utcWNt,
32016       { "utcWNt", "lpp.utcWNt",
32017         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_week_weeks, 0,
32018         "INTEGER_0_255", HFILL }},
32019     { &hf_lpp_UTC_ModelSet4_utcDN,
32020       { "utcDN", "lpp.uTC-ModelSet4.utcDN",
32021         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
32022         "INTEGER_M128_127", HFILL }},
32023     { &hf_lpp_utcStandardID,
32024       { "utcStandardID", "lpp.utcStandardID",
32025         FT_UINT8, BASE_DEC, VALS(lpp_utcStandardID_vals), 0,
32026         "INTEGER_0_7", HFILL }},
32027     { &hf_lpp_utcA0_r12,
32028       { "utcA0-r12", "lpp.utcA0_r12",
32029         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_A0_fmt), 0,
32030         "INTEGER_M2147483648_2147483647", HFILL }},
32031     { &hf_lpp_utcA1_r12,
32032       { "utcA1-r12", "lpp.utcA1_r12",
32033         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_gnss_Utc_A1_fmt), 0,
32034         "INTEGER_M8388608_8388607", HFILL }},
32035     { &hf_lpp_utcDeltaTls_r12,
32036       { "utcDeltaTls-r12", "lpp.utcDeltaTls_r12",
32037         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
32038         "INTEGER_M128_127", HFILL }},
32039     { &hf_lpp_utcWNlsf_r12,
32040       { "utcWNlsf-r12", "lpp.utcWNlsf_r12",
32041         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_week_weeks, 0,
32042         "INTEGER_0_255", HFILL }},
32043     { &hf_lpp_utcDN_r12,
32044       { "utcDN-r12", "lpp.utcDN_r12",
32045         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_day_days, 0,
32046         "INTEGER_0_255", HFILL }},
32047     { &hf_lpp_utcDeltaTlsf_r12,
32048       { "utcDeltaTlsf-r12", "lpp.utcDeltaTlsf_r12",
32049         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
32050         "INTEGER_M128_127", HFILL }},
32051     { &hf_lpp_gnss_ID_GPS,
32052       { "gnss-ID-GPS", "lpp.gnss_ID_GPS",
32053         FT_UINT32, BASE_DEC, NULL, 0,
32054         NULL, HFILL }},
32055     { &hf_lpp_gnss_ID_GLONASS,
32056       { "gnss-ID-GLONASS", "lpp.gnss_ID_GLONASS",
32057         FT_UINT32, BASE_DEC, NULL, 0,
32058         NULL, HFILL }},
32059     { &hf_lpp_gnss_ID_BDS_r16,
32060       { "gnss-ID-BDS-r16", "lpp.gnss_ID_BDS_r16",
32061         FT_UINT32, BASE_DEC, NULL, 0,
32062         NULL, HFILL }},
32063     { &hf_lpp_GNSS_ID_GPS_item,
32064       { "GNSS-ID-GPS-SatElement", "lpp.GNSS_ID_GPS_SatElement_element",
32065         FT_NONE, BASE_NONE, NULL, 0,
32066         NULL, HFILL }},
32067     { &hf_lpp_signalsAvailable,
32068       { "signalsAvailable", "lpp.signalsAvailable_element",
32069         FT_NONE, BASE_NONE, NULL, 0,
32070         "GNSS_SignalIDs", HFILL }},
32071     { &hf_lpp_GNSS_ID_GLONASS_item,
32072       { "GNSS-ID-GLONASS-SatElement", "lpp.GNSS_ID_GLONASS_SatElement_element",
32073         FT_NONE, BASE_NONE, NULL, 0,
32074         NULL, HFILL }},
32075     { &hf_lpp_channelNumber,
32076       { "channelNumber", "lpp.channelNumber",
32077         FT_INT32, BASE_DEC, NULL, 0,
32078         "INTEGER_M7_13", HFILL }},
32079     { &hf_lpp_GNSS_ID_BDS_r16_item,
32080       { "GNSS-ID-BDS-SatElement-r16", "lpp.GNSS_ID_BDS_SatElement_r16_element",
32081         FT_NONE, BASE_NONE, NULL, 0,
32082         NULL, HFILL }},
32083     { &hf_lpp_satType_r16,
32084       { "satType-r16", "lpp.satType_r16",
32085         FT_UINT32, BASE_DEC, NULL, 0,
32086         "INTEGER_0_3", HFILL }},
32087     { &hf_lpp_dbds_RefTime_r12,
32088       { "dbds-RefTime-r12", "lpp.dbds_RefTime_r12",
32089         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
32090         "INTEGER_0_3599", HFILL }},
32091     { &hf_lpp_bds_SgnTypeList_r12,
32092       { "bds-SgnTypeList-r12", "lpp.bds_SgnTypeList_r12",
32093         FT_UINT32, BASE_DEC, NULL, 0,
32094         NULL, HFILL }},
32095     { &hf_lpp_BDS_SgnTypeList_r12_item,
32096       { "BDS-SgnTypeElement-r12", "lpp.BDS_SgnTypeElement_r12_element",
32097         FT_NONE, BASE_NONE, NULL, 0,
32098         NULL, HFILL }},
32099     { &hf_lpp_dbds_CorrectionList_r12,
32100       { "dbds-CorrectionList-r12", "lpp.dbds_CorrectionList_r12",
32101         FT_UINT32, BASE_DEC, NULL, 0,
32102         NULL, HFILL }},
32103     { &hf_lpp_DBDS_CorrectionList_r12_item,
32104       { "DBDS-CorrectionElement-r12", "lpp.DBDS_CorrectionElement_r12_element",
32105         FT_NONE, BASE_NONE, NULL, 0,
32106         NULL, HFILL }},
32107     { &hf_lpp_bds_UDREI_r12,
32108       { "bds-UDREI-r12", "lpp.bds_UDREI_r12",
32109         FT_UINT8, BASE_DEC|BASE_EXT_STRING, &lpp_bds_UDREI_vals_ext, 0,
32110         "INTEGER_0_15", HFILL }},
32111     { &hf_lpp_bds_RURAI_r12,
32112       { "bds-RURAI-r12", "lpp.bds_RURAI_r12",
32113         FT_UINT8, BASE_DEC|BASE_EXT_STRING, &lpp_bds_RURAI_vals_ext, 0,
32114         "INTEGER_0_15", HFILL }},
32115     { &hf_lpp_bds_ECC_DeltaT_r12,
32116       { "bds-ECC-DeltaT-r12", "lpp.bds_ECC_DeltaT_r12",
32117         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_bds_ECC_DeltaT_r12_fmt), 0,
32118         "INTEGER_M4096_4095", HFILL }},
32119     { &hf_lpp_bds_RefTime_r12,
32120       { "bds-RefTime-r12", "lpp.bds_RefTime_r12",
32121         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
32122         "INTEGER_0_3599", HFILL }},
32123     { &hf_lpp_gridIonList_r12,
32124       { "gridIonList-r12", "lpp.gridIonList_r12",
32125         FT_UINT32, BASE_DEC, NULL, 0,
32126         NULL, HFILL }},
32127     { &hf_lpp_GridIonList_r12_item,
32128       { "GridIonElement-r12", "lpp.GridIonElement_r12_element",
32129         FT_NONE, BASE_NONE, NULL, 0,
32130         NULL, HFILL }},
32131     { &hf_lpp_igp_ID_r12,
32132       { "igp-ID-r12", "lpp.igp_ID_r12",
32133         FT_UINT32, BASE_DEC, NULL, 0,
32134         "INTEGER_1_320", HFILL }},
32135     { &hf_lpp_dt_r12,
32136       { "dt-r12", "lpp.dt_r12",
32137         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_bds_GridIonElement_dt_r12_fmt), 0,
32138         "INTEGER_0_511", HFILL }},
32139     { &hf_lpp_givei_r12,
32140       { "givei-r12", "lpp.givei_r12",
32141         FT_UINT8, BASE_DEC|BASE_EXT_STRING, &lpp_bds_givei_vals_ext, 0,
32142         "INTEGER_0_15", HFILL }},
32143     { &hf_lpp_epochTime_r15,
32144       { "epochTime-r15", "lpp.epochTime_r15_element",
32145         FT_NONE, BASE_NONE, NULL, 0,
32146         "GNSS_SystemTime", HFILL }},
32147     { &hf_lpp_gnss_ObservationList_r15,
32148       { "gnss-ObservationList-r15", "lpp.gnss_ObservationList_r15",
32149         FT_UINT32, BASE_DEC, NULL, 0,
32150         NULL, HFILL }},
32151     { &hf_lpp_GNSS_ObservationList_r15_item,
32152       { "GNSS-RTK-SatelliteDataElement-r15", "lpp.GNSS_RTK_SatelliteDataElement_r15_element",
32153         FT_NONE, BASE_NONE, NULL, 0,
32154         NULL, HFILL }},
32155     { &hf_lpp_svID_r15,
32156       { "svID-r15", "lpp.svID_r15_element",
32157         FT_NONE, BASE_NONE, NULL, 0,
32158         "SV_ID", HFILL }},
32159     { &hf_lpp_integer_ms_r15,
32160       { "integer-ms-r15", "lpp.integer_ms_r15",
32161         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
32162         "INTEGER_0_254", HFILL }},
32163     { &hf_lpp_rough_range_r15,
32164       { "rough-range-r15", "lpp.rough_range_r15",
32165         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
32166         "INTEGER_0_1023", HFILL }},
32167     { &hf_lpp_rough_phase_range_rate_r15,
32168       { "rough-phase-range-rate-r15", "lpp.rough_phase_range_rate_r15",
32169         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_meter_sec, 0,
32170         "INTEGER_M8192_8191", HFILL }},
32171     { &hf_lpp_gnss_rtk_SatelliteSignalDataList_r15,
32172       { "gnss-rtk-SatelliteSignalDataList-r15", "lpp.gnss_rtk_SatelliteSignalDataList_r15",
32173         FT_UINT32, BASE_DEC, NULL, 0,
32174         NULL, HFILL }},
32175     { &hf_lpp_GNSS_RTK_SatelliteSignalDataList_r15_item,
32176       { "GNSS-RTK-SatelliteSignalDataElement-r15", "lpp.GNSS_RTK_SatelliteSignalDataElement_r15_element",
32177         FT_NONE, BASE_NONE, NULL, 0,
32178         NULL, HFILL }},
32179     { &hf_lpp_gnss_SignalID_r15,
32180       { "gnss-SignalID-r15", "lpp.gnss_SignalID_r15_element",
32181         FT_NONE, BASE_NONE, NULL, 0,
32182         "GNSS_SignalID", HFILL }},
32183     { &hf_lpp_fine_PseudoRange_r15,
32184       { "fine-PseudoRange-r15", "lpp.fine_PseudoRange_r15",
32185         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_fine_PseudoRange_r15_fmt), 0,
32186         "INTEGER_M524288_524287", HFILL }},
32187     { &hf_lpp_fine_PhaseRange_r15,
32188       { "fine-PhaseRange-r15", "lpp.fine_PhaseRange_r15",
32189         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_fine_PhaseRange_r15_fmt), 0,
32190         "INTEGER_M8388608_8388607", HFILL }},
32191     { &hf_lpp_lockTimeIndicator_r15,
32192       { "lockTimeIndicator-r15", "lpp.lockTimeIndicator_r15",
32193         FT_UINT32, BASE_DEC, NULL, 0,
32194         "INTEGER_0_1023", HFILL }},
32195     { &hf_lpp_halfCycleAmbiguityIndicator_r15,
32196       { "halfCycleAmbiguityIndicator-r15", "lpp.halfCycleAmbiguityIndicator_r15",
32197         FT_BYTES, BASE_NONE, NULL, 0,
32198         "BIT_STRING_SIZE_1", HFILL }},
32199     { &hf_lpp_carrier_to_noise_ratio_r15,
32200       { "carrier-to-noise-ratio-r15", "lpp.carrier_to_noise_ratio_r15",
32201         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_carrier_to_noise_ratio_r15_fmt), 0,
32202         "INTEGER_0_1023", HFILL }},
32203     { &hf_lpp_fine_PhaseRangeRate_r15,
32204       { "fine-PhaseRangeRate-r15", "lpp.fine_PhaseRangeRate_r15",
32205         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_fine_PhaseRangeRate_r15_fmt), 0,
32206         "INTEGER_M16384_16383", HFILL }},
32207     { &hf_lpp_cpbIndicator_r15,
32208       { "cpbIndicator-r15", "lpp.cpbIndicator_r15",
32209         FT_BYTES, BASE_NONE, NULL, 0,
32210         "BIT_STRING_SIZE_1", HFILL }},
32211     { &hf_lpp_l1_ca_cpBias_r15,
32212       { "l1-ca-cpBias-r15", "lpp.l1_ca_cpBias_r15",
32213         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cpBias_r15_fmt), 0,
32214         "INTEGER_M32768_32767", HFILL }},
32215     { &hf_lpp_l1_p_cpBias_r15,
32216       { "l1-p-cpBias-r15", "lpp.l1_p_cpBias_r15",
32217         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cpBias_r15_fmt), 0,
32218         "INTEGER_M32768_32767", HFILL }},
32219     { &hf_lpp_l2_ca_cpBias_r15,
32220       { "l2-ca-cpBias-r15", "lpp.l2_ca_cpBias_r15",
32221         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cpBias_r15_fmt), 0,
32222         "INTEGER_M32768_32767", HFILL }},
32223     { &hf_lpp_l2_p_cpBias_r15,
32224       { "l2-p-cpBias-r15", "lpp.l2_p_cpBias_r15",
32225         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_cpBias_r15_fmt), 0,
32226         "INTEGER_M32768_32767", HFILL }},
32227     { &hf_lpp_master_ReferenceStationID_r15,
32228       { "master-ReferenceStationID-r15", "lpp.master_ReferenceStationID_r15_element",
32229         FT_NONE, BASE_NONE, NULL, 0,
32230         "GNSS_ReferenceStationID_r15", HFILL }},
32231     { &hf_lpp_l1_r15,
32232       { "l1-r15", "lpp.l1_r15_element",
32233         FT_NONE, BASE_NONE, NULL, 0,
32234         "GNSS_FrequencyID_r15", HFILL }},
32235     { &hf_lpp_l2_r15,
32236       { "l2-r15", "lpp.l2_r15_element",
32237         FT_NONE, BASE_NONE, NULL, 0,
32238         "GNSS_FrequencyID_r15", HFILL }},
32239     { &hf_lpp_rtkCorrectionDifferencesList_r15,
32240       { "rtkCorrectionDifferencesList-r15", "lpp.rtkCorrectionDifferencesList_r15",
32241         FT_UINT32, BASE_DEC, NULL, 0,
32242         "RTK_CorrectionDifferencesList_r15", HFILL }},
32243     { &hf_lpp_RTK_CorrectionDifferencesList_r15_item,
32244       { "RTK-CorrectionDifferencesElement-r15", "lpp.RTK_CorrectionDifferencesElement_r15_element",
32245         FT_NONE, BASE_NONE, NULL, 0,
32246         NULL, HFILL }},
32247     { &hf_lpp_auxiliary_referenceStationID_r15,
32248       { "auxiliary-referenceStationID-r15", "lpp.auxiliary_referenceStationID_r15_element",
32249         FT_NONE, BASE_NONE, NULL, 0,
32250         "GNSS_ReferenceStationID_r15", HFILL }},
32251     { &hf_lpp_geometric_ionospheric_corrections_differences_r15,
32252       { "geometric-ionospheric-corrections-differences-r15", "lpp.geometric_ionospheric_corrections_differences_r15",
32253         FT_UINT32, BASE_DEC, NULL, 0,
32254         NULL, HFILL }},
32255     { &hf_lpp_Geometric_Ionospheric_Corrections_Differences_r15_item,
32256       { "Geometric-Ionospheric-Corrections-Differences-Element-r15", "lpp.Geometric_Ionospheric_Corrections_Differences_Element_r15_element",
32257         FT_NONE, BASE_NONE, NULL, 0,
32258         NULL, HFILL }},
32259     { &hf_lpp_ambiguityStatusFlag_r15,
32260       { "ambiguityStatusFlag-r15", "lpp.ambiguityStatusFlag_r15",
32261         FT_UINT8, BASE_DEC, VALS(lpp_ambiguityStatusFlag_r15_vals), 0,
32262         "INTEGER_0_3", HFILL }},
32263     { &hf_lpp_non_synch_count_r15,
32264       { "non-synch-count-r15", "lpp.non_synch_count_r15",
32265         FT_UINT32, BASE_DEC, NULL, 0,
32266         "INTEGER_0_7", HFILL }},
32267     { &hf_lpp_geometricCarrierPhaseCorrectionDifference_r15,
32268       { "geometricCarrierPhaseCorrectionDifference-r15", "lpp.geometricCarrierPhaseCorrectionDifference_r15",
32269         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_2000m_fmt), 0,
32270         "INTEGER_M65536_65535", HFILL }},
32271     { &hf_lpp_iod_r15,
32272       { "iod-r15", "lpp.iod_r15",
32273         FT_BYTES, BASE_NONE, NULL, 0,
32274         "BIT_STRING_SIZE_11", HFILL }},
32275     { &hf_lpp_ionosphericCarrierPhaseCorrectionDifference_r15,
32276       { "ionosphericCarrierPhaseCorrectionDifference-r15", "lpp.ionosphericCarrierPhaseCorrectionDifference_r15",
32277         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_2000m_fmt), 0,
32278         "INTEGER_M65536_65535", HFILL }},
32279     { &hf_lpp_n_Refs_r15,
32280       { "n-Refs-r15", "lpp.n_Refs_r15",
32281         FT_UINT32, BASE_DEC, NULL, 0,
32282         "INTEGER_0_127", HFILL }},
32283     { &hf_lpp_rtk_residuals_list_r15,
32284       { "rtk-residuals-list-r15", "lpp.rtk_residuals_list_r15",
32285         FT_UINT32, BASE_DEC, NULL, 0,
32286         NULL, HFILL }},
32287     { &hf_lpp_RTK_Residuals_List_r15_item,
32288       { "RTK-Residuals-Element-r15", "lpp.RTK_Residuals_Element_r15_element",
32289         FT_NONE, BASE_NONE, NULL, 0,
32290         NULL, HFILL }},
32291     { &hf_lpp_s_oc_r15,
32292       { "s-oc-r15", "lpp.s_oc_r15",
32293         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_2000m_fmt), 0,
32294         "INTEGER_0_255", HFILL }},
32295     { &hf_lpp_s_od_r15,
32296       { "s-od-r15", "lpp.s_od_r15",
32297         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_100ppm_fmt), 0,
32298         "INTEGER_0_511", HFILL }},
32299     { &hf_lpp_s_oh_r15,
32300       { "s-oh-r15", "lpp.s_oh_r15",
32301         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_10ppm_fmt), 0,
32302         "INTEGER_0_63", HFILL }},
32303     { &hf_lpp_s_lc_r15,
32304       { "s-lc-r15", "lpp.s_lc_r15",
32305         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_2000m_fmt), 0,
32306         "INTEGER_0_1023", HFILL }},
32307     { &hf_lpp_s_ld_r15,
32308       { "s-ld-r15", "lpp.s_ld_r15",
32309         FT_UINT32, BASE_DEC, NULL, 0,
32310         "INTEGER_0_1023", HFILL }},
32311     { &hf_lpp_fkp_gradients_list_r15,
32312       { "fkp-gradients-list-r15", "lpp.fkp_gradients_list_r15",
32313         FT_UINT32, BASE_DEC, NULL, 0,
32314         NULL, HFILL }},
32315     { &hf_lpp_FKP_Gradients_List_r15_item,
32316       { "FKP-Gradients-Element-r15", "lpp.FKP_Gradients_Element_r15_element",
32317         FT_NONE, BASE_NONE, NULL, 0,
32318         NULL, HFILL }},
32319     { &hf_lpp_north_geometric_gradient_r15,
32320       { "north-geometric-gradient-r15", "lpp.north_geometric_gradient_r15",
32321         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_100ppm_fmt), 0,
32322         "INTEGER_M2048_2047", HFILL }},
32323     { &hf_lpp_east_geometric_gradient_r15,
32324       { "east-geometric-gradient-r15", "lpp.east_geometric_gradient_r15",
32325         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_100ppm_fmt), 0,
32326         "INTEGER_M2048_2047", HFILL }},
32327     { &hf_lpp_north_ionospheric_gradient_r15,
32328       { "north-ionospheric-gradient-r15", "lpp.north_ionospheric_gradient_r15",
32329         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_100ppm_fmt), 0,
32330         "INTEGER_M8192_8191", HFILL }},
32331     { &hf_lpp_east_ionospheric_gradient_r15,
32332       { "east-ionospheric-gradient-r15", "lpp.east_ionospheric_gradient_r15",
32333         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_100ppm_fmt), 0,
32334         "INTEGER_M8192_8191", HFILL }},
32335     { &hf_lpp_ssrUpdateInterval_r15,
32336       { "ssrUpdateInterval-r15", "lpp.ssrUpdateInterval_r15",
32337         FT_UINT8, BASE_DEC, VALS(lpp_ssrUpdateInterval_r15_vals), 0,
32338         "INTEGER_0_15", HFILL }},
32339     { &hf_lpp_satelliteReferenceDatum_r15,
32340       { "satelliteReferenceDatum-r15", "lpp.satelliteReferenceDatum_r15",
32341         FT_UINT32, BASE_DEC, VALS(lpp_T_satelliteReferenceDatum_r15_vals), 0,
32342         NULL, HFILL }},
32343     { &hf_lpp_iod_ssr_r15,
32344       { "iod-ssr-r15", "lpp.iod_ssr_r15",
32345         FT_UINT32, BASE_DEC, NULL, 0,
32346         "INTEGER_0_15", HFILL }},
32347     { &hf_lpp_ssr_OrbitCorrectionList_r15,
32348       { "ssr-OrbitCorrectionList-r15", "lpp.ssr_OrbitCorrectionList_r15",
32349         FT_UINT32, BASE_DEC, NULL, 0,
32350         NULL, HFILL }},
32351     { &hf_lpp_SSR_OrbitCorrectionList_r15_item,
32352       { "SSR-OrbitCorrectionSatelliteElement-r15", "lpp.SSR_OrbitCorrectionSatelliteElement_r15_element",
32353         FT_NONE, BASE_NONE, NULL, 0,
32354         NULL, HFILL }},
32355     { &hf_lpp_delta_radial_r15,
32356       { "delta-radial-r15", "lpp.delta_radial_r15",
32357         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_10000m_fmt), 0,
32358         "INTEGER_M2097152_2097151", HFILL }},
32359     { &hf_lpp_delta_AlongTrack_r15,
32360       { "delta-AlongTrack-r15", "lpp.delta_AlongTrack_r15",
32361         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_4_10000m_fmt), 0,
32362         "INTEGER_M524288_524287", HFILL }},
32363     { &hf_lpp_delta_CrossTrack_r15,
32364       { "delta-CrossTrack-r15", "lpp.delta_CrossTrack_r15",
32365         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_4_10000m_fmt), 0,
32366         "INTEGER_M524288_524287", HFILL }},
32367     { &hf_lpp_dot_delta_radial_r15,
32368       { "dot-delta-radial-r15", "lpp.dot_delta_radial_r15",
32369         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_1000000m_s_fmt), 0,
32370         "INTEGER_M1048576_1048575", HFILL }},
32371     { &hf_lpp_dot_delta_AlongTrack_r15,
32372       { "dot-delta-AlongTrack-r15", "lpp.dot_delta_AlongTrack_r15",
32373         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_4_1000000m_s_fmt), 0,
32374         "INTEGER_M262144_262143", HFILL }},
32375     { &hf_lpp_dot_delta_CrossTrack_r15,
32376       { "dot-delta-CrossTrack-r15", "lpp.dot_delta_CrossTrack_r15",
32377         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_4_1000000m_s_fmt), 0,
32378         "INTEGER_M262144_262143", HFILL }},
32379     { &hf_lpp_ssr_ClockCorrectionList_r15,
32380       { "ssr-ClockCorrectionList-r15", "lpp.ssr_ClockCorrectionList_r15",
32381         FT_UINT32, BASE_DEC, NULL, 0,
32382         NULL, HFILL }},
32383     { &hf_lpp_SSR_ClockCorrectionList_r15_item,
32384       { "SSR-ClockCorrectionSatelliteElement-r15", "lpp.SSR_ClockCorrectionSatelliteElement_r15_element",
32385         FT_NONE, BASE_NONE, NULL, 0,
32386         NULL, HFILL }},
32387     { &hf_lpp_delta_Clock_C0_r15,
32388       { "delta-Clock-C0-r15", "lpp.delta_Clock_C0_r15",
32389         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_10000m_fmt), 0,
32390         "INTEGER_M2097152_2097151", HFILL }},
32391     { &hf_lpp_delta_Clock_C1_r15,
32392       { "delta-Clock-C1-r15", "lpp.delta_Clock_C1_r15",
32393         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_1000000m_s_fmt), 0,
32394         "INTEGER_M1048576_1048575", HFILL }},
32395     { &hf_lpp_delta_Clock_C2_r15,
32396       { "delta-Clock-C2-r15", "lpp.delta_Clock_C2_r15",
32397         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_2_100000000m_s2_fmt), 0,
32398         "INTEGER_M67108864_67108863", HFILL }},
32399     { &hf_lpp_ssr_CodeBiasSatList_r15,
32400       { "ssr-CodeBiasSatList-r15", "lpp.ssr_CodeBiasSatList_r15",
32401         FT_UINT32, BASE_DEC, NULL, 0,
32402         NULL, HFILL }},
32403     { &hf_lpp_SSR_CodeBiasSatList_r15_item,
32404       { "SSR-CodeBiasSatElement-r15", "lpp.SSR_CodeBiasSatElement_r15_element",
32405         FT_NONE, BASE_NONE, NULL, 0,
32406         NULL, HFILL }},
32407     { &hf_lpp_ssr_CodeBiasSignalList_r15,
32408       { "ssr-CodeBiasSignalList-r15", "lpp.ssr_CodeBiasSignalList_r15",
32409         FT_UINT32, BASE_DEC, NULL, 0,
32410         NULL, HFILL }},
32411     { &hf_lpp_SSR_CodeBiasSignalList_r15_item,
32412       { "SSR-CodeBiasSignalElement-r15", "lpp.SSR_CodeBiasSignalElement_r15_element",
32413         FT_NONE, BASE_NONE, NULL, 0,
32414         NULL, HFILL }},
32415     { &hf_lpp_signal_and_tracking_mode_ID_r15,
32416       { "signal-and-tracking-mode-ID-r15", "lpp.signal_and_tracking_mode_ID_r15_element",
32417         FT_NONE, BASE_NONE, NULL, 0,
32418         "GNSS_SignalID", HFILL }},
32419     { &hf_lpp_codeBias_r15,
32420       { "codeBias-r15", "lpp.codeBias_r15",
32421         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_1_100000m_fmt), 0,
32422         "INTEGER_M8192_8191", HFILL }},
32423     { &hf_lpp_epochTime_r16,
32424       { "epochTime-r16", "lpp.epochTime_r16_element",
32425         FT_NONE, BASE_NONE, NULL, 0,
32426         "GNSS_SystemTime", HFILL }},
32427     { &hf_lpp_ssrUpdateInterval_r16,
32428       { "ssrUpdateInterval-r16", "lpp.ssrUpdateInterval_r16",
32429         FT_UINT32, BASE_DEC, NULL, 0,
32430         "INTEGER_0_15", HFILL }},
32431     { &hf_lpp_iod_ssr_r16,
32432       { "iod-ssr-r16", "lpp.iod_ssr_r16",
32433         FT_UINT32, BASE_DEC, NULL, 0,
32434         "INTEGER_0_15", HFILL }},
32435     { &hf_lpp_ssr_URA_SatList_r16,
32436       { "ssr-URA-SatList-r16", "lpp.ssr_URA_SatList_r16",
32437         FT_UINT32, BASE_DEC, NULL, 0,
32438         NULL, HFILL }},
32439     { &hf_lpp_SSR_URA_SatList_r16_item,
32440       { "SSR-URA-SatElement-r16", "lpp.SSR_URA_SatElement_r16_element",
32441         FT_NONE, BASE_NONE, NULL, 0,
32442         NULL, HFILL }},
32443     { &hf_lpp_ssr_URA_r16,
32444       { "ssr-URA-r16", "lpp.ssr_URA_r16",
32445         FT_BYTES, BASE_NONE, NULL, 0,
32446         "BIT_STRING_SIZE_6", HFILL }},
32447     { &hf_lpp_ssr_PhaseBiasSatList_r16,
32448       { "ssr-PhaseBiasSatList-r16", "lpp.ssr_PhaseBiasSatList_r16",
32449         FT_UINT32, BASE_DEC, NULL, 0,
32450         NULL, HFILL }},
32451     { &hf_lpp_SSR_PhaseBiasSatList_r16_item,
32452       { "SSR-PhaseBiasSatElement-r16", "lpp.SSR_PhaseBiasSatElement_r16_element",
32453         FT_NONE, BASE_NONE, NULL, 0,
32454         NULL, HFILL }},
32455     { &hf_lpp_ssr_PhaseBiasSignalList_r16,
32456       { "ssr-PhaseBiasSignalList-r16", "lpp.ssr_PhaseBiasSignalList_r16",
32457         FT_UINT32, BASE_DEC, NULL, 0,
32458         NULL, HFILL }},
32459     { &hf_lpp_SSR_PhaseBiasSignalList_r16_item,
32460       { "SSR-PhaseBiasSignalElement-r16", "lpp.SSR_PhaseBiasSignalElement_r16_element",
32461         FT_NONE, BASE_NONE, NULL, 0,
32462         NULL, HFILL }},
32463     { &hf_lpp_signal_and_tracking_mode_ID_r16,
32464       { "signal-and-tracking-mode-ID-r16", "lpp.signal_and_tracking_mode_ID_r16_element",
32465         FT_NONE, BASE_NONE, NULL, 0,
32466         "GNSS_SignalID", HFILL }},
32467     { &hf_lpp_phaseBias_r16,
32468       { "phaseBias-r16", "lpp.phaseBias_r16",
32469         FT_INT32, BASE_DEC, NULL, 0,
32470         "INTEGER_M16384_16383", HFILL }},
32471     { &hf_lpp_phaseDiscontinuityIndicator_r16,
32472       { "phaseDiscontinuityIndicator-r16", "lpp.phaseDiscontinuityIndicator_r16",
32473         FT_UINT32, BASE_DEC, NULL, 0,
32474         "INTEGER_0_3", HFILL }},
32475     { &hf_lpp_phaseBiasIntegerIndicator_r16,
32476       { "phaseBiasIntegerIndicator-r16", "lpp.phaseBiasIntegerIndicator_r16",
32477         FT_UINT32, BASE_DEC, NULL, 0,
32478         "INTEGER_0_3", HFILL }},
32479     { &hf_lpp_stec_SatList_r16,
32480       { "stec-SatList-r16", "lpp.stec_SatList_r16",
32481         FT_UINT32, BASE_DEC, NULL, 0,
32482         NULL, HFILL }},
32483     { &hf_lpp_STEC_SatList_r16_item,
32484       { "STEC-SatElement-r16", "lpp.STEC_SatElement_r16_element",
32485         FT_NONE, BASE_NONE, NULL, 0,
32486         NULL, HFILL }},
32487     { &hf_lpp_stecQualityIndicator_r16,
32488       { "stecQualityIndicator-r16", "lpp.stecQualityIndicator_r16",
32489         FT_BYTES, BASE_NONE, NULL, 0,
32490         "BIT_STRING_SIZE_6", HFILL }},
32491     { &hf_lpp_stec_C00_r16,
32492       { "stec-C00-r16", "lpp.stec_C00_r16",
32493         FT_INT32, BASE_DEC, NULL, 0,
32494         "INTEGER_M8192_8191", HFILL }},
32495     { &hf_lpp_stec_C01_r16,
32496       { "stec-C01-r16", "lpp.stec_C01_r16",
32497         FT_INT32, BASE_DEC, NULL, 0,
32498         "INTEGER_M2048_2047", HFILL }},
32499     { &hf_lpp_stec_C10_r16,
32500       { "stec-C10-r16", "lpp.stec_C10_r16",
32501         FT_INT32, BASE_DEC, NULL, 0,
32502         "INTEGER_M2048_2047", HFILL }},
32503     { &hf_lpp_stec_C11_r16,
32504       { "stec-C11-r16", "lpp.stec_C11_r16",
32505         FT_INT32, BASE_DEC, NULL, 0,
32506         "INTEGER_M512_511", HFILL }},
32507     { &hf_lpp_troposphericDelayQualityIndicator_r16,
32508       { "troposphericDelayQualityIndicator-r16", "lpp.troposphericDelayQualityIndicator_r16",
32509         FT_BYTES, BASE_NONE, NULL, 0,
32510         "BIT_STRING_SIZE_6", HFILL }},
32511     { &hf_lpp_gridList_r16,
32512       { "gridList-r16", "lpp.gridList_r16",
32513         FT_UINT32, BASE_DEC, NULL, 0,
32514         NULL, HFILL }},
32515     { &hf_lpp_GridList_r16_item,
32516       { "GridElement-r16", "lpp.GridElement_r16_element",
32517         FT_NONE, BASE_NONE, NULL, 0,
32518         NULL, HFILL }},
32519     { &hf_lpp_tropospericDelayCorrection_r16,
32520       { "tropospericDelayCorrection-r16", "lpp.tropospericDelayCorrection_r16_element",
32521         FT_NONE, BASE_NONE, NULL, 0,
32522         NULL, HFILL }},
32523     { &hf_lpp_stec_ResidualSatList_r16,
32524       { "stec-ResidualSatList-r16", "lpp.stec_ResidualSatList_r16",
32525         FT_UINT32, BASE_DEC, NULL, 0,
32526         NULL, HFILL }},
32527     { &hf_lpp_tropoHydroStaticVerticalDelay_r16,
32528       { "tropoHydroStaticVerticalDelay-r16", "lpp.tropoHydroStaticVerticalDelay_r16",
32529         FT_INT32, BASE_DEC, NULL, 0,
32530         "INTEGER_M256_255", HFILL }},
32531     { &hf_lpp_tropoWetVerticalDelay_r16,
32532       { "tropoWetVerticalDelay-r16", "lpp.tropoWetVerticalDelay_r16",
32533         FT_INT32, BASE_DEC, NULL, 0,
32534         "INTEGER_M128_127", HFILL }},
32535     { &hf_lpp_STEC_ResidualSatList_r16_item,
32536       { "STEC-ResidualSatElement-r16", "lpp.STEC_ResidualSatElement_r16_element",
32537         FT_NONE, BASE_NONE, NULL, 0,
32538         NULL, HFILL }},
32539     { &hf_lpp_stecResidualCorrection_r16,
32540       { "stecResidualCorrection-r16", "lpp.stecResidualCorrection_r16",
32541         FT_UINT32, BASE_DEC, VALS(lpp_T_stecResidualCorrection_r16_vals), 0,
32542         NULL, HFILL }},
32543     { &hf_lpp_b7_r16,
32544       { "b7-r16", "lpp.b7_r16",
32545         FT_INT32, BASE_DEC, NULL, 0,
32546         "INTEGER_M64_63", HFILL }},
32547     { &hf_lpp_b16_r16,
32548       { "b16-r16", "lpp.b16_r16",
32549         FT_INT32, BASE_DEC, NULL, 0,
32550         "INTEGER_M32768_32767", HFILL }},
32551     { &hf_lpp_navic_RefTOWC_r16,
32552       { "navic-RefTOWC-r16", "lpp.navic_RefTOWC_r16",
32553         FT_UINT32, BASE_DEC, NULL, 0,
32554         "INTEGER_0_50400", HFILL }},
32555     { &hf_lpp_navic_CorrectionListAutoNav_r16,
32556       { "navic-CorrectionListAutoNav-r16", "lpp.navic_CorrectionListAutoNav_r16",
32557         FT_UINT32, BASE_DEC, NULL, 0,
32558         NULL, HFILL }},
32559     { &hf_lpp_NavIC_CorrectionListAutoNav_r16_item,
32560       { "NavIC-CorrectionElementAutoNav-r16", "lpp.NavIC_CorrectionElementAutoNav_r16_element",
32561         FT_NONE, BASE_NONE, NULL, 0,
32562         NULL, HFILL }},
32563     { &hf_lpp_navic_Tod_r16,
32564       { "navic-Tod-r16", "lpp.navic_Tod_r16",
32565         FT_UINT32, BASE_DEC, NULL, 0,
32566         "INTEGER_0_65535", HFILL }},
32567     { &hf_lpp_navic_iodec_r16,
32568       { "navic-iodec-r16", "lpp.navic_iodec_r16",
32569         FT_UINT32, BASE_DEC, NULL, 0,
32570         "INTEGER_0_255", HFILL }},
32571     { &hf_lpp_navic_UDRAI_r16,
32572       { "navic-UDRAI-r16", "lpp.navic_UDRAI_r16",
32573         FT_INT32, BASE_DEC, NULL, 0,
32574         "INTEGER_M16_15", HFILL }},
32575     { &hf_lpp_navic_UDRArateI_r16,
32576       { "navic-UDRArateI-r16", "lpp.navic_UDRArateI_r16",
32577         FT_INT32, BASE_DEC, NULL, 0,
32578         "INTEGER_M16_15", HFILL }},
32579     { &hf_lpp_navic_EDC_r16,
32580       { "navic-EDC-r16", "lpp.navic_EDC_r16_element",
32581         FT_NONE, BASE_NONE, NULL, 0,
32582         NULL, HFILL }},
32583     { &hf_lpp_navic_CDC_r16,
32584       { "navic-CDC-r16", "lpp.navic_CDC_r16_element",
32585         FT_NONE, BASE_NONE, NULL, 0,
32586         NULL, HFILL }},
32587     { &hf_lpp_navic_AlphaEDC_r16,
32588       { "navic-AlphaEDC-r16", "lpp.navic_AlphaEDC_r16",
32589         FT_INT32, BASE_DEC, NULL, 0,
32590         "INTEGER_M8192_8191", HFILL }},
32591     { &hf_lpp_navic_BetaEDC_r16,
32592       { "navic-BetaEDC-r16", "lpp.navic_BetaEDC_r16",
32593         FT_INT32, BASE_DEC, NULL, 0,
32594         "INTEGER_M8192_8191", HFILL }},
32595     { &hf_lpp_navic_GammaEDC_r16,
32596       { "navic-GammaEDC-r16", "lpp.navic_GammaEDC_r16",
32597         FT_INT32, BASE_DEC, NULL, 0,
32598         "INTEGER_M16384_16383", HFILL }},
32599     { &hf_lpp_navic_AoIcorrection_r16,
32600       { "navic-AoIcorrection-r16", "lpp.navic_AoIcorrection_r16",
32601         FT_INT32, BASE_DEC, NULL, 0,
32602         "INTEGER_M2048_2047", HFILL }},
32603     { &hf_lpp_navic_AoRAcorrection_r16,
32604       { "navic-AoRAcorrection-r16", "lpp.navic_AoRAcorrection_r16",
32605         FT_INT32, BASE_DEC, NULL, 0,
32606         "INTEGER_M2048_2047", HFILL }},
32607     { &hf_lpp_navic_SemiMajorcorrection_r16,
32608       { "navic-SemiMajorcorrection-r16", "lpp.navic_SemiMajorcorrection_r16",
32609         FT_INT32, BASE_DEC, NULL, 0,
32610         "INTEGER_M2048_2047", HFILL }},
32611     { &hf_lpp_navic_ClockBiasCorrection_r16,
32612       { "navic-ClockBiasCorrection-r16", "lpp.navic_ClockBiasCorrection_r16",
32613         FT_INT32, BASE_DEC, NULL, 0,
32614         "INTEGER_M4096_4095", HFILL }},
32615     { &hf_lpp_navic_ClockDriftCorrection_r16,
32616       { "navic-ClockDriftCorrection-r16", "lpp.navic_ClockDriftCorrection_r16",
32617         FT_INT32, BASE_DEC, NULL, 0,
32618         "INTEGER_M128_127", HFILL }},
32619     { &hf_lpp_regionMasked_r16,
32620       { "regionMasked-r16", "lpp.regionMasked_r16",
32621         FT_UINT32, BASE_DEC, NULL, 0,
32622         "INTEGER_0_1023", HFILL }},
32623     { &hf_lpp_regionIgpList_r16,
32624       { "regionIgpList-r16", "lpp.regionIgpList_r16",
32625         FT_UINT32, BASE_DEC, NULL, 0,
32626         NULL, HFILL }},
32627     { &hf_lpp_RegionIgpList_r16_item,
32628       { "RegionIgpElement-r16", "lpp.RegionIgpElement_r16_element",
32629         FT_NONE, BASE_NONE, NULL, 0,
32630         NULL, HFILL }},
32631     { &hf_lpp_regionID_r16,
32632       { "regionID-r16", "lpp.regionID_r16",
32633         FT_UINT32, BASE_DEC, NULL, 0,
32634         "INTEGER_0_15", HFILL }},
32635     { &hf_lpp_givei1_r16,
32636       { "givei1-r16", "lpp.givei1_r16",
32637         FT_UINT32, BASE_DEC, NULL, 0,
32638         "INTEGER_0_15", HFILL }},
32639     { &hf_lpp_givd1_r16,
32640       { "givd1-r16", "lpp.givd1_r16",
32641         FT_UINT32, BASE_DEC, NULL, 0,
32642         "INTEGER_0_511", HFILL }},
32643     { &hf_lpp_givei2_r16,
32644       { "givei2-r16", "lpp.givei2_r16",
32645         FT_UINT32, BASE_DEC, NULL, 0,
32646         "INTEGER_0_15", HFILL }},
32647     { &hf_lpp_givd2_r16,
32648       { "givd2-r16", "lpp.givd2_r16",
32649         FT_UINT32, BASE_DEC, NULL, 0,
32650         "INTEGER_0_511", HFILL }},
32651     { &hf_lpp_givei3_r16,
32652       { "givei3-r16", "lpp.givei3_r16",
32653         FT_UINT32, BASE_DEC, NULL, 0,
32654         "INTEGER_0_15", HFILL }},
32655     { &hf_lpp_givd3_r16,
32656       { "givd3-r16", "lpp.givd3_r16",
32657         FT_UINT32, BASE_DEC, NULL, 0,
32658         "INTEGER_0_511", HFILL }},
32659     { &hf_lpp_givei4_r16,
32660       { "givei4-r16", "lpp.givei4_r16",
32661         FT_UINT32, BASE_DEC, NULL, 0,
32662         "INTEGER_0_15", HFILL }},
32663     { &hf_lpp_givd4_r16,
32664       { "givd4-r16", "lpp.givd4_r16",
32665         FT_UINT32, BASE_DEC, NULL, 0,
32666         "INTEGER_0_511", HFILL }},
32667     { &hf_lpp_givei5_r16,
32668       { "givei5-r16", "lpp.givei5_r16",
32669         FT_UINT32, BASE_DEC, NULL, 0,
32670         "INTEGER_0_15", HFILL }},
32671     { &hf_lpp_givd5_r16,
32672       { "givd5-r16", "lpp.givd5_r16",
32673         FT_UINT32, BASE_DEC, NULL, 0,
32674         "INTEGER_0_511", HFILL }},
32675     { &hf_lpp_givei6_r16,
32676       { "givei6-r16", "lpp.givei6_r16",
32677         FT_UINT32, BASE_DEC, NULL, 0,
32678         "INTEGER_0_15", HFILL }},
32679     { &hf_lpp_givd6_r16,
32680       { "givd6-r16", "lpp.givd6_r16",
32681         FT_UINT32, BASE_DEC, NULL, 0,
32682         "INTEGER_0_511", HFILL }},
32683     { &hf_lpp_givei7_r16,
32684       { "givei7-r16", "lpp.givei7_r16",
32685         FT_UINT32, BASE_DEC, NULL, 0,
32686         "INTEGER_0_15", HFILL }},
32687     { &hf_lpp_givd7_r16,
32688       { "givd7-r16", "lpp.givd7_r16",
32689         FT_UINT32, BASE_DEC, NULL, 0,
32690         "INTEGER_0_511", HFILL }},
32691     { &hf_lpp_givei8_r16,
32692       { "givei8-r16", "lpp.givei8_r16",
32693         FT_UINT32, BASE_DEC, NULL, 0,
32694         "INTEGER_0_15", HFILL }},
32695     { &hf_lpp_givd8_r16,
32696       { "givd8-r16", "lpp.givd8_r16",
32697         FT_UINT32, BASE_DEC, NULL, 0,
32698         "INTEGER_0_511", HFILL }},
32699     { &hf_lpp_givei9_r16,
32700       { "givei9-r16", "lpp.givei9_r16",
32701         FT_UINT32, BASE_DEC, NULL, 0,
32702         "INTEGER_0_15", HFILL }},
32703     { &hf_lpp_givd9_r16,
32704       { "givd9-r16", "lpp.givd9_r16",
32705         FT_UINT32, BASE_DEC, NULL, 0,
32706         "INTEGER_0_511", HFILL }},
32707     { &hf_lpp_givei10_r16,
32708       { "givei10-r16", "lpp.givei10_r16",
32709         FT_UINT32, BASE_DEC, NULL, 0,
32710         "INTEGER_0_15", HFILL }},
32711     { &hf_lpp_givd10_r16,
32712       { "givd10-r16", "lpp.givd10_r16",
32713         FT_UINT32, BASE_DEC, NULL, 0,
32714         "INTEGER_0_511", HFILL }},
32715     { &hf_lpp_givei11_r16,
32716       { "givei11-r16", "lpp.givei11_r16",
32717         FT_UINT32, BASE_DEC, NULL, 0,
32718         "INTEGER_0_15", HFILL }},
32719     { &hf_lpp_givd11_r16,
32720       { "givd11-r16", "lpp.givd11_r16",
32721         FT_UINT32, BASE_DEC, NULL, 0,
32722         "INTEGER_0_511", HFILL }},
32723     { &hf_lpp_givei12_r16,
32724       { "givei12-r16", "lpp.givei12_r16",
32725         FT_UINT32, BASE_DEC, NULL, 0,
32726         "INTEGER_0_15", HFILL }},
32727     { &hf_lpp_givd12_r16,
32728       { "givd12-r16", "lpp.givd12_r16",
32729         FT_UINT32, BASE_DEC, NULL, 0,
32730         "INTEGER_0_511", HFILL }},
32731     { &hf_lpp_givei13_r16,
32732       { "givei13-r16", "lpp.givei13_r16",
32733         FT_UINT32, BASE_DEC, NULL, 0,
32734         "INTEGER_0_15", HFILL }},
32735     { &hf_lpp_givd13_r16,
32736       { "givd13-r16", "lpp.givd13_r16",
32737         FT_UINT32, BASE_DEC, NULL, 0,
32738         "INTEGER_0_511", HFILL }},
32739     { &hf_lpp_givei14_r16,
32740       { "givei14-r16", "lpp.givei14_r16",
32741         FT_UINT32, BASE_DEC, NULL, 0,
32742         "INTEGER_0_15", HFILL }},
32743     { &hf_lpp_givd14_r16,
32744       { "givd14-r16", "lpp.givd14_r16",
32745         FT_UINT32, BASE_DEC, NULL, 0,
32746         "INTEGER_0_511", HFILL }},
32747     { &hf_lpp_givei15_r16,
32748       { "givei15-r16", "lpp.givei15_r16",
32749         FT_UINT32, BASE_DEC, NULL, 0,
32750         "INTEGER_0_15", HFILL }},
32751     { &hf_lpp_givd15_r16,
32752       { "givd15-r16", "lpp.givd15_r16",
32753         FT_UINT32, BASE_DEC, NULL, 0,
32754         "INTEGER_0_511", HFILL }},
32755     { &hf_lpp_gnss_CommonAssistDataReq,
32756       { "gnss-CommonAssistDataReq", "lpp.gnss_CommonAssistDataReq_element",
32757         FT_NONE, BASE_NONE, NULL, 0,
32758         NULL, HFILL }},
32759     { &hf_lpp_gnss_GenericAssistDataReq,
32760       { "gnss-GenericAssistDataReq", "lpp.gnss_GenericAssistDataReq",
32761         FT_UINT32, BASE_DEC, NULL, 0,
32762         NULL, HFILL }},
32763     { &hf_lpp_gnss_PeriodicAssistDataReq_r15,
32764       { "gnss-PeriodicAssistDataReq-r15", "lpp.gnss_PeriodicAssistDataReq_r15_element",
32765         FT_NONE, BASE_NONE, NULL, 0,
32766         NULL, HFILL }},
32767     { &hf_lpp_gnss_ReferenceTimeReq,
32768       { "gnss-ReferenceTimeReq", "lpp.gnss_ReferenceTimeReq_element",
32769         FT_NONE, BASE_NONE, NULL, 0,
32770         NULL, HFILL }},
32771     { &hf_lpp_gnss_ReferenceLocationReq,
32772       { "gnss-ReferenceLocationReq", "lpp.gnss_ReferenceLocationReq_element",
32773         FT_NONE, BASE_NONE, NULL, 0,
32774         NULL, HFILL }},
32775     { &hf_lpp_gnss_IonosphericModelReq,
32776       { "gnss-IonosphericModelReq", "lpp.gnss_IonosphericModelReq_element",
32777         FT_NONE, BASE_NONE, NULL, 0,
32778         NULL, HFILL }},
32779     { &hf_lpp_gnss_EarthOrientationParametersReq,
32780       { "gnss-EarthOrientationParametersReq", "lpp.gnss_EarthOrientationParametersReq_element",
32781         FT_NONE, BASE_NONE, NULL, 0,
32782         NULL, HFILL }},
32783     { &hf_lpp_gnss_RTK_ReferenceStationInfoReq_r15,
32784       { "gnss-RTK-ReferenceStationInfoReq-r15", "lpp.gnss_RTK_ReferenceStationInfoReq_r15_element",
32785         FT_NONE, BASE_NONE, NULL, 0,
32786         NULL, HFILL }},
32787     { &hf_lpp_gnss_RTK_AuxiliaryStationDataReq_r15,
32788       { "gnss-RTK-AuxiliaryStationDataReq-r15", "lpp.gnss_RTK_AuxiliaryStationDataReq_r15_element",
32789         FT_NONE, BASE_NONE, NULL, 0,
32790         NULL, HFILL }},
32791     { &hf_lpp_gnss_SSR_CorrectionPointsReq_r16,
32792       { "gnss-SSR-CorrectionPointsReq-r16", "lpp.gnss_SSR_CorrectionPointsReq_r16_element",
32793         FT_NONE, BASE_NONE, NULL, 0,
32794         NULL, HFILL }},
32795     { &hf_lpp_GNSS_GenericAssistDataReq_item,
32796       { "GNSS-GenericAssistDataReqElement", "lpp.GNSS_GenericAssistDataReqElement_element",
32797         FT_NONE, BASE_NONE, NULL, 0,
32798         NULL, HFILL }},
32799     { &hf_lpp_gnss_TimeModelsReq,
32800       { "gnss-TimeModelsReq", "lpp.gnss_TimeModelsReq",
32801         FT_UINT32, BASE_DEC, NULL, 0,
32802         "GNSS_TimeModelListReq", HFILL }},
32803     { &hf_lpp_gnss_DifferentialCorrectionsReq,
32804       { "gnss-DifferentialCorrectionsReq", "lpp.gnss_DifferentialCorrectionsReq_element",
32805         FT_NONE, BASE_NONE, NULL, 0,
32806         NULL, HFILL }},
32807     { &hf_lpp_gnss_NavigationModelReq,
32808       { "gnss-NavigationModelReq", "lpp.gnss_NavigationModelReq",
32809         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_NavigationModelReq_vals), 0,
32810         NULL, HFILL }},
32811     { &hf_lpp_gnss_RealTimeIntegrityReq,
32812       { "gnss-RealTimeIntegrityReq", "lpp.gnss_RealTimeIntegrityReq_element",
32813         FT_NONE, BASE_NONE, NULL, 0,
32814         NULL, HFILL }},
32815     { &hf_lpp_gnss_DataBitAssistanceReq,
32816       { "gnss-DataBitAssistanceReq", "lpp.gnss_DataBitAssistanceReq_element",
32817         FT_NONE, BASE_NONE, NULL, 0,
32818         NULL, HFILL }},
32819     { &hf_lpp_gnss_AcquisitionAssistanceReq,
32820       { "gnss-AcquisitionAssistanceReq", "lpp.gnss_AcquisitionAssistanceReq_element",
32821         FT_NONE, BASE_NONE, NULL, 0,
32822         NULL, HFILL }},
32823     { &hf_lpp_gnss_AlmanacReq,
32824       { "gnss-AlmanacReq", "lpp.gnss_AlmanacReq_element",
32825         FT_NONE, BASE_NONE, NULL, 0,
32826         NULL, HFILL }},
32827     { &hf_lpp_gnss_UTCModelReq,
32828       { "gnss-UTCModelReq", "lpp.gnss_UTCModelReq_element",
32829         FT_NONE, BASE_NONE, NULL, 0,
32830         "GNSS_UTC_ModelReq", HFILL }},
32831     { &hf_lpp_gnss_AuxiliaryInformationReq,
32832       { "gnss-AuxiliaryInformationReq", "lpp.gnss_AuxiliaryInformationReq_element",
32833         FT_NONE, BASE_NONE, NULL, 0,
32834         NULL, HFILL }},
32835     { &hf_lpp_bds_DifferentialCorrectionsReq_r12,
32836       { "bds-DifferentialCorrectionsReq-r12", "lpp.bds_DifferentialCorrectionsReq_r12_element",
32837         FT_NONE, BASE_NONE, NULL, 0,
32838         NULL, HFILL }},
32839     { &hf_lpp_bds_GridModelReq_r12,
32840       { "bds-GridModelReq-r12", "lpp.bds_GridModelReq_r12_element",
32841         FT_NONE, BASE_NONE, NULL, 0,
32842         NULL, HFILL }},
32843     { &hf_lpp_gnss_RTK_ObservationsReq_r15,
32844       { "gnss-RTK-ObservationsReq-r15", "lpp.gnss_RTK_ObservationsReq_r15_element",
32845         FT_NONE, BASE_NONE, NULL, 0,
32846         NULL, HFILL }},
32847     { &hf_lpp_glo_RTK_BiasInformationReq_r15,
32848       { "glo-RTK-BiasInformationReq-r15", "lpp.glo_RTK_BiasInformationReq_r15_element",
32849         FT_NONE, BASE_NONE, NULL, 0,
32850         NULL, HFILL }},
32851     { &hf_lpp_gnss_RTK_MAC_CorrectionDifferencesReq_r15,
32852       { "gnss-RTK-MAC-CorrectionDifferencesReq-r15", "lpp.gnss_RTK_MAC_CorrectionDifferencesReq_r15_element",
32853         FT_NONE, BASE_NONE, NULL, 0,
32854         NULL, HFILL }},
32855     { &hf_lpp_gnss_RTK_ResidualsReq_r15,
32856       { "gnss-RTK-ResidualsReq-r15", "lpp.gnss_RTK_ResidualsReq_r15_element",
32857         FT_NONE, BASE_NONE, NULL, 0,
32858         NULL, HFILL }},
32859     { &hf_lpp_gnss_RTK_FKP_GradientsReq_r15,
32860       { "gnss-RTK-FKP-GradientsReq-r15", "lpp.gnss_RTK_FKP_GradientsReq_r15_element",
32861         FT_NONE, BASE_NONE, NULL, 0,
32862         NULL, HFILL }},
32863     { &hf_lpp_gnss_SSR_OrbitCorrectionsReq_r15,
32864       { "gnss-SSR-OrbitCorrectionsReq-r15", "lpp.gnss_SSR_OrbitCorrectionsReq_r15_element",
32865         FT_NONE, BASE_NONE, NULL, 0,
32866         NULL, HFILL }},
32867     { &hf_lpp_gnss_SSR_ClockCorrectionsReq_r15,
32868       { "gnss-SSR-ClockCorrectionsReq-r15", "lpp.gnss_SSR_ClockCorrectionsReq_r15_element",
32869         FT_NONE, BASE_NONE, NULL, 0,
32870         NULL, HFILL }},
32871     { &hf_lpp_gnss_SSR_CodeBiasReq_r15,
32872       { "gnss-SSR-CodeBiasReq-r15", "lpp.gnss_SSR_CodeBiasReq_r15_element",
32873         FT_NONE, BASE_NONE, NULL, 0,
32874         NULL, HFILL }},
32875     { &hf_lpp_gnss_SSR_URA_Req_r16,
32876       { "gnss-SSR-URA-Req-r16", "lpp.gnss_SSR_URA_Req_r16_element",
32877         FT_NONE, BASE_NONE, NULL, 0,
32878         NULL, HFILL }},
32879     { &hf_lpp_gnss_SSR_PhaseBiasReq_r16,
32880       { "gnss-SSR-PhaseBiasReq-r16", "lpp.gnss_SSR_PhaseBiasReq_r16_element",
32881         FT_NONE, BASE_NONE, NULL, 0,
32882         NULL, HFILL }},
32883     { &hf_lpp_gnss_SSR_STEC_CorrectionReq_r16,
32884       { "gnss-SSR-STEC-CorrectionReq-r16", "lpp.gnss_SSR_STEC_CorrectionReq_r16_element",
32885         FT_NONE, BASE_NONE, NULL, 0,
32886         NULL, HFILL }},
32887     { &hf_lpp_gnss_SSR_GriddedCorrectionReq_r16,
32888       { "gnss-SSR-GriddedCorrectionReq-r16", "lpp.gnss_SSR_GriddedCorrectionReq_r16_element",
32889         FT_NONE, BASE_NONE, NULL, 0,
32890         NULL, HFILL }},
32891     { &hf_lpp_navic_DifferentialCorrectionsReq_r16,
32892       { "navic-DifferentialCorrectionsReq-r16", "lpp.navic_DifferentialCorrectionsReq_r16_element",
32893         FT_NONE, BASE_NONE, NULL, 0,
32894         NULL, HFILL }},
32895     { &hf_lpp_navic_GridModelReq_r16,
32896       { "navic-GridModelReq-r16", "lpp.navic_GridModelReq_r16_element",
32897         FT_NONE, BASE_NONE, NULL, 0,
32898         NULL, HFILL }},
32899     { &hf_lpp_gnss_RTK_PeriodicObservationsReq_r15,
32900       { "gnss-RTK-PeriodicObservationsReq-r15", "lpp.gnss_RTK_PeriodicObservationsReq_r15_element",
32901         FT_NONE, BASE_NONE, NULL, 0,
32902         "GNSS_PeriodicControlParam_r15", HFILL }},
32903     { &hf_lpp_glo_RTK_PeriodicBiasInformationReq_r15,
32904       { "glo-RTK-PeriodicBiasInformationReq-r15", "lpp.glo_RTK_PeriodicBiasInformationReq_r15_element",
32905         FT_NONE, BASE_NONE, NULL, 0,
32906         "GNSS_PeriodicControlParam_r15", HFILL }},
32907     { &hf_lpp_gnss_RTK_MAC_PeriodicCorrectionDifferencesReq_r15,
32908       { "gnss-RTK-MAC-PeriodicCorrectionDifferencesReq-r15", "lpp.gnss_RTK_MAC_PeriodicCorrectionDifferencesReq_r15_element",
32909         FT_NONE, BASE_NONE, NULL, 0,
32910         "GNSS_PeriodicControlParam_r15", HFILL }},
32911     { &hf_lpp_gnss_RTK_PeriodicResidualsReq_r15,
32912       { "gnss-RTK-PeriodicResidualsReq-r15", "lpp.gnss_RTK_PeriodicResidualsReq_r15_element",
32913         FT_NONE, BASE_NONE, NULL, 0,
32914         "GNSS_PeriodicControlParam_r15", HFILL }},
32915     { &hf_lpp_gnss_RTK_FKP_PeriodicGradientsReq_r15,
32916       { "gnss-RTK-FKP-PeriodicGradientsReq-r15", "lpp.gnss_RTK_FKP_PeriodicGradientsReq_r15_element",
32917         FT_NONE, BASE_NONE, NULL, 0,
32918         "GNSS_PeriodicControlParam_r15", HFILL }},
32919     { &hf_lpp_gnss_SSR_PeriodicOrbitCorrectionsReq_r15,
32920       { "gnss-SSR-PeriodicOrbitCorrectionsReq-r15", "lpp.gnss_SSR_PeriodicOrbitCorrectionsReq_r15_element",
32921         FT_NONE, BASE_NONE, NULL, 0,
32922         "GNSS_PeriodicControlParam_r15", HFILL }},
32923     { &hf_lpp_gnss_SSR_PeriodicClockCorrectionsReq_r15,
32924       { "gnss-SSR-PeriodicClockCorrectionsReq-r15", "lpp.gnss_SSR_PeriodicClockCorrectionsReq_r15_element",
32925         FT_NONE, BASE_NONE, NULL, 0,
32926         "GNSS_PeriodicControlParam_r15", HFILL }},
32927     { &hf_lpp_gnss_SSR_PeriodicCodeBiasReq_r15,
32928       { "gnss-SSR-PeriodicCodeBiasReq-r15", "lpp.gnss_SSR_PeriodicCodeBiasReq_r15_element",
32929         FT_NONE, BASE_NONE, NULL, 0,
32930         "GNSS_PeriodicControlParam_r15", HFILL }},
32931     { &hf_lpp_gnss_SSR_PeriodicURA_Req_r16,
32932       { "gnss-SSR-PeriodicURA-Req-r16", "lpp.gnss_SSR_PeriodicURA_Req_r16_element",
32933         FT_NONE, BASE_NONE, NULL, 0,
32934         "GNSS_PeriodicControlParam_r15", HFILL }},
32935     { &hf_lpp_gnss_SSR_PeriodicPhaseBiasReq_r16,
32936       { "gnss-SSR-PeriodicPhaseBiasReq-r16", "lpp.gnss_SSR_PeriodicPhaseBiasReq_r16_element",
32937         FT_NONE, BASE_NONE, NULL, 0,
32938         "GNSS_PeriodicControlParam_r15", HFILL }},
32939     { &hf_lpp_gnss_SSR_PeriodicSTEC_CorrectionReq_r16,
32940       { "gnss-SSR-PeriodicSTEC-CorrectionReq-r16", "lpp.gnss_SSR_PeriodicSTEC_CorrectionReq_r16_element",
32941         FT_NONE, BASE_NONE, NULL, 0,
32942         "GNSS_PeriodicControlParam_r15", HFILL }},
32943     { &hf_lpp_gnss_SSR_PeriodicGriddedCorrectionReq_r16,
32944       { "gnss-SSR-PeriodicGriddedCorrectionReq-r16", "lpp.gnss_SSR_PeriodicGriddedCorrectionReq_r16_element",
32945         FT_NONE, BASE_NONE, NULL, 0,
32946         "GNSS_PeriodicControlParam_r15", HFILL }},
32947     { &hf_lpp_gnss_TimeReqPrefList,
32948       { "gnss-TimeReqPrefList", "lpp.gnss_TimeReqPrefList",
32949         FT_UINT32, BASE_DEC, NULL, 0,
32950         "SEQUENCE_SIZE_1_8_OF_GNSS_ID", HFILL }},
32951     { &hf_lpp_gnss_TimeReqPrefList_item,
32952       { "GNSS-ID", "lpp.GNSS_ID_element",
32953         FT_NONE, BASE_NONE, NULL, 0,
32954         NULL, HFILL }},
32955     { &hf_lpp_gps_TOW_assistReq,
32956       { "gps-TOW-assistReq", "lpp.gps_TOW_assistReq",
32957         FT_BOOLEAN, BASE_NONE, NULL, 0,
32958         "BOOLEAN", HFILL }},
32959     { &hf_lpp_notOfLeapSecReq,
32960       { "notOfLeapSecReq", "lpp.notOfLeapSecReq",
32961         FT_BOOLEAN, BASE_NONE, NULL, 0,
32962         "BOOLEAN", HFILL }},
32963     { &hf_lpp_klobucharModelReq,
32964       { "klobucharModelReq", "lpp.klobucharModelReq",
32965         FT_BYTES, BASE_NONE, NULL, 0,
32966         "BIT_STRING_SIZE_2", HFILL }},
32967     { &hf_lpp_neQuickModelReq,
32968       { "neQuickModelReq", "lpp.neQuickModelReq_element",
32969         FT_NONE, BASE_NONE, NULL, 0,
32970         NULL, HFILL }},
32971     { &hf_lpp_klobucharModel2Req_r16,
32972       { "klobucharModel2Req-r16", "lpp.klobucharModel2Req_r16_element",
32973         FT_NONE, BASE_NONE, NULL, 0,
32974         NULL, HFILL }},
32975     { &hf_lpp_antennaDescriptionReq_r15,
32976       { "antennaDescriptionReq-r15", "lpp.antennaDescriptionReq_r15",
32977         FT_BOOLEAN, BASE_NONE, NULL, 0,
32978         "BOOLEAN", HFILL }},
32979     { &hf_lpp_antennaHeightReq_r15,
32980       { "antennaHeightReq-r15", "lpp.antennaHeightReq_r15",
32981         FT_BOOLEAN, BASE_NONE, NULL, 0,
32982         "BOOLEAN", HFILL }},
32983     { &hf_lpp_physicalReferenceStationReq_r15,
32984       { "physicalReferenceStationReq-r15", "lpp.physicalReferenceStationReq_r15",
32985         FT_BOOLEAN, BASE_NONE, NULL, 0,
32986         "BOOLEAN", HFILL }},
32987     { &hf_lpp_stationID_r15,
32988       { "stationID-r15", "lpp.stationID_r15_element",
32989         FT_NONE, BASE_NONE, NULL, 0,
32990         "GNSS_ReferenceStationID_r15", HFILL }},
32991     { &hf_lpp_correctionPointSetID_Req_r16,
32992       { "correctionPointSetID-Req-r16", "lpp.correctionPointSetID_Req_r16",
32993         FT_UINT32, BASE_DEC, NULL, 0,
32994         "INTEGER_0_16383", HFILL }},
32995     { &hf_lpp_GNSS_TimeModelListReq_item,
32996       { "GNSS-TimeModelElementReq", "lpp.GNSS_TimeModelElementReq_element",
32997         FT_NONE, BASE_NONE, NULL, 0,
32998         NULL, HFILL }},
32999     { &hf_lpp_gnss_TO_IDsReq,
33000       { "gnss-TO-IDsReq", "lpp.gnss_TO_IDsReq",
33001         FT_UINT32, BASE_DEC, NULL, 0,
33002         "INTEGER_1_15", HFILL }},
33003     { &hf_lpp_deltaTreq,
33004       { "deltaTreq", "lpp.deltaTreq",
33005         FT_BOOLEAN, BASE_NONE, NULL, 0,
33006         "BOOLEAN", HFILL }},
33007     { &hf_lpp_dgnss_SignalsReq,
33008       { "dgnss-SignalsReq", "lpp.dgnss_SignalsReq_element",
33009         FT_NONE, BASE_NONE, NULL, 0,
33010         "GNSS_SignalIDs", HFILL }},
33011     { &hf_lpp_dgnss_ValidityTimeReq,
33012       { "dgnss-ValidityTimeReq", "lpp.dgnss_ValidityTimeReq",
33013         FT_BOOLEAN, BASE_NONE, NULL, 0,
33014         "BOOLEAN", HFILL }},
33015     { &hf_lpp_storedNavList,
33016       { "storedNavList", "lpp.storedNavList_element",
33017         FT_NONE, BASE_NONE, NULL, 0,
33018         "StoredNavListInfo", HFILL }},
33019     { &hf_lpp_reqNavList,
33020       { "reqNavList", "lpp.reqNavList_element",
33021         FT_NONE, BASE_NONE, NULL, 0,
33022         "ReqNavListInfo", HFILL }},
33023     { &hf_lpp_gnss_WeekOrDay,
33024       { "gnss-WeekOrDay", "lpp.gnss_WeekOrDay",
33025         FT_UINT32, BASE_DEC, NULL, 0,
33026         NULL, HFILL }},
33027     { &hf_lpp_gnss_Toe,
33028       { "gnss-Toe", "lpp.gnss_Toe",
33029         FT_UINT32, BASE_DEC, NULL, 0,
33030         NULL, HFILL }},
33031     { &hf_lpp_t_toeLimit,
33032       { "t-toeLimit", "lpp.t_toeLimit",
33033         FT_UINT32, BASE_DEC, NULL, 0,
33034         "T_t_toeLimit", HFILL }},
33035     { &hf_lpp_satListRelatedDataList,
33036       { "satListRelatedDataList", "lpp.satListRelatedDataList",
33037         FT_UINT32, BASE_DEC, NULL, 0,
33038         NULL, HFILL }},
33039     { &hf_lpp_SatListRelatedDataList_item,
33040       { "SatListRelatedDataElement", "lpp.SatListRelatedDataElement_element",
33041         FT_NONE, BASE_NONE, NULL, 0,
33042         NULL, HFILL }},
33043     { &hf_lpp_clockModelID,
33044       { "clockModelID", "lpp.clockModelID",
33045         FT_UINT32, BASE_DEC, NULL, 0,
33046         "INTEGER_1_8", HFILL }},
33047     { &hf_lpp_orbitModelID,
33048       { "orbitModelID", "lpp.orbitModelID",
33049         FT_UINT32, BASE_DEC, NULL, 0,
33050         "INTEGER_1_8", HFILL }},
33051     { &hf_lpp_svReqList,
33052       { "svReqList", "lpp.svReqList",
33053         FT_BYTES, BASE_NONE, NULL, 0,
33054         "BIT_STRING_SIZE_64", HFILL }},
33055     { &hf_lpp_clockModelID_PrefList,
33056       { "clockModelID-PrefList", "lpp.clockModelID_PrefList",
33057         FT_UINT32, BASE_DEC, NULL, 0,
33058         NULL, HFILL }},
33059     { &hf_lpp_clockModelID_PrefList_item,
33060       { "clockModelID-PrefList item", "lpp.clockModelID_PrefList_item",
33061         FT_UINT32, BASE_DEC, NULL, 0,
33062         "INTEGER_1_8", HFILL }},
33063     { &hf_lpp_orbitModelID_PrefList,
33064       { "orbitModelID-PrefList", "lpp.orbitModelID_PrefList",
33065         FT_UINT32, BASE_DEC, NULL, 0,
33066         NULL, HFILL }},
33067     { &hf_lpp_orbitModelID_PrefList_item,
33068       { "orbitModelID-PrefList item", "lpp.orbitModelID_PrefList_item",
33069         FT_UINT32, BASE_DEC, NULL, 0,
33070         "INTEGER_1_8", HFILL }},
33071     { &hf_lpp_addNavparamReq,
33072       { "addNavparamReq", "lpp.addNavparamReq",
33073         FT_BOOLEAN, BASE_NONE, NULL, 0,
33074         "BOOLEAN", HFILL }},
33075     { &hf_lpp_gnss_TOD_Req,
33076       { "gnss-TOD-Req", "lpp.gnss_TOD_Req",
33077         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
33078         "INTEGER_0_3599", HFILL }},
33079     { &hf_lpp_gnss_TOD_FracReq,
33080       { "gnss-TOD-FracReq", "lpp.gnss_TOD_FracReq",
33081         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
33082         "INTEGER_0_999", HFILL }},
33083     { &hf_lpp_dataBitInterval,
33084       { "dataBitInterval", "lpp.dataBitInterval",
33085         FT_UINT8, BASE_DEC|BASE_EXT_STRING, &lpp_dataBitInterval_vals_ext, 0,
33086         "INTEGER_0_15", HFILL }},
33087     { &hf_lpp_gnss_SignalType_01,
33088       { "gnss-SignalType", "lpp.gnss_SignalType_element",
33089         FT_NONE, BASE_NONE, NULL, 0,
33090         "GNSS_SignalIDs", HFILL }},
33091     { &hf_lpp_gnss_DataBitsReq,
33092       { "gnss-DataBitsReq", "lpp.gnss_DataBitsReq",
33093         FT_UINT32, BASE_DEC, NULL, 0,
33094         "GNSS_DataBitsReqSatList", HFILL }},
33095     { &hf_lpp_GNSS_DataBitsReqSatList_item,
33096       { "GNSS-DataBitsReqSatElement", "lpp.GNSS_DataBitsReqSatElement_element",
33097         FT_NONE, BASE_NONE, NULL, 0,
33098         NULL, HFILL }},
33099     { &hf_lpp_gnss_SignalID_Req,
33100       { "gnss-SignalID-Req", "lpp.gnss_SignalID_Req_element",
33101         FT_NONE, BASE_NONE, NULL, 0,
33102         "GNSS_SignalID", HFILL }},
33103     { &hf_lpp_modelID,
33104       { "modelID", "lpp.modelID",
33105         FT_UINT32, BASE_DEC, NULL, 0,
33106         "INTEGER_1_8", HFILL }},
33107     { &hf_lpp_gnss_RTK_SignalsReq_r15,
33108       { "gnss-RTK-SignalsReq-r15", "lpp.gnss_RTK_SignalsReq_r15_element",
33109         FT_NONE, BASE_NONE, NULL, 0,
33110         "GNSS_SignalIDs", HFILL }},
33111     { &hf_lpp_gnss_RTK_Integer_ms_Req_r15,
33112       { "gnss-RTK-Integer-ms-Req-r15", "lpp.gnss_RTK_Integer_ms_Req_r15",
33113         FT_BOOLEAN, BASE_NONE, NULL, 0,
33114         "BOOLEAN", HFILL }},
33115     { &hf_lpp_gnss_RTK_PhaseRangeRateReq_r15,
33116       { "gnss-RTK-PhaseRangeRateReq-r15", "lpp.gnss_RTK_PhaseRangeRateReq_r15",
33117         FT_BOOLEAN, BASE_NONE, NULL, 0,
33118         "BOOLEAN", HFILL }},
33119     { &hf_lpp_gnss_RTK_CNR_Req_r15,
33120       { "gnss-RTK-CNR-Req-r15", "lpp.gnss_RTK_CNR_Req_r15",
33121         FT_BOOLEAN, BASE_NONE, NULL, 0,
33122         "BOOLEAN", HFILL }},
33123     { &hf_lpp_aux_ReferenceStationList_r15,
33124       { "aux-ReferenceStationList-r15", "lpp.aux_ReferenceStationList_r15",
33125         FT_UINT32, BASE_DEC, NULL, 0,
33126         NULL, HFILL }},
33127     { &hf_lpp_linkCombinations_PrefList_r15,
33128       { "linkCombinations-PrefList-r15", "lpp.linkCombinations_PrefList_r15",
33129         FT_UINT32, BASE_DEC, NULL, 0,
33130         "GNSS_Link_CombinationsList_r15", HFILL }},
33131     { &hf_lpp_AUX_ReferenceStationList_r15_item,
33132       { "AUX-ReferenceStationID-Element-r15", "lpp.AUX_ReferenceStationID_Element_r15_element",
33133         FT_NONE, BASE_NONE, NULL, 0,
33134         NULL, HFILL }},
33135     { &hf_lpp_aux_stationID_r15,
33136       { "aux-stationID-r15", "lpp.aux_stationID_r15_element",
33137         FT_NONE, BASE_NONE, NULL, 0,
33138         "GNSS_ReferenceStationID_r15", HFILL }},
33139     { &hf_lpp_storedNavList_r15,
33140       { "storedNavList-r15", "lpp.storedNavList_r15",
33141         FT_UINT32, BASE_DEC, NULL, 0,
33142         "GNSS_NavListInfo_r15", HFILL }},
33143     { &hf_lpp_signal_and_tracking_mode_ID_Map_r15,
33144       { "signal-and-tracking-mode-ID-Map-r15", "lpp.signal_and_tracking_mode_ID_Map_r15_element",
33145         FT_NONE, BASE_NONE, NULL, 0,
33146         "GNSS_SignalIDs", HFILL }},
33147     { &hf_lpp_signal_and_tracking_mode_ID_Map_r16,
33148       { "signal-and-tracking-mode-ID-Map-r16", "lpp.signal_and_tracking_mode_ID_Map_r16_element",
33149         FT_NONE, BASE_NONE, NULL, 0,
33150         "GNSS_SignalIDs", HFILL }},
33151     { &hf_lpp_storedNavList_r16,
33152       { "storedNavList-r16", "lpp.storedNavList_r16",
33153         FT_UINT32, BASE_DEC, NULL, 0,
33154         "GNSS_NavListInfo_r15", HFILL }},
33155     { &hf_lpp_dgnss_SignalsReq_r16,
33156       { "dgnss-SignalsReq-r16", "lpp.dgnss_SignalsReq_r16_element",
33157         FT_NONE, BASE_NONE, NULL, 0,
33158         "GNSS_SignalIDs", HFILL }},
33159     { &hf_lpp_gnss_SignalMeasurementInformation,
33160       { "gnss-SignalMeasurementInformation", "lpp.gnss_SignalMeasurementInformation_element",
33161         FT_NONE, BASE_NONE, NULL, 0,
33162         NULL, HFILL }},
33163     { &hf_lpp_gnss_LocationInformation,
33164       { "gnss-LocationInformation", "lpp.gnss_LocationInformation_element",
33165         FT_NONE, BASE_NONE, NULL, 0,
33166         NULL, HFILL }},
33167     { &hf_lpp_measurementReferenceTime,
33168       { "measurementReferenceTime", "lpp.measurementReferenceTime_element",
33169         FT_NONE, BASE_NONE, NULL, 0,
33170         NULL, HFILL }},
33171     { &hf_lpp_gnss_MeasurementList,
33172       { "gnss-MeasurementList", "lpp.gnss_MeasurementList",
33173         FT_UINT32, BASE_DEC, NULL, 0,
33174         NULL, HFILL }},
33175     { &hf_lpp_gnss_TOD_msec,
33176       { "gnss-TOD-msec", "lpp.gnss_TOD_msec",
33177         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
33178         "INTEGER_0_3599999", HFILL }},
33179     { &hf_lpp_gnss_TOD_frac,
33180       { "gnss-TOD-frac", "lpp.gnss_TOD_frac",
33181         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt), 0,
33182         "INTEGER_0_3999", HFILL }},
33183     { &hf_lpp_gnss_TOD_unc,
33184       { "gnss-TOD-unc", "lpp.gnss_TOD_unc",
33185         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_referenceTimeUnc_fmt), 0,
33186         "INTEGER_0_127", HFILL }},
33187     { &hf_lpp_networkTime_01,
33188       { "networkTime", "lpp.networkTime",
33189         FT_UINT32, BASE_DEC, VALS(lpp_T_networkTime_vals), 0,
33190         NULL, HFILL }},
33191     { &hf_lpp_eUTRA_01,
33192       { "eUTRA", "lpp.eUTRA_element",
33193         FT_NONE, BASE_NONE, NULL, 0,
33194         "T_eUTRA_01", HFILL }},
33195     { &hf_lpp_cellGlobalId_01,
33196       { "cellGlobalId", "lpp.cellGlobalId_element",
33197         FT_NONE, BASE_NONE, NULL, 0,
33198         "CellGlobalIdEUTRA_AndUTRA", HFILL }},
33199     { &hf_lpp_uTRA_01,
33200       { "uTRA", "lpp.uTRA_element",
33201         FT_NONE, BASE_NONE, NULL, 0,
33202         "T_uTRA_01", HFILL }},
33203     { &hf_lpp_mode_01,
33204       { "mode", "lpp.mode",
33205         FT_UINT32, BASE_DEC, VALS(lpp_T_mode_01_vals), 0,
33206         "T_mode_01", HFILL }},
33207     { &hf_lpp_fdd_01,
33208       { "fdd", "lpp.fdd_element",
33209         FT_NONE, BASE_NONE, NULL, 0,
33210         "T_fdd_01", HFILL }},
33211     { &hf_lpp_tdd_01,
33212       { "tdd", "lpp.tdd_element",
33213         FT_NONE, BASE_NONE, NULL, 0,
33214         "T_tdd_01", HFILL }},
33215     { &hf_lpp_referenceSystemFrameNumber,
33216       { "referenceSystemFrameNumber", "lpp.referenceSystemFrameNumber",
33217         FT_UINT32, BASE_DEC, NULL, 0,
33218         "INTEGER_0_4095", HFILL }},
33219     { &hf_lpp_gSM_01,
33220       { "gSM", "lpp.gSM_element",
33221         FT_NONE, BASE_NONE, NULL, 0,
33222         "T_gSM_01", HFILL }},
33223     { &hf_lpp_cellGlobalId_02,
33224       { "cellGlobalId", "lpp.cellGlobalId_element",
33225         FT_NONE, BASE_NONE, NULL, 0,
33226         "CellGlobalIdGERAN", HFILL }},
33227     { &hf_lpp_referenceFrame,
33228       { "referenceFrame", "lpp.referenceFrame_element",
33229         FT_NONE, BASE_NONE, NULL, 0,
33230         NULL, HFILL }},
33231     { &hf_lpp_referenceFN,
33232       { "referenceFN", "lpp.referenceFN",
33233         FT_UINT32, BASE_DEC, NULL, 0,
33234         "INTEGER_0_65535", HFILL }},
33235     { &hf_lpp_referenceFNMSB,
33236       { "referenceFNMSB", "lpp.referenceFNMSB",
33237         FT_UINT32, BASE_DEC, NULL, 0,
33238         "INTEGER_0_63", HFILL }},
33239     { &hf_lpp_deltaGNSS_TOD,
33240       { "deltaGNSS-TOD", "lpp.deltaGNSS_TOD",
33241         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
33242         "INTEGER_0_127", HFILL }},
33243     { &hf_lpp_nbIoT_r14,
33244       { "nbIoT-r14", "lpp.nbIoT_r14_element",
33245         FT_NONE, BASE_NONE, NULL, 0,
33246         "T_nbIoT_r14", HFILL }},
33247     { &hf_lpp_sfn_r14,
33248       { "sfn-r14", "lpp.sfn_r14",
33249         FT_BYTES, BASE_NONE, NULL, 0,
33250         "BIT_STRING_SIZE_10", HFILL }},
33251     { &hf_lpp_nr_r15_01,
33252       { "nr-r15", "lpp.nr_r15_element",
33253         FT_NONE, BASE_NONE, NULL, 0,
33254         "T_nr_r15_01", HFILL }},
33255     { &hf_lpp_nr_sfn_r15,
33256       { "nr-sfn-r15", "lpp.nr_sfn_r15",
33257         FT_BYTES, BASE_NONE, NULL, 0,
33258         "BIT_STRING_SIZE_10", HFILL }},
33259     { &hf_lpp_GNSS_MeasurementList_item,
33260       { "GNSS-MeasurementForOneGNSS", "lpp.GNSS_MeasurementForOneGNSS_element",
33261         FT_NONE, BASE_NONE, NULL, 0,
33262         NULL, HFILL }},
33263     { &hf_lpp_gnss_SgnMeasList,
33264       { "gnss-SgnMeasList", "lpp.gnss_SgnMeasList",
33265         FT_UINT32, BASE_DEC, NULL, 0,
33266         NULL, HFILL }},
33267     { &hf_lpp_GNSS_SgnMeasList_item,
33268       { "GNSS-SgnMeasElement", "lpp.GNSS_SgnMeasElement_element",
33269         FT_NONE, BASE_NONE, NULL, 0,
33270         NULL, HFILL }},
33271     { &hf_lpp_gnss_CodePhaseAmbiguity,
33272       { "gnss-CodePhaseAmbiguity", "lpp.gnss_CodePhaseAmbiguity",
33273         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
33274         "INTEGER_0_127", HFILL }},
33275     { &hf_lpp_gnss_SatMeasList,
33276       { "gnss-SatMeasList", "lpp.gnss_SatMeasList",
33277         FT_UINT32, BASE_DEC, NULL, 0,
33278         NULL, HFILL }},
33279     { &hf_lpp_GNSS_SatMeasList_item,
33280       { "GNSS-SatMeasElement", "lpp.GNSS_SatMeasElement_element",
33281         FT_NONE, BASE_NONE, NULL, 0,
33282         NULL, HFILL }},
33283     { &hf_lpp_cNo,
33284       { "cNo", "lpp.cNo",
33285         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_dbhz, 0,
33286         "INTEGER_0_63", HFILL }},
33287     { &hf_lpp_mpathDet,
33288       { "mpathDet", "lpp.mpathDet",
33289         FT_UINT32, BASE_DEC, VALS(lpp_T_mpathDet_vals), 0,
33290         NULL, HFILL }},
33291     { &hf_lpp_carrierQualityInd,
33292       { "carrierQualityInd", "lpp.carrierQualityInd",
33293         FT_UINT8, BASE_DEC, VALS(lpp_carrierQualityInd_vals), 0,
33294         "INTEGER_0_3", HFILL }},
33295     { &hf_lpp_codePhase_01,
33296       { "codePhase", "lpp.codePhase",
33297         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_GNSS_SatMeas_codePhase_fmt), 0,
33298         "INTEGER_0_2097151", HFILL }},
33299     { &hf_lpp_integerCodePhase,
33300       { "integerCodePhase", "lpp.integerCodePhase",
33301         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
33302         "INTEGER_0_127", HFILL }},
33303     { &hf_lpp_codePhaseRMSError,
33304       { "codePhaseRMSError", "lpp.codePhaseRMSError",
33305         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_codePhaseRMSError_fmt), 0,
33306         "INTEGER_0_63", HFILL }},
33307     { &hf_lpp_doppler,
33308       { "doppler", "lpp.doppler",
33309         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_doppler_fmt), 0,
33310         "INTEGER_M32768_32767", HFILL }},
33311     { &hf_lpp_adr,
33312       { "adr", "lpp.adr",
33313         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_adr_fmt), 0,
33314         "INTEGER_0_33554431", HFILL }},
33315     { &hf_lpp_adrMSB_r15,
33316       { "adrMSB-r15", "lpp.adrMSB_r15",
33317         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_adrMSB_r15_fmt), 0,
33318         "INTEGER_0_15", HFILL }},
33319     { &hf_lpp_adrSign_r15,
33320       { "adrSign-r15", "lpp.adrSign_r15",
33321         FT_UINT32, BASE_DEC, VALS(lpp_T_adrSign_r15_vals), 0,
33322         NULL, HFILL }},
33323     { &hf_lpp_adrRMSerror_r15,
33324       { "adrRMSerror-r15", "lpp.adrRMSerror_r15",
33325         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_adr_fmt), 0,
33326         "INTEGER_0_127", HFILL }},
33327     { &hf_lpp_delta_codePhase_r15,
33328       { "delta-codePhase-r15", "lpp.delta_codePhase_r15",
33329         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_GNSS_SatMeas_delta_codePhase_r15_fmt), 0,
33330         "INTEGER_0_7", HFILL }},
33331     { &hf_lpp_agnss_List,
33332       { "agnss-List", "lpp.agnss_List_element",
33333         FT_NONE, BASE_NONE, NULL, 0,
33334         "GNSS_ID_Bitmap", HFILL }},
33335     { &hf_lpp_gnss_PositioningInstructions,
33336       { "gnss-PositioningInstructions", "lpp.gnss_PositioningInstructions_element",
33337         FT_NONE, BASE_NONE, NULL, 0,
33338         NULL, HFILL }},
33339     { &hf_lpp_gnss_Methods,
33340       { "gnss-Methods", "lpp.gnss_Methods_element",
33341         FT_NONE, BASE_NONE, NULL, 0,
33342         "GNSS_ID_Bitmap", HFILL }},
33343     { &hf_lpp_fineTimeAssistanceMeasReq,
33344       { "fineTimeAssistanceMeasReq", "lpp.fineTimeAssistanceMeasReq",
33345         FT_BOOLEAN, BASE_NONE, NULL, 0,
33346         "BOOLEAN", HFILL }},
33347     { &hf_lpp_adrMeasReq,
33348       { "adrMeasReq", "lpp.adrMeasReq",
33349         FT_BOOLEAN, BASE_NONE, NULL, 0,
33350         "BOOLEAN", HFILL }},
33351     { &hf_lpp_multiFreqMeasReq,
33352       { "multiFreqMeasReq", "lpp.multiFreqMeasReq",
33353         FT_BOOLEAN, BASE_NONE, NULL, 0,
33354         "BOOLEAN", HFILL }},
33355     { &hf_lpp_ha_GNSS_Req_r15,
33356       { "ha-GNSS-Req-r15", "lpp.ha_GNSS_Req_r15",
33357         FT_UINT32, BASE_DEC, VALS(lpp_T_ha_GNSS_Req_r15_vals), 0,
33358         NULL, HFILL }},
33359     { &hf_lpp_gnss_SupportList,
33360       { "gnss-SupportList", "lpp.gnss_SupportList",
33361         FT_UINT32, BASE_DEC, NULL, 0,
33362         NULL, HFILL }},
33363     { &hf_lpp_assistanceDataSupportList,
33364       { "assistanceDataSupportList", "lpp.assistanceDataSupportList_element",
33365         FT_NONE, BASE_NONE, NULL, 0,
33366         NULL, HFILL }},
33367     { &hf_lpp_periodicalReportingNotSupported_r14,
33368       { "periodicalReportingNotSupported-r14", "lpp.periodicalReportingNotSupported_r14_element",
33369         FT_NONE, BASE_NONE, NULL, 0,
33370         "PositioningModes", HFILL }},
33371     { &hf_lpp_idleStateForMeasurements_r14_01,
33372       { "idleStateForMeasurements-r14", "lpp.idleStateForMeasurements_r14",
33373         FT_UINT32, BASE_DEC, VALS(lpp_T_idleStateForMeasurements_r14_01_vals), 0,
33374         "T_idleStateForMeasurements_r14_01", HFILL }},
33375     { &hf_lpp_periodicAssistanceData_r15_01,
33376       { "periodicAssistanceData-r15", "lpp.periodicAssistanceData_r15",
33377         FT_BYTES, BASE_NONE, NULL, 0,
33378         NULL, HFILL }},
33379     { &hf_lpp_GNSS_SupportList_item,
33380       { "GNSS-SupportElement", "lpp.GNSS_SupportElement_element",
33381         FT_NONE, BASE_NONE, NULL, 0,
33382         NULL, HFILL }},
33383     { &hf_lpp_sbas_IDs,
33384       { "sbas-IDs", "lpp.sbas_IDs_element",
33385         FT_NONE, BASE_NONE, NULL, 0,
33386         NULL, HFILL }},
33387     { &hf_lpp_agnss_Modes,
33388       { "agnss-Modes", "lpp.agnss_Modes_element",
33389         FT_NONE, BASE_NONE, NULL, 0,
33390         "PositioningModes", HFILL }},
33391     { &hf_lpp_gnss_Signals,
33392       { "gnss-Signals", "lpp.gnss_Signals_element",
33393         FT_NONE, BASE_NONE, NULL, 0,
33394         "GNSS_SignalIDs", HFILL }},
33395     { &hf_lpp_fta_MeasSupport,
33396       { "fta-MeasSupport", "lpp.fta_MeasSupport_element",
33397         FT_NONE, BASE_NONE, NULL, 0,
33398         NULL, HFILL }},
33399     { &hf_lpp_cellTime,
33400       { "cellTime", "lpp.cellTime_element",
33401         FT_NONE, BASE_NONE, NULL, 0,
33402         "AccessTypes", HFILL }},
33403     { &hf_lpp_mode_02,
33404       { "mode", "lpp.mode_element",
33405         FT_NONE, BASE_NONE, NULL, 0,
33406         "PositioningModes", HFILL }},
33407     { &hf_lpp_adr_Support,
33408       { "adr-Support", "lpp.adr_Support",
33409         FT_BOOLEAN, BASE_NONE, NULL, 0,
33410         "BOOLEAN", HFILL }},
33411     { &hf_lpp_velocityMeasurementSupport,
33412       { "velocityMeasurementSupport", "lpp.velocityMeasurementSupport",
33413         FT_BOOLEAN, BASE_NONE, NULL, 0,
33414         "BOOLEAN", HFILL }},
33415     { &hf_lpp_adrEnhancementsSupport_r15,
33416       { "adrEnhancementsSupport-r15", "lpp.adrEnhancementsSupport_r15",
33417         FT_UINT32, BASE_DEC, VALS(lpp_T_adrEnhancementsSupport_r15_vals), 0,
33418         "T_adrEnhancementsSupport_r15", HFILL }},
33419     { &hf_lpp_ha_gnss_Modes_r15,
33420       { "ha-gnss-Modes-r15", "lpp.ha_gnss_Modes_r15_element",
33421         FT_NONE, BASE_NONE, NULL, 0,
33422         "PositioningModes", HFILL }},
33423     { &hf_lpp_gnss_CommonAssistanceDataSupport,
33424       { "gnss-CommonAssistanceDataSupport", "lpp.gnss_CommonAssistanceDataSupport_element",
33425         FT_NONE, BASE_NONE, NULL, 0,
33426         NULL, HFILL }},
33427     { &hf_lpp_gnss_GenericAssistanceDataSupport,
33428       { "gnss-GenericAssistanceDataSupport", "lpp.gnss_GenericAssistanceDataSupport",
33429         FT_UINT32, BASE_DEC, NULL, 0,
33430         NULL, HFILL }},
33431     { &hf_lpp_gnss_ReferenceTimeSupport,
33432       { "gnss-ReferenceTimeSupport", "lpp.gnss_ReferenceTimeSupport_element",
33433         FT_NONE, BASE_NONE, NULL, 0,
33434         NULL, HFILL }},
33435     { &hf_lpp_gnss_ReferenceLocationSupport,
33436       { "gnss-ReferenceLocationSupport", "lpp.gnss_ReferenceLocationSupport_element",
33437         FT_NONE, BASE_NONE, NULL, 0,
33438         NULL, HFILL }},
33439     { &hf_lpp_gnss_IonosphericModelSupport,
33440       { "gnss-IonosphericModelSupport", "lpp.gnss_IonosphericModelSupport_element",
33441         FT_NONE, BASE_NONE, NULL, 0,
33442         NULL, HFILL }},
33443     { &hf_lpp_gnss_EarthOrientationParametersSupport,
33444       { "gnss-EarthOrientationParametersSupport", "lpp.gnss_EarthOrientationParametersSupport_element",
33445         FT_NONE, BASE_NONE, NULL, 0,
33446         NULL, HFILL }},
33447     { &hf_lpp_gnss_RTK_ReferenceStationInfoSupport_r15,
33448       { "gnss-RTK-ReferenceStationInfoSupport-r15", "lpp.gnss_RTK_ReferenceStationInfoSupport_r15_element",
33449         FT_NONE, BASE_NONE, NULL, 0,
33450         NULL, HFILL }},
33451     { &hf_lpp_gnss_RTK_AuxiliaryStationDataSupport_r15,
33452       { "gnss-RTK-AuxiliaryStationDataSupport-r15", "lpp.gnss_RTK_AuxiliaryStationDataSupport_r15_element",
33453         FT_NONE, BASE_NONE, NULL, 0,
33454         NULL, HFILL }},
33455     { &hf_lpp_gnss_SystemTime_01,
33456       { "gnss-SystemTime", "lpp.gnss_SystemTime_element",
33457         FT_NONE, BASE_NONE, NULL, 0,
33458         "GNSS_ID_Bitmap", HFILL }},
33459     { &hf_lpp_fta_Support,
33460       { "fta-Support", "lpp.fta_Support_element",
33461         FT_NONE, BASE_NONE, NULL, 0,
33462         "AccessTypes", HFILL }},
33463     { &hf_lpp_ionoModel,
33464       { "ionoModel", "lpp.ionoModel",
33465         FT_BYTES, BASE_NONE, NULL, 0,
33466         NULL, HFILL }},
33467     { &hf_lpp_GNSS_GenericAssistanceDataSupport_item,
33468       { "GNSS-GenericAssistDataSupportElement", "lpp.GNSS_GenericAssistDataSupportElement_element",
33469         FT_NONE, BASE_NONE, NULL, 0,
33470         NULL, HFILL }},
33471     { &hf_lpp_gnss_TimeModelsSupport,
33472       { "gnss-TimeModelsSupport", "lpp.gnss_TimeModelsSupport_element",
33473         FT_NONE, BASE_NONE, NULL, 0,
33474         "GNSS_TimeModelListSupport", HFILL }},
33475     { &hf_lpp_gnss_DifferentialCorrectionsSupport,
33476       { "gnss-DifferentialCorrectionsSupport", "lpp.gnss_DifferentialCorrectionsSupport_element",
33477         FT_NONE, BASE_NONE, NULL, 0,
33478         NULL, HFILL }},
33479     { &hf_lpp_gnss_NavigationModelSupport,
33480       { "gnss-NavigationModelSupport", "lpp.gnss_NavigationModelSupport_element",
33481         FT_NONE, BASE_NONE, NULL, 0,
33482         NULL, HFILL }},
33483     { &hf_lpp_gnss_RealTimeIntegritySupport,
33484       { "gnss-RealTimeIntegritySupport", "lpp.gnss_RealTimeIntegritySupport_element",
33485         FT_NONE, BASE_NONE, NULL, 0,
33486         NULL, HFILL }},
33487     { &hf_lpp_gnss_DataBitAssistanceSupport,
33488       { "gnss-DataBitAssistanceSupport", "lpp.gnss_DataBitAssistanceSupport_element",
33489         FT_NONE, BASE_NONE, NULL, 0,
33490         NULL, HFILL }},
33491     { &hf_lpp_gnss_AcquisitionAssistanceSupport,
33492       { "gnss-AcquisitionAssistanceSupport", "lpp.gnss_AcquisitionAssistanceSupport_element",
33493         FT_NONE, BASE_NONE, NULL, 0,
33494         NULL, HFILL }},
33495     { &hf_lpp_gnss_AlmanacSupport,
33496       { "gnss-AlmanacSupport", "lpp.gnss_AlmanacSupport_element",
33497         FT_NONE, BASE_NONE, NULL, 0,
33498         NULL, HFILL }},
33499     { &hf_lpp_gnss_UTC_ModelSupport,
33500       { "gnss-UTC-ModelSupport", "lpp.gnss_UTC_ModelSupport_element",
33501         FT_NONE, BASE_NONE, NULL, 0,
33502         NULL, HFILL }},
33503     { &hf_lpp_gnss_AuxiliaryInformationSupport,
33504       { "gnss-AuxiliaryInformationSupport", "lpp.gnss_AuxiliaryInformationSupport_element",
33505         FT_NONE, BASE_NONE, NULL, 0,
33506         NULL, HFILL }},
33507     { &hf_lpp_bds_DifferentialCorrectionsSupport_r12,
33508       { "bds-DifferentialCorrectionsSupport-r12", "lpp.bds_DifferentialCorrectionsSupport_r12_element",
33509         FT_NONE, BASE_NONE, NULL, 0,
33510         NULL, HFILL }},
33511     { &hf_lpp_bds_GridModelSupport_r12,
33512       { "bds-GridModelSupport-r12", "lpp.bds_GridModelSupport_r12_element",
33513         FT_NONE, BASE_NONE, NULL, 0,
33514         NULL, HFILL }},
33515     { &hf_lpp_gnss_RTK_ObservationsSupport_r15,
33516       { "gnss-RTK-ObservationsSupport-r15", "lpp.gnss_RTK_ObservationsSupport_r15_element",
33517         FT_NONE, BASE_NONE, NULL, 0,
33518         NULL, HFILL }},
33519     { &hf_lpp_glo_RTK_BiasInformationSupport_r15,
33520       { "glo-RTK-BiasInformationSupport-r15", "lpp.glo_RTK_BiasInformationSupport_r15_element",
33521         FT_NONE, BASE_NONE, NULL, 0,
33522         NULL, HFILL }},
33523     { &hf_lpp_gnss_RTK_MAC_CorrectionDifferencesSupport_r15,
33524       { "gnss-RTK-MAC-CorrectionDifferencesSupport-r15", "lpp.gnss_RTK_MAC_CorrectionDifferencesSupport_r15_element",
33525         FT_NONE, BASE_NONE, NULL, 0,
33526         NULL, HFILL }},
33527     { &hf_lpp_gnss_RTK_ResidualsSupport_r15,
33528       { "gnss-RTK-ResidualsSupport-r15", "lpp.gnss_RTK_ResidualsSupport_r15_element",
33529         FT_NONE, BASE_NONE, NULL, 0,
33530         NULL, HFILL }},
33531     { &hf_lpp_gnss_RTK_FKP_GradientsSupport_r15,
33532       { "gnss-RTK-FKP-GradientsSupport-r15", "lpp.gnss_RTK_FKP_GradientsSupport_r15_element",
33533         FT_NONE, BASE_NONE, NULL, 0,
33534         NULL, HFILL }},
33535     { &hf_lpp_gnss_SSR_OrbitCorrectionsSupport_r15,
33536       { "gnss-SSR-OrbitCorrectionsSupport-r15", "lpp.gnss_SSR_OrbitCorrectionsSupport_r15_element",
33537         FT_NONE, BASE_NONE, NULL, 0,
33538         NULL, HFILL }},
33539     { &hf_lpp_gnss_SSR_ClockCorrectionsSupport_r15,
33540       { "gnss-SSR-ClockCorrectionsSupport-r15", "lpp.gnss_SSR_ClockCorrectionsSupport_r15_element",
33541         FT_NONE, BASE_NONE, NULL, 0,
33542         NULL, HFILL }},
33543     { &hf_lpp_gnss_SSR_CodeBiasSupport_r15,
33544       { "gnss-SSR-CodeBiasSupport-r15", "lpp.gnss_SSR_CodeBiasSupport_r15_element",
33545         FT_NONE, BASE_NONE, NULL, 0,
33546         NULL, HFILL }},
33547     { &hf_lpp_gnss_SSR_URA_Support_r16,
33548       { "gnss-SSR-URA-Support-r16", "lpp.gnss_SSR_URA_Support_r16_element",
33549         FT_NONE, BASE_NONE, NULL, 0,
33550         NULL, HFILL }},
33551     { &hf_lpp_gnss_SSR_PhaseBiasSupport_r16,
33552       { "gnss-SSR-PhaseBiasSupport-r16", "lpp.gnss_SSR_PhaseBiasSupport_r16_element",
33553         FT_NONE, BASE_NONE, NULL, 0,
33554         NULL, HFILL }},
33555     { &hf_lpp_gnss_SSR_STEC_CorrectionSupport_r16,
33556       { "gnss-SSR-STEC-CorrectionSupport-r16", "lpp.gnss_SSR_STEC_CorrectionSupport_r16_element",
33557         FT_NONE, BASE_NONE, NULL, 0,
33558         NULL, HFILL }},
33559     { &hf_lpp_gnss_SSR_GriddedCorrectionSupport_r16,
33560       { "gnss-SSR-GriddedCorrectionSupport-r16", "lpp.gnss_SSR_GriddedCorrectionSupport_r16_element",
33561         FT_NONE, BASE_NONE, NULL, 0,
33562         NULL, HFILL }},
33563     { &hf_lpp_navic_DifferentialCorrectionsSupport_r16,
33564       { "navic-DifferentialCorrectionsSupport-r16", "lpp.navic_DifferentialCorrectionsSupport_r16_element",
33565         FT_NONE, BASE_NONE, NULL, 0,
33566         NULL, HFILL }},
33567     { &hf_lpp_navic_GridModelSupport_r16,
33568       { "navic-GridModelSupport-r16", "lpp.navic_GridModelSupport_r16_element",
33569         FT_NONE, BASE_NONE, NULL, 0,
33570         NULL, HFILL }},
33571     { &hf_lpp_gnssSignalIDs,
33572       { "gnssSignalIDs", "lpp.gnssSignalIDs_element",
33573         FT_NONE, BASE_NONE, NULL, 0,
33574         "GNSS_SignalIDs", HFILL }},
33575     { &hf_lpp_dgnss_ValidityTimeSup,
33576       { "dgnss-ValidityTimeSup", "lpp.dgnss_ValidityTimeSup",
33577         FT_BOOLEAN, BASE_NONE, NULL, 0,
33578         "BOOLEAN", HFILL }},
33579     { &hf_lpp_clockModel,
33580       { "clockModel", "lpp.clockModel",
33581         FT_BYTES, BASE_NONE, NULL, 0,
33582         NULL, HFILL }},
33583     { &hf_lpp_orbitModel,
33584       { "orbitModel", "lpp.orbitModel",
33585         FT_BYTES, BASE_NONE, NULL, 0,
33586         NULL, HFILL }},
33587     { &hf_lpp_confidenceSupport_r10,
33588       { "confidenceSupport-r10", "lpp.confidenceSupport_r10",
33589         FT_UINT32, BASE_DEC, VALS(lpp_T_confidenceSupport_r10_vals), 0,
33590         "T_confidenceSupport_r10", HFILL }},
33591     { &hf_lpp_dopplerUncertaintyExtSupport_r10,
33592       { "dopplerUncertaintyExtSupport-r10", "lpp.dopplerUncertaintyExtSupport_r10",
33593         FT_UINT32, BASE_DEC, VALS(lpp_T_dopplerUncertaintyExtSupport_r10_vals), 0,
33594         "T_dopplerUncertaintyExtSupport_r10", HFILL }},
33595     { &hf_lpp_almanacModel,
33596       { "almanacModel", "lpp.almanacModel",
33597         FT_BYTES, BASE_NONE, NULL, 0,
33598         NULL, HFILL }},
33599     { &hf_lpp_utc_Model,
33600       { "utc-Model", "lpp.utc_Model",
33601         FT_BYTES, BASE_NONE, NULL, 0,
33602         NULL, HFILL }},
33603     { &hf_lpp_gnssSignalIDs_r15,
33604       { "gnssSignalIDs-r15", "lpp.gnssSignalIDs_r15_element",
33605         FT_NONE, BASE_NONE, NULL, 0,
33606         "GNSS_SignalIDs", HFILL }},
33607     { &hf_lpp_link_combinations_support_r15,
33608       { "link-combinations-support-r15", "lpp.link_combinations_support_r15",
33609         FT_UINT32, BASE_DEC, NULL, 0,
33610         "GNSS_Link_CombinationsList_r15", HFILL }},
33611     { &hf_lpp_signal_and_tracking_mode_ID_Sup_r15,
33612       { "signal-and-tracking-mode-ID-Sup-r15", "lpp.signal_and_tracking_mode_ID_Sup_r15_element",
33613         FT_NONE, BASE_NONE, NULL, 0,
33614         "GNSS_SignalIDs", HFILL }},
33615     { &hf_lpp_signal_and_tracking_mode_ID_Sup_r16,
33616       { "signal-and-tracking-mode-ID-Sup-r16", "lpp.signal_and_tracking_mode_ID_Sup_r16_element",
33617         FT_NONE, BASE_NONE, NULL, 0,
33618         "GNSS_SignalIDs", HFILL }},
33619     { &hf_lpp_gnssSignalIDs_r16,
33620       { "gnssSignalIDs-r16", "lpp.gnssSignalIDs_r16_element",
33621         FT_NONE, BASE_NONE, NULL, 0,
33622         "GNSS_SignalIDs", HFILL }},
33623     { &hf_lpp_gnss_SupportListReq,
33624       { "gnss-SupportListReq", "lpp.gnss_SupportListReq",
33625         FT_BOOLEAN, BASE_NONE, NULL, 0,
33626         "BOOLEAN", HFILL }},
33627     { &hf_lpp_assistanceDataSupportListReq,
33628       { "assistanceDataSupportListReq", "lpp.assistanceDataSupportListReq",
33629         FT_BOOLEAN, BASE_NONE, NULL, 0,
33630         "BOOLEAN", HFILL }},
33631     { &hf_lpp_locationVelocityTypesReq,
33632       { "locationVelocityTypesReq", "lpp.locationVelocityTypesReq",
33633         FT_BOOLEAN, BASE_NONE, NULL, 0,
33634         "BOOLEAN", HFILL }},
33635     { &hf_lpp_locationServerErrorCauses_01,
33636       { "locationServerErrorCauses", "lpp.locationServerErrorCauses_element",
33637         FT_NONE, BASE_NONE, NULL, 0,
33638         "GNSS_LocationServerErrorCauses", HFILL }},
33639     { &hf_lpp_targetDeviceErrorCauses_01,
33640       { "targetDeviceErrorCauses", "lpp.targetDeviceErrorCauses_element",
33641         FT_NONE, BASE_NONE, NULL, 0,
33642         "GNSS_TargetDeviceErrorCauses", HFILL }},
33643     { &hf_lpp_cause_02,
33644       { "cause", "lpp.cause",
33645         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_02_vals), 0,
33646         "T_cause_02", HFILL }},
33647     { &hf_lpp_cause_03,
33648       { "cause", "lpp.cause",
33649         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_03_vals), 0,
33650         "T_cause_03", HFILL }},
33651     { &hf_lpp_fineTimeAssistanceMeasurementsNotPossible,
33652       { "fineTimeAssistanceMeasurementsNotPossible", "lpp.fineTimeAssistanceMeasurementsNotPossible_element",
33653         FT_NONE, BASE_NONE, NULL, 0,
33654         NULL, HFILL }},
33655     { &hf_lpp_adrMeasurementsNotPossible,
33656       { "adrMeasurementsNotPossible", "lpp.adrMeasurementsNotPossible_element",
33657         FT_NONE, BASE_NONE, NULL, 0,
33658         NULL, HFILL }},
33659     { &hf_lpp_multiFrequencyMeasurementsNotPossible,
33660       { "multiFrequencyMeasurementsNotPossible", "lpp.multiFrequencyMeasurementsNotPossible_element",
33661         FT_NONE, BASE_NONE, NULL, 0,
33662         NULL, HFILL }},
33663     { &hf_lpp_gnss_FrequencyID_r15,
33664       { "gnss-FrequencyID-r15", "lpp.gnss_FrequencyID_r15",
33665         FT_UINT32, BASE_DEC, NULL, 0,
33666         "INTEGER_0_7", HFILL }},
33667     { &hf_lpp_gnss_id,
33668       { "gnss-id", "lpp.gnss_id",
33669         FT_UINT32, BASE_DEC, VALS(lpp_T_gnss_id_vals), 0,
33670         NULL, HFILL }},
33671     { &hf_lpp_gnss_ids,
33672       { "gnss-ids", "lpp.gnss_ids",
33673         FT_BYTES, BASE_NONE, NULL, 0,
33674         NULL, HFILL }},
33675     { &hf_lpp_GNSS_Link_CombinationsList_r15_item,
33676       { "GNSS-Link-Combinations-r15", "lpp.GNSS_Link_Combinations_r15_element",
33677         FT_NONE, BASE_NONE, NULL, 0,
33678         NULL, HFILL }},
33679     { &hf_lpp_GNSS_NavListInfo_r15_item,
33680       { "SatListElement-r15", "lpp.SatListElement_r15_element",
33681         FT_NONE, BASE_NONE, NULL, 0,
33682         NULL, HFILL }},
33683     { &hf_lpp_networkID_r15_01,
33684       { "networkID-r15", "lpp.networkID_r15",
33685         FT_UINT32, BASE_DEC, NULL, 0,
33686         "INTEGER_0_255", HFILL }},
33687     { &hf_lpp_deliveryAmount_r15,
33688       { "deliveryAmount-r15", "lpp.deliveryAmount_r15",
33689         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_deliveryAmount_r15_fmt), 0,
33690         "INTEGER_1_32", HFILL }},
33691     { &hf_lpp_deliveryInterval_r15,
33692       { "deliveryInterval-r15", "lpp.deliveryInterval_r15",
33693         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
33694         "INTEGER_1_64", HFILL }},
33695     { &hf_lpp_referenceStationID_r15_01,
33696       { "referenceStationID-r15", "lpp.referenceStationID_r15",
33697         FT_UINT32, BASE_DEC, NULL, 0,
33698         "INTEGER_0_65535", HFILL }},
33699     { &hf_lpp_providerName_r15,
33700       { "providerName-r15", "lpp.providerName_r15",
33701         FT_STRING, BASE_NONE, NULL, 0,
33702         "VisibleString_SIZE_1_32", HFILL }},
33703     { &hf_lpp_gnss_SignalID_01,
33704       { "gnss-SignalID", "lpp.gnss_SignalID",
33705         FT_UINT32, BASE_DEC, NULL, 0,
33706         "INTEGER_0_7", HFILL }},
33707     { &hf_lpp_gnss_SignalID_Ext_r15,
33708       { "gnss-SignalID-Ext-r15", "lpp.gnss_SignalID_Ext_r15",
33709         FT_UINT32, BASE_DEC, NULL, 0,
33710         "INTEGER_8_23", HFILL }},
33711     { &hf_lpp_gnss_SignalIDs,
33712       { "gnss-SignalIDs", "lpp.gnss_SignalIDs",
33713         FT_BYTES, BASE_NONE, NULL, 0,
33714         "BIT_STRING_SIZE_8", HFILL }},
33715     { &hf_lpp_gnss_SignalIDs_Ext_r15,
33716       { "gnss-SignalIDs-Ext-r15", "lpp.gnss_SignalIDs_Ext_r15",
33717         FT_BYTES, BASE_NONE, NULL, 0,
33718         "BIT_STRING_SIZE_16", HFILL }},
33719     { &hf_lpp_subNetworkID_r15_01,
33720       { "subNetworkID-r15", "lpp.subNetworkID_r15",
33721         FT_UINT32, BASE_DEC, NULL, 0,
33722         "INTEGER_0_15", HFILL }},
33723     { &hf_lpp_sbas_id,
33724       { "sbas-id", "lpp.sbas_id",
33725         FT_UINT32, BASE_DEC, VALS(lpp_T_sbas_id_vals), 0,
33726         NULL, HFILL }},
33727     { &hf_lpp_sbas_IDs_01,
33728       { "sbas-IDs", "lpp.sbas_IDs",
33729         FT_BYTES, BASE_NONE, NULL, 0,
33730         NULL, HFILL }},
33731     { &hf_lpp_satellite_id,
33732       { "satellite-id", "lpp.satellite_id",
33733         FT_UINT32, BASE_DEC, NULL, 0,
33734         "INTEGER_0_63", HFILL }},
33735     { &hf_lpp_ecid_SignalMeasurementInformation,
33736       { "ecid-SignalMeasurementInformation", "lpp.ecid_SignalMeasurementInformation_element",
33737         FT_NONE, BASE_NONE, NULL, 0,
33738         NULL, HFILL }},
33739     { &hf_lpp_ecid_Error,
33740       { "ecid-Error", "lpp.ecid_Error",
33741         FT_UINT32, BASE_DEC, VALS(lpp_ECID_Error_vals), 0,
33742         NULL, HFILL }},
33743     { &hf_lpp_primaryCellMeasuredResults,
33744       { "primaryCellMeasuredResults", "lpp.primaryCellMeasuredResults_element",
33745         FT_NONE, BASE_NONE, NULL, 0,
33746         "MeasuredResultsElement", HFILL }},
33747     { &hf_lpp_measuredResultsList,
33748       { "measuredResultsList", "lpp.measuredResultsList",
33749         FT_UINT32, BASE_DEC, NULL, 0,
33750         NULL, HFILL }},
33751     { &hf_lpp_MeasuredResultsList_item,
33752       { "MeasuredResultsElement", "lpp.MeasuredResultsElement_element",
33753         FT_NONE, BASE_NONE, NULL, 0,
33754         NULL, HFILL }},
33755     { &hf_lpp_arfcnEUTRA,
33756       { "arfcnEUTRA", "lpp.arfcnEUTRA",
33757         FT_UINT32, BASE_DEC, NULL, 0,
33758         "ARFCN_ValueEUTRA", HFILL }},
33759     { &hf_lpp_rsrp_Result,
33760       { "rsrp-Result", "lpp.rsrp_Result",
33761         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_rsrp_Result_fmt), 0,
33762         "INTEGER_0_97", HFILL }},
33763     { &hf_lpp_rsrq_Result,
33764       { "rsrq-Result", "lpp.rsrq_Result",
33765         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_rsrq_Result_fmt), 0,
33766         "INTEGER_0_34", HFILL }},
33767     { &hf_lpp_ue_RxTxTimeDiff,
33768       { "ue-RxTxTimeDiff", "lpp.ue_RxTxTimeDiff",
33769         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_ue_RxTxTimeDiff_fmt), 0,
33770         "INTEGER_0_4095", HFILL }},
33771     { &hf_lpp_arfcnEUTRA_v9a0,
33772       { "arfcnEUTRA-v9a0", "lpp.arfcnEUTRA_v9a0",
33773         FT_UINT32, BASE_DEC, NULL, 0,
33774         "ARFCN_ValueEUTRA_v9a0", HFILL }},
33775     { &hf_lpp_nrsrp_Result_r14,
33776       { "nrsrp-Result-r14", "lpp.nrsrp_Result_r14",
33777         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_nrsrp_Result_fmt), 0,
33778         "INTEGER_0_113", HFILL }},
33779     { &hf_lpp_nrsrq_Result_r14,
33780       { "nrsrq-Result-r14", "lpp.nrsrq_Result_r14",
33781         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_nrsrq_Result_fmt), 0,
33782         "INTEGER_0_74", HFILL }},
33783     { &hf_lpp_carrierFreqOffsetNB_r14,
33784       { "carrierFreqOffsetNB-r14", "lpp.carrierFreqOffsetNB_r14",
33785         FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
33786         NULL, HFILL }},
33787     { &hf_lpp_rsrp_Result_v1470,
33788       { "rsrp-Result-v1470", "lpp.rsrp_Result_v1470",
33789         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_rsrp_Result_v1470_fmt), 0,
33790         "INTEGER_M17_M1", HFILL }},
33791     { &hf_lpp_rsrq_Result_v1470,
33792       { "rsrq-Result-v1470", "lpp.rsrq_Result_v1470",
33793         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_rsrq_Result_v1470_fmt), 0,
33794         "INTEGER_M30_46", HFILL }},
33795     { &hf_lpp_requestedMeasurements,
33796       { "requestedMeasurements", "lpp.requestedMeasurements",
33797         FT_BYTES, BASE_NONE, NULL, 0,
33798         NULL, HFILL }},
33799     { &hf_lpp_ecid_MeasSupported,
33800       { "ecid-MeasSupported", "lpp.ecid_MeasSupported",
33801         FT_BYTES, BASE_NONE, NULL, 0,
33802         NULL, HFILL }},
33803     { &hf_lpp_ueRxTxSupTDD_r13,
33804       { "ueRxTxSupTDD-r13", "lpp.ueRxTxSupTDD_r13",
33805         FT_UINT32, BASE_DEC, VALS(lpp_T_ueRxTxSupTDD_r13_vals), 0,
33806         NULL, HFILL }},
33807     { &hf_lpp_periodicalReporting_r14_01,
33808       { "periodicalReporting-r14", "lpp.periodicalReporting_r14",
33809         FT_UINT32, BASE_DEC, VALS(lpp_T_periodicalReporting_r14_01_vals), 0,
33810         "T_periodicalReporting_r14_01", HFILL }},
33811     { &hf_lpp_triggeredReporting_r14,
33812       { "triggeredReporting-r14", "lpp.triggeredReporting_r14",
33813         FT_UINT32, BASE_DEC, VALS(lpp_T_triggeredReporting_r14_vals), 0,
33814         NULL, HFILL }},
33815     { &hf_lpp_idleStateForMeasurements_r14_02,
33816       { "idleStateForMeasurements-r14", "lpp.idleStateForMeasurements_r14",
33817         FT_UINT32, BASE_DEC, VALS(lpp_T_idleStateForMeasurements_r14_02_vals), 0,
33818         "T_idleStateForMeasurements_r14_02", HFILL }},
33819     { &hf_lpp_locationServerErrorCauses_02,
33820       { "locationServerErrorCauses", "lpp.locationServerErrorCauses_element",
33821         FT_NONE, BASE_NONE, NULL, 0,
33822         "ECID_LocationServerErrorCauses", HFILL }},
33823     { &hf_lpp_targetDeviceErrorCauses_02,
33824       { "targetDeviceErrorCauses", "lpp.targetDeviceErrorCauses_element",
33825         FT_NONE, BASE_NONE, NULL, 0,
33826         "ECID_TargetDeviceErrorCauses", HFILL }},
33827     { &hf_lpp_cause_04,
33828       { "cause", "lpp.cause",
33829         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_04_vals), 0,
33830         "T_cause_04", HFILL }},
33831     { &hf_lpp_cause_05,
33832       { "cause", "lpp.cause",
33833         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_05_vals), 0,
33834         "T_cause_05", HFILL }},
33835     { &hf_lpp_rsrpMeasurementNotPossible,
33836       { "rsrpMeasurementNotPossible", "lpp.rsrpMeasurementNotPossible_element",
33837         FT_NONE, BASE_NONE, NULL, 0,
33838         NULL, HFILL }},
33839     { &hf_lpp_rsrqMeasurementNotPossible,
33840       { "rsrqMeasurementNotPossible", "lpp.rsrqMeasurementNotPossible_element",
33841         FT_NONE, BASE_NONE, NULL, 0,
33842         NULL, HFILL }},
33843     { &hf_lpp_ueRxTxMeasurementNotPossible,
33844       { "ueRxTxMeasurementNotPossible", "lpp.ueRxTxMeasurementNotPossible_element",
33845         FT_NONE, BASE_NONE, NULL, 0,
33846         NULL, HFILL }},
33847     { &hf_lpp_nrsrpMeasurementNotPossible_r14,
33848       { "nrsrpMeasurementNotPossible-r14", "lpp.nrsrpMeasurementNotPossible_r14_element",
33849         FT_NONE, BASE_NONE, NULL, 0,
33850         NULL, HFILL }},
33851     { &hf_lpp_nrsrqMeasurementNotPossible_r14,
33852       { "nrsrqMeasurementNotPossible-r14", "lpp.nrsrqMeasurementNotPossible_r14_element",
33853         FT_NONE, BASE_NONE, NULL, 0,
33854         NULL, HFILL }},
33855     { &hf_lpp_tbs_MeasurementInformation_r13,
33856       { "tbs-MeasurementInformation-r13", "lpp.tbs_MeasurementInformation_r13_element",
33857         FT_NONE, BASE_NONE, NULL, 0,
33858         NULL, HFILL }},
33859     { &hf_lpp_tbs_Error_r13,
33860       { "tbs-Error-r13", "lpp.tbs_Error_r13",
33861         FT_UINT32, BASE_DEC, VALS(lpp_TBS_Error_r13_vals), 0,
33862         NULL, HFILL }},
33863     { &hf_lpp_measurementReferenceTime_r13,
33864       { "measurementReferenceTime-r13", "lpp.measurementReferenceTime_r13",
33865         FT_STRING, BASE_NONE, NULL, 0,
33866         "UTCTime", HFILL }},
33867     { &hf_lpp_mbs_SgnMeasList_r13,
33868       { "mbs-SgnMeasList-r13", "lpp.mbs_SgnMeasList_r13",
33869         FT_UINT32, BASE_DEC, NULL, 0,
33870         "MBS_BeaconMeasList_r13", HFILL }},
33871     { &hf_lpp_MBS_BeaconMeasList_r13_item,
33872       { "MBS-BeaconMeasElement-r13", "lpp.MBS_BeaconMeasElement_r13_element",
33873         FT_NONE, BASE_NONE, NULL, 0,
33874         NULL, HFILL }},
33875     { &hf_lpp_transmitterID_r13,
33876       { "transmitterID-r13", "lpp.transmitterID_r13",
33877         FT_UINT32, BASE_DEC, NULL, 0,
33878         "INTEGER_0_32767", HFILL }},
33879     { &hf_lpp_codePhase_r13,
33880       { "codePhase-r13", "lpp.codePhase_r13",
33881         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_mbs_beaconMeasElt_codePhase_fmt), 0,
33882         "INTEGER_0_2097151", HFILL }},
33883     { &hf_lpp_codePhaseRMSError_r13,
33884       { "codePhaseRMSError-r13", "lpp.codePhaseRMSError_r13",
33885         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_codePhaseRMSError_fmt), 0,
33886         "INTEGER_0_63", HFILL }},
33887     { &hf_lpp_rssi_r14,
33888       { "rssi-r14", "lpp.rssi_r14",
33889         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
33890         "INTEGER_M130_M30", HFILL }},
33891     { &hf_lpp_mbsSgnMeasListReq_r13,
33892       { "mbsSgnMeasListReq-r13", "lpp.mbsSgnMeasListReq_r13",
33893         FT_BOOLEAN, BASE_NONE, NULL, 0,
33894         "BOOLEAN", HFILL }},
33895     { &hf_lpp_mbsAssistanceAvailability_r14,
33896       { "mbsAssistanceAvailability-r14", "lpp.mbsAssistanceAvailability_r14",
33897         FT_BOOLEAN, BASE_NONE, NULL, 0,
33898         "BOOLEAN", HFILL }},
33899     { &hf_lpp_mbsRequestedMeasurements_r14,
33900       { "mbsRequestedMeasurements-r14", "lpp.mbsRequestedMeasurements_r14",
33901         FT_BYTES, BASE_NONE, NULL, 0,
33902         NULL, HFILL }},
33903     { &hf_lpp_tbs_Modes_r13,
33904       { "tbs-Modes-r13", "lpp.tbs_Modes_r13",
33905         FT_BYTES, BASE_NONE, NULL, 0,
33906         NULL, HFILL }},
33907     { &hf_lpp_mbs_AssistanceDataSupportList_r14,
33908       { "mbs-AssistanceDataSupportList-r14", "lpp.mbs_AssistanceDataSupportList_r14_element",
33909         FT_NONE, BASE_NONE, NULL, 0,
33910         NULL, HFILL }},
33911     { &hf_lpp_periodicalReportingSupported_r14,
33912       { "periodicalReportingSupported-r14", "lpp.periodicalReportingSupported_r14_element",
33913         FT_NONE, BASE_NONE, NULL, 0,
33914         "PositioningModes", HFILL }},
33915     { &hf_lpp_mbs_ConfigSupport_r14,
33916       { "mbs-ConfigSupport-r14", "lpp.mbs_ConfigSupport_r14",
33917         FT_BYTES, BASE_NONE, NULL, 0,
33918         "T_mbs_ConfigSupport_r14", HFILL }},
33919     { &hf_lpp_mbs_IdleStateForMeasurements_r14,
33920       { "mbs-IdleStateForMeasurements-r14", "lpp.mbs_IdleStateForMeasurements_r14",
33921         FT_UINT32, BASE_DEC, VALS(lpp_T_mbs_IdleStateForMeasurements_r14_vals), 0,
33922         NULL, HFILL }},
33923     { &hf_lpp_mbs_AcquisitionAssistanceDataSupport_r14,
33924       { "mbs-AcquisitionAssistanceDataSupport-r14", "lpp.mbs_AcquisitionAssistanceDataSupport_r14",
33925         FT_BOOLEAN, BASE_NONE, NULL, 0,
33926         "BOOLEAN", HFILL }},
33927     { &hf_lpp_mbs_AlmanacAssistanceDataSupport_r14,
33928       { "mbs-AlmanacAssistanceDataSupport-r14", "lpp.mbs_AlmanacAssistanceDataSupport_r14",
33929         FT_BOOLEAN, BASE_NONE, NULL, 0,
33930         "BOOLEAN", HFILL }},
33931     { &hf_lpp_locationServerErrorCauses_r13,
33932       { "locationServerErrorCauses-r13", "lpp.locationServerErrorCauses_r13_element",
33933         FT_NONE, BASE_NONE, NULL, 0,
33934         "TBS_LocationServerErrorCauses_r13", HFILL }},
33935     { &hf_lpp_targetDeviceErrorCauses_r13,
33936       { "targetDeviceErrorCauses-r13", "lpp.targetDeviceErrorCauses_r13_element",
33937         FT_NONE, BASE_NONE, NULL, 0,
33938         "TBS_TargetDeviceErrorCauses_r13", HFILL }},
33939     { &hf_lpp_cause_r13,
33940       { "cause-r13", "lpp.cause_r13",
33941         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_vals), 0,
33942         NULL, HFILL }},
33943     { &hf_lpp_cause_r13_01,
33944       { "cause-r13", "lpp.cause_r13",
33945         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_01_vals), 0,
33946         "T_cause_r13_01", HFILL }},
33947     { &hf_lpp_tbs_AssistanceDataList_r14,
33948       { "tbs-AssistanceDataList-r14", "lpp.tbs_AssistanceDataList_r14_element",
33949         FT_NONE, BASE_NONE, NULL, 0,
33950         NULL, HFILL }},
33951     { &hf_lpp_tbs_Error_r14,
33952       { "tbs-Error-r14", "lpp.tbs_Error_r14",
33953         FT_UINT32, BASE_DEC, VALS(lpp_TBS_Error_r13_vals), 0,
33954         "TBS_Error_r13", HFILL }},
33955     { &hf_lpp_mbs_AssistanceDataList_r14,
33956       { "mbs-AssistanceDataList-r14", "lpp.mbs_AssistanceDataList_r14",
33957         FT_UINT32, BASE_DEC, NULL, 0,
33958         NULL, HFILL }},
33959     { &hf_lpp_MBS_AssistanceDataList_r14_item,
33960       { "MBS-AssistanceDataElement-r14", "lpp.MBS_AssistanceDataElement_r14_element",
33961         FT_NONE, BASE_NONE, NULL, 0,
33962         NULL, HFILL }},
33963     { &hf_lpp_mbs_AlmanacAssistance_r14,
33964       { "mbs-AlmanacAssistance-r14", "lpp.mbs_AlmanacAssistance_r14_element",
33965         FT_NONE, BASE_NONE, NULL, 0,
33966         NULL, HFILL }},
33967     { &hf_lpp_mbs_AcquisitionAssistance_r14,
33968       { "mbs-AcquisitionAssistance-r14", "lpp.mbs_AcquisitionAssistance_r14_element",
33969         FT_NONE, BASE_NONE, NULL, 0,
33970         NULL, HFILL }},
33971     { &hf_lpp_transmitterID_r14,
33972       { "transmitterID-r14", "lpp.transmitterID_r14",
33973         FT_UINT32, BASE_DEC, NULL, 0,
33974         "INTEGER_0_32767", HFILL }},
33975     { &hf_lpp_transmitterLatitude_r14,
33976       { "transmitterLatitude-r14", "lpp.transmitterLatitude_r14",
33977         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_transmitterLatitude_fmt), 0,
33978         NULL, HFILL }},
33979     { &hf_lpp_transmitterLongitude_r14,
33980       { "transmitterLongitude-r14", "lpp.transmitterLongitude_r14",
33981         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_transmitterLongitude_fmt), 0,
33982         NULL, HFILL }},
33983     { &hf_lpp_transmitterAltitude_r14,
33984       { "transmitterAltitude-r14", "lpp.transmitterAltitude_r14",
33985         FT_UINT16, BASE_CUSTOM, CF_FUNC(lpp_transmitterAltitude_fmt), 0,
33986         NULL, HFILL }},
33987     { &hf_lpp_timeCorrection_r14,
33988       { "timeCorrection-r14", "lpp.timeCorrection_r14",
33989         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_nanoseconds, 0,
33990         "INTEGER_0_25", HFILL }},
33991     { &hf_lpp_mbsConfiguration_r14,
33992       { "mbsConfiguration-r14", "lpp.mbsConfiguration_r14",
33993         FT_UINT32, BASE_DEC, VALS(lpp_T_mbsConfiguration_r14_vals), 0,
33994         NULL, HFILL }},
33995     { &hf_lpp_pnCodeIndex_r14,
33996       { "pnCodeIndex-r14", "lpp.pnCodeIndex_r14",
33997         FT_UINT32, BASE_DEC, NULL, 0,
33998         "INTEGER_1_128", HFILL }},
33999     { &hf_lpp_freq_r14,
34000       { "freq-r14", "lpp.freq_r14",
34001         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_hz, 0,
34002         "INTEGER_919750000_927250000", HFILL }},
34003     { &hf_lpp_mbs_AlmanacAssistanceDataReq_r14,
34004       { "mbs-AlmanacAssistanceDataReq-r14", "lpp.mbs_AlmanacAssistanceDataReq_r14",
34005         FT_BOOLEAN, BASE_NONE, NULL, 0,
34006         "BOOLEAN", HFILL }},
34007     { &hf_lpp_mbs_AcquisitionAssistanceDataReq_r14,
34008       { "mbs-AcquisitionAssistanceDataReq-r14", "lpp.mbs_AcquisitionAssistanceDataReq_r14",
34009         FT_BOOLEAN, BASE_NONE, NULL, 0,
34010         "BOOLEAN", HFILL }},
34011     { &hf_lpp_sensor_MeasurementInformation_r13,
34012       { "sensor-MeasurementInformation-r13", "lpp.sensor_MeasurementInformation_r13_element",
34013         FT_NONE, BASE_NONE, NULL, 0,
34014         NULL, HFILL }},
34015     { &hf_lpp_sensor_Error_r13,
34016       { "sensor-Error-r13", "lpp.sensor_Error_r13",
34017         FT_UINT32, BASE_DEC, VALS(lpp_Sensor_Error_r13_vals), 0,
34018         NULL, HFILL }},
34019     { &hf_lpp_sensor_MotionInformation_r15,
34020       { "sensor-MotionInformation-r15", "lpp.sensor_MotionInformation_r15_element",
34021         FT_NONE, BASE_NONE, NULL, 0,
34022         NULL, HFILL }},
34023     { &hf_lpp_uncompensatedBarometricPressure_r13,
34024       { "uncompensatedBarometricPressure-r13", "lpp.uncompensatedBarometricPressure_r13",
34025         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_pa, 0,
34026         "INTEGER_30000_115000", HFILL }},
34027     { &hf_lpp_uncertainty_r14,
34028       { "uncertainty-r14", "lpp.uncertainty_r14_element",
34029         FT_NONE, BASE_NONE, NULL, 0,
34030         NULL, HFILL }},
34031     { &hf_lpp_range_r14,
34032       { "range-r14", "lpp.range_r14",
34033         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_pa, 0,
34034         "INTEGER_0_1000", HFILL }},
34035     { &hf_lpp_confidence_r14,
34036       { "confidence-r14", "lpp.confidence_r14",
34037         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
34038         "INTEGER_1_100", HFILL }},
34039     { &hf_lpp_adjustment_r16,
34040       { "adjustment-r16", "lpp.adjustment_r16",
34041         FT_INT32, BASE_DEC, NULL, 0,
34042         "INTEGER_M5000_5000", HFILL }},
34043     { &hf_lpp_refTime_r15,
34044       { "refTime-r15", "lpp.refTime_r15",
34045         FT_UINT32, BASE_DEC, VALS(lpp_DisplacementTimeStamp_r15_vals), 0,
34046         "DisplacementTimeStamp_r15", HFILL }},
34047     { &hf_lpp_displacementInfoList_r15,
34048       { "displacementInfoList-r15", "lpp.displacementInfoList_r15",
34049         FT_UINT32, BASE_DEC, NULL, 0,
34050         NULL, HFILL }},
34051     { &hf_lpp_DisplacementInfoList_r15_item,
34052       { "DisplacementInfoListElement-r15", "lpp.DisplacementInfoListElement_r15_element",
34053         FT_NONE, BASE_NONE, NULL, 0,
34054         NULL, HFILL }},
34055     { &hf_lpp_deltaTimeStamp_r15,
34056       { "deltaTimeStamp-r15", "lpp.deltaTimeStamp_r15",
34057         FT_UINT32, BASE_DEC, VALS(lpp_DeltaTime_r15_vals), 0,
34058         "DeltaTime_r15", HFILL }},
34059     { &hf_lpp_displacement_r15,
34060       { "displacement-r15", "lpp.displacement_r15_element",
34061         FT_NONE, BASE_NONE, NULL, 0,
34062         NULL, HFILL }},
34063     { &hf_lpp_utcTime_r15,
34064       { "utcTime-r15", "lpp.utcTime_r15_element",
34065         FT_NONE, BASE_NONE, NULL, 0,
34066         "UTC_Time_r15", HFILL }},
34067     { &hf_lpp_gnssTime_r15,
34068       { "gnssTime-r15", "lpp.gnssTime_r15_element",
34069         FT_NONE, BASE_NONE, NULL, 0,
34070         "MeasurementReferenceTime", HFILL }},
34071     { &hf_lpp_systemFrameNumber_r15,
34072       { "systemFrameNumber-r15", "lpp.systemFrameNumber_r15_element",
34073         FT_NONE, BASE_NONE, NULL, 0,
34074         "SFN_r15", HFILL }},
34075     { &hf_lpp_measurementSFN_r15,
34076       { "measurementSFN-r15", "lpp.measurementSFN_r15",
34077         FT_INT32, BASE_DEC, NULL, 0,
34078         "INTEGER_M8192_9214", HFILL }},
34079     { &hf_lpp_deltaTimeSec_r15,
34080       { "deltaTimeSec-r15", "lpp.deltaTimeSec_r15",
34081         FT_UINT32, BASE_DEC, NULL, 0,
34082         "INTEGER_1_16384", HFILL }},
34083     { &hf_lpp_deltaTimeSFN_r15,
34084       { "deltaTimeSFN-r15", "lpp.deltaTimeSFN_r15",
34085         FT_UINT32, BASE_DEC, NULL, 0,
34086         "INTEGER_1_4096", HFILL }},
34087     { &hf_lpp_sfn_r15,
34088       { "sfn-r15", "lpp.sfn_r15",
34089         FT_BYTES, BASE_NONE, NULL, 0,
34090         "BIT_STRING_SIZE_10", HFILL }},
34091     { &hf_lpp_hyperSFN_r15,
34092       { "hyperSFN-r15", "lpp.hyperSFN_r15",
34093         FT_BYTES, BASE_NONE, NULL, 0,
34094         "BIT_STRING_SIZE_10", HFILL }},
34095     { &hf_lpp_bearing_r15,
34096       { "bearing-r15", "lpp.bearing_r15",
34097         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_10_degrees_fmt), 0,
34098         "INTEGER_0_3599", HFILL }},
34099     { &hf_lpp_bearingUncConfidence_r15,
34100       { "bearingUncConfidence-r15", "lpp.bearingUncConfidence_r15",
34101         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
34102         "INTEGER_0_100", HFILL }},
34103     { &hf_lpp_bearingRef_r15,
34104       { "bearingRef-r15", "lpp.bearingRef_r15",
34105         FT_UINT32, BASE_DEC, VALS(lpp_T_bearingRef_r15_vals), 0,
34106         NULL, HFILL }},
34107     { &hf_lpp_horizontalDistance_r15,
34108       { "horizontalDistance-r15", "lpp.horizontalDistance_r15",
34109         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_100_m_fmt), 0,
34110         "INTEGER_0_8191", HFILL }},
34111     { &hf_lpp_horizontalDistanceUnc_r15,
34112       { "horizontalDistanceUnc-r15", "lpp.horizontalDistanceUnc_r15",
34113         FT_UINT32, BASE_DEC, NULL, 0,
34114         "INTEGER_0_255", HFILL }},
34115     { &hf_lpp_horizontalUncConfidence_r15,
34116       { "horizontalUncConfidence-r15", "lpp.horizontalUncConfidence_r15",
34117         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
34118         "INTEGER_0_100", HFILL }},
34119     { &hf_lpp_verticalDirection_r15,
34120       { "verticalDirection-r15", "lpp.verticalDirection_r15",
34121         FT_UINT32, BASE_DEC, VALS(lpp_T_verticalDirection_r15_vals), 0,
34122         NULL, HFILL }},
34123     { &hf_lpp_verticalDistance_r15,
34124       { "verticalDistance-r15", "lpp.verticalDistance_r15",
34125         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_1_100_m_fmt), 0,
34126         "INTEGER_0_8191", HFILL }},
34127     { &hf_lpp_verticalDistanceUnc_r15,
34128       { "verticalDistanceUnc-r15", "lpp.verticalDistanceUnc_r15",
34129         FT_UINT32, BASE_DEC, NULL, 0,
34130         "INTEGER_0_255", HFILL }},
34131     { &hf_lpp_verticalUncConfidence_r15,
34132       { "verticalUncConfidence-r15", "lpp.verticalUncConfidence_r15",
34133         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_confidence_fmt), 0,
34134         "INTEGER_0_100", HFILL }},
34135     { &hf_lpp_utcTime_r15_01,
34136       { "utcTime-r15", "lpp.utcTime_r15",
34137         FT_STRING, BASE_NONE, NULL, 0,
34138         "UTCTime", HFILL }},
34139     { &hf_lpp_utcTime_ms_r15,
34140       { "utcTime-ms-r15", "lpp.utcTime_ms_r15",
34141         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
34142         "INTEGER_0_999", HFILL }},
34143     { &hf_lpp_uncompensatedBarometricPressureReq_r13,
34144       { "uncompensatedBarometricPressureReq-r13", "lpp.uncompensatedBarometricPressureReq_r13",
34145         FT_BOOLEAN, BASE_NONE, NULL, 0,
34146         "BOOLEAN", HFILL }},
34147     { &hf_lpp_assistanceAvailability_r14,
34148       { "assistanceAvailability-r14", "lpp.assistanceAvailability_r14",
34149         FT_BOOLEAN, BASE_NONE, NULL, 0,
34150         "BOOLEAN", HFILL }},
34151     { &hf_lpp_sensor_MotionInformationReq_r15,
34152       { "sensor-MotionInformationReq-r15", "lpp.sensor_MotionInformationReq_r15",
34153         FT_BOOLEAN, BASE_NONE, NULL, 0,
34154         "BOOLEAN", HFILL }},
34155     { &hf_lpp_adjustmentReq_r16,
34156       { "adjustmentReq-r16", "lpp.adjustmentReq_r16",
34157         FT_BOOLEAN, BASE_NONE, NULL, 0,
34158         "BOOLEAN", HFILL }},
34159     { &hf_lpp_sensor_Modes_r13,
34160       { "sensor-Modes-r13", "lpp.sensor_Modes_r13",
34161         FT_BYTES, BASE_NONE, NULL, 0,
34162         NULL, HFILL }},
34163     { &hf_lpp_sensor_AssistanceDataSupportList_r14,
34164       { "sensor-AssistanceDataSupportList-r14", "lpp.sensor_AssistanceDataSupportList_r14_element",
34165         FT_NONE, BASE_NONE, NULL, 0,
34166         NULL, HFILL }},
34167     { &hf_lpp_idleStateForMeasurements_r14_03,
34168       { "idleStateForMeasurements-r14", "lpp.idleStateForMeasurements_r14",
34169         FT_UINT32, BASE_DEC, VALS(lpp_T_idleStateForMeasurements_r14_03_vals), 0,
34170         "T_idleStateForMeasurements_r14_03", HFILL }},
34171     { &hf_lpp_sensor_MotionInformationSup_r15,
34172       { "sensor-MotionInformationSup-r15", "lpp.sensor_MotionInformationSup_r15",
34173         FT_UINT32, BASE_DEC, VALS(lpp_T_sensor_MotionInformationSup_r15_vals), 0,
34174         NULL, HFILL }},
34175     { &hf_lpp_adjustmentSupported_r16,
34176       { "adjustmentSupported-r16", "lpp.adjustmentSupported_r16",
34177         FT_UINT32, BASE_DEC, VALS(lpp_T_adjustmentSupported_r16_vals), 0,
34178         NULL, HFILL }},
34179     { &hf_lpp_validityPeriodSupported_v1520,
34180       { "validityPeriodSupported-v1520", "lpp.validityPeriodSupported_v1520",
34181         FT_UINT32, BASE_DEC, VALS(lpp_T_validityPeriodSupported_v1520_vals), 0,
34182         NULL, HFILL }},
34183     { &hf_lpp_validityAreaSupported_v1520,
34184       { "validityAreaSupported-v1520", "lpp.validityAreaSupported_v1520",
34185         FT_UINT32, BASE_DEC, VALS(lpp_T_validityAreaSupported_v1520_vals), 0,
34186         NULL, HFILL }},
34187     { &hf_lpp_locationServerErrorCauses_r13_01,
34188       { "locationServerErrorCauses-r13", "lpp.locationServerErrorCauses_r13_element",
34189         FT_NONE, BASE_NONE, NULL, 0,
34190         "Sensor_LocationServerErrorCauses_r13", HFILL }},
34191     { &hf_lpp_targetDeviceErrorCauses_r13_01,
34192       { "targetDeviceErrorCauses-r13", "lpp.targetDeviceErrorCauses_r13_element",
34193         FT_NONE, BASE_NONE, NULL, 0,
34194         "Sensor_TargetDeviceErrorCauses_r13", HFILL }},
34195     { &hf_lpp_cause_r13_02,
34196       { "cause-r13", "lpp.cause_r13",
34197         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_02_vals), 0,
34198         "T_cause_r13_02", HFILL }},
34199     { &hf_lpp_cause_r13_03,
34200       { "cause-r13", "lpp.cause_r13",
34201         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_03_vals), 0,
34202         "T_cause_r13_03", HFILL }},
34203     { &hf_lpp_sensor_AssistanceDataList_r14,
34204       { "sensor-AssistanceDataList-r14", "lpp.sensor_AssistanceDataList_r14_element",
34205         FT_NONE, BASE_NONE, NULL, 0,
34206         NULL, HFILL }},
34207     { &hf_lpp_sensor_Error_r14,
34208       { "sensor-Error-r14", "lpp.sensor_Error_r14",
34209         FT_UINT32, BASE_DEC, VALS(lpp_Sensor_Error_r13_vals), 0,
34210         "Sensor_Error_r13", HFILL }},
34211     { &hf_lpp_refPressure_r14,
34212       { "refPressure-r14", "lpp.refPressure_r14",
34213         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_refPressure_fmt), 0,
34214         "INTEGER_M20000_10000", HFILL }},
34215     { &hf_lpp_refPosition_r14,
34216       { "refPosition-r14", "lpp.refPosition_r14_element",
34217         FT_NONE, BASE_NONE, NULL, 0,
34218         "EllipsoidPointWithAltitudeAndUncertaintyEllipsoid", HFILL }},
34219     { &hf_lpp_refTemperature_r14,
34220       { "refTemperature-r14", "lpp.refTemperature_r14",
34221         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_refTemperature_fmt), 0,
34222         "INTEGER_M64_63", HFILL }},
34223     { &hf_lpp_period_v1520,
34224       { "period-v1520", "lpp.period_v1520_element",
34225         FT_NONE, BASE_NONE, NULL, 0,
34226         NULL, HFILL }},
34227     { &hf_lpp_pressureValidityPeriod_v1520,
34228       { "pressureValidityPeriod-v1520", "lpp.pressureValidityPeriod_v1520_element",
34229         FT_NONE, BASE_NONE, NULL, 0,
34230         NULL, HFILL }},
34231     { &hf_lpp_referencePressureRate_v1520,
34232       { "referencePressureRate-v1520", "lpp.referencePressureRate_v1520",
34233         FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_referencePressureRate_v1520_fmt), 0,
34234         "INTEGER_M128_127", HFILL }},
34235     { &hf_lpp_area_v1520,
34236       { "area-v1520", "lpp.area_v1520_element",
34237         FT_NONE, BASE_NONE, NULL, 0,
34238         NULL, HFILL }},
34239     { &hf_lpp_pressureValidityArea_v1520,
34240       { "pressureValidityArea-v1520", "lpp.pressureValidityArea_v1520_element",
34241         FT_NONE, BASE_NONE, NULL, 0,
34242         NULL, HFILL }},
34243     { &hf_lpp_gN_pressure_v1520,
34244       { "gN-pressure-v1520", "lpp.gN_pressure_v1520",
34245         FT_INT32, BASE_DEC, NULL, 0,
34246         NULL, HFILL }},
34247     { &hf_lpp_gE_pressure_v1520,
34248       { "gE-pressure-v1520", "lpp.gE_pressure_v1520",
34249         FT_INT32, BASE_DEC, NULL, 0,
34250         NULL, HFILL }},
34251     { &hf_lpp_centerPoint_v1520,
34252       { "centerPoint-v1520", "lpp.centerPoint_v1520_element",
34253         FT_NONE, BASE_NONE, NULL, 0,
34254         "Ellipsoid_Point", HFILL }},
34255     { &hf_lpp_validityAreaWidth_v1520,
34256       { "validityAreaWidth-v1520", "lpp.validityAreaWidth_v1520",
34257         FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_km, 0,
34258         "INTEGER_1_128", HFILL }},
34259     { &hf_lpp_validityAreaHeight_v1520,
34260       { "validityAreaHeight-v1520", "lpp.validityAreaHeight_v1520",
34261         FT_UINT32, BASE_DEC, NULL, 0,
34262         "INTEGER_1_128", HFILL }},
34263     { &hf_lpp_beginTime_v1520,
34264       { "beginTime-v1520", "lpp.beginTime_v1520_element",
34265         FT_NONE, BASE_NONE, NULL, 0,
34266         "GNSS_SystemTime", HFILL }},
34267     { &hf_lpp_beginTimeAlt_v1520,
34268       { "beginTimeAlt-v1520", "lpp.beginTimeAlt_v1520",
34269         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt), 0,
34270         "INTEGER_0_2881", HFILL }},
34271     { &hf_lpp_duration_v1520,
34272       { "duration-v1520", "lpp.duration_v1520",
34273         FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt), 0,
34274         "INTEGER_1_2881", HFILL }},
34275     { &hf_lpp_wlan_MeasurementInformation_r13,
34276       { "wlan-MeasurementInformation-r13", "lpp.wlan_MeasurementInformation_r13_element",
34277         FT_NONE, BASE_NONE, NULL, 0,
34278         NULL, HFILL }},
34279     { &hf_lpp_wlan_Error_r13,
34280       { "wlan-Error-r13", "lpp.wlan_Error_r13",
34281         FT_UINT32, BASE_DEC, VALS(lpp_WLAN_Error_r13_vals), 0,
34282         NULL, HFILL }},
34283     { &hf_lpp_wlan_MeasurementList_r13,
34284       { "wlan-MeasurementList-r13", "lpp.wlan_MeasurementList_r13",
34285         FT_UINT32, BASE_DEC, NULL, 0,
34286         NULL, HFILL }},
34287     { &hf_lpp_WLAN_MeasurementList_r13_item,
34288       { "WLAN-MeasurementElement-r13", "lpp.WLAN_MeasurementElement_r13_element",
34289         FT_NONE, BASE_NONE, NULL, 0,
34290         NULL, HFILL }},
34291     { &hf_lpp_wlan_AP_Identifier_r13,
34292       { "wlan-AP-Identifier-r13", "lpp.wlan_AP_Identifier_r13_element",
34293         FT_NONE, BASE_NONE, NULL, 0,
34294         NULL, HFILL }},
34295     { &hf_lpp_rssi_r13,
34296       { "rssi-r13", "lpp.rssi_r13",
34297         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
34298         "INTEGER_M127_128", HFILL }},
34299     { &hf_lpp_rtt_r13,
34300       { "rtt-r13", "lpp.rtt_r13_element",
34301         FT_NONE, BASE_NONE, NULL, 0,
34302         "WLAN_RTT_r13", HFILL }},
34303     { &hf_lpp_apChannelFrequency_r13,
34304       { "apChannelFrequency-r13", "lpp.apChannelFrequency_r13",
34305         FT_UINT32, BASE_DEC, NULL, 0,
34306         "INTEGER_0_256", HFILL }},
34307     { &hf_lpp_servingFlag_r13,
34308       { "servingFlag-r13", "lpp.servingFlag_r13",
34309         FT_BOOLEAN, BASE_NONE, NULL, 0,
34310         "BOOLEAN", HFILL }},
34311     { &hf_lpp_bssid_r13,
34312       { "bssid-r13", "lpp.bssid_r13",
34313         FT_ETHER, BASE_NONE, NULL, 0,
34314         "OCTET_STRING_SIZE_6", HFILL }},
34315     { &hf_lpp_ssid_r13,
34316       { "ssid-r13", "lpp.ssid_r13",
34317         FT_STRING, STR_ASCII, NULL, 0,
34318         NULL, HFILL }},
34319     { &hf_lpp_rttValue_r13,
34320       { "rttValue-r13", "lpp.rttValue_r13",
34321         FT_UINT32, BASE_DEC, NULL, 0,
34322         "INTEGER_0_16777215", HFILL }},
34323     { &hf_lpp_rttUnits_r13,
34324       { "rttUnits-r13", "lpp.rttUnits_r13",
34325         FT_UINT32, BASE_DEC, VALS(lpp_T_rttUnits_r13_vals), 0,
34326         NULL, HFILL }},
34327     { &hf_lpp_rttAccuracy_r13,
34328       { "rttAccuracy-r13", "lpp.rttAccuracy_r13",
34329         FT_UINT32, BASE_DEC, NULL, 0,
34330         "INTEGER_0_255", HFILL }},
34331     { &hf_lpp_requestedMeasurements_r13,
34332       { "requestedMeasurements-r13", "lpp.requestedMeasurements_r13",
34333         FT_BYTES, BASE_NONE, NULL, 0,
34334         NULL, HFILL }},
34335     { &hf_lpp_wlan_Modes_r13,
34336       { "wlan-Modes-r13", "lpp.wlan_Modes_r13",
34337         FT_BYTES, BASE_NONE, NULL, 0,
34338         NULL, HFILL }},
34339     { &hf_lpp_wlan_MeasSupported_r13,
34340       { "wlan-MeasSupported-r13", "lpp.wlan_MeasSupported_r13",
34341         FT_BYTES, BASE_NONE, NULL, 0,
34342         NULL, HFILL }},
34343     { &hf_lpp_wlan_AP_AD_Supported_r14,
34344       { "wlan-AP-AD-Supported-r14", "lpp.wlan_AP_AD_Supported_r14",
34345         FT_BYTES, BASE_NONE, NULL, 0,
34346         NULL, HFILL }},
34347     { &hf_lpp_idleStateForMeasurements_r14_04,
34348       { "idleStateForMeasurements-r14", "lpp.idleStateForMeasurements_r14",
34349         FT_UINT32, BASE_DEC, VALS(lpp_T_idleStateForMeasurements_r14_04_vals), 0,
34350         "T_idleStateForMeasurements_r14_04", HFILL }},
34351     { &hf_lpp_locationServerErrorCauses_r13_02,
34352       { "locationServerErrorCauses-r13", "lpp.locationServerErrorCauses_r13_element",
34353         FT_NONE, BASE_NONE, NULL, 0,
34354         "WLAN_LocationServerErrorCauses_r13", HFILL }},
34355     { &hf_lpp_targetDeviceErrorCauses_r13_02,
34356       { "targetDeviceErrorCauses-r13", "lpp.targetDeviceErrorCauses_r13_element",
34357         FT_NONE, BASE_NONE, NULL, 0,
34358         "WLAN_TargetDeviceErrorCauses_r13", HFILL }},
34359     { &hf_lpp_cause_r13_04,
34360       { "cause-r13", "lpp.cause_r13",
34361         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_04_vals), 0,
34362         "T_cause_r13_04", HFILL }},
34363     { &hf_lpp_apLocationDataUnavailable_r14,
34364       { "apLocationDataUnavailable-r14", "lpp.apLocationDataUnavailable_r14_element",
34365         FT_NONE, BASE_NONE, NULL, 0,
34366         NULL, HFILL }},
34367     { &hf_lpp_cause_r13_05,
34368       { "cause-r13", "lpp.cause_r13",
34369         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_05_vals), 0,
34370         "T_cause_r13_05", HFILL }},
34371     { &hf_lpp_wlan_AP_RSSI_MeasurementNotPossible_r13,
34372       { "wlan-AP-RSSI-MeasurementNotPossible-r13", "lpp.wlan_AP_RSSI_MeasurementNotPossible_r13_element",
34373         FT_NONE, BASE_NONE, NULL, 0,
34374         NULL, HFILL }},
34375     { &hf_lpp_wlan_AP_RTT_MeasurementNotPossible_r13,
34376       { "wlan-AP-RTT-MeasurementNotPossible-r13", "lpp.wlan_AP_RTT_MeasurementNotPossible_r13_element",
34377         FT_NONE, BASE_NONE, NULL, 0,
34378         NULL, HFILL }},
34379     { &hf_lpp_wlan_DataSet_r14,
34380       { "wlan-DataSet-r14", "lpp.wlan_DataSet_r14",
34381         FT_UINT32, BASE_DEC, NULL, 0,
34382         "SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14", HFILL }},
34383     { &hf_lpp_wlan_DataSet_r14_item,
34384       { "WLAN-DataSet-r14", "lpp.WLAN_DataSet_r14_element",
34385         FT_NONE, BASE_NONE, NULL, 0,
34386         NULL, HFILL }},
34387     { &hf_lpp_wlan_Error_r14,
34388       { "wlan-Error-r14", "lpp.wlan_Error_r14",
34389         FT_UINT32, BASE_DEC, VALS(lpp_WLAN_Error_r13_vals), 0,
34390         "WLAN_Error_r13", HFILL }},
34391     { &hf_lpp_wlan_AP_List_r14,
34392       { "wlan-AP-List-r14", "lpp.wlan_AP_List_r14",
34393         FT_UINT32, BASE_DEC, NULL, 0,
34394         "SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14", HFILL }},
34395     { &hf_lpp_wlan_AP_List_r14_item,
34396       { "WLAN-AP-Data-r14", "lpp.WLAN_AP_Data_r14_element",
34397         FT_NONE, BASE_NONE, NULL, 0,
34398         NULL, HFILL }},
34399     { &hf_lpp_supportedChannels_11a_r14,
34400       { "supportedChannels-11a-r14", "lpp.supportedChannels_11a_r14_element",
34401         FT_NONE, BASE_NONE, NULL, 0,
34402         NULL, HFILL }},
34403     { &hf_lpp_supportedChannels_11bg_r14,
34404       { "supportedChannels-11bg-r14", "lpp.supportedChannels_11bg_r14_element",
34405         FT_NONE, BASE_NONE, NULL, 0,
34406         NULL, HFILL }},
34407     { &hf_lpp_ch34_r14,
34408       { "ch34-r14", "lpp.ch34_r14",
34409         FT_BOOLEAN, BASE_NONE, NULL, 0,
34410         "BOOLEAN", HFILL }},
34411     { &hf_lpp_ch36_r14,
34412       { "ch36-r14", "lpp.ch36_r14",
34413         FT_BOOLEAN, BASE_NONE, NULL, 0,
34414         "BOOLEAN", HFILL }},
34415     { &hf_lpp_ch38_r14,
34416       { "ch38-r14", "lpp.ch38_r14",
34417         FT_BOOLEAN, BASE_NONE, NULL, 0,
34418         "BOOLEAN", HFILL }},
34419     { &hf_lpp_ch40_r14,
34420       { "ch40-r14", "lpp.ch40_r14",
34421         FT_BOOLEAN, BASE_NONE, NULL, 0,
34422         "BOOLEAN", HFILL }},
34423     { &hf_lpp_ch42_r14,
34424       { "ch42-r14", "lpp.ch42_r14",
34425         FT_BOOLEAN, BASE_NONE, NULL, 0,
34426         "BOOLEAN", HFILL }},
34427     { &hf_lpp_ch44_r14,
34428       { "ch44-r14", "lpp.ch44_r14",
34429         FT_BOOLEAN, BASE_NONE, NULL, 0,
34430         "BOOLEAN", HFILL }},
34431     { &hf_lpp_ch46_r14,
34432       { "ch46-r14", "lpp.ch46_r14",
34433         FT_BOOLEAN, BASE_NONE, NULL, 0,
34434         "BOOLEAN", HFILL }},
34435     { &hf_lpp_ch48_r14,
34436       { "ch48-r14", "lpp.ch48_r14",
34437         FT_BOOLEAN, BASE_NONE, NULL, 0,
34438         "BOOLEAN", HFILL }},
34439     { &hf_lpp_ch52_r14,
34440       { "ch52-r14", "lpp.ch52_r14",
34441         FT_BOOLEAN, BASE_NONE, NULL, 0,
34442         "BOOLEAN", HFILL }},
34443     { &hf_lpp_ch56_r14,
34444       { "ch56-r14", "lpp.ch56_r14",
34445         FT_BOOLEAN, BASE_NONE, NULL, 0,
34446         "BOOLEAN", HFILL }},
34447     { &hf_lpp_ch60_r14,
34448       { "ch60-r14", "lpp.ch60_r14",
34449         FT_BOOLEAN, BASE_NONE, NULL, 0,
34450         "BOOLEAN", HFILL }},
34451     { &hf_lpp_ch64_r14,
34452       { "ch64-r14", "lpp.ch64_r14",
34453         FT_BOOLEAN, BASE_NONE, NULL, 0,
34454         "BOOLEAN", HFILL }},
34455     { &hf_lpp_ch149_r14,
34456       { "ch149-r14", "lpp.ch149_r14",
34457         FT_BOOLEAN, BASE_NONE, NULL, 0,
34458         "BOOLEAN", HFILL }},
34459     { &hf_lpp_ch153_r14,
34460       { "ch153-r14", "lpp.ch153_r14",
34461         FT_BOOLEAN, BASE_NONE, NULL, 0,
34462         "BOOLEAN", HFILL }},
34463     { &hf_lpp_ch157_r14,
34464       { "ch157-r14", "lpp.ch157_r14",
34465         FT_BOOLEAN, BASE_NONE, NULL, 0,
34466         "BOOLEAN", HFILL }},
34467     { &hf_lpp_ch161_r14,
34468       { "ch161-r14", "lpp.ch161_r14",
34469         FT_BOOLEAN, BASE_NONE, NULL, 0,
34470         "BOOLEAN", HFILL }},
34471     { &hf_lpp_ch1_r14,
34472       { "ch1-r14", "lpp.ch1_r14",
34473         FT_BOOLEAN, BASE_NONE, NULL, 0,
34474         "BOOLEAN", HFILL }},
34475     { &hf_lpp_ch2_r14,
34476       { "ch2-r14", "lpp.ch2_r14",
34477         FT_BOOLEAN, BASE_NONE, NULL, 0,
34478         "BOOLEAN", HFILL }},
34479     { &hf_lpp_ch3_r14,
34480       { "ch3-r14", "lpp.ch3_r14",
34481         FT_BOOLEAN, BASE_NONE, NULL, 0,
34482         "BOOLEAN", HFILL }},
34483     { &hf_lpp_ch4_r14,
34484       { "ch4-r14", "lpp.ch4_r14",
34485         FT_BOOLEAN, BASE_NONE, NULL, 0,
34486         "BOOLEAN", HFILL }},
34487     { &hf_lpp_ch5_r14,
34488       { "ch5-r14", "lpp.ch5_r14",
34489         FT_BOOLEAN, BASE_NONE, NULL, 0,
34490         "BOOLEAN", HFILL }},
34491     { &hf_lpp_ch6_r14,
34492       { "ch6-r14", "lpp.ch6_r14",
34493         FT_BOOLEAN, BASE_NONE, NULL, 0,
34494         "BOOLEAN", HFILL }},
34495     { &hf_lpp_ch7_r14,
34496       { "ch7-r14", "lpp.ch7_r14",
34497         FT_BOOLEAN, BASE_NONE, NULL, 0,
34498         "BOOLEAN", HFILL }},
34499     { &hf_lpp_ch8_r14,
34500       { "ch8-r14", "lpp.ch8_r14",
34501         FT_BOOLEAN, BASE_NONE, NULL, 0,
34502         "BOOLEAN", HFILL }},
34503     { &hf_lpp_ch9_r14,
34504       { "ch9-r14", "lpp.ch9_r14",
34505         FT_BOOLEAN, BASE_NONE, NULL, 0,
34506         "BOOLEAN", HFILL }},
34507     { &hf_lpp_ch10_r14,
34508       { "ch10-r14", "lpp.ch10_r14",
34509         FT_BOOLEAN, BASE_NONE, NULL, 0,
34510         "BOOLEAN", HFILL }},
34511     { &hf_lpp_ch11_r14,
34512       { "ch11-r14", "lpp.ch11_r14",
34513         FT_BOOLEAN, BASE_NONE, NULL, 0,
34514         "BOOLEAN", HFILL }},
34515     { &hf_lpp_ch12_r14,
34516       { "ch12-r14", "lpp.ch12_r14",
34517         FT_BOOLEAN, BASE_NONE, NULL, 0,
34518         "BOOLEAN", HFILL }},
34519     { &hf_lpp_ch13_r14,
34520       { "ch13-r14", "lpp.ch13_r14",
34521         FT_BOOLEAN, BASE_NONE, NULL, 0,
34522         "BOOLEAN", HFILL }},
34523     { &hf_lpp_ch14_r14,
34524       { "ch14-r14", "lpp.ch14_r14",
34525         FT_BOOLEAN, BASE_NONE, NULL, 0,
34526         "BOOLEAN", HFILL }},
34527     { &hf_lpp_wlan_AP_Identifier_r14,
34528       { "wlan-AP-Identifier-r14", "lpp.wlan_AP_Identifier_r14_element",
34529         FT_NONE, BASE_NONE, NULL, 0,
34530         "WLAN_AP_Identifier_r13", HFILL }},
34531     { &hf_lpp_wlan_AP_Location_r14,
34532       { "wlan-AP-Location-r14", "lpp.wlan_AP_Location_r14_element",
34533         FT_NONE, BASE_NONE, NULL, 0,
34534         NULL, HFILL }},
34535     { &hf_lpp_locationDataLCI_r14,
34536       { "locationDataLCI-r14", "lpp.locationDataLCI_r14_element",
34537         FT_NONE, BASE_NONE, NULL, 0,
34538         NULL, HFILL }},
34539     { &hf_lpp_latitudeUncertainty_r14,
34540       { "latitudeUncertainty-r14", "lpp.latitudeUncertainty_r14",
34541         FT_BYTES, BASE_NONE, NULL, 0,
34542         "BIT_STRING_SIZE_6", HFILL }},
34543     { &hf_lpp_latitude_r14,
34544       { "latitude-r14", "lpp.latitude_r14",
34545         FT_BYTES, BASE_NONE, NULL, 0,
34546         "BIT_STRING_SIZE_34", HFILL }},
34547     { &hf_lpp_longitudeUncertainty_r14,
34548       { "longitudeUncertainty-r14", "lpp.longitudeUncertainty_r14",
34549         FT_BYTES, BASE_NONE, NULL, 0,
34550         "BIT_STRING_SIZE_6", HFILL }},
34551     { &hf_lpp_longitude_r14,
34552       { "longitude-r14", "lpp.longitude_r14",
34553         FT_BYTES, BASE_NONE, NULL, 0,
34554         "BIT_STRING_SIZE_34", HFILL }},
34555     { &hf_lpp_altitudeUncertainty_r14,
34556       { "altitudeUncertainty-r14", "lpp.altitudeUncertainty_r14",
34557         FT_BYTES, BASE_NONE, NULL, 0,
34558         "BIT_STRING_SIZE_6", HFILL }},
34559     { &hf_lpp_altitude_r14,
34560       { "altitude-r14", "lpp.altitude_r14",
34561         FT_BYTES, BASE_NONE, NULL, 0,
34562         "BIT_STRING_SIZE_30", HFILL }},
34563     { &hf_lpp_datum_r14,
34564       { "datum-r14", "lpp.datum_r14",
34565         FT_BYTES, BASE_NONE, NULL, 0,
34566         "BIT_STRING_SIZE_8", HFILL }},
34567     { &hf_lpp_requestedAD_r14,
34568       { "requestedAD-r14", "lpp.requestedAD_r14",
34569         FT_BYTES, BASE_NONE, NULL, 0,
34570         NULL, HFILL }},
34571     { &hf_lpp_visibleAPs_r14,
34572       { "visibleAPs-r14", "lpp.visibleAPs_r14",
34573         FT_UINT32, BASE_DEC, NULL, 0,
34574         "SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13", HFILL }},
34575     { &hf_lpp_visibleAPs_r14_item,
34576       { "WLAN-AP-Identifier-r13", "lpp.WLAN_AP_Identifier_r13_element",
34577         FT_NONE, BASE_NONE, NULL, 0,
34578         NULL, HFILL }},
34579     { &hf_lpp_wlan_AP_StoredData_r14,
34580       { "wlan-AP-StoredData-r14", "lpp.wlan_AP_StoredData_r14",
34581         FT_UINT32, BASE_DEC, NULL, 0,
34582         "SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13", HFILL }},
34583     { &hf_lpp_wlan_AP_StoredData_r14_item,
34584       { "WLAN-AP-Identifier-r13", "lpp.WLAN_AP_Identifier_r13_element",
34585         FT_NONE, BASE_NONE, NULL, 0,
34586         NULL, HFILL }},
34587     { &hf_lpp_bt_MeasurementInformation_r13,
34588       { "bt-MeasurementInformation-r13", "lpp.bt_MeasurementInformation_r13_element",
34589         FT_NONE, BASE_NONE, NULL, 0,
34590         NULL, HFILL }},
34591     { &hf_lpp_bt_Error_r13,
34592       { "bt-Error-r13", "lpp.bt_Error_r13",
34593         FT_UINT32, BASE_DEC, VALS(lpp_BT_Error_r13_vals), 0,
34594         NULL, HFILL }},
34595     { &hf_lpp_bt_MeasurementList_r13,
34596       { "bt-MeasurementList-r13", "lpp.bt_MeasurementList_r13",
34597         FT_UINT32, BASE_DEC, NULL, 0,
34598         NULL, HFILL }},
34599     { &hf_lpp_BT_MeasurementList_r13_item,
34600       { "BT-MeasurementElement-r13", "lpp.BT_MeasurementElement_r13_element",
34601         FT_NONE, BASE_NONE, NULL, 0,
34602         NULL, HFILL }},
34603     { &hf_lpp_btAddr_r13,
34604       { "btAddr-r13", "lpp.btAddr_r13",
34605         FT_ETHER, BASE_NONE, NULL, 0,
34606         NULL, HFILL }},
34607     { &hf_lpp_rssi_r13_01,
34608       { "rssi-r13", "lpp.rssi_r13",
34609         FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
34610         "INTEGER_M128_127", HFILL }},
34611     { &hf_lpp_requestedMeasurements_r13_01,
34612       { "requestedMeasurements-r13", "lpp.requestedMeasurements_r13",
34613         FT_BYTES, BASE_NONE, NULL, 0,
34614         "T_requestedMeasurements_r13_01", HFILL }},
34615     { &hf_lpp_bt_Modes_r13,
34616       { "bt-Modes-r13", "lpp.bt_Modes_r13",
34617         FT_BYTES, BASE_NONE, NULL, 0,
34618         "T_bt_Modes_r13", HFILL }},
34619     { &hf_lpp_bt_MeasSupported_r13,
34620       { "bt-MeasSupported-r13", "lpp.bt_MeasSupported_r13",
34621         FT_BYTES, BASE_NONE, NULL, 0,
34622         "T_bt_MeasSupported_r13", HFILL }},
34623     { &hf_lpp_idleStateForMeasurements_r14_05,
34624       { "idleStateForMeasurements-r14", "lpp.idleStateForMeasurements_r14",
34625         FT_UINT32, BASE_DEC, VALS(lpp_T_idleStateForMeasurements_r14_05_vals), 0,
34626         "T_idleStateForMeasurements_r14_05", HFILL }},
34627     { &hf_lpp_locationServerErrorCauses_r13_03,
34628       { "locationServerErrorCauses-r13", "lpp.locationServerErrorCauses_r13_element",
34629         FT_NONE, BASE_NONE, NULL, 0,
34630         "BT_LocationServerErrorCauses_r13", HFILL }},
34631     { &hf_lpp_targetDeviceErrorCauses_r13_03,
34632       { "targetDeviceErrorCauses-r13", "lpp.targetDeviceErrorCauses_r13_element",
34633         FT_NONE, BASE_NONE, NULL, 0,
34634         "BT_TargetDeviceErrorCauses_r13", HFILL }},
34635     { &hf_lpp_cause_r13_06,
34636       { "cause-r13", "lpp.cause_r13",
34637         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_06_vals), 0,
34638         "T_cause_r13_06", HFILL }},
34639     { &hf_lpp_cause_r13_07,
34640       { "cause-r13", "lpp.cause_r13",
34641         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r13_07_vals), 0,
34642         "T_cause_r13_07", HFILL }},
34643     { &hf_lpp_bt_Beacon_rssiMeasurementNotPossible_r13,
34644       { "bt-Beacon-rssiMeasurementNotPossible-r13", "lpp.bt_Beacon_rssiMeasurementNotPossible_r13_element",
34645         FT_NONE, BASE_NONE, NULL, 0,
34646         NULL, HFILL }},
34647     { &hf_lpp_nr_UL_SRS_Capability_r16,
34648       { "nr-UL-SRS-Capability-r16", "lpp.nr_UL_SRS_Capability_r16_element",
34649         FT_NONE, BASE_NONE, NULL, 0,
34650         NULL, HFILL }},
34651     { &hf_lpp_nr_ECID_SignalMeasurementInformation_r16,
34652       { "nr-ECID-SignalMeasurementInformation-r16", "lpp.nr_ECID_SignalMeasurementInformation_r16_element",
34653         FT_NONE, BASE_NONE, NULL, 0,
34654         NULL, HFILL }},
34655     { &hf_lpp_nr_ECID_Error_r16,
34656       { "nr-ECID-Error-r16", "lpp.nr_ECID_Error_r16",
34657         FT_UINT32, BASE_DEC, VALS(lpp_NR_ECID_Error_r16_vals), 0,
34658         NULL, HFILL }},
34659     { &hf_lpp_nr_PrimaryCellMeasuredResults_r16,
34660       { "nr-PrimaryCellMeasuredResults-r16", "lpp.nr_PrimaryCellMeasuredResults_r16_element",
34661         FT_NONE, BASE_NONE, NULL, 0,
34662         "NR_MeasuredResultsElement_r16", HFILL }},
34663     { &hf_lpp_nr_MeasuredResultsList_r16,
34664       { "nr-MeasuredResultsList-r16", "lpp.nr_MeasuredResultsList_r16",
34665         FT_UINT32, BASE_DEC, NULL, 0,
34666         NULL, HFILL }},
34667     { &hf_lpp_NR_MeasuredResultsList_r16_item,
34668       { "NR-MeasuredResultsElement-r16", "lpp.NR_MeasuredResultsElement_r16_element",
34669         FT_NONE, BASE_NONE, NULL, 0,
34670         NULL, HFILL }},
34671     { &hf_lpp_nr_ARFCN_r16_01,
34672       { "nr-ARFCN-r16", "lpp.nr_ARFCN_r16",
34673         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_ARFCN_r16_vals), 0,
34674         NULL, HFILL }},
34675     { &hf_lpp_ssb_ARFCN_r16,
34676       { "ssb-ARFCN-r16", "lpp.ssb_ARFCN_r16",
34677         FT_UINT32, BASE_DEC, NULL, 0,
34678         "ARFCN_ValueNR_r15", HFILL }},
34679     { &hf_lpp_csi_RS_pointA_r16,
34680       { "csi-RS-pointA-r16", "lpp.csi_RS_pointA_r16",
34681         FT_UINT32, BASE_DEC, NULL, 0,
34682         "ARFCN_ValueNR_r15", HFILL }},
34683     { &hf_lpp_resultsSSB_Cell_r16,
34684       { "resultsSSB-Cell-r16", "lpp.resultsSSB_Cell_r16_element",
34685         FT_NONE, BASE_NONE, NULL, 0,
34686         "MeasQuantityResults_r16", HFILL }},
34687     { &hf_lpp_resultsCSI_RS_Cell_r16,
34688       { "resultsCSI-RS-Cell-r16", "lpp.resultsCSI_RS_Cell_r16_element",
34689         FT_NONE, BASE_NONE, NULL, 0,
34690         "MeasQuantityResults_r16", HFILL }},
34691     { &hf_lpp_resultsSSB_Indexes_r16,
34692       { "resultsSSB-Indexes-r16", "lpp.resultsSSB_Indexes_r16",
34693         FT_UINT32, BASE_DEC, NULL, 0,
34694         "ResultsPerSSB_IndexList_r16", HFILL }},
34695     { &hf_lpp_resultsCSI_RS_Indexes_r16,
34696       { "resultsCSI-RS-Indexes-r16", "lpp.resultsCSI_RS_Indexes_r16",
34697         FT_UINT32, BASE_DEC, NULL, 0,
34698         "ResultsPerCSI_RS_IndexList_r16", HFILL }},
34699     { &hf_lpp_nr_RSRP_r16,
34700       { "nr-RSRP-r16", "lpp.nr_RSRP_r16",
34701         FT_UINT32, BASE_DEC, NULL, 0,
34702         "INTEGER_0_127", HFILL }},
34703     { &hf_lpp_nr_RSRQ_r16,
34704       { "nr-RSRQ-r16", "lpp.nr_RSRQ_r16",
34705         FT_UINT32, BASE_DEC, NULL, 0,
34706         "INTEGER_0_127", HFILL }},
34707     { &hf_lpp_ResultsPerSSB_IndexList_r16_item,
34708       { "ResultsPerSSB-Index-r16", "lpp.ResultsPerSSB_Index_r16_element",
34709         FT_NONE, BASE_NONE, NULL, 0,
34710         NULL, HFILL }},
34711     { &hf_lpp_ssb_Results_r16,
34712       { "ssb-Results-r16", "lpp.ssb_Results_r16_element",
34713         FT_NONE, BASE_NONE, NULL, 0,
34714         "MeasQuantityResults_r16", HFILL }},
34715     { &hf_lpp_ResultsPerCSI_RS_IndexList_r16_item,
34716       { "ResultsPerCSI-RS-Index-r16", "lpp.ResultsPerCSI_RS_Index_r16_element",
34717         FT_NONE, BASE_NONE, NULL, 0,
34718         NULL, HFILL }},
34719     { &hf_lpp_csi_RS_Index_r16,
34720       { "csi-RS-Index-r16", "lpp.csi_RS_Index_r16",
34721         FT_UINT32, BASE_DEC, NULL, 0,
34722         "INTEGER_0_95", HFILL }},
34723     { &hf_lpp_csi_RS_Results_r16,
34724       { "csi-RS-Results-r16", "lpp.csi_RS_Results_r16_element",
34725         FT_NONE, BASE_NONE, NULL, 0,
34726         "MeasQuantityResults_r16", HFILL }},
34727     { &hf_lpp_requestedMeasurements_r16,
34728       { "requestedMeasurements-r16", "lpp.requestedMeasurements_r16",
34729         FT_BYTES, BASE_NONE, NULL, 0,
34730         NULL, HFILL }},
34731     { &hf_lpp_nr_ECID_MeasSupported_r16,
34732       { "nr-ECID-MeasSupported-r16", "lpp.nr_ECID_MeasSupported_r16",
34733         FT_BYTES, BASE_NONE, NULL, 0,
34734         NULL, HFILL }},
34735     { &hf_lpp_periodicalReporting_r16,
34736       { "periodicalReporting-r16", "lpp.periodicalReporting_r16",
34737         FT_UINT32, BASE_DEC, VALS(lpp_T_periodicalReporting_r16_vals), 0,
34738         NULL, HFILL }},
34739     { &hf_lpp_triggeredReporting_r16,
34740       { "triggeredReporting-r16", "lpp.triggeredReporting_r16",
34741         FT_UINT32, BASE_DEC, VALS(lpp_T_triggeredReporting_r16_vals), 0,
34742         NULL, HFILL }},
34743     { &hf_lpp_locationServerErrorCauses_r16,
34744       { "locationServerErrorCauses-r16", "lpp.locationServerErrorCauses_r16_element",
34745         FT_NONE, BASE_NONE, NULL, 0,
34746         "NR_ECID_LocationServerErrorCauses_r16", HFILL }},
34747     { &hf_lpp_targetDeviceErrorCauses_r16,
34748       { "targetDeviceErrorCauses-r16", "lpp.targetDeviceErrorCauses_r16_element",
34749         FT_NONE, BASE_NONE, NULL, 0,
34750         "NR_ECID_TargetDeviceErrorCauses_r16", HFILL }},
34751     { &hf_lpp_cause_r16,
34752       { "cause-r16", "lpp.cause_r16",
34753         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_vals), 0,
34754         NULL, HFILL }},
34755     { &hf_lpp_cause_r16_01,
34756       { "cause-r16", "lpp.cause_r16",
34757         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_01_vals), 0,
34758         "T_cause_r16_01", HFILL }},
34759     { &hf_lpp_ss_RSRPMeasurementNotPossible_r16,
34760       { "ss-RSRPMeasurementNotPossible-r16", "lpp.ss_RSRPMeasurementNotPossible_r16_element",
34761         FT_NONE, BASE_NONE, NULL, 0,
34762         NULL, HFILL }},
34763     { &hf_lpp_ss_RSRQMeasurementNotPossible_r16,
34764       { "ss-RSRQMeasurementNotPossible-r16", "lpp.ss_RSRQMeasurementNotPossible_r16_element",
34765         FT_NONE, BASE_NONE, NULL, 0,
34766         NULL, HFILL }},
34767     { &hf_lpp_csi_RSRPMeasurementNotPossible_r16,
34768       { "csi-RSRPMeasurementNotPossible-r16", "lpp.csi_RSRPMeasurementNotPossible_r16_element",
34769         FT_NONE, BASE_NONE, NULL, 0,
34770         NULL, HFILL }},
34771     { &hf_lpp_csi_RSRQMeasurementNotPossible_r16,
34772       { "csi-RSRQMeasurementNotPossible-r16", "lpp.csi_RSRQMeasurementNotPossible_r16_element",
34773         FT_NONE, BASE_NONE, NULL, 0,
34774         NULL, HFILL }},
34775     { &hf_lpp_nr_DL_PRS_AssistanceData_r16,
34776       { "nr-DL-PRS-AssistanceData-r16", "lpp.nr_DL_PRS_AssistanceData_r16_element",
34777         FT_NONE, BASE_NONE, NULL, 0,
34778         NULL, HFILL }},
34779     { &hf_lpp_nr_SelectedDL_PRS_IndexList_r16,
34780       { "nr-SelectedDL-PRS-IndexList-r16", "lpp.nr_SelectedDL_PRS_IndexList_r16",
34781         FT_UINT32, BASE_DEC, NULL, 0,
34782         NULL, HFILL }},
34783     { &hf_lpp_nr_PositionCalculationAssistance_r16,
34784       { "nr-PositionCalculationAssistance-r16", "lpp.nr_PositionCalculationAssistance_r16_element",
34785         FT_NONE, BASE_NONE, NULL, 0,
34786         NULL, HFILL }},
34787     { &hf_lpp_nr_DL_TDOA_Error_r16,
34788       { "nr-DL-TDOA-Error-r16", "lpp.nr_DL_TDOA_Error_r16",
34789         FT_UINT32, BASE_DEC, VALS(lpp_NR_DL_TDOA_Error_r16_vals), 0,
34790         NULL, HFILL }},
34791     { &hf_lpp_nr_AdType_r16,
34792       { "nr-AdType-r16", "lpp.nr_AdType_r16",
34793         FT_BYTES, BASE_NONE, NULL, 0,
34794         NULL, HFILL }},
34795     { &hf_lpp_nr_DL_TDOA_SignalMeasurementInformation_r16,
34796       { "nr-DL-TDOA-SignalMeasurementInformation-r16", "lpp.nr_DL_TDOA_SignalMeasurementInformation_r16_element",
34797         FT_NONE, BASE_NONE, NULL, 0,
34798         NULL, HFILL }},
34799     { &hf_lpp_nr_dl_tdoa_LocationInformation_r16,
34800       { "nr-dl-tdoa-LocationInformation-r16", "lpp.nr_dl_tdoa_LocationInformation_r16_element",
34801         FT_NONE, BASE_NONE, NULL, 0,
34802         NULL, HFILL }},
34803     { &hf_lpp_dl_PRS_ReferenceInfo_r16,
34804       { "dl-PRS-ReferenceInfo-r16", "lpp.dl_PRS_ReferenceInfo_r16_element",
34805         FT_NONE, BASE_NONE, NULL, 0,
34806         "DL_PRS_ID_Info_r16", HFILL }},
34807     { &hf_lpp_nr_DL_TDOA_MeasList_r16,
34808       { "nr-DL-TDOA-MeasList-r16", "lpp.nr_DL_TDOA_MeasList_r16",
34809         FT_UINT32, BASE_DEC, NULL, 0,
34810         NULL, HFILL }},
34811     { &hf_lpp_NR_DL_TDOA_MeasList_r16_item,
34812       { "NR-DL-TDOA-MeasElement-r16", "lpp.NR_DL_TDOA_MeasElement_r16_element",
34813         FT_NONE, BASE_NONE, NULL, 0,
34814         NULL, HFILL }},
34815     { &hf_lpp_nr_TimeStamp_r16,
34816       { "nr-TimeStamp-r16", "lpp.nr_TimeStamp_r16_element",
34817         FT_NONE, BASE_NONE, NULL, 0,
34818         NULL, HFILL }},
34819     { &hf_lpp_nr_RSTD_r16,
34820       { "nr-RSTD-r16", "lpp.nr_RSTD_r16",
34821         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_RSTD_r16_vals), 0,
34822         NULL, HFILL }},
34823     { &hf_lpp_k0_r16_01,
34824       { "k0-r16", "lpp.k0_r16",
34825         FT_UINT32, BASE_DEC, NULL, 0,
34826         "INTEGER_0_1970049", HFILL }},
34827     { &hf_lpp_k1_r16_01,
34828       { "k1-r16", "lpp.k1_r16",
34829         FT_UINT32, BASE_DEC, NULL, 0,
34830         "INTEGER_0_985025", HFILL }},
34831     { &hf_lpp_k2_r16_01,
34832       { "k2-r16", "lpp.k2_r16",
34833         FT_UINT32, BASE_DEC, NULL, 0,
34834         "INTEGER_0_492513", HFILL }},
34835     { &hf_lpp_k3_r16_01,
34836       { "k3-r16", "lpp.k3_r16",
34837         FT_UINT32, BASE_DEC, NULL, 0,
34838         "INTEGER_0_246257", HFILL }},
34839     { &hf_lpp_k4_r16_01,
34840       { "k4-r16", "lpp.k4_r16",
34841         FT_UINT32, BASE_DEC, NULL, 0,
34842         "INTEGER_0_123129", HFILL }},
34843     { &hf_lpp_k5_r16_01,
34844       { "k5-r16", "lpp.k5_r16",
34845         FT_UINT32, BASE_DEC, NULL, 0,
34846         "INTEGER_0_61565", HFILL }},
34847     { &hf_lpp_nr_AdditionalPathList_r16,
34848       { "nr-AdditionalPathList-r16", "lpp.nr_AdditionalPathList_r16",
34849         FT_UINT32, BASE_DEC, NULL, 0,
34850         NULL, HFILL }},
34851     { &hf_lpp_nr_TimingQuality_r16,
34852       { "nr-TimingQuality-r16", "lpp.nr_TimingQuality_r16_element",
34853         FT_NONE, BASE_NONE, NULL, 0,
34854         NULL, HFILL }},
34855     { &hf_lpp_nr_DL_PRS_RSRP_Result_r16,
34856       { "nr-DL-PRS-RSRP-Result-r16", "lpp.nr_DL_PRS_RSRP_Result_r16",
34857         FT_UINT32, BASE_DEC, NULL, 0,
34858         "INTEGER_0_126", HFILL }},
34859     { &hf_lpp_nr_DL_TDOA_AdditionalMeasurements_r16,
34860       { "nr-DL-TDOA-AdditionalMeasurements-r16", "lpp.nr_DL_TDOA_AdditionalMeasurements_r16",
34861         FT_UINT32, BASE_DEC, NULL, 0,
34862         NULL, HFILL }},
34863     { &hf_lpp_NR_DL_TDOA_AdditionalMeasurements_r16_item,
34864       { "NR-DL-TDOA-AdditionalMeasurementElement-r16", "lpp.NR_DL_TDOA_AdditionalMeasurementElement_r16_element",
34865         FT_NONE, BASE_NONE, NULL, 0,
34866         NULL, HFILL }},
34867     { &hf_lpp_nr_RSTD_ResultDiff_r16,
34868       { "nr-RSTD-ResultDiff-r16", "lpp.nr_RSTD_ResultDiff_r16",
34869         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_RSTD_ResultDiff_r16_vals), 0,
34870         NULL, HFILL }},
34871     { &hf_lpp_k0_r16_02,
34872       { "k0-r16", "lpp.k0_r16",
34873         FT_UINT32, BASE_DEC, NULL, 0,
34874         "INTEGER_0_8191", HFILL }},
34875     { &hf_lpp_k1_r16_02,
34876       { "k1-r16", "lpp.k1_r16",
34877         FT_UINT32, BASE_DEC, NULL, 0,
34878         "INTEGER_0_4095", HFILL }},
34879     { &hf_lpp_k2_r16_02,
34880       { "k2-r16", "lpp.k2_r16",
34881         FT_UINT32, BASE_DEC, NULL, 0,
34882         "INTEGER_0_2047", HFILL }},
34883     { &hf_lpp_k3_r16_02,
34884       { "k3-r16", "lpp.k3_r16",
34885         FT_UINT32, BASE_DEC, NULL, 0,
34886         "INTEGER_0_1023", HFILL }},
34887     { &hf_lpp_k4_r16_02,
34888       { "k4-r16", "lpp.k4_r16",
34889         FT_UINT32, BASE_DEC, NULL, 0,
34890         "INTEGER_0_511", HFILL }},
34891     { &hf_lpp_k5_r16_02,
34892       { "k5-r16", "lpp.k5_r16",
34893         FT_UINT32, BASE_DEC, NULL, 0,
34894         "INTEGER_0_255", HFILL }},
34895     { &hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16,
34896       { "nr-DL-PRS-RSRP-ResultDiff-r16", "lpp.nr_DL_PRS_RSRP_ResultDiff_r16",
34897         FT_UINT32, BASE_DEC, NULL, 0,
34898         "INTEGER_0_61", HFILL }},
34899     { &hf_lpp_measurementReferenceTime_r16,
34900       { "measurementReferenceTime-r16", "lpp.measurementReferenceTime_r16",
34901         FT_UINT32, BASE_DEC, VALS(lpp_T_measurementReferenceTime_r16_vals), 0,
34902         NULL, HFILL }},
34903     { &hf_lpp_systemFrameNumber_r16_01,
34904       { "systemFrameNumber-r16", "lpp.systemFrameNumber_r16_element",
34905         FT_NONE, BASE_NONE, NULL, 0,
34906         "NR_TimeStamp_r16", HFILL }},
34907     { &hf_lpp_utc_time_r16,
34908       { "utc-time-r16", "lpp.utc_time_r16",
34909         FT_STRING, BASE_NONE, NULL, 0,
34910         "UTCTime", HFILL }},
34911     { &hf_lpp_nr_DL_PRS_RstdMeasurementInfoRequest_r16,
34912       { "nr-DL-PRS-RstdMeasurementInfoRequest-r16", "lpp.nr_DL_PRS_RstdMeasurementInfoRequest_r16",
34913         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_DL_PRS_RstdMeasurementInfoRequest_r16_vals), 0,
34914         "T_nr_DL_PRS_RstdMeasurementInfoRequest_r16", HFILL }},
34915     { &hf_lpp_nr_RequestedMeasurements_r16,
34916       { "nr-RequestedMeasurements-r16", "lpp.nr_RequestedMeasurements_r16",
34917         FT_BYTES, BASE_NONE, NULL, 0,
34918         NULL, HFILL }},
34919     { &hf_lpp_nr_AssistanceAvailability_r16,
34920       { "nr-AssistanceAvailability-r16", "lpp.nr_AssistanceAvailability_r16",
34921         FT_BOOLEAN, BASE_NONE, NULL, 0,
34922         "BOOLEAN", HFILL }},
34923     { &hf_lpp_nr_DL_TDOA_ReportConfig_r16,
34924       { "nr-DL-TDOA-ReportConfig-r16", "lpp.nr_DL_TDOA_ReportConfig_r16_element",
34925         FT_NONE, BASE_NONE, NULL, 0,
34926         NULL, HFILL }},
34927     { &hf_lpp_additionalPaths_r16,
34928       { "additionalPaths-r16", "lpp.additionalPaths_r16",
34929         FT_UINT32, BASE_DEC, VALS(lpp_T_additionalPaths_r16_vals), 0,
34930         NULL, HFILL }},
34931     { &hf_lpp_maxDL_PRS_RSTD_MeasurementsPerTRPPair_r16,
34932       { "maxDL-PRS-RSTD-MeasurementsPerTRPPair-r16", "lpp.maxDL_PRS_RSTD_MeasurementsPerTRPPair_r16",
34933         FT_UINT32, BASE_DEC, NULL, 0,
34934         "INTEGER_1_4", HFILL }},
34935     { &hf_lpp_timingReportingGranularityFactor_r16,
34936       { "timingReportingGranularityFactor-r16", "lpp.timingReportingGranularityFactor_r16",
34937         FT_UINT32, BASE_DEC, NULL, 0,
34938         "INTEGER_0_5", HFILL }},
34939     { &hf_lpp_nr_DL_TDOA_Mode_r16,
34940       { "nr-DL-TDOA-Mode-r16", "lpp.nr_DL_TDOA_Mode_r16_element",
34941         FT_NONE, BASE_NONE, NULL, 0,
34942         "PositioningModes", HFILL }},
34943     { &hf_lpp_nr_DL_TDOA_PRS_Capability_r16,
34944       { "nr-DL-TDOA-PRS-Capability-r16", "lpp.nr_DL_TDOA_PRS_Capability_r16_element",
34945         FT_NONE, BASE_NONE, NULL, 0,
34946         "NR_DL_PRS_ResourcesCapability_r16", HFILL }},
34947     { &hf_lpp_nr_DL_TDOA_MeasurementCapability_r16,
34948       { "nr-DL-TDOA-MeasurementCapability-r16", "lpp.nr_DL_TDOA_MeasurementCapability_r16_element",
34949         FT_NONE, BASE_NONE, NULL, 0,
34950         NULL, HFILL }},
34951     { &hf_lpp_nr_DL_PRS_QCL_ProcessingCapability_r16,
34952       { "nr-DL-PRS-QCL-ProcessingCapability-r16", "lpp.nr_DL_PRS_QCL_ProcessingCapability_r16_element",
34953         FT_NONE, BASE_NONE, NULL, 0,
34954         NULL, HFILL }},
34955     { &hf_lpp_nr_DL_PRS_ProcessingCapability_r16,
34956       { "nr-DL-PRS-ProcessingCapability-r16", "lpp.nr_DL_PRS_ProcessingCapability_r16_element",
34957         FT_NONE, BASE_NONE, NULL, 0,
34958         NULL, HFILL }},
34959     { &hf_lpp_additionalPathsReport_r16,
34960       { "additionalPathsReport-r16", "lpp.additionalPathsReport_r16",
34961         FT_UINT32, BASE_DEC, VALS(lpp_T_additionalPathsReport_r16_vals), 0,
34962         "T_additionalPathsReport_r16", HFILL }},
34963     { &hf_lpp_periodicalReporting_r16_01,
34964       { "periodicalReporting-r16", "lpp.periodicalReporting_r16_element",
34965         FT_NONE, BASE_NONE, NULL, 0,
34966         "PositioningModes", HFILL }},
34967     { &hf_lpp_dl_RSTD_MeasurementPerPairOfTRP_FR1_r16,
34968       { "dl-RSTD-MeasurementPerPairOfTRP-FR1-r16", "lpp.dl_RSTD_MeasurementPerPairOfTRP_FR1_r16",
34969         FT_UINT32, BASE_DEC, NULL, 0,
34970         "INTEGER_1_4", HFILL }},
34971     { &hf_lpp_dl_RSTD_MeasurementPerPairOfTRP_FR2_r16,
34972       { "dl-RSTD-MeasurementPerPairOfTRP-FR2-r16", "lpp.dl_RSTD_MeasurementPerPairOfTRP_FR2_r16",
34973         FT_UINT32, BASE_DEC, NULL, 0,
34974         "INTEGER_1_4", HFILL }},
34975     { &hf_lpp_supportOfDL_PRS_RSRP_MeasFR1_r16,
34976       { "supportOfDL-PRS-RSRP-MeasFR1-r16", "lpp.supportOfDL_PRS_RSRP_MeasFR1_r16",
34977         FT_UINT32, BASE_DEC, VALS(lpp_T_supportOfDL_PRS_RSRP_MeasFR1_r16_vals), 0,
34978         NULL, HFILL }},
34979     { &hf_lpp_supportOfDL_PRS_RSRP_MeasFR2_r16,
34980       { "supportOfDL-PRS-RSRP-MeasFR2-r16", "lpp.supportOfDL_PRS_RSRP_MeasFR2_r16",
34981         FT_UINT32, BASE_DEC, VALS(lpp_T_supportOfDL_PRS_RSRP_MeasFR2_r16_vals), 0,
34982         NULL, HFILL }},
34983     { &hf_lpp_locationServerErrorCauses_r16_01,
34984       { "locationServerErrorCauses-r16", "lpp.locationServerErrorCauses_r16_element",
34985         FT_NONE, BASE_NONE, NULL, 0,
34986         "NR_DL_TDOA_LocationServerErrorCauses_r16", HFILL }},
34987     { &hf_lpp_targetDeviceErrorCauses_r16_01,
34988       { "targetDeviceErrorCauses-r16", "lpp.targetDeviceErrorCauses_r16_element",
34989         FT_NONE, BASE_NONE, NULL, 0,
34990         "NR_DL_TDOA_TargetDeviceErrorCauses_r16", HFILL }},
34991     { &hf_lpp_cause_r16_02,
34992       { "cause-r16", "lpp.cause_r16",
34993         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_02_vals), 0,
34994         "T_cause_r16_02", HFILL }},
34995     { &hf_lpp_cause_r16_03,
34996       { "cause-r16", "lpp.cause_r16",
34997         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_03_vals), 0,
34998         "T_cause_r16_03", HFILL }},
34999     { &hf_lpp_nr_DL_AoD_Error_r16,
35000       { "nr-DL-AoD-Error-r16", "lpp.nr_DL_AoD_Error_r16",
35001         FT_UINT32, BASE_DEC, VALS(lpp_NR_DL_AoD_Error_r16_vals), 0,
35002         NULL, HFILL }},
35003     { &hf_lpp_nr_AdType_r16_01,
35004       { "nr-AdType-r16", "lpp.nr_AdType_r16",
35005         FT_BYTES, BASE_NONE, NULL, 0,
35006         "T_nr_AdType_r16_01", HFILL }},
35007     { &hf_lpp_nr_DL_AoD_SignalMeasurementInformation_r16,
35008       { "nr-DL-AoD-SignalMeasurementInformation-r16", "lpp.nr_DL_AoD_SignalMeasurementInformation_r16_element",
35009         FT_NONE, BASE_NONE, NULL, 0,
35010         NULL, HFILL }},
35011     { &hf_lpp_nr_dl_AoD_LocationInformation_r16,
35012       { "nr-dl-AoD-LocationInformation-r16", "lpp.nr_dl_AoD_LocationInformation_r16_element",
35013         FT_NONE, BASE_NONE, NULL, 0,
35014         NULL, HFILL }},
35015     { &hf_lpp_nr_DL_AoD_MeasList_r16,
35016       { "nr-DL-AoD-MeasList-r16", "lpp.nr_DL_AoD_MeasList_r16",
35017         FT_UINT32, BASE_DEC, NULL, 0,
35018         NULL, HFILL }},
35019     { &hf_lpp_NR_DL_AoD_MeasList_r16_item,
35020       { "NR-DL-AoD-MeasElement-r16", "lpp.NR_DL_AoD_MeasElement_r16_element",
35021         FT_NONE, BASE_NONE, NULL, 0,
35022         NULL, HFILL }},
35023     { &hf_lpp_nr_DL_PRS_RxBeamIndex_r16,
35024       { "nr-DL-PRS-RxBeamIndex-r16", "lpp.nr_DL_PRS_RxBeamIndex_r16",
35025         FT_UINT32, BASE_DEC, NULL, 0,
35026         "INTEGER_1_8", HFILL }},
35027     { &hf_lpp_nr_DL_AoD_AdditionalMeasurements_r16,
35028       { "nr-DL-AoD-AdditionalMeasurements-r16", "lpp.nr_DL_AoD_AdditionalMeasurements_r16",
35029         FT_UINT32, BASE_DEC, NULL, 0,
35030         NULL, HFILL }},
35031     { &hf_lpp_NR_DL_AoD_AdditionalMeasurements_r16_item,
35032       { "NR-DL-AoD-AdditionalMeasurementElement-r16", "lpp.NR_DL_AoD_AdditionalMeasurementElement_r16_element",
35033         FT_NONE, BASE_NONE, NULL, 0,
35034         NULL, HFILL }},
35035     { &hf_lpp_nr_DL_PRS_RSRP_ResultDiff_r16_01,
35036       { "nr-DL-PRS-RSRP-ResultDiff-r16", "lpp.nr_DL_PRS_RSRP_ResultDiff_r16",
35037         FT_UINT32, BASE_DEC, NULL, 0,
35038         "INTEGER_0_30", HFILL }},
35039     { &hf_lpp_measurementReferenceTime_r16_01,
35040       { "measurementReferenceTime-r16", "lpp.measurementReferenceTime_r16",
35041         FT_UINT32, BASE_DEC, VALS(lpp_T_measurementReferenceTime_r16_01_vals), 0,
35042         "T_measurementReferenceTime_r16_01", HFILL }},
35043     { &hf_lpp_sfn_time_r16,
35044       { "sfn-time-r16", "lpp.sfn_time_r16_element",
35045         FT_NONE, BASE_NONE, NULL, 0,
35046         "NR_TimeStamp_r16", HFILL }},
35047     { &hf_lpp_nr_DL_AoD_ReportConfig_r16,
35048       { "nr-DL-AoD-ReportConfig-r16", "lpp.nr_DL_AoD_ReportConfig_r16_element",
35049         FT_NONE, BASE_NONE, NULL, 0,
35050         NULL, HFILL }},
35051     { &hf_lpp_maxDL_PRS_RSRP_MeasurementsPerTRP_r16,
35052       { "maxDL-PRS-RSRP-MeasurementsPerTRP-r16", "lpp.maxDL_PRS_RSRP_MeasurementsPerTRP_r16",
35053         FT_UINT32, BASE_DEC, NULL, 0,
35054         "INTEGER_1_8", HFILL }},
35055     { &hf_lpp_nr_DL_AoD_Mode_r16,
35056       { "nr-DL-AoD-Mode-r16", "lpp.nr_DL_AoD_Mode_r16_element",
35057         FT_NONE, BASE_NONE, NULL, 0,
35058         "PositioningModes", HFILL }},
35059     { &hf_lpp_nr_DL_AoD_PRS_Capability_r16,
35060       { "nr-DL-AoD-PRS-Capability-r16", "lpp.nr_DL_AoD_PRS_Capability_r16_element",
35061         FT_NONE, BASE_NONE, NULL, 0,
35062         "NR_DL_PRS_ResourcesCapability_r16", HFILL }},
35063     { &hf_lpp_nr_DL_AoD_MeasurementCapability_r16,
35064       { "nr-DL-AoD-MeasurementCapability-r16", "lpp.nr_DL_AoD_MeasurementCapability_r16_element",
35065         FT_NONE, BASE_NONE, NULL, 0,
35066         NULL, HFILL }},
35067     { &hf_lpp_maxDL_PRS_RSRP_MeasurementFR1_r16,
35068       { "maxDL-PRS-RSRP-MeasurementFR1-r16", "lpp.maxDL_PRS_RSRP_MeasurementFR1_r16",
35069         FT_UINT32, BASE_DEC, NULL, 0,
35070         "INTEGER_1_8", HFILL }},
35071     { &hf_lpp_maxDL_PRS_RSRP_MeasurementFR2_r16,
35072       { "maxDL-PRS-RSRP-MeasurementFR2-r16", "lpp.maxDL_PRS_RSRP_MeasurementFR2_r16",
35073         FT_UINT32, BASE_DEC, NULL, 0,
35074         "INTEGER_1_8", HFILL }},
35075     { &hf_lpp_dl_AoD_MeasCapabilityBandList_r16,
35076       { "dl-AoD-MeasCapabilityBandList-r16", "lpp.dl_AoD_MeasCapabilityBandList_r16",
35077         FT_UINT32, BASE_DEC, NULL, 0,
35078         "SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16", HFILL }},
35079     { &hf_lpp_dl_AoD_MeasCapabilityBandList_r16_item,
35080       { "DL-AoD-MeasCapabilityPerBand-r16", "lpp.DL_AoD_MeasCapabilityPerBand_r16_element",
35081         FT_NONE, BASE_NONE, NULL, 0,
35082         NULL, HFILL }},
35083     { &hf_lpp_simul_NR_DL_AoD_DL_TDOA_r16,
35084       { "simul-NR-DL-AoD-DL-TDOA-r16", "lpp.simul_NR_DL_AoD_DL_TDOA_r16",
35085         FT_UINT32, BASE_DEC, VALS(lpp_T_simul_NR_DL_AoD_DL_TDOA_r16_vals), 0,
35086         NULL, HFILL }},
35087     { &hf_lpp_simul_NR_DL_AoD_Multi_RTT_r16,
35088       { "simul-NR-DL-AoD-Multi-RTT-r16", "lpp.simul_NR_DL_AoD_Multi_RTT_r16",
35089         FT_UINT32, BASE_DEC, VALS(lpp_T_simul_NR_DL_AoD_Multi_RTT_r16_vals), 0,
35090         "T_simul_NR_DL_AoD_Multi_RTT_r16", HFILL }},
35091     { &hf_lpp_locationServerErrorCauses_r16_02,
35092       { "locationServerErrorCauses-r16", "lpp.locationServerErrorCauses_r16_element",
35093         FT_NONE, BASE_NONE, NULL, 0,
35094         "NR_DL_AoD_LocationServerErrorCauses_r16", HFILL }},
35095     { &hf_lpp_targetDeviceErrorCauses_r16_02,
35096       { "targetDeviceErrorCauses-r16", "lpp.targetDeviceErrorCauses_r16_element",
35097         FT_NONE, BASE_NONE, NULL, 0,
35098         "NR_DL_AoD_TargetDeviceErrorCauses_r16", HFILL }},
35099     { &hf_lpp_cause_r16_04,
35100       { "cause-r16", "lpp.cause_r16",
35101         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_04_vals), 0,
35102         "T_cause_r16_04", HFILL }},
35103     { &hf_lpp_cause_r16_05,
35104       { "cause-r16", "lpp.cause_r16",
35105         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_05_vals), 0,
35106         "T_cause_r16_05", HFILL }},
35107     { &hf_lpp_nr_Multi_RTT_Error_r16,
35108       { "nr-Multi-RTT-Error-r16", "lpp.nr_Multi_RTT_Error_r16",
35109         FT_UINT32, BASE_DEC, VALS(lpp_NR_Multi_RTT_Error_r16_vals), 0,
35110         NULL, HFILL }},
35111     { &hf_lpp_nr_AdType_r16_02,
35112       { "nr-AdType-r16", "lpp.nr_AdType_r16",
35113         FT_BYTES, BASE_NONE, NULL, 0,
35114         "T_nr_AdType_r16_02", HFILL }},
35115     { &hf_lpp_nr_Multi_RTT_SignalMeasurementInformation_r16,
35116       { "nr-Multi-RTT-SignalMeasurementInformation-r16", "lpp.nr_Multi_RTT_SignalMeasurementInformation_r16_element",
35117         FT_NONE, BASE_NONE, NULL, 0,
35118         NULL, HFILL }},
35119     { &hf_lpp_nr_Multi_RTT_MeasList_r16,
35120       { "nr-Multi-RTT-MeasList-r16", "lpp.nr_Multi_RTT_MeasList_r16",
35121         FT_UINT32, BASE_DEC, NULL, 0,
35122         NULL, HFILL }},
35123     { &hf_lpp_nr_NTA_Offset_r16,
35124       { "nr-NTA-Offset-r16", "lpp.nr_NTA_Offset_r16",
35125         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_NTA_Offset_r16_vals), 0,
35126         "T_nr_NTA_Offset_r16", HFILL }},
35127     { &hf_lpp_NR_Multi_RTT_MeasList_r16_item,
35128       { "NR-Multi-RTT-MeasElement-r16", "lpp.NR_Multi_RTT_MeasElement_r16_element",
35129         FT_NONE, BASE_NONE, NULL, 0,
35130         NULL, HFILL }},
35131     { &hf_lpp_nr_UE_RxTxTimeDiff_r16,
35132       { "nr-UE-RxTxTimeDiff-r16", "lpp.nr_UE_RxTxTimeDiff_r16",
35133         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_UE_RxTxTimeDiff_r16_vals), 0,
35134         NULL, HFILL }},
35135     { &hf_lpp_nr_Multi_RTT_AdditionalMeasurements_r16,
35136       { "nr-Multi-RTT-AdditionalMeasurements-r16", "lpp.nr_Multi_RTT_AdditionalMeasurements_r16",
35137         FT_UINT32, BASE_DEC, NULL, 0,
35138         NULL, HFILL }},
35139     { &hf_lpp_NR_Multi_RTT_AdditionalMeasurements_r16_item,
35140       { "NR-Multi-RTT-AdditionalMeasurementElement-r16", "lpp.NR_Multi_RTT_AdditionalMeasurementElement_r16_element",
35141         FT_NONE, BASE_NONE, NULL, 0,
35142         NULL, HFILL }},
35143     { &hf_lpp_nr_UE_RxTxTimeDiffAdditional_r16,
35144       { "nr-UE-RxTxTimeDiffAdditional-r16", "lpp.nr_UE_RxTxTimeDiffAdditional_r16",
35145         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_UE_RxTxTimeDiffAdditional_r16_vals), 0,
35146         NULL, HFILL }},
35147     { &hf_lpp_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16,
35148       { "nr-UE-RxTxTimeDiffMeasurementInfoRequest-r16", "lpp.nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16",
35149         FT_UINT32, BASE_DEC, VALS(lpp_T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16_vals), 0,
35150         "T_nr_UE_RxTxTimeDiffMeasurementInfoRequest_r16", HFILL }},
35151     { &hf_lpp_nr_RequestedMeasurements_r16_01,
35152       { "nr-RequestedMeasurements-r16", "lpp.nr_RequestedMeasurements_r16",
35153         FT_BYTES, BASE_NONE, NULL, 0,
35154         "T_nr_RequestedMeasurements_r16_01", HFILL }},
35155     { &hf_lpp_nr_Multi_RTT_ReportConfig_r16,
35156       { "nr-Multi-RTT-ReportConfig-r16", "lpp.nr_Multi_RTT_ReportConfig_r16_element",
35157         FT_NONE, BASE_NONE, NULL, 0,
35158         NULL, HFILL }},
35159     { &hf_lpp_additionalPaths_r16_01,
35160       { "additionalPaths-r16", "lpp.additionalPaths_r16",
35161         FT_UINT32, BASE_DEC, VALS(lpp_T_additionalPaths_r16_01_vals), 0,
35162         "T_additionalPaths_r16_01", HFILL }},
35163     { &hf_lpp_maxDL_PRS_RxTxTimeDiffMeasPerTRP_r16,
35164       { "maxDL-PRS-RxTxTimeDiffMeasPerTRP-r16", "lpp.maxDL_PRS_RxTxTimeDiffMeasPerTRP_r16",
35165         FT_UINT32, BASE_DEC, NULL, 0,
35166         "INTEGER_1_4", HFILL }},
35167     { &hf_lpp_nr_Multi_RTT_PRS_Capability_r16,
35168       { "nr-Multi-RTT-PRS-Capability-r16", "lpp.nr_Multi_RTT_PRS_Capability_r16_element",
35169         FT_NONE, BASE_NONE, NULL, 0,
35170         "NR_DL_PRS_ResourcesCapability_r16", HFILL }},
35171     { &hf_lpp_nr_Multi_RTT_MeasurementCapability_r16,
35172       { "nr-Multi-RTT-MeasurementCapability-r16", "lpp.nr_Multi_RTT_MeasurementCapability_r16_element",
35173         FT_NONE, BASE_NONE, NULL, 0,
35174         NULL, HFILL }},
35175     { &hf_lpp_additionalPathsReport_r16_01,
35176       { "additionalPathsReport-r16", "lpp.additionalPathsReport_r16",
35177         FT_UINT32, BASE_DEC, VALS(lpp_T_additionalPathsReport_r16_01_vals), 0,
35178         "T_additionalPathsReport_r16_01", HFILL }},
35179     { &hf_lpp_periodicalReporting_r16_02,
35180       { "periodicalReporting-r16", "lpp.periodicalReporting_r16",
35181         FT_UINT32, BASE_DEC, VALS(lpp_T_periodicalReporting_r16_01_vals), 0,
35182         "T_periodicalReporting_r16_01", HFILL }},
35183     { &hf_lpp_maxNrOfRx_TX_MeasFR1_r16,
35184       { "maxNrOfRx-TX-MeasFR1-r16", "lpp.maxNrOfRx_TX_MeasFR1_r16",
35185         FT_UINT32, BASE_DEC, NULL, 0,
35186         "INTEGER_1_4", HFILL }},
35187     { &hf_lpp_maxNrOfRx_TX_MeasFR2_r16,
35188       { "maxNrOfRx-TX-MeasFR2-r16", "lpp.maxNrOfRx_TX_MeasFR2_r16",
35189         FT_UINT32, BASE_DEC, NULL, 0,
35190         "INTEGER_1_4", HFILL }},
35191     { &hf_lpp_supportOfRSRP_MeasFR1_r16,
35192       { "supportOfRSRP-MeasFR1-r16", "lpp.supportOfRSRP_MeasFR1_r16",
35193         FT_UINT32, BASE_DEC, VALS(lpp_T_supportOfRSRP_MeasFR1_r16_vals), 0,
35194         NULL, HFILL }},
35195     { &hf_lpp_supportOfRSRP_MeasFR2_r16,
35196       { "supportOfRSRP-MeasFR2-r16", "lpp.supportOfRSRP_MeasFR2_r16",
35197         FT_UINT32, BASE_DEC, VALS(lpp_T_supportOfRSRP_MeasFR2_r16_vals), 0,
35198         NULL, HFILL }},
35199     { &hf_lpp_srs_AssocPRS_MultiLayersFR1_r16,
35200       { "srs-AssocPRS-MultiLayersFR1-r16", "lpp.srs_AssocPRS_MultiLayersFR1_r16",
35201         FT_UINT32, BASE_DEC, VALS(lpp_T_srs_AssocPRS_MultiLayersFR1_r16_vals), 0,
35202         NULL, HFILL }},
35203     { &hf_lpp_srs_AssocPRS_MultiLayersFR2_r16,
35204       { "srs-AssocPRS-MultiLayersFR2-r16", "lpp.srs_AssocPRS_MultiLayersFR2_r16",
35205         FT_UINT32, BASE_DEC, VALS(lpp_T_srs_AssocPRS_MultiLayersFR2_r16_vals), 0,
35206         NULL, HFILL }},
35207     { &hf_lpp_locationServerErrorCauses_r16_03,
35208       { "locationServerErrorCauses-r16", "lpp.locationServerErrorCauses_r16_element",
35209         FT_NONE, BASE_NONE, NULL, 0,
35210         "NR_Multi_RTT_LocationServerErrorCauses_r16", HFILL }},
35211     { &hf_lpp_targetDeviceErrorCauses_r16_03,
35212       { "targetDeviceErrorCauses-r16", "lpp.targetDeviceErrorCauses_r16_element",
35213         FT_NONE, BASE_NONE, NULL, 0,
35214         "NR_Multi_RTT_TargetDeviceErrorCauses_r16", HFILL }},
35215     { &hf_lpp_cause_r16_06,
35216       { "cause-r16", "lpp.cause_r16",
35217         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_06_vals), 0,
35218         "T_cause_r16_06", HFILL }},
35219     { &hf_lpp_cause_r16_07,
35220       { "cause-r16", "lpp.cause_r16",
35221         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_r16_07_vals), 0,
35222         "T_cause_r16_07", HFILL }},
35223     { &hf_lpp_valueTag_r15,
35224       { "valueTag-r15", "lpp.valueTag_r15",
35225         FT_UINT32, BASE_DEC, NULL, 0,
35226         "INTEGER_0_63", HFILL }},
35227     { &hf_lpp_expirationTime_r15,
35228       { "expirationTime-r15", "lpp.expirationTime_r15",
35229         FT_STRING, BASE_NONE, NULL, 0,
35230         "UTCTime", HFILL }},
35231     { &hf_lpp_cipheringKeyData_r15,
35232       { "cipheringKeyData-r15", "lpp.cipheringKeyData_r15_element",
35233         FT_NONE, BASE_NONE, NULL, 0,
35234         NULL, HFILL }},
35235     { &hf_lpp_segmentationInfo_r15,
35236       { "segmentationInfo-r15", "lpp.segmentationInfo_r15_element",
35237         FT_NONE, BASE_NONE, NULL, 0,
35238         NULL, HFILL }},
35239     { &hf_lpp_assistanceDataElement_r15,
35240       { "assistanceDataElement-r15", "lpp.assistanceDataElement_r15",
35241         FT_BYTES, BASE_NONE, NULL, 0,
35242         "T_assistanceDataElement_r15", HFILL }},
35243     { &hf_lpp_cipherSetID_r15,
35244       { "cipherSetID-r15", "lpp.cipherSetID_r15",
35245         FT_UINT32, BASE_DEC, NULL, 0,
35246         "INTEGER_0_65535", HFILL }},
35247     { &hf_lpp_d0_r15,
35248       { "d0-r15", "lpp.d0_r15",
35249         FT_BYTES, BASE_NONE, NULL, 0,
35250         "BIT_STRING_SIZE_1_128", HFILL }},
35251     { &hf_lpp_segmentationOption_r15,
35252       { "segmentationOption-r15", "lpp.segmentationOption_r15",
35253         FT_UINT32, BASE_DEC, VALS(lpp_T_segmentationOption_r15_vals), 0,
35254         NULL, HFILL }},
35255     { &hf_lpp_assistanceDataSegmentType_r15,
35256       { "assistanceDataSegmentType-r15", "lpp.assistanceDataSegmentType_r15",
35257         FT_UINT32, BASE_DEC, VALS(lpp_T_assistanceDataSegmentType_r15_vals), 0,
35258         NULL, HFILL }},
35259     { &hf_lpp_assistanceDataSegmentNumber_r15,
35260       { "assistanceDataSegmentNumber-r15", "lpp.assistanceDataSegmentNumber_r15",
35261         FT_UINT32, BASE_DEC, NULL, 0,
35262         "INTEGER_0_63", HFILL }},
35263     { &hf_lpp_otdoa_ReferenceCellInfo_r15,
35264       { "otdoa-ReferenceCellInfo-r15", "lpp.otdoa_ReferenceCellInfo_r15_element",
35265         FT_NONE, BASE_NONE, NULL, 0,
35266         "OTDOA_ReferenceCellInfo", HFILL }},
35267     { &hf_lpp_otdoa_NeighbourCellInfo_r15,
35268       { "otdoa-NeighbourCellInfo-r15", "lpp.otdoa_NeighbourCellInfo_r15",
35269         FT_UINT32, BASE_DEC, NULL, 0,
35270         "OTDOA_NeighbourCellInfoList", HFILL }},
35271     { &hf_lpp_nr_trp_LocationInfo_r16,
35272       { "nr-trp-LocationInfo-r16", "lpp.nr_trp_LocationInfo_r16",
35273         FT_UINT32, BASE_DEC, NULL, 0,
35274         NULL, HFILL }},
35275     { &hf_lpp_nr_dl_prs_BeamInfo_r16,
35276       { "nr-dl-prs-BeamInfo-r16", "lpp.nr_dl_prs_BeamInfo_r16",
35277         FT_UINT32, BASE_DEC, NULL, 0,
35278         NULL, HFILL }},
35279     { &hf_lpp_nr_rtd_Info_r16,
35280       { "nr-rtd-Info-r16", "lpp.nr_rtd_Info_r16_element",
35281         FT_NONE, BASE_NONE, NULL, 0,
35282         NULL, HFILL }},
35283     { &hf_lpp_T_accessTypes_eutra,
35284       { "eutra", "lpp.T.accessTypes.eutra",
35285         FT_BOOLEAN, 8, NULL, 0x80,
35286         NULL, HFILL }},
35287     { &hf_lpp_T_accessTypes_utra,
35288       { "utra", "lpp.T.accessTypes.utra",
35289         FT_BOOLEAN, 8, NULL, 0x40,
35290         NULL, HFILL }},
35291     { &hf_lpp_T_accessTypes_gsm,
35292       { "gsm", "lpp.T.accessTypes.gsm",
35293         FT_BOOLEAN, 8, NULL, 0x20,
35294         NULL, HFILL }},
35295     { &hf_lpp_T_accessTypes_nb_iot,
35296       { "nb-iot", "lpp.T.accessTypes.nb.iot",
35297         FT_BOOLEAN, 8, NULL, 0x10,
35298         NULL, HFILL }},
35299     { &hf_lpp_T_accessTypes_nr_v1510,
35300       { "nr-v1510", "lpp.T.accessTypes.nr.v1510",
35301         FT_BOOLEAN, 8, NULL, 0x08,
35302         NULL, HFILL }},
35303     { &hf_lpp_UpdateCapabilities_r15_primaryCellID_r15,
35304       { "primaryCellID-r15", "lpp.UpdateCapabilities.r15.primaryCellID.r15",
35305         FT_BOOLEAN, 8, NULL, 0x80,
35306         NULL, HFILL }},
35307     { &hf_lpp_T_posModes_standalone,
35308       { "standalone", "lpp.T.posModes.standalone",
35309         FT_BOOLEAN, 8, NULL, 0x80,
35310         NULL, HFILL }},
35311     { &hf_lpp_T_posModes_ue_based,
35312       { "ue-based", "lpp.T.posModes.ue.based",
35313         FT_BOOLEAN, 8, NULL, 0x40,
35314         NULL, HFILL }},
35315     { &hf_lpp_T_posModes_ue_assisted,
35316       { "ue-assisted", "lpp.T.posModes.ue.assisted",
35317         FT_BOOLEAN, 8, NULL, 0x20,
35318         NULL, HFILL }},
35319     { &hf_lpp_T_lpp_message_segmentation_req_r14_serverToTarget,
35320       { "serverToTarget", "lpp.T.lpp.message.segmentation.req.r14.serverToTarget",
35321         FT_BOOLEAN, 8, NULL, 0x80,
35322         NULL, HFILL }},
35323     { &hf_lpp_T_lpp_message_segmentation_req_r14_targetToServer,
35324       { "targetToServer", "lpp.T.lpp.message.segmentation.req.r14.targetToServer",
35325         FT_BOOLEAN, 8, NULL, 0x40,
35326         NULL, HFILL }},
35327     { &hf_lpp_T_lpp_message_segmentation_r14_serverToTarget,
35328       { "serverToTarget", "lpp.T.lpp.message.segmentation.r14.serverToTarget",
35329         FT_BOOLEAN, 8, NULL, 0x80,
35330         NULL, HFILL }},
35331     { &hf_lpp_T_lpp_message_segmentation_r14_targetToServer,
35332       { "targetToServer", "lpp.T.lpp.message.segmentation.r14.targetToServer",
35333         FT_BOOLEAN, 8, NULL, 0x40,
35334         NULL, HFILL }},
35335     { &hf_lpp_LocationSource_r13_a_gnss,
35336       { "a-gnss", "lpp.LocationSource.r13.a.gnss",
35337         FT_BOOLEAN, 8, NULL, 0x80,
35338         NULL, HFILL }},
35339     { &hf_lpp_LocationSource_r13_wlan,
35340       { "wlan", "lpp.LocationSource.r13.wlan",
35341         FT_BOOLEAN, 8, NULL, 0x40,
35342         NULL, HFILL }},
35343     { &hf_lpp_LocationSource_r13_bt,
35344       { "bt", "lpp.LocationSource.r13.bt",
35345         FT_BOOLEAN, 8, NULL, 0x20,
35346         NULL, HFILL }},
35347     { &hf_lpp_LocationSource_r13_tbs,
35348       { "tbs", "lpp.LocationSource.r13.tbs",
35349         FT_BOOLEAN, 8, NULL, 0x10,
35350         NULL, HFILL }},
35351     { &hf_lpp_LocationSource_r13_sensor,
35352       { "sensor", "lpp.LocationSource.r13.sensor",
35353         FT_BOOLEAN, 8, NULL, 0x08,
35354         NULL, HFILL }},
35355     { &hf_lpp_LocationSource_r13_ha_gnss_v1510,
35356       { "ha-gnss-v1510", "lpp.LocationSource.r13.ha.gnss.v1510",
35357         FT_BOOLEAN, 8, NULL, 0x04,
35358         NULL, HFILL }},
35359     { &hf_lpp_LocationSource_r13_motion_sensor_v1550,
35360       { "motion-sensor-v1550", "lpp.LocationSource.r13.motion.sensor.v1550",
35361         FT_BOOLEAN, 8, NULL, 0x02,
35362         NULL, HFILL }},
35363     { &hf_lpp_LocationSource_r13_dl_tdoa_r16,
35364       { "dl-tdoa-r16", "lpp.LocationSource.r13.dl.tdoa.r16",
35365         FT_BOOLEAN, 8, NULL, 0x01,
35366         NULL, HFILL }},
35367     { &hf_lpp_LocationSource_r13_dl_aod_r16,
35368       { "dl-aod-r16", "lpp.LocationSource.r13.dl.aod.r16",
35369         FT_BOOLEAN, 8, NULL, 0x80,
35370         NULL, HFILL }},
35371     { &hf_lpp_T_adType_r14_prs,
35372       { "prs", "lpp.T.adType.r14.prs",
35373         FT_BOOLEAN, 8, NULL, 0x80,
35374         NULL, HFILL }},
35375     { &hf_lpp_T_adType_r14_nprs,
35376       { "nprs", "lpp.T.adType.r14.nprs",
35377         FT_BOOLEAN, 8, NULL, 0x40,
35378         NULL, HFILL }},
35379     { &hf_lpp_T_otdoa_Mode_ue_assisted,
35380       { "ue-assisted", "lpp.T.otdoa.Mode.ue.assisted",
35381         FT_BOOLEAN, 8, NULL, 0x80,
35382         NULL, HFILL }},
35383     { &hf_lpp_T_otdoa_Mode_ue_assisted_NB_r14,
35384       { "ue-assisted-NB-r14", "lpp.T.otdoa.Mode.ue.assisted.NB.r14",
35385         FT_BOOLEAN, 8, NULL, 0x40,
35386         NULL, HFILL }},
35387     { &hf_lpp_T_otdoa_Mode_ue_assisted_NB_TDD_r15,
35388       { "ue-assisted-NB-TDD-r15", "lpp.T.otdoa.Mode.ue.assisted.NB.TDD.r15",
35389         FT_BOOLEAN, 8, NULL, 0x20,
35390         NULL, HFILL }},
35391     { &hf_lpp_T_periodicAssistanceData_r15_solicited,
35392       { "solicited", "lpp.T.periodicAssistanceData.r15.solicited",
35393         FT_BOOLEAN, 8, NULL, 0x80,
35394         NULL, HFILL }},
35395     { &hf_lpp_T_periodicAssistanceData_r15_unsolicited,
35396       { "unsolicited", "lpp.T.periodicAssistanceData.r15.unsolicited",
35397         FT_BOOLEAN, 8, NULL, 0x40,
35398         NULL, HFILL }},
35399     { &hf_lpp_T_ionoModel_klobuchar,
35400       { "klobuchar", "lpp.T.ionoModel.klobuchar",
35401         FT_BOOLEAN, 8, NULL, 0x80,
35402         NULL, HFILL }},
35403     { &hf_lpp_T_ionoModel_neQuick,
35404       { "neQuick", "lpp.T.ionoModel.neQuick",
35405         FT_BOOLEAN, 8, NULL, 0x40,
35406         NULL, HFILL }},
35407     { &hf_lpp_T_ionoModel_klobuchar2_r16,
35408       { "klobuchar2-r16", "lpp.T.ionoModel.klobuchar2.r16",
35409         FT_BOOLEAN, 8, NULL, 0x20,
35410         NULL, HFILL }},
35411     { &hf_lpp_T_clockModel_model_1,
35412       { "model-1", "lpp.T.clockModel.model.1",
35413         FT_BOOLEAN, 8, NULL, 0x80,
35414         NULL, HFILL }},
35415     { &hf_lpp_T_clockModel_model_2,
35416       { "model-2", "lpp.T.clockModel.model.2",
35417         FT_BOOLEAN, 8, NULL, 0x40,
35418         NULL, HFILL }},
35419     { &hf_lpp_T_clockModel_model_3,
35420       { "model-3", "lpp.T.clockModel.model.3",
35421         FT_BOOLEAN, 8, NULL, 0x20,
35422         NULL, HFILL }},
35423     { &hf_lpp_T_clockModel_model_4,
35424       { "model-4", "lpp.T.clockModel.model.4",
35425         FT_BOOLEAN, 8, NULL, 0x10,
35426         NULL, HFILL }},
35427     { &hf_lpp_T_clockModel_model_5,
35428       { "model-5", "lpp.T.clockModel.model.5",
35429         FT_BOOLEAN, 8, NULL, 0x08,
35430         NULL, HFILL }},
35431     { &hf_lpp_T_clockModel_model_6,
35432       { "model-6", "lpp.T.clockModel.model.6",
35433         FT_BOOLEAN, 8, NULL, 0x04,
35434         NULL, HFILL }},
35435     { &hf_lpp_T_clockModel_model_7_r16,
35436       { "model-7-r16", "lpp.T.clockModel.model.7.r16",
35437         FT_BOOLEAN, 8, NULL, 0x02,
35438         NULL, HFILL }},
35439     { &hf_lpp_T_clockModel_model_8_r16,
35440       { "model-8-r16", "lpp.T.clockModel.model.8.r16",
35441         FT_BOOLEAN, 8, NULL, 0x01,
35442         NULL, HFILL }},
35443     { &hf_lpp_T_orbitModel_model_1,
35444       { "model-1", "lpp.T.orbitModel.model.1",
35445         FT_BOOLEAN, 8, NULL, 0x80,
35446         NULL, HFILL }},
35447     { &hf_lpp_T_orbitModel_model_2,
35448       { "model-2", "lpp.T.orbitModel.model.2",
35449         FT_BOOLEAN, 8, NULL, 0x40,
35450         NULL, HFILL }},
35451     { &hf_lpp_T_orbitModel_model_3,
35452       { "model-3", "lpp.T.orbitModel.model.3",
35453         FT_BOOLEAN, 8, NULL, 0x20,
35454         NULL, HFILL }},
35455     { &hf_lpp_T_orbitModel_model_4,
35456       { "model-4", "lpp.T.orbitModel.model.4",
35457         FT_BOOLEAN, 8, NULL, 0x10,
35458         NULL, HFILL }},
35459     { &hf_lpp_T_orbitModel_model_5,
35460       { "model-5", "lpp.T.orbitModel.model.5",
35461         FT_BOOLEAN, 8, NULL, 0x08,
35462         NULL, HFILL }},
35463     { &hf_lpp_T_orbitModel_model_6,
35464       { "model-6", "lpp.T.orbitModel.model.6",
35465         FT_BOOLEAN, 8, NULL, 0x04,
35466         NULL, HFILL }},
35467     { &hf_lpp_T_orbitModel_model_7_r16,
35468       { "model-7-r16", "lpp.T.orbitModel.model.7.r16",
35469         FT_BOOLEAN, 8, NULL, 0x02,
35470         NULL, HFILL }},
35471     { &hf_lpp_T_orbitModel_model_8_r16,
35472       { "model-8-r16", "lpp.T.orbitModel.model.8.r16",
35473         FT_BOOLEAN, 8, NULL, 0x01,
35474         NULL, HFILL }},
35475     { &hf_lpp_T_almanacModel_model_1,
35476       { "model-1", "lpp.T.almanacModel.model.1",
35477         FT_BOOLEAN, 8, NULL, 0x80,
35478         NULL, HFILL }},
35479     { &hf_lpp_T_almanacModel_model_2,
35480       { "model-2", "lpp.T.almanacModel.model.2",
35481         FT_BOOLEAN, 8, NULL, 0x40,
35482         NULL, HFILL }},
35483     { &hf_lpp_T_almanacModel_model_3,
35484       { "model-3", "lpp.T.almanacModel.model.3",
35485         FT_BOOLEAN, 8, NULL, 0x20,
35486         NULL, HFILL }},
35487     { &hf_lpp_T_almanacModel_model_4,
35488       { "model-4", "lpp.T.almanacModel.model.4",
35489         FT_BOOLEAN, 8, NULL, 0x10,
35490         NULL, HFILL }},
35491     { &hf_lpp_T_almanacModel_model_5,
35492       { "model-5", "lpp.T.almanacModel.model.5",
35493         FT_BOOLEAN, 8, NULL, 0x08,
35494         NULL, HFILL }},
35495     { &hf_lpp_T_almanacModel_model_6,
35496       { "model-6", "lpp.T.almanacModel.model.6",
35497         FT_BOOLEAN, 8, NULL, 0x04,
35498         NULL, HFILL }},
35499     { &hf_lpp_T_almanacModel_model_7,
35500       { "model-7", "lpp.T.almanacModel.model.7",
35501         FT_BOOLEAN, 8, NULL, 0x02,
35502         NULL, HFILL }},
35503     { &hf_lpp_T_utc_Model_model_1,
35504       { "model-1", "lpp.T.utc.Model.model.1",
35505         FT_BOOLEAN, 8, NULL, 0x80,
35506         NULL, HFILL }},
35507     { &hf_lpp_T_utc_Model_model_2,
35508       { "model-2", "lpp.T.utc.Model.model.2",
35509         FT_BOOLEAN, 8, NULL, 0x40,
35510         NULL, HFILL }},
35511     { &hf_lpp_T_utc_Model_model_3,
35512       { "model-3", "lpp.T.utc.Model.model.3",
35513         FT_BOOLEAN, 8, NULL, 0x20,
35514         NULL, HFILL }},
35515     { &hf_lpp_T_utc_Model_model_4,
35516       { "model-4", "lpp.T.utc.Model.model.4",
35517         FT_BOOLEAN, 8, NULL, 0x10,
35518         NULL, HFILL }},
35519     { &hf_lpp_T_utc_Model_model_5,
35520       { "model-5", "lpp.T.utc.Model.model.5",
35521         FT_BOOLEAN, 8, NULL, 0x08,
35522         NULL, HFILL }},
35523     { &hf_lpp_T_gnss_ids_gps,
35524       { "gps", "lpp.T.gnss.ids.gps",
35525         FT_BOOLEAN, 8, NULL, 0x80,
35526         NULL, HFILL }},
35527     { &hf_lpp_T_gnss_ids_sbas,
35528       { "sbas", "lpp.T.gnss.ids.sbas",
35529         FT_BOOLEAN, 8, NULL, 0x40,
35530         NULL, HFILL }},
35531     { &hf_lpp_T_gnss_ids_qzss,
35532       { "qzss", "lpp.T.gnss.ids.qzss",
35533         FT_BOOLEAN, 8, NULL, 0x20,
35534         NULL, HFILL }},
35535     { &hf_lpp_T_gnss_ids_galileo,
35536       { "galileo", "lpp.T.gnss.ids.galileo",
35537         FT_BOOLEAN, 8, NULL, 0x10,
35538         NULL, HFILL }},
35539     { &hf_lpp_T_gnss_ids_glonass,
35540       { "glonass", "lpp.T.gnss.ids.glonass",
35541         FT_BOOLEAN, 8, NULL, 0x08,
35542         NULL, HFILL }},
35543     { &hf_lpp_T_gnss_ids_bds,
35544       { "bds", "lpp.T.gnss.ids.bds",
35545         FT_BOOLEAN, 8, NULL, 0x04,
35546         NULL, HFILL }},
35547     { &hf_lpp_T_gnss_ids_navic_v1610,
35548       { "navic-v1610", "lpp.T.gnss.ids.navic.v1610",
35549         FT_BOOLEAN, 8, NULL, 0x02,
35550         NULL, HFILL }},
35551     { &hf_lpp_T_sbas_IDs_waas,
35552       { "waas", "lpp.T.sbas.IDs.waas",
35553         FT_BOOLEAN, 8, NULL, 0x80,
35554         NULL, HFILL }},
35555     { &hf_lpp_T_sbas_IDs_egnos,
35556       { "egnos", "lpp.T.sbas.IDs.egnos",
35557         FT_BOOLEAN, 8, NULL, 0x40,
35558         NULL, HFILL }},
35559     { &hf_lpp_T_sbas_IDs_msas,
35560       { "msas", "lpp.T.sbas.IDs.msas",
35561         FT_BOOLEAN, 8, NULL, 0x20,
35562         NULL, HFILL }},
35563     { &hf_lpp_T_sbas_IDs_gagan,
35564       { "gagan", "lpp.T.sbas.IDs.gagan",
35565         FT_BOOLEAN, 8, NULL, 0x10,
35566         NULL, HFILL }},
35567     { &hf_lpp_T_requestedMeasurements_rsrpReq,
35568       { "rsrpReq", "lpp.T.requestedMeasurements.rsrpReq",
35569         FT_BOOLEAN, 8, NULL, 0x80,
35570         NULL, HFILL }},
35571     { &hf_lpp_T_requestedMeasurements_rsrqReq,
35572       { "rsrqReq", "lpp.T.requestedMeasurements.rsrqReq",
35573         FT_BOOLEAN, 8, NULL, 0x40,
35574         NULL, HFILL }},
35575     { &hf_lpp_T_requestedMeasurements_ueRxTxReq,
35576       { "ueRxTxReq", "lpp.T.requestedMeasurements.ueRxTxReq",
35577         FT_BOOLEAN, 8, NULL, 0x20,
35578         NULL, HFILL }},
35579     { &hf_lpp_T_requestedMeasurements_nrsrpReq_r14,
35580       { "nrsrpReq-r14", "lpp.T.requestedMeasurements.nrsrpReq.r14",
35581         FT_BOOLEAN, 8, NULL, 0x10,
35582         NULL, HFILL }},
35583     { &hf_lpp_T_requestedMeasurements_nrsrqReq_r14,
35584       { "nrsrqReq-r14", "lpp.T.requestedMeasurements.nrsrqReq.r14",
35585         FT_BOOLEAN, 8, NULL, 0x08,
35586         NULL, HFILL }},
35587     { &hf_lpp_T_ecid_MeasSupported_rsrpSup,
35588       { "rsrpSup", "lpp.T.ecid.MeasSupported.rsrpSup",
35589         FT_BOOLEAN, 8, NULL, 0x80,
35590         NULL, HFILL }},
35591     { &hf_lpp_T_ecid_MeasSupported_rsrqSup,
35592       { "rsrqSup", "lpp.T.ecid.MeasSupported.rsrqSup",
35593         FT_BOOLEAN, 8, NULL, 0x40,
35594         NULL, HFILL }},
35595     { &hf_lpp_T_ecid_MeasSupported_ueRxTxSup,
35596       { "ueRxTxSup", "lpp.T.ecid.MeasSupported.ueRxTxSup",
35597         FT_BOOLEAN, 8, NULL, 0x20,
35598         NULL, HFILL }},
35599     { &hf_lpp_T_ecid_MeasSupported_nrsrpSup_r14,
35600       { "nrsrpSup-r14", "lpp.T.ecid.MeasSupported.nrsrpSup.r14",
35601         FT_BOOLEAN, 8, NULL, 0x10,
35602         NULL, HFILL }},
35603     { &hf_lpp_T_ecid_MeasSupported_nrsrqSup_r14,
35604       { "nrsrqSup-r14", "lpp.T.ecid.MeasSupported.nrsrqSup.r14",
35605         FT_BOOLEAN, 8, NULL, 0x08,
35606         NULL, HFILL }},
35607     { &hf_lpp_T_mbsRequestedMeasurements_r14_rssi,
35608       { "rssi", "lpp.T.mbsRequestedMeasurements.r14.rssi",
35609         FT_BOOLEAN, 8, NULL, 0x80,
35610         NULL, HFILL }},
35611     { &hf_lpp_T_tbs_Modes_r13_standalone,
35612       { "standalone", "lpp.T.tbs.Modes.r13.standalone",
35613         FT_BOOLEAN, 8, NULL, 0x80,
35614         NULL, HFILL }},
35615     { &hf_lpp_T_tbs_Modes_r13_ue_assisted,
35616       { "ue-assisted", "lpp.T.tbs.Modes.r13.ue.assisted",
35617         FT_BOOLEAN, 8, NULL, 0x40,
35618         NULL, HFILL }},
35619     { &hf_lpp_T_tbs_Modes_r13_ue_based,
35620       { "ue-based", "lpp.T.tbs.Modes.r13.ue.based",
35621         FT_BOOLEAN, 8, NULL, 0x20,
35622         NULL, HFILL }},
35623     { &hf_lpp_T_mbs_ConfigSupport_r14_tb1,
35624       { "tb1", "lpp.T.mbs.ConfigSupport.r14.tb1",
35625         FT_BOOLEAN, 8, NULL, 0x80,
35626         NULL, HFILL }},
35627     { &hf_lpp_T_mbs_ConfigSupport_r14_tb2,
35628       { "tb2", "lpp.T.mbs.ConfigSupport.r14.tb2",
35629         FT_BOOLEAN, 8, NULL, 0x40,
35630         NULL, HFILL }},
35631     { &hf_lpp_T_mbs_ConfigSupport_r14_tb3,
35632       { "tb3", "lpp.T.mbs.ConfigSupport.r14.tb3",
35633         FT_BOOLEAN, 8, NULL, 0x20,
35634         NULL, HFILL }},
35635     { &hf_lpp_T_mbs_ConfigSupport_r14_tb4,
35636       { "tb4", "lpp.T.mbs.ConfigSupport.r14.tb4",
35637         FT_BOOLEAN, 8, NULL, 0x10,
35638         NULL, HFILL }},
35639     { &hf_lpp_T_sensor_Modes_r13_standalone,
35640       { "standalone", "lpp.T.sensor.Modes.r13.standalone",
35641         FT_BOOLEAN, 8, NULL, 0x80,
35642         NULL, HFILL }},
35643     { &hf_lpp_T_sensor_Modes_r13_ue_assisted,
35644       { "ue-assisted", "lpp.T.sensor.Modes.r13.ue.assisted",
35645         FT_BOOLEAN, 8, NULL, 0x40,
35646         NULL, HFILL }},
35647     { &hf_lpp_T_sensor_Modes_r13_ue_based,
35648       { "ue-based", "lpp.T.sensor.Modes.r13.ue.based",
35649         FT_BOOLEAN, 8, NULL, 0x20,
35650         NULL, HFILL }},
35651     { &hf_lpp_T_requestedMeasurements_r13_rssi,
35652       { "rssi", "lpp.T.requestedMeasurements.r13.rssi",
35653         FT_BOOLEAN, 8, NULL, 0x80,
35654         NULL, HFILL }},
35655     { &hf_lpp_T_requestedMeasurements_r13_rtt,
35656       { "rtt", "lpp.T.requestedMeasurements.r13.rtt",
35657         FT_BOOLEAN, 8, NULL, 0x40,
35658         NULL, HFILL }},
35659     { &hf_lpp_T_wlan_Modes_r13_standalone,
35660       { "standalone", "lpp.T.wlan.Modes.r13.standalone",
35661         FT_BOOLEAN, 8, NULL, 0x80,
35662         NULL, HFILL }},
35663     { &hf_lpp_T_wlan_Modes_r13_ue_assisted,
35664       { "ue-assisted", "lpp.T.wlan.Modes.r13.ue.assisted",
35665         FT_BOOLEAN, 8, NULL, 0x40,
35666         NULL, HFILL }},
35667     { &hf_lpp_T_wlan_Modes_r13_ue_based,
35668       { "ue-based", "lpp.T.wlan.Modes.r13.ue.based",
35669         FT_BOOLEAN, 8, NULL, 0x20,
35670         NULL, HFILL }},
35671     { &hf_lpp_T_wlan_MeasSupported_r13_rssi_r13,
35672       { "rssi-r13", "lpp.T.wlan.MeasSupported.r13.rssi.r13",
35673         FT_BOOLEAN, 8, NULL, 0x80,
35674         NULL, HFILL }},
35675     { &hf_lpp_T_wlan_MeasSupported_r13_rtt_r13,
35676       { "rtt-r13", "lpp.T.wlan.MeasSupported.r13.rtt.r13",
35677         FT_BOOLEAN, 8, NULL, 0x40,
35678         NULL, HFILL }},
35679     { &hf_lpp_T_wlan_AP_AD_Supported_r14_ap_identifier,
35680       { "ap-identifier", "lpp.T.wlan.AP.AD.Supported.r14.ap.identifier",
35681         FT_BOOLEAN, 8, NULL, 0x80,
35682         NULL, HFILL }},
35683     { &hf_lpp_T_wlan_AP_AD_Supported_r14_ap_location,
35684       { "ap-location", "lpp.T.wlan.AP.AD.Supported.r14.ap.location",
35685         FT_BOOLEAN, 8, NULL, 0x40,
35686         NULL, HFILL }},
35687     { &hf_lpp_T_requestedAD_r14_ap_identifier,
35688       { "ap-identifier", "lpp.T.requestedAD.r14.ap.identifier",
35689         FT_BOOLEAN, 8, NULL, 0x80,
35690         NULL, HFILL }},
35691     { &hf_lpp_T_requestedAD_r14_ap_location,
35692       { "ap-location", "lpp.T.requestedAD.r14.ap.location",
35693         FT_BOOLEAN, 8, NULL, 0x40,
35694         NULL, HFILL }},
35695     { &hf_lpp_T_requestedMeasurements_r13_01_rssi,
35696       { "rssi", "lpp.T.requestedMeasurements.r13.01.rssi",
35697         FT_BOOLEAN, 8, NULL, 0x80,
35698         NULL, HFILL }},
35699     { &hf_lpp_T_bt_Modes_r13_standalone,
35700       { "standalone", "lpp.T.bt.Modes.r13.standalone",
35701         FT_BOOLEAN, 8, NULL, 0x80,
35702         NULL, HFILL }},
35703     { &hf_lpp_T_bt_Modes_r13_ue_assisted,
35704       { "ue-assisted", "lpp.T.bt.Modes.r13.ue.assisted",
35705         FT_BOOLEAN, 8, NULL, 0x40,
35706         NULL, HFILL }},
35707     { &hf_lpp_T_bt_MeasSupported_r13_rssi_r13,
35708       { "rssi-r13", "lpp.T.bt.MeasSupported.r13.rssi.r13",
35709         FT_BOOLEAN, 8, NULL, 0x80,
35710         NULL, HFILL }},
35711     { &hf_lpp_T_requestedMeasurements_r16_ssrsrpReq,
35712       { "ssrsrpReq", "lpp.T.requestedMeasurements.r16.ssrsrpReq",
35713         FT_BOOLEAN, 8, NULL, 0x80,
35714         NULL, HFILL }},
35715     { &hf_lpp_T_requestedMeasurements_r16_ssrsrqReq,
35716       { "ssrsrqReq", "lpp.T.requestedMeasurements.r16.ssrsrqReq",
35717         FT_BOOLEAN, 8, NULL, 0x40,
35718         NULL, HFILL }},
35719     { &hf_lpp_T_requestedMeasurements_r16_csirsrpReq,
35720       { "csirsrpReq", "lpp.T.requestedMeasurements.r16.csirsrpReq",
35721         FT_BOOLEAN, 8, NULL, 0x20,
35722         NULL, HFILL }},
35723     { &hf_lpp_T_requestedMeasurements_r16_csirsrqReq,
35724       { "csirsrqReq", "lpp.T.requestedMeasurements.r16.csirsrqReq",
35725         FT_BOOLEAN, 8, NULL, 0x10,
35726         NULL, HFILL }},
35727     { &hf_lpp_T_nr_ECID_MeasSupported_r16_ssrsrpSup,
35728       { "ssrsrpSup", "lpp.T.nr.ECID.MeasSupported.r16.ssrsrpSup",
35729         FT_BOOLEAN, 8, NULL, 0x80,
35730         NULL, HFILL }},
35731     { &hf_lpp_T_nr_ECID_MeasSupported_r16_ssrsrqSup,
35732       { "ssrsrqSup", "lpp.T.nr.ECID.MeasSupported.r16.ssrsrqSup",
35733         FT_BOOLEAN, 8, NULL, 0x40,
35734         NULL, HFILL }},
35735     { &hf_lpp_T_nr_ECID_MeasSupported_r16_csirsrpSup,
35736       { "csirsrpSup", "lpp.T.nr.ECID.MeasSupported.r16.csirsrpSup",
35737         FT_BOOLEAN, 8, NULL, 0x20,
35738         NULL, HFILL }},
35739     { &hf_lpp_T_nr_ECID_MeasSupported_r16_csirsrqSup,
35740       { "csirsrqSup", "lpp.T.nr.ECID.MeasSupported.r16.csirsrqSup",
35741         FT_BOOLEAN, 8, NULL, 0x10,
35742         NULL, HFILL }},
35743     { &hf_lpp_T_nr_AdType_r16_dl_prs,
35744       { "dl-prs", "lpp.T.nr.AdType.r16.dl.prs",
35745         FT_BOOLEAN, 8, NULL, 0x80,
35746         NULL, HFILL }},
35747     { &hf_lpp_T_nr_AdType_r16_posCalc,
35748       { "posCalc", "lpp.T.nr.AdType.r16.posCalc",
35749         FT_BOOLEAN, 8, NULL, 0x40,
35750         NULL, HFILL }},
35751     { &hf_lpp_T_nr_RequestedMeasurements_r16_prsrsrpReq,
35752       { "prsrsrpReq", "lpp.T.nr.RequestedMeasurements.r16.prsrsrpReq",
35753         FT_BOOLEAN, 8, NULL, 0x80,
35754         NULL, HFILL }},
35755     { &hf_lpp_T_nr_AdType_r16_01_dl_prs,
35756       { "dl-prs", "lpp.T.nr.AdType.r16.01.dl.prs",
35757         FT_BOOLEAN, 8, NULL, 0x80,
35758         NULL, HFILL }},
35759     { &hf_lpp_T_nr_AdType_r16_01_posCalc,
35760       { "posCalc", "lpp.T.nr.AdType.r16.01.posCalc",
35761         FT_BOOLEAN, 8, NULL, 0x40,
35762         NULL, HFILL }},
35763     { &hf_lpp_T_nr_AdType_r16_02_dl_prs,
35764       { "dl-prs", "lpp.T.nr.AdType.r16.02.dl.prs",
35765         FT_BOOLEAN, 8, NULL, 0x80,
35766         NULL, HFILL }},
35767     { &hf_lpp_T_nr_AdType_r16_02_ul_srs,
35768       { "ul-srs", "lpp.T.nr.AdType.r16.02.ul.srs",
35769         FT_BOOLEAN, 8, NULL, 0x40,
35770         NULL, HFILL }},
35771     { &hf_lpp_T_nr_RequestedMeasurements_r16_01_prsrsrpReq,
35772       { "prsrsrpReq", "lpp.T.nr.RequestedMeasurements.r16.01.prsrsrpReq",
35773         FT_BOOLEAN, 8, NULL, 0x80,
35774         NULL, HFILL }},
35775 
35776 /*--- End of included file: packet-lpp-hfarr.c ---*/
35777 #line 2079 "./asn1/lpp/packet-lpp-template.c"
35778     { &hf_lpp_svHealthExt_v1240_e5bhs,
35779       { "E5b Signal Health Status", "lpp.svHealthExt_v1240.e5bhs",
35780         FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
35781         NULL, HFILL }},
35782     { &hf_lpp_svHealthExt_v1240_e1_bhs,
35783       { "E1-B Signal Health Status", "lpp.svHealthExt_v1240.e1_bhs",
35784         FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
35785         NULL, HFILL }},
35786     { &hf_lpp_kepSV_StatusINAV_e5bhs,
35787       { "E5b Signal Health Status", "lpp.kepSV_StatusINAV.e5bhs",
35788         FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
35789         NULL, HFILL }},
35790     { &hf_lpp_kepSV_StatusINAV_e1_bhs,
35791       { "E1-B Signal Health Status", "lpp.kepSV_StatusINAV.e1_bhs",
35792         FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
35793         NULL, HFILL }},
35794     { &hf_lpp_kepSV_StatusFNAV_e5ahs,
35795       { "E5a Signal Health Status", "lpp.kepSV_StatusFNAV.e5ahs",
35796         FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
35797         NULL, HFILL }},
35798     { &hf_lpp_bdsSvHealth_r12_sat_clock,
35799       { "Satellite Clock", "lpp.bdsSvHealth_r12.sat_clock",
35800         FT_BOOLEAN, BASE_NONE, TFS(&tfs_ok_error), 0,
35801         NULL, HFILL }},
35802     { &hf_lpp_bdsSvHealth_r12_b1i,
35803       { "B1I Signal", "lpp.bdsSvHealth_r12.b1i",
35804         FT_BOOLEAN, BASE_NONE, TFS(&lpp_bdsSvHealth_r12_b1i_b2i_value), 0,
35805         NULL, HFILL }},
35806     { &hf_lpp_bdsSvHealth_r12_b2i,
35807       { "B2I Signal", "lpp.bdsSvHealth_r12.b2i",
35808         FT_BOOLEAN, BASE_NONE, TFS(&lpp_bdsSvHealth_r12_b1i_b2i_value), 0,
35809         NULL, HFILL }},
35810     { &hf_lpp_bdsSvHealth_r12_nav,
35811       { "NAV Message", "lpp.bdsSvHealth_r12.nav",
35812         FT_BOOLEAN, BASE_NONE, TFS(&lpp_bdsSvHealth_r12_nav_value), 0,
35813         NULL, HFILL }},
35814     { &hf_lpp_AssistanceDataSIBelement_r15_PDU,
35815       { "AssistanceDataSIBelement-r15", "lpp.AssistanceDataSIBelement_r15_element",
35816         FT_NONE, BASE_NONE, NULL, 0,
35817         NULL, HFILL }},
35818   };
35819 
35820   /* List of subtrees */
35821   static gint *ett[] = {
35822     &ett_lpp,
35823     &ett_lpp_svHealthExt_v1240,
35824     &ett_kepSV_StatusINAV,
35825     &ett_kepSV_StatusFNAV,
35826     &ett_lpp_bdsSvHealth_r12,
35827     &ett_lpp_assistanceDataElement_r15,
35828 
35829 /*--- Included file: packet-lpp-ettarr.c ---*/
35830 #line 1 "./asn1/lpp/packet-lpp-ettarr.c"
35831     &ett_lpp_LPP_Message,
35832     &ett_lpp_Acknowledgement,
35833     &ett_lpp_LPP_MessageBody,
35834     &ett_lpp_T_c1,
35835     &ett_lpp_T_messageClassExtension,
35836     &ett_lpp_LPP_TransactionID,
35837     &ett_lpp_RequestCapabilities,
35838     &ett_lpp_T_criticalExtensions,
35839     &ett_lpp_T_c1_01,
35840     &ett_lpp_T_criticalExtensionsFuture,
35841     &ett_lpp_RequestCapabilities_r9_IEs,
35842     &ett_lpp_ProvideCapabilities,
35843     &ett_lpp_T_criticalExtensions_01,
35844     &ett_lpp_T_c1_02,
35845     &ett_lpp_T_criticalExtensionsFuture_01,
35846     &ett_lpp_ProvideCapabilities_r9_IEs,
35847     &ett_lpp_RequestAssistanceData,
35848     &ett_lpp_T_criticalExtensions_02,
35849     &ett_lpp_T_c1_03,
35850     &ett_lpp_T_criticalExtensionsFuture_02,
35851     &ett_lpp_RequestAssistanceData_r9_IEs,
35852     &ett_lpp_ProvideAssistanceData,
35853     &ett_lpp_T_criticalExtensions_03,
35854     &ett_lpp_T_c1_04,
35855     &ett_lpp_T_criticalExtensionsFuture_03,
35856     &ett_lpp_ProvideAssistanceData_r9_IEs,
35857     &ett_lpp_RequestLocationInformation,
35858     &ett_lpp_T_criticalExtensions_04,
35859     &ett_lpp_T_c1_05,
35860     &ett_lpp_T_criticalExtensionsFuture_04,
35861     &ett_lpp_RequestLocationInformation_r9_IEs,
35862     &ett_lpp_ProvideLocationInformation,
35863     &ett_lpp_T_criticalExtensions_05,
35864     &ett_lpp_T_c1_06,
35865     &ett_lpp_T_criticalExtensionsFuture_05,
35866     &ett_lpp_ProvideLocationInformation_r9_IEs,
35867     &ett_lpp_Abort,
35868     &ett_lpp_T_criticalExtensions_06,
35869     &ett_lpp_T_c1_07,
35870     &ett_lpp_T_criticalExtensionsFuture_06,
35871     &ett_lpp_Abort_r9_IEs,
35872     &ett_lpp_Error,
35873     &ett_lpp_T_criticalExtensionsFuture_07,
35874     &ett_lpp_Error_r9_IEs,
35875     &ett_lpp_AccessTypes,
35876     &ett_lpp_T_accessTypes,
35877     &ett_lpp_CarrierFreq_NB_r14,
35878     &ett_lpp_CellGlobalIdEUTRA_AndUTRA,
35879     &ett_lpp_T_plmn_Identity,
35880     &ett_lpp_T_mcc,
35881     &ett_lpp_T_mnc,
35882     &ett_lpp_T_cellIdentity,
35883     &ett_lpp_CellGlobalIdGERAN,
35884     &ett_lpp_T_plmn_Identity_01,
35885     &ett_lpp_T_mcc_01,
35886     &ett_lpp_T_mnc_01,
35887     &ett_lpp_ECGI,
35888     &ett_lpp_T_mcc_02,
35889     &ett_lpp_T_mnc_02,
35890     &ett_lpp_Ellipsoid_Point,
35891     &ett_lpp_Ellipsoid_PointWithUncertaintyCircle,
35892     &ett_lpp_EllipsoidPointWithUncertaintyEllipse,
35893     &ett_lpp_EllipsoidPointWithAltitude,
35894     &ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
35895     &ett_lpp_EllipsoidArc,
35896     &ett_lpp_EPDU_Sequence,
35897     &ett_lpp_EPDU,
35898     &ett_lpp_EPDU_Identifier,
35899     &ett_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15,
35900     &ett_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15,
35901     &ett_lpp_HorizontalVelocity,
35902     &ett_lpp_HorizontalWithVerticalVelocity,
35903     &ett_lpp_HorizontalVelocityWithUncertainty,
35904     &ett_lpp_HorizontalWithVerticalVelocityAndUncertainty,
35905     &ett_lpp_LocationCoordinateTypes,
35906     &ett_lpp_NCGI_r15,
35907     &ett_lpp_T_mcc_r15,
35908     &ett_lpp_T_mnc_r15,
35909     &ett_lpp_PeriodicAssistanceDataControlParameters_r15,
35910     &ett_lpp_PeriodicSessionID_r15,
35911     &ett_lpp_UpdateCapabilities_r15,
35912     &ett_lpp_Polygon,
35913     &ett_lpp_PolygonPoints,
35914     &ett_lpp_PositioningModes,
35915     &ett_lpp_T_posModes,
35916     &ett_lpp_VelocityTypes,
35917     &ett_lpp_CommonIEsRequestCapabilities,
35918     &ett_lpp_T_lpp_message_segmentation_req_r14,
35919     &ett_lpp_CommonIEsProvideCapabilities,
35920     &ett_lpp_T_lpp_message_segmentation_r14,
35921     &ett_lpp_CommonIEsRequestAssistanceData,
35922     &ett_lpp_CommonIEsProvideAssistanceData,
35923     &ett_lpp_CommonIEsRequestLocationInformation,
35924     &ett_lpp_PeriodicalReportingCriteria,
35925     &ett_lpp_TriggeredReportingCriteria,
35926     &ett_lpp_QoS,
35927     &ett_lpp_HorizontalAccuracy,
35928     &ett_lpp_VerticalAccuracy,
35929     &ett_lpp_HorizontalAccuracyExt_r15,
35930     &ett_lpp_VerticalAccuracyExt_r15,
35931     &ett_lpp_ResponseTime,
35932     &ett_lpp_ResponseTimeNB_r14,
35933     &ett_lpp_MessageSizeLimitNB_r14,
35934     &ett_lpp_CommonIEsProvideLocationInformation,
35935     &ett_lpp_LocationCoordinates,
35936     &ett_lpp_Velocity,
35937     &ett_lpp_LocationError,
35938     &ett_lpp_LocationSource_r13,
35939     &ett_lpp_CommonIEsAbort,
35940     &ett_lpp_CommonIEsError,
35941     &ett_lpp_DL_PRS_ID_Info_r16,
35942     &ett_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16,
35943     &ett_lpp_NR_AdditionalPathList_r16,
35944     &ett_lpp_NR_AdditionalPath_r16,
35945     &ett_lpp_T_nr_RelativeTimeDifference_r16,
35946     &ett_lpp_NR_DL_PRS_AssistanceData_r16,
35947     &ett_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16,
35948     &ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16,
35949     &ett_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16,
35950     &ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16,
35951     &ett_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16,
35952     &ett_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16,
35953     &ett_lpp_NR_DL_PRS_SFN0_Offset_r16,
35954     &ett_lpp_NR_DL_PRS_BeamInfo_r16,
35955     &ett_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16,
35956     &ett_lpp_NR_DL_PRS_BeamInfoPerTRP_r16,
35957     &ett_lpp_DL_PRS_BeamInfoSet_r16,
35958     &ett_lpp_DL_PRS_BeamInfoResourceSet_r16,
35959     &ett_lpp_DL_PRS_BeamInfoElement_r16,
35960     &ett_lpp_LCS_GCS_TranslationParameter_r16,
35961     &ett_lpp_NR_DL_PRS_Info_r16,
35962     &ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16,
35963     &ett_lpp_NR_DL_PRS_ResourceSet_r16,
35964     &ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16,
35965     &ett_lpp_DL_PRS_MutingOption1_r16,
35966     &ett_lpp_DL_PRS_MutingOption2_r16,
35967     &ett_lpp_NR_MutingPattern_r16,
35968     &ett_lpp_NR_DL_PRS_Resource_r16,
35969     &ett_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16,
35970     &ett_lpp_DL_PRS_QCL_Info_r16,
35971     &ett_lpp_T_ssb_r16,
35972     &ett_lpp_T_dl_PRS_r16,
35973     &ett_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16,
35974     &ett_lpp_T_scs15_r16,
35975     &ett_lpp_T_scs30_r16,
35976     &ett_lpp_T_scs60_r16,
35977     &ett_lpp_T_scs120_r16,
35978     &ett_lpp_NR_DL_PRS_ProcessingCapability_r16,
35979     &ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16,
35980     &ett_lpp_PRS_ProcessingCapabilityPerBand_r16,
35981     &ett_lpp_T_supportedBandwidthPRS_r16,
35982     &ett_lpp_T_durationOfPRS_Processing_r16,
35983     &ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16,
35984     &ett_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16,
35985     &ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16,
35986     &ett_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16,
35987     &ett_lpp_NR_DL_PRS_ResourcesCapability_r16,
35988     &ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16,
35989     &ett_lpp_DL_PRS_ResourcesCapabilityPerBand_r16,
35990     &ett_lpp_DL_PRS_ResourcesBandCombinationList_r16,
35991     &ett_lpp_DL_PRS_ResourcesBandCombination_r16,
35992     &ett_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16,
35993     &ett_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16,
35994     &ett_lpp_T_fr1_FR2Mix_r16,
35995     &ett_lpp_NR_PositionCalculationAssistance_r16,
35996     &ett_lpp_NR_RTD_Info_r16,
35997     &ett_lpp_ReferenceTRP_RTD_Info_r16,
35998     &ett_lpp_T_refTime_r16,
35999     &ett_lpp_RTD_InfoList_r16,
36000     &ett_lpp_RTD_InfoListPerFreqLayer_r16,
36001     &ett_lpp_RTD_InfoElement_r16,
36002     &ett_lpp_NR_SelectedDL_PRS_IndexList_r16,
36003     &ett_lpp_NR_SelectedDL_PRS_PerFreq_r16,
36004     &ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16,
36005     &ett_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16,
36006     &ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16,
36007     &ett_lpp_DL_SelectedPRS_ResourceSetIndex_r16,
36008     &ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16,
36009     &ett_lpp_DL_SelectedPRS_ResourceIndex_r16,
36010     &ett_lpp_NR_SSB_Config_r16,
36011     &ett_lpp_T_ssb_PositionsInBurst_r16,
36012     &ett_lpp_NR_TimeStamp_r16,
36013     &ett_lpp_T_nr_Slot_r16,
36014     &ett_lpp_NR_TimingQuality_r16,
36015     &ett_lpp_NR_TRP_LocationInfo_r16,
36016     &ett_lpp_NR_TRP_LocationInfoPerFreqLayer_r16,
36017     &ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16,
36018     &ett_lpp_TRP_LocationInfoElement_r16,
36019     &ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16,
36020     &ett_lpp_DL_PRS_ResourceSets_TRP_Element_r16,
36021     &ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16,
36022     &ett_lpp_DL_PRS_Resource_ARP_Element_r16,
36023     &ett_lpp_NR_UL_SRS_Capability_r16,
36024     &ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16,
36025     &ett_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16,
36026     &ett_lpp_SRS_CapabilityPerBand_r16,
36027     &ett_lpp_OLPC_SRS_Pos_r16,
36028     &ett_lpp_SpatialRelationsSRS_Pos_r16,
36029     &ett_lpp_SRS_PosResourcesPerBand_r16,
36030     &ett_lpp_ReferencePoint_r16,
36031     &ett_lpp_T_referencePointGeographicLocation_r16,
36032     &ett_lpp_RelativeLocation_r16,
36033     &ett_lpp_Delta_Latitude_r16,
36034     &ett_lpp_Delta_Longitude_r16,
36035     &ett_lpp_Delta_Height_r16,
36036     &ett_lpp_LocationUncertainty_r16,
36037     &ett_lpp_OTDOA_ProvideAssistanceData,
36038     &ett_lpp_OTDOA_ReferenceCellInfo,
36039     &ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info,
36040     &ett_lpp_PRS_Info,
36041     &ett_lpp_T_prs_MutingInfo_r9,
36042     &ett_lpp_T_prsHoppingInfo_r14,
36043     &ett_lpp_T_nb4_r14,
36044     &ett_lpp_TDD_Config_v1520,
36045     &ett_lpp_OTDOA_NeighbourCellInfoList,
36046     &ett_lpp_OTDOA_NeighbourFreqInfo,
36047     &ett_lpp_OTDOA_NeighbourCellInfoElement,
36048     &ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14,
36049     &ett_lpp_Add_PRSconfigNeighbourElement_r14,
36050     &ett_lpp_OTDOA_ReferenceCellInfoNB_r14,
36051     &ett_lpp_PRS_Info_NB_r14,
36052     &ett_lpp_NPRS_Info_r14,
36053     &ett_lpp_T_partA_r14,
36054     &ett_lpp_T_nprsBitmap_r14,
36055     &ett_lpp_T_nprs_MutingInfoA_r14,
36056     &ett_lpp_T_partB_r14,
36057     &ett_lpp_T_nprs_MutingInfoB_r14,
36058     &ett_lpp_T_partA_TDD_r15,
36059     &ett_lpp_T_nprsBitmap_r15,
36060     &ett_lpp_T_nprs_MutingInfoA_r15,
36061     &ett_lpp_OTDOA_NeighbourCellInfoListNB_r14,
36062     &ett_lpp_OTDOA_NeighbourCellInfoNB_r14,
36063     &ett_lpp_OTDOA_RequestAssistanceData,
36064     &ett_lpp_T_adType_r14,
36065     &ett_lpp_OTDOA_ProvideLocationInformation,
36066     &ett_lpp_OTDOA_SignalMeasurementInformation,
36067     &ett_lpp_NeighbourMeasurementList,
36068     &ett_lpp_NeighbourMeasurementElement,
36069     &ett_lpp_AdditionalPathList_r14,
36070     &ett_lpp_MotionTimeSource_r15,
36071     &ett_lpp_OTDOA_SignalMeasurementInformation_NB_r14,
36072     &ett_lpp_NeighbourMeasurementList_NB_r14,
36073     &ett_lpp_NeighbourMeasurementElement_NB_r14,
36074     &ett_lpp_OTDOA_MeasQuality,
36075     &ett_lpp_AdditionalPath_r14,
36076     &ett_lpp_OTDOA_RequestLocationInformation,
36077     &ett_lpp_OTDOA_ProvideCapabilities,
36078     &ett_lpp_T_otdoa_Mode,
36079     &ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA,
36080     &ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0,
36081     &ett_lpp_SupportedBandEUTRA,
36082     &ett_lpp_SupportedBandEUTRA_v9a0,
36083     &ett_lpp_OTDOA_RequestCapabilities,
36084     &ett_lpp_OTDOA_Error,
36085     &ett_lpp_OTDOA_LocationServerErrorCauses,
36086     &ett_lpp_OTDOA_TargetDeviceErrorCauses,
36087     &ett_lpp_A_GNSS_ProvideAssistanceData,
36088     &ett_lpp_GNSS_CommonAssistData,
36089     &ett_lpp_GNSS_GenericAssistData,
36090     &ett_lpp_GNSS_GenericAssistDataElement,
36091     &ett_lpp_GNSS_PeriodicAssistData_r15,
36092     &ett_lpp_GNSS_ReferenceTime,
36093     &ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell,
36094     &ett_lpp_GNSS_ReferenceTimeForOneCell,
36095     &ett_lpp_GNSS_SystemTime,
36096     &ett_lpp_GPS_TOW_Assist,
36097     &ett_lpp_GPS_TOW_AssistElement,
36098     &ett_lpp_NetworkTime,
36099     &ett_lpp_T_cellID,
36100     &ett_lpp_T_eUTRA,
36101     &ett_lpp_T_uTRA,
36102     &ett_lpp_T_mode,
36103     &ett_lpp_T_fdd,
36104     &ett_lpp_T_tdd,
36105     &ett_lpp_T_gSM,
36106     &ett_lpp_T_nBIoT_r14,
36107     &ett_lpp_T_nr_r15,
36108     &ett_lpp_GNSS_ReferenceLocation,
36109     &ett_lpp_GNSS_IonosphericModel,
36110     &ett_lpp_KlobucharModelParameter,
36111     &ett_lpp_KlobucharModel2Parameter_r16,
36112     &ett_lpp_NeQuickModelParameter,
36113     &ett_lpp_GNSS_EarthOrientationParameters,
36114     &ett_lpp_GNSS_RTK_ReferenceStationInfo_r15,
36115     &ett_lpp_AntennaDescription_r15,
36116     &ett_lpp_AntennaReferencePointUnc_r15,
36117     &ett_lpp_PhysicalReferenceStationInfo_r15,
36118     &ett_lpp_EqualIntegerAmbiguityLevel_r16,
36119     &ett_lpp_ReferenceStationList_r16,
36120     &ett_lpp_GNSS_RTK_CommonObservationInfo_r15,
36121     &ett_lpp_GNSS_RTK_AuxiliaryStationData_r15,
36122     &ett_lpp_AuxiliaryStationList_r15,
36123     &ett_lpp_AuxiliaryStationElement_r15,
36124     &ett_lpp_Aux_ARP_Unc_r15,
36125     &ett_lpp_GNSS_SSR_CorrectionPoints_r16,
36126     &ett_lpp_T_correctionPoints_r16,
36127     &ett_lpp_GNSS_SSR_ListOfCorrectionPoints_r16,
36128     &ett_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16,
36129     &ett_lpp_RelativeLocationElement_r16,
36130     &ett_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16,
36131     &ett_lpp_GNSS_TimeModelList,
36132     &ett_lpp_GNSS_TimeModelElement,
36133     &ett_lpp_GNSS_DifferentialCorrections,
36134     &ett_lpp_DGNSS_SgnTypeList,
36135     &ett_lpp_DGNSS_SgnTypeElement,
36136     &ett_lpp_DGNSS_SatList,
36137     &ett_lpp_DGNSS_CorrectionsElement,
36138     &ett_lpp_GNSS_NavigationModel,
36139     &ett_lpp_GNSS_NavModelSatelliteList,
36140     &ett_lpp_GNSS_NavModelSatelliteElement,
36141     &ett_lpp_GNSS_ClockModel,
36142     &ett_lpp_GNSS_OrbitModel,
36143     &ett_lpp_StandardClockModelList,
36144     &ett_lpp_StandardClockModelElement,
36145     &ett_lpp_NAV_ClockModel,
36146     &ett_lpp_CNAV_ClockModel,
36147     &ett_lpp_GLONASS_ClockModel,
36148     &ett_lpp_SBAS_ClockModel,
36149     &ett_lpp_BDS_ClockModel_r12,
36150     &ett_lpp_BDS_ClockModel2_r16,
36151     &ett_lpp_NavIC_ClockModel_r16,
36152     &ett_lpp_NavModelKeplerianSet,
36153     &ett_lpp_NavModelNAV_KeplerianSet,
36154     &ett_lpp_T_addNAVparam,
36155     &ett_lpp_T_ephemSF1Rsvd,
36156     &ett_lpp_NavModelCNAV_KeplerianSet,
36157     &ett_lpp_NavModel_GLONASS_ECEF,
36158     &ett_lpp_NavModel_SBAS_ECEF,
36159     &ett_lpp_NavModel_BDS_KeplerianSet_r12,
36160     &ett_lpp_NavModel_BDS_KeplerianSet2_r16,
36161     &ett_lpp_NavModel_NavIC_KeplerianSet_r16,
36162     &ett_lpp_GNSS_RealTimeIntegrity,
36163     &ett_lpp_GNSS_BadSignalList,
36164     &ett_lpp_BadSignalElement,
36165     &ett_lpp_GNSS_DataBitAssistance,
36166     &ett_lpp_GNSS_DataBitsSatList,
36167     &ett_lpp_GNSS_DataBitsSatElement,
36168     &ett_lpp_GNSS_DataBitsSgnList,
36169     &ett_lpp_GNSS_DataBitsSgnElement,
36170     &ett_lpp_GNSS_AcquisitionAssistance,
36171     &ett_lpp_GNSS_AcquisitionAssistList,
36172     &ett_lpp_GNSS_AcquisitionAssistElement,
36173     &ett_lpp_GNSS_Almanac,
36174     &ett_lpp_GNSS_AlmanacList,
36175     &ett_lpp_GNSS_AlmanacElement,
36176     &ett_lpp_AlmanacKeplerianSet,
36177     &ett_lpp_AlmanacNAV_KeplerianSet,
36178     &ett_lpp_AlmanacReducedKeplerianSet,
36179     &ett_lpp_AlmanacMidiAlmanacSet,
36180     &ett_lpp_AlmanacGLONASS_AlmanacSet,
36181     &ett_lpp_AlmanacECEF_SBAS_AlmanacSet,
36182     &ett_lpp_AlmanacBDS_AlmanacSet_r12,
36183     &ett_lpp_AlmanacNavIC_AlmanacSet_r16,
36184     &ett_lpp_GNSS_UTC_Model,
36185     &ett_lpp_UTC_ModelSet1,
36186     &ett_lpp_UTC_ModelSet2,
36187     &ett_lpp_UTC_ModelSet3,
36188     &ett_lpp_UTC_ModelSet4,
36189     &ett_lpp_UTC_ModelSet5_r12,
36190     &ett_lpp_GNSS_AuxiliaryInformation,
36191     &ett_lpp_GNSS_ID_GPS,
36192     &ett_lpp_GNSS_ID_GPS_SatElement,
36193     &ett_lpp_GNSS_ID_GLONASS,
36194     &ett_lpp_GNSS_ID_GLONASS_SatElement,
36195     &ett_lpp_GNSS_ID_BDS_r16,
36196     &ett_lpp_GNSS_ID_BDS_SatElement_r16,
36197     &ett_lpp_BDS_DifferentialCorrections_r12,
36198     &ett_lpp_BDS_SgnTypeList_r12,
36199     &ett_lpp_BDS_SgnTypeElement_r12,
36200     &ett_lpp_DBDS_CorrectionList_r12,
36201     &ett_lpp_DBDS_CorrectionElement_r12,
36202     &ett_lpp_BDS_GridModelParameter_r12,
36203     &ett_lpp_GridIonList_r12,
36204     &ett_lpp_GridIonElement_r12,
36205     &ett_lpp_GNSS_RTK_Observations_r15,
36206     &ett_lpp_GNSS_ObservationList_r15,
36207     &ett_lpp_GNSS_RTK_SatelliteDataElement_r15,
36208     &ett_lpp_GNSS_RTK_SatelliteSignalDataList_r15,
36209     &ett_lpp_GNSS_RTK_SatelliteSignalDataElement_r15,
36210     &ett_lpp_GLO_RTK_BiasInformation_r15,
36211     &ett_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15,
36212     &ett_lpp_RTK_CorrectionDifferencesList_r15,
36213     &ett_lpp_RTK_CorrectionDifferencesElement_r15,
36214     &ett_lpp_Geometric_Ionospheric_Corrections_Differences_r15,
36215     &ett_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15,
36216     &ett_lpp_GNSS_RTK_Residuals_r15,
36217     &ett_lpp_RTK_Residuals_List_r15,
36218     &ett_lpp_RTK_Residuals_Element_r15,
36219     &ett_lpp_GNSS_RTK_FKP_Gradients_r15,
36220     &ett_lpp_FKP_Gradients_List_r15,
36221     &ett_lpp_FKP_Gradients_Element_r15,
36222     &ett_lpp_GNSS_SSR_OrbitCorrections_r15,
36223     &ett_lpp_SSR_OrbitCorrectionList_r15,
36224     &ett_lpp_SSR_OrbitCorrectionSatelliteElement_r15,
36225     &ett_lpp_GNSS_SSR_ClockCorrections_r15,
36226     &ett_lpp_SSR_ClockCorrectionList_r15,
36227     &ett_lpp_SSR_ClockCorrectionSatelliteElement_r15,
36228     &ett_lpp_GNSS_SSR_CodeBias_r15,
36229     &ett_lpp_SSR_CodeBiasSatList_r15,
36230     &ett_lpp_SSR_CodeBiasSatElement_r15,
36231     &ett_lpp_SSR_CodeBiasSignalList_r15,
36232     &ett_lpp_SSR_CodeBiasSignalElement_r15,
36233     &ett_lpp_GNSS_SSR_URA_r16,
36234     &ett_lpp_SSR_URA_SatList_r16,
36235     &ett_lpp_SSR_URA_SatElement_r16,
36236     &ett_lpp_GNSS_SSR_PhaseBias_r16,
36237     &ett_lpp_SSR_PhaseBiasSatList_r16,
36238     &ett_lpp_SSR_PhaseBiasSatElement_r16,
36239     &ett_lpp_SSR_PhaseBiasSignalList_r16,
36240     &ett_lpp_SSR_PhaseBiasSignalElement_r16,
36241     &ett_lpp_GNSS_SSR_STEC_Correction_r16,
36242     &ett_lpp_STEC_SatList_r16,
36243     &ett_lpp_STEC_SatElement_r16,
36244     &ett_lpp_GNSS_SSR_GriddedCorrection_r16,
36245     &ett_lpp_GridList_r16,
36246     &ett_lpp_GridElement_r16,
36247     &ett_lpp_TropospericDelayCorrection_r16,
36248     &ett_lpp_STEC_ResidualSatList_r16,
36249     &ett_lpp_STEC_ResidualSatElement_r16,
36250     &ett_lpp_T_stecResidualCorrection_r16,
36251     &ett_lpp_NavIC_DifferentialCorrections_r16,
36252     &ett_lpp_NavIC_CorrectionListAutoNav_r16,
36253     &ett_lpp_NavIC_CorrectionElementAutoNav_r16,
36254     &ett_lpp_NavIC_EDC_r16,
36255     &ett_lpp_NavIC_CDC_r16,
36256     &ett_lpp_NavIC_GridModelParameter_r16,
36257     &ett_lpp_RegionIgpList_r16,
36258     &ett_lpp_RegionIgpElement_r16,
36259     &ett_lpp_A_GNSS_RequestAssistanceData,
36260     &ett_lpp_GNSS_CommonAssistDataReq,
36261     &ett_lpp_GNSS_GenericAssistDataReq,
36262     &ett_lpp_GNSS_GenericAssistDataReqElement,
36263     &ett_lpp_GNSS_PeriodicAssistDataReq_r15,
36264     &ett_lpp_GNSS_ReferenceTimeReq,
36265     &ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID,
36266     &ett_lpp_GNSS_ReferenceLocationReq,
36267     &ett_lpp_GNSS_IonosphericModelReq,
36268     &ett_lpp_GNSS_EarthOrientationParametersReq,
36269     &ett_lpp_GNSS_RTK_ReferenceStationInfoReq_r15,
36270     &ett_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15,
36271     &ett_lpp_GNSS_SSR_CorrectionPointsReq_r16,
36272     &ett_lpp_GNSS_TimeModelListReq,
36273     &ett_lpp_GNSS_TimeModelElementReq,
36274     &ett_lpp_GNSS_DifferentialCorrectionsReq,
36275     &ett_lpp_GNSS_NavigationModelReq,
36276     &ett_lpp_StoredNavListInfo,
36277     &ett_lpp_SatListRelatedDataList,
36278     &ett_lpp_SatListRelatedDataElement,
36279     &ett_lpp_ReqNavListInfo,
36280     &ett_lpp_T_clockModelID_PrefList,
36281     &ett_lpp_T_orbitModelID_PrefList,
36282     &ett_lpp_GNSS_RealTimeIntegrityReq,
36283     &ett_lpp_GNSS_DataBitAssistanceReq,
36284     &ett_lpp_GNSS_DataBitsReqSatList,
36285     &ett_lpp_GNSS_DataBitsReqSatElement,
36286     &ett_lpp_GNSS_AcquisitionAssistanceReq,
36287     &ett_lpp_GNSS_AlmanacReq,
36288     &ett_lpp_GNSS_UTC_ModelReq,
36289     &ett_lpp_GNSS_AuxiliaryInformationReq,
36290     &ett_lpp_BDS_DifferentialCorrectionsReq_r12,
36291     &ett_lpp_BDS_GridModelReq_r12,
36292     &ett_lpp_GNSS_RTK_ObservationsReq_r15,
36293     &ett_lpp_GLO_RTK_BiasInformationReq_r15,
36294     &ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15,
36295     &ett_lpp_AUX_ReferenceStationList_r15,
36296     &ett_lpp_AUX_ReferenceStationID_Element_r15,
36297     &ett_lpp_GNSS_RTK_ResidualsReq_r15,
36298     &ett_lpp_GNSS_RTK_FKP_GradientsReq_r15,
36299     &ett_lpp_GNSS_SSR_OrbitCorrectionsReq_r15,
36300     &ett_lpp_GNSS_SSR_ClockCorrectionsReq_r15,
36301     &ett_lpp_GNSS_SSR_CodeBiasReq_r15,
36302     &ett_lpp_GNSS_SSR_URA_Req_r16,
36303     &ett_lpp_GNSS_SSR_PhaseBiasReq_r16,
36304     &ett_lpp_GNSS_SSR_STEC_CorrectionReq_r16,
36305     &ett_lpp_GNSS_SSR_GriddedCorrectionReq_r16,
36306     &ett_lpp_NavIC_DifferentialCorrectionsReq_r16,
36307     &ett_lpp_NavIC_GridModelReq_r16,
36308     &ett_lpp_A_GNSS_ProvideLocationInformation,
36309     &ett_lpp_GNSS_SignalMeasurementInformation,
36310     &ett_lpp_MeasurementReferenceTime,
36311     &ett_lpp_T_networkTime,
36312     &ett_lpp_T_eUTRA_01,
36313     &ett_lpp_T_uTRA_01,
36314     &ett_lpp_T_mode_01,
36315     &ett_lpp_T_fdd_01,
36316     &ett_lpp_T_tdd_01,
36317     &ett_lpp_T_gSM_01,
36318     &ett_lpp_T_referenceFrame,
36319     &ett_lpp_T_nbIoT_r14,
36320     &ett_lpp_T_nr_r15_01,
36321     &ett_lpp_GNSS_MeasurementList,
36322     &ett_lpp_GNSS_MeasurementForOneGNSS,
36323     &ett_lpp_GNSS_SgnMeasList,
36324     &ett_lpp_GNSS_SgnMeasElement,
36325     &ett_lpp_GNSS_SatMeasList,
36326     &ett_lpp_GNSS_SatMeasElement,
36327     &ett_lpp_GNSS_LocationInformation,
36328     &ett_lpp_A_GNSS_RequestLocationInformation,
36329     &ett_lpp_GNSS_PositioningInstructions,
36330     &ett_lpp_A_GNSS_ProvideCapabilities,
36331     &ett_lpp_T_periodicAssistanceData_r15,
36332     &ett_lpp_GNSS_SupportList,
36333     &ett_lpp_GNSS_SupportElement,
36334     &ett_lpp_T_fta_MeasSupport,
36335     &ett_lpp_AssistanceDataSupportList,
36336     &ett_lpp_GNSS_CommonAssistanceDataSupport,
36337     &ett_lpp_GNSS_ReferenceTimeSupport,
36338     &ett_lpp_GNSS_ReferenceLocationSupport,
36339     &ett_lpp_GNSS_IonosphericModelSupport,
36340     &ett_lpp_T_ionoModel,
36341     &ett_lpp_GNSS_EarthOrientationParametersSupport,
36342     &ett_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15,
36343     &ett_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15,
36344     &ett_lpp_GNSS_GenericAssistanceDataSupport,
36345     &ett_lpp_GNSS_GenericAssistDataSupportElement,
36346     &ett_lpp_GNSS_TimeModelListSupport,
36347     &ett_lpp_GNSS_DifferentialCorrectionsSupport,
36348     &ett_lpp_GNSS_NavigationModelSupport,
36349     &ett_lpp_T_clockModel,
36350     &ett_lpp_T_orbitModel,
36351     &ett_lpp_GNSS_RealTimeIntegritySupport,
36352     &ett_lpp_GNSS_DataBitAssistanceSupport,
36353     &ett_lpp_GNSS_AcquisitionAssistanceSupport,
36354     &ett_lpp_GNSS_AlmanacSupport,
36355     &ett_lpp_T_almanacModel,
36356     &ett_lpp_GNSS_UTC_ModelSupport,
36357     &ett_lpp_T_utc_Model,
36358     &ett_lpp_GNSS_AuxiliaryInformationSupport,
36359     &ett_lpp_BDS_DifferentialCorrectionsSupport_r12,
36360     &ett_lpp_BDS_GridModelSupport_r12,
36361     &ett_lpp_GNSS_RTK_ObservationsSupport_r15,
36362     &ett_lpp_GLO_RTK_BiasInformationSupport_r15,
36363     &ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15,
36364     &ett_lpp_GNSS_RTK_ResidualsSupport_r15,
36365     &ett_lpp_GNSS_RTK_FKP_GradientsSupport_r15,
36366     &ett_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15,
36367     &ett_lpp_GNSS_SSR_ClockCorrectionsSupport_r15,
36368     &ett_lpp_GNSS_SSR_CodeBiasSupport_r15,
36369     &ett_lpp_GNSS_SSR_URA_Support_r16,
36370     &ett_lpp_GNSS_SSR_PhaseBiasSupport_r16,
36371     &ett_lpp_GNSS_SSR_STEC_CorrectionSupport_r16,
36372     &ett_lpp_GNSS_SSR_GriddedCorrectionSupport_r16,
36373     &ett_lpp_NavIC_DifferentialCorrectionsSupport_r16,
36374     &ett_lpp_NavIC_GridModelSupport_r16,
36375     &ett_lpp_A_GNSS_RequestCapabilities,
36376     &ett_lpp_A_GNSS_Error,
36377     &ett_lpp_GNSS_LocationServerErrorCauses,
36378     &ett_lpp_GNSS_TargetDeviceErrorCauses,
36379     &ett_lpp_GNSS_FrequencyID_r15,
36380     &ett_lpp_GNSS_ID,
36381     &ett_lpp_GNSS_ID_Bitmap,
36382     &ett_lpp_T_gnss_ids,
36383     &ett_lpp_GNSS_Link_CombinationsList_r15,
36384     &ett_lpp_GNSS_Link_Combinations_r15,
36385     &ett_lpp_GNSS_NavListInfo_r15,
36386     &ett_lpp_SatListElement_r15,
36387     &ett_lpp_GNSS_NetworkID_r15,
36388     &ett_lpp_GNSS_PeriodicControlParam_r15,
36389     &ett_lpp_GNSS_ReferenceStationID_r15,
36390     &ett_lpp_GNSS_SignalID,
36391     &ett_lpp_GNSS_SignalIDs,
36392     &ett_lpp_GNSS_SubNetworkID_r15,
36393     &ett_lpp_SBAS_ID,
36394     &ett_lpp_SBAS_IDs,
36395     &ett_lpp_T_sbas_IDs,
36396     &ett_lpp_SV_ID,
36397     &ett_lpp_ECID_ProvideLocationInformation,
36398     &ett_lpp_ECID_SignalMeasurementInformation,
36399     &ett_lpp_MeasuredResultsList,
36400     &ett_lpp_MeasuredResultsElement,
36401     &ett_lpp_ECID_RequestLocationInformation,
36402     &ett_lpp_T_requestedMeasurements,
36403     &ett_lpp_ECID_ProvideCapabilities,
36404     &ett_lpp_T_ecid_MeasSupported,
36405     &ett_lpp_ECID_RequestCapabilities,
36406     &ett_lpp_ECID_Error,
36407     &ett_lpp_ECID_LocationServerErrorCauses,
36408     &ett_lpp_ECID_TargetDeviceErrorCauses,
36409     &ett_lpp_TBS_ProvideLocationInformation_r13,
36410     &ett_lpp_TBS_MeasurementInformation_r13,
36411     &ett_lpp_MBS_BeaconMeasList_r13,
36412     &ett_lpp_MBS_BeaconMeasElement_r13,
36413     &ett_lpp_TBS_RequestLocationInformation_r13,
36414     &ett_lpp_T_mbsRequestedMeasurements_r14,
36415     &ett_lpp_TBS_ProvideCapabilities_r13,
36416     &ett_lpp_T_tbs_Modes_r13,
36417     &ett_lpp_T_mbs_ConfigSupport_r14,
36418     &ett_lpp_MBS_AssistanceDataSupportList_r14,
36419     &ett_lpp_TBS_RequestCapabilities_r13,
36420     &ett_lpp_TBS_Error_r13,
36421     &ett_lpp_TBS_LocationServerErrorCauses_r13,
36422     &ett_lpp_TBS_TargetDeviceErrorCauses_r13,
36423     &ett_lpp_TBS_ProvideAssistanceData_r14,
36424     &ett_lpp_TBS_AssistanceDataList_r14,
36425     &ett_lpp_MBS_AssistanceDataList_r14,
36426     &ett_lpp_MBS_AssistanceDataElement_r14,
36427     &ett_lpp_MBS_AlmanacAssistance_r14,
36428     &ett_lpp_MBS_AcquisitionAssistance_r14,
36429     &ett_lpp_TBS_RequestAssistanceData_r14,
36430     &ett_lpp_Sensor_ProvideLocationInformation_r13,
36431     &ett_lpp_Sensor_MeasurementInformation_r13,
36432     &ett_lpp_T_uncertainty_r14,
36433     &ett_lpp_Sensor_MotionInformation_r15,
36434     &ett_lpp_DisplacementInfoList_r15,
36435     &ett_lpp_DisplacementInfoListElement_r15,
36436     &ett_lpp_DisplacementTimeStamp_r15,
36437     &ett_lpp_DeltaTime_r15,
36438     &ett_lpp_SFN_r15,
36439     &ett_lpp_Displacement_r15,
36440     &ett_lpp_UTC_Time_r15,
36441     &ett_lpp_Sensor_RequestLocationInformation_r13,
36442     &ett_lpp_Sensor_ProvideCapabilities_r13,
36443     &ett_lpp_T_sensor_Modes_r13,
36444     &ett_lpp_Sensor_AssistanceDataSupportList_r14,
36445     &ett_lpp_Sensor_RequestCapabilities_r13,
36446     &ett_lpp_Sensor_Error_r13,
36447     &ett_lpp_Sensor_LocationServerErrorCauses_r13,
36448     &ett_lpp_Sensor_TargetDeviceErrorCauses_r13,
36449     &ett_lpp_Sensor_ProvideAssistanceData_r14,
36450     &ett_lpp_Sensor_AssistanceDataList_r14,
36451     &ett_lpp_T_period_v1520,
36452     &ett_lpp_T_area_v1520,
36453     &ett_lpp_PressureValidityArea_v1520,
36454     &ett_lpp_PressureValidityPeriod_v1520,
36455     &ett_lpp_Sensor_RequestAssistanceData_r14,
36456     &ett_lpp_WLAN_ProvideLocationInformation_r13,
36457     &ett_lpp_WLAN_MeasurementInformation_r13,
36458     &ett_lpp_WLAN_MeasurementList_r13,
36459     &ett_lpp_WLAN_MeasurementElement_r13,
36460     &ett_lpp_WLAN_AP_Identifier_r13,
36461     &ett_lpp_WLAN_RTT_r13,
36462     &ett_lpp_WLAN_RequestLocationInformation_r13,
36463     &ett_lpp_T_requestedMeasurements_r13,
36464     &ett_lpp_WLAN_ProvideCapabilities_r13,
36465     &ett_lpp_T_wlan_Modes_r13,
36466     &ett_lpp_T_wlan_MeasSupported_r13,
36467     &ett_lpp_T_wlan_AP_AD_Supported_r14,
36468     &ett_lpp_WLAN_RequestCapabilities_r13,
36469     &ett_lpp_WLAN_Error_r13,
36470     &ett_lpp_WLAN_LocationServerErrorCauses_r13,
36471     &ett_lpp_WLAN_TargetDeviceErrorCauses_r13,
36472     &ett_lpp_WLAN_ProvideAssistanceData_r14,
36473     &ett_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14,
36474     &ett_lpp_WLAN_DataSet_r14,
36475     &ett_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14,
36476     &ett_lpp_SupportedChannels_11a_r14,
36477     &ett_lpp_SupportedChannels_11bg_r14,
36478     &ett_lpp_WLAN_AP_Data_r14,
36479     &ett_lpp_WLAN_AP_Location_r14,
36480     &ett_lpp_LocationDataLCI_r14,
36481     &ett_lpp_WLAN_RequestAssistanceData_r14,
36482     &ett_lpp_T_requestedAD_r14,
36483     &ett_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13,
36484     &ett_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13,
36485     &ett_lpp_BT_ProvideLocationInformation_r13,
36486     &ett_lpp_BT_MeasurementInformation_r13,
36487     &ett_lpp_BT_MeasurementList_r13,
36488     &ett_lpp_BT_MeasurementElement_r13,
36489     &ett_lpp_BT_RequestLocationInformation_r13,
36490     &ett_lpp_T_requestedMeasurements_r13_01,
36491     &ett_lpp_BT_ProvideCapabilities_r13,
36492     &ett_lpp_T_bt_Modes_r13,
36493     &ett_lpp_T_bt_MeasSupported_r13,
36494     &ett_lpp_BT_RequestCapabilities_r13,
36495     &ett_lpp_BT_Error_r13,
36496     &ett_lpp_BT_LocationServerErrorCauses_r13,
36497     &ett_lpp_BT_TargetDeviceErrorCauses_r13,
36498     &ett_lpp_NR_UL_ProvideCapabilities_r16,
36499     &ett_lpp_NR_UL_RequestCapabilities_r16,
36500     &ett_lpp_NR_ECID_ProvideLocationInformation_r16,
36501     &ett_lpp_NR_ECID_SignalMeasurementInformation_r16,
36502     &ett_lpp_NR_MeasuredResultsList_r16,
36503     &ett_lpp_NR_MeasuredResultsElement_r16,
36504     &ett_lpp_T_nr_ARFCN_r16,
36505     &ett_lpp_MeasQuantityResults_r16,
36506     &ett_lpp_ResultsPerSSB_IndexList_r16,
36507     &ett_lpp_ResultsPerSSB_Index_r16,
36508     &ett_lpp_ResultsPerCSI_RS_IndexList_r16,
36509     &ett_lpp_ResultsPerCSI_RS_Index_r16,
36510     &ett_lpp_NR_ECID_RequestLocationInformation_r16,
36511     &ett_lpp_T_requestedMeasurements_r16,
36512     &ett_lpp_NR_ECID_ProvideCapabilities_r16,
36513     &ett_lpp_T_nr_ECID_MeasSupported_r16,
36514     &ett_lpp_NR_ECID_RequestCapabilities_r16,
36515     &ett_lpp_NR_ECID_Error_r16,
36516     &ett_lpp_NR_ECID_LocationServerErrorCauses_r16,
36517     &ett_lpp_NR_ECID_TargetDeviceErrorCauses_r16,
36518     &ett_lpp_NR_DL_TDOA_ProvideAssistanceData_r16,
36519     &ett_lpp_NR_DL_TDOA_RequestAssistanceData_r16,
36520     &ett_lpp_T_nr_AdType_r16,
36521     &ett_lpp_NR_DL_TDOA_ProvideLocationInformation_r16,
36522     &ett_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16,
36523     &ett_lpp_NR_DL_TDOA_MeasList_r16,
36524     &ett_lpp_NR_DL_TDOA_MeasElement_r16,
36525     &ett_lpp_T_nr_RSTD_r16,
36526     &ett_lpp_NR_DL_TDOA_AdditionalMeasurements_r16,
36527     &ett_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16,
36528     &ett_lpp_T_nr_RSTD_ResultDiff_r16,
36529     &ett_lpp_NR_DL_TDOA_LocationInformation_r16,
36530     &ett_lpp_T_measurementReferenceTime_r16,
36531     &ett_lpp_NR_DL_TDOA_RequestLocationInformation_r16,
36532     &ett_lpp_T_nr_RequestedMeasurements_r16,
36533     &ett_lpp_NR_DL_TDOA_ReportConfig_r16,
36534     &ett_lpp_NR_DL_TDOA_ProvideCapabilities_r16,
36535     &ett_lpp_NR_DL_TDOA_MeasurementCapability_r16,
36536     &ett_lpp_NR_DL_TDOA_RequestCapabilities_r16,
36537     &ett_lpp_NR_DL_TDOA_Error_r16,
36538     &ett_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16,
36539     &ett_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16,
36540     &ett_lpp_NR_DL_AoD_ProvideAssistanceData_r16,
36541     &ett_lpp_NR_DL_AoD_RequestAssistanceData_r16,
36542     &ett_lpp_T_nr_AdType_r16_01,
36543     &ett_lpp_NR_DL_AoD_ProvideLocationInformation_r16,
36544     &ett_lpp_NR_DL_AoD_SignalMeasurementInformation_r16,
36545     &ett_lpp_NR_DL_AoD_MeasList_r16,
36546     &ett_lpp_NR_DL_AoD_MeasElement_r16,
36547     &ett_lpp_NR_DL_AoD_AdditionalMeasurements_r16,
36548     &ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16,
36549     &ett_lpp_NR_DL_AoD_LocationInformation_r16,
36550     &ett_lpp_T_measurementReferenceTime_r16_01,
36551     &ett_lpp_NR_DL_AoD_RequestLocationInformation_r16,
36552     &ett_lpp_NR_DL_AoD_ReportConfig_r16,
36553     &ett_lpp_NR_DL_AoD_ProvideCapabilities_r16,
36554     &ett_lpp_NR_DL_AoD_MeasurementCapability_r16,
36555     &ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16,
36556     &ett_lpp_DL_AoD_MeasCapabilityPerBand_r16,
36557     &ett_lpp_NR_DL_AoD_RequestCapabilities_r16,
36558     &ett_lpp_NR_DL_AoD_Error_r16,
36559     &ett_lpp_NR_DL_AoD_LocationServerErrorCauses_r16,
36560     &ett_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16,
36561     &ett_lpp_NR_Multi_RTT_ProvideAssistanceData_r16,
36562     &ett_lpp_NR_Multi_RTT_RequestAssistanceData_r16,
36563     &ett_lpp_T_nr_AdType_r16_02,
36564     &ett_lpp_NR_Multi_RTT_ProvideLocationInformation_r16,
36565     &ett_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16,
36566     &ett_lpp_NR_Multi_RTT_MeasList_r16,
36567     &ett_lpp_NR_Multi_RTT_MeasElement_r16,
36568     &ett_lpp_T_nr_UE_RxTxTimeDiff_r16,
36569     &ett_lpp_NR_Multi_RTT_AdditionalMeasurements_r16,
36570     &ett_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16,
36571     &ett_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16,
36572     &ett_lpp_NR_Multi_RTT_RequestLocationInformation_r16,
36573     &ett_lpp_T_nr_RequestedMeasurements_r16_01,
36574     &ett_lpp_NR_Multi_RTT_ReportConfig_r16,
36575     &ett_lpp_NR_Multi_RTT_ProvideCapabilities_r16,
36576     &ett_lpp_NR_Multi_RTT_MeasurementCapability_r16,
36577     &ett_lpp_NR_Multi_RTT_RequestCapabilities_r16,
36578     &ett_lpp_NR_Multi_RTT_Error_r16,
36579     &ett_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16,
36580     &ett_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16,
36581     &ett_lpp_AssistanceDataSIBelement_r15,
36582     &ett_lpp_CipheringKeyData_r15,
36583     &ett_lpp_SegmentationInfo_r15,
36584     &ett_lpp_OTDOA_UE_Assisted_r15,
36585     &ett_lpp_NR_UEB_TRP_LocationData_r16,
36586     &ett_lpp_NR_UEB_TRP_RTD_Info_r16,
36587 
36588 /*--- End of included file: packet-lpp-ettarr.c ---*/
36589 #line 2130 "./asn1/lpp/packet-lpp-template.c"
36590   };
36591 
36592 
36593   /* Register protocol */
36594   proto_lpp = proto_register_protocol(PNAME, PSNAME, PFNAME);
36595   register_dissector("lpp", dissect_lpp, proto_lpp);
36596 
36597   /* Register fields and subtrees */
36598   proto_register_field_array(proto_lpp, hf, array_length(hf));
36599   proto_register_subtree_array(ett, array_length(ett));
36600 
36601 
36602 }
36603 
36604 
36605 /*--- proto_reg_handoff_lpp ---------------------------------------*/
36606 void
proto_reg_handoff_lpp(void)36607 proto_reg_handoff_lpp(void)
36608 {
36609   lppe_handle = find_dissector_add_dependency("lppe", proto_lpp);
36610 }
36611 
36612 
36613