From Pascal Quantin.
[metze/wireshark/wip.git] / epan / dissectors / packet-lpp.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-lpp.c                                                               */
4 /* ../../tools/asn2wrs.py -p lpp -c ./lpp.cnf -s ./packet-lpp-template -D . -O ../../epan/dissectors LPP.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 (LLP) packet dissection
11  * Copyright 2011, Pascal Quantin <pascal.quantin@gmail.com>
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  *
33  * Ref 3GPP TS 36.355 version 9.7.0 Release 9
34  * http://www.3gpp.org
35  */
36
37 #ifdef HAVE_CONFIG_H
38 # include "config.h"
39 #endif
40
41 #include <glib.h>
42 #include <epan/packet.h>
43 #include <epan/asn1.h>
44
45 #include "packet-per.h"
46
47 #define PNAME  "LTE Positioning Protocol (LLP)"
48 #define PSNAME "LPP"
49 #define PFNAME "lpp"
50
51 #ifdef _MSC_VER
52 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
53 #pragma warning(disable:4146)
54 #endif
55
56 /* Initialize the protocol and registered fields */
57 static int proto_lpp = -1;
58
59
60 /*--- Included file: packet-lpp-hf.c ---*/
61 #line 1 "../../asn1/lpp/packet-lpp-hf.c"
62 static int hf_lpp_LPP_Message_PDU = -1;           /* LPP_Message */
63 static int hf_lpp_transactionID = -1;             /* LPP_TransactionID */
64 static int hf_lpp_endTransaction = -1;            /* BOOLEAN */
65 static int hf_lpp_sequenceNumber = -1;            /* SequenceNumber */
66 static int hf_lpp_acknowledgement = -1;           /* Acknowledgement */
67 static int hf_lpp_lpp_MessageBody = -1;           /* LPP_MessageBody */
68 static int hf_lpp_ackRequested = -1;              /* BOOLEAN */
69 static int hf_lpp_ackIndicator = -1;              /* SequenceNumber */
70 static int hf_lpp_c1 = -1;                        /* T_c1 */
71 static int hf_lpp_requestCapabilities = -1;       /* RequestCapabilities */
72 static int hf_lpp_provideCapabilities = -1;       /* ProvideCapabilities */
73 static int hf_lpp_requestAssistanceData = -1;     /* RequestAssistanceData */
74 static int hf_lpp_provideAssistanceData = -1;     /* ProvideAssistanceData */
75 static int hf_lpp_requestLocationInformation = -1;  /* RequestLocationInformation */
76 static int hf_lpp_provideLocationInformation = -1;  /* ProvideLocationInformation */
77 static int hf_lpp_abort = -1;                     /* Abort */
78 static int hf_lpp_error = -1;                     /* Error */
79 static int hf_lpp_spare7 = -1;                    /* NULL */
80 static int hf_lpp_spare6 = -1;                    /* NULL */
81 static int hf_lpp_spare5 = -1;                    /* NULL */
82 static int hf_lpp_spare4 = -1;                    /* NULL */
83 static int hf_lpp_spare3 = -1;                    /* NULL */
84 static int hf_lpp_spare2 = -1;                    /* NULL */
85 static int hf_lpp_spare1 = -1;                    /* NULL */
86 static int hf_lpp_spare0 = -1;                    /* NULL */
87 static int hf_lpp_messageClassExtension = -1;     /* T_messageClassExtension */
88 static int hf_lpp_initiator = -1;                 /* Initiator */
89 static int hf_lpp_transactionNumber = -1;         /* TransactionNumber */
90 static int hf_lpp_criticalExtensions = -1;        /* T_criticalExtensions */
91 static int hf_lpp_c1_01 = -1;                     /* T_c1_01 */
92 static int hf_lpp_requestCapabilities_r9 = -1;    /* RequestCapabilities_r9_IEs */
93 static int hf_lpp_criticalExtensionsFuture = -1;  /* T_criticalExtensionsFuture */
94 static int hf_lpp_commonIEsRequestCapabilities = -1;  /* CommonIEsRequestCapabilities */
95 static int hf_lpp_a_gnss_RequestCapabilities = -1;  /* A_GNSS_RequestCapabilities */
96 static int hf_lpp_otdoa_RequestCapabilities = -1;  /* OTDOA_RequestCapabilities */
97 static int hf_lpp_ecid_RequestCapabilities = -1;  /* ECID_RequestCapabilities */
98 static int hf_lpp_epdu_RequestCapabilities = -1;  /* EPDU_Sequence */
99 static int hf_lpp_criticalExtensions_01 = -1;     /* T_criticalExtensions_01 */
100 static int hf_lpp_c1_02 = -1;                     /* T_c1_02 */
101 static int hf_lpp_provideCapabilities_r9 = -1;    /* ProvideCapabilities_r9_IEs */
102 static int hf_lpp_criticalExtensionsFuture_01 = -1;  /* T_criticalExtensionsFuture_01 */
103 static int hf_lpp_commonIEsProvideCapabilities = -1;  /* CommonIEsProvideCapabilities */
104 static int hf_lpp_a_gnss_ProvideCapabilities = -1;  /* A_GNSS_ProvideCapabilities */
105 static int hf_lpp_otdoa_ProvideCapabilities = -1;  /* OTDOA_ProvideCapabilities */
106 static int hf_lpp_ecid_ProvideCapabilities = -1;  /* ECID_ProvideCapabilities */
107 static int hf_lpp_epdu_ProvideCapabilities = -1;  /* EPDU_Sequence */
108 static int hf_lpp_criticalExtensions_02 = -1;     /* T_criticalExtensions_02 */
109 static int hf_lpp_c1_03 = -1;                     /* T_c1_03 */
110 static int hf_lpp_requestAssistanceData_r9 = -1;  /* RequestAssistanceData_r9_IEs */
111 static int hf_lpp_criticalExtensionsFuture_02 = -1;  /* T_criticalExtensionsFuture_02 */
112 static int hf_lpp_commonIEsRequestAssistanceData = -1;  /* CommonIEsRequestAssistanceData */
113 static int hf_lpp_a_gnss_RequestAssistanceData = -1;  /* A_GNSS_RequestAssistanceData */
114 static int hf_lpp_otdoa_RequestAssistanceData = -1;  /* OTDOA_RequestAssistanceData */
115 static int hf_lpp_epdu_RequestAssistanceData = -1;  /* EPDU_Sequence */
116 static int hf_lpp_criticalExtensions_03 = -1;     /* T_criticalExtensions_03 */
117 static int hf_lpp_c1_04 = -1;                     /* T_c1_04 */
118 static int hf_lpp_provideAssistanceData_r9 = -1;  /* ProvideAssistanceData_r9_IEs */
119 static int hf_lpp_criticalExtensionsFuture_03 = -1;  /* T_criticalExtensionsFuture_03 */
120 static int hf_lpp_commonIEsProvideAssistanceData = -1;  /* CommonIEsProvideAssistanceData */
121 static int hf_lpp_a_gnss_ProvideAssistanceData = -1;  /* A_GNSS_ProvideAssistanceData */
122 static int hf_lpp_otdoa_ProvideAssistanceData = -1;  /* OTDOA_ProvideAssistanceData */
123 static int hf_lpp_epdu_Provide_Assistance_Data = -1;  /* EPDU_Sequence */
124 static int hf_lpp_criticalExtensions_04 = -1;     /* T_criticalExtensions_04 */
125 static int hf_lpp_c1_05 = -1;                     /* T_c1_05 */
126 static int hf_lpp_requestLocationInformation_r9 = -1;  /* RequestLocationInformation_r9_IEs */
127 static int hf_lpp_criticalExtensionsFuture_04 = -1;  /* T_criticalExtensionsFuture_04 */
128 static int hf_lpp_commonIEsRequestLocationInformation = -1;  /* CommonIEsRequestLocationInformation */
129 static int hf_lpp_a_gnss_RequestLocationInformation = -1;  /* A_GNSS_RequestLocationInformation */
130 static int hf_lpp_otdoa_RequestLocationInformation = -1;  /* OTDOA_RequestLocationInformation */
131 static int hf_lpp_ecid_RequestLocationInformation = -1;  /* ECID_RequestLocationInformation */
132 static int hf_lpp_epdu_RequestLocationInformation = -1;  /* EPDU_Sequence */
133 static int hf_lpp_criticalExtensions_05 = -1;     /* T_criticalExtensions_05 */
134 static int hf_lpp_c1_06 = -1;                     /* T_c1_06 */
135 static int hf_lpp_provideLocationInformation_r9 = -1;  /* ProvideLocationInformation_r9_IEs */
136 static int hf_lpp_criticalExtensionsFuture_05 = -1;  /* T_criticalExtensionsFuture_05 */
137 static int hf_lpp_commonIEsProvideLocationInformation = -1;  /* CommonIEsProvideLocationInformation */
138 static int hf_lpp_a_gnss_ProvideLocationInformation = -1;  /* A_GNSS_ProvideLocationInformation */
139 static int hf_lpp_otdoa_ProvideLocationInformation = -1;  /* OTDOA_ProvideLocationInformation */
140 static int hf_lpp_ecid_ProvideLocationInformation = -1;  /* ECID_ProvideLocationInformation */
141 static int hf_lpp_epdu_ProvideLocationInformation = -1;  /* EPDU_Sequence */
142 static int hf_lpp_criticalExtensions_06 = -1;     /* T_criticalExtensions_06 */
143 static int hf_lpp_c1_07 = -1;                     /* T_c1_07 */
144 static int hf_lpp_abort_r9 = -1;                  /* Abort_r9_IEs */
145 static int hf_lpp_criticalExtensionsFuture_06 = -1;  /* T_criticalExtensionsFuture_06 */
146 static int hf_lpp_commonIEsAbort = -1;            /* CommonIEsAbort */
147 static int hf_lpp_epdu_Abort = -1;                /* EPDU_Sequence */
148 static int hf_lpp_error_r9 = -1;                  /* Error_r9_IEs */
149 static int hf_lpp_criticalExtensionsFuture_07 = -1;  /* T_criticalExtensionsFuture_07 */
150 static int hf_lpp_commonIEsError = -1;            /* CommonIEsError */
151 static int hf_lpp_epdu_Error = -1;                /* EPDU_Sequence */
152 static int hf_lpp_accessTypes = -1;               /* T_accessTypes */
153 static int hf_lpp_plmn_Identity = -1;             /* T_plmn_Identity */
154 static int hf_lpp_mcc = -1;                       /* T_mcc */
155 static int hf_lpp_mcc_item = -1;                  /* INTEGER_0_9 */
156 static int hf_lpp_mnc = -1;                       /* T_mnc */
157 static int hf_lpp_mnc_item = -1;                  /* INTEGER_0_9 */
158 static int hf_lpp_cellIdentity = -1;              /* T_cellIdentity */
159 static int hf_lpp_eutra = -1;                     /* BIT_STRING_SIZE_28 */
160 static int hf_lpp_utra = -1;                      /* BIT_STRING_SIZE_32 */
161 static int hf_lpp_plmn_Identity_01 = -1;          /* T_plmn_Identity_01 */
162 static int hf_lpp_mcc_01 = -1;                    /* T_mcc_01 */
163 static int hf_lpp_mnc_01 = -1;                    /* T_mnc_01 */
164 static int hf_lpp_locationAreaCode = -1;          /* BIT_STRING_SIZE_16 */
165 static int hf_lpp_cellIdentity_01 = -1;           /* BIT_STRING_SIZE_16 */
166 static int hf_lpp_mcc_02 = -1;                    /* T_mcc_02 */
167 static int hf_lpp_mnc_02 = -1;                    /* T_mnc_02 */
168 static int hf_lpp_cellidentity = -1;              /* BIT_STRING_SIZE_28 */
169 static int hf_lpp_latitudeSign = -1;              /* T_latitudeSign */
170 static int hf_lpp_degreesLatitude = -1;           /* INTEGER_0_8388607 */
171 static int hf_lpp_degreesLongitude = -1;          /* INTEGER_M8388608_8388607 */
172 static int hf_lpp_latitudeSign_01 = -1;           /* T_latitudeSign_01 */
173 static int hf_lpp_uncertainty = -1;               /* INTEGER_0_127 */
174 static int hf_lpp_latitudeSign_02 = -1;           /* T_latitudeSign_02 */
175 static int hf_lpp_uncertaintySemiMajor = -1;      /* INTEGER_0_127 */
176 static int hf_lpp_uncertaintySemiMinor = -1;      /* INTEGER_0_127 */
177 static int hf_lpp_orientationMajorAxis = -1;      /* INTEGER_0_179 */
178 static int hf_lpp_confidence = -1;                /* INTEGER_0_100 */
179 static int hf_lpp_latitudeSign_03 = -1;           /* T_latitudeSign_03 */
180 static int hf_lpp_altitudeDirection = -1;         /* T_altitudeDirection */
181 static int hf_lpp_altitude = -1;                  /* INTEGER_0_32767 */
182 static int hf_lpp_latitudeSign_04 = -1;           /* T_latitudeSign_04 */
183 static int hf_lpp_altitudeDirection_01 = -1;      /* T_altitudeDirection_01 */
184 static int hf_lpp_uncertaintyAltitude = -1;       /* INTEGER_0_127 */
185 static int hf_lpp_latitudeSign_05 = -1;           /* T_latitudeSign_05 */
186 static int hf_lpp_innerRadius = -1;               /* INTEGER_0_65535 */
187 static int hf_lpp_uncertaintyRadius = -1;         /* INTEGER_0_127 */
188 static int hf_lpp_offsetAngle = -1;               /* INTEGER_0_179 */
189 static int hf_lpp_includedAngle = -1;             /* INTEGER_0_179 */
190 static int hf_lpp_EPDU_Sequence_item = -1;        /* EPDU */
191 static int hf_lpp_ePDU_Identifier = -1;           /* EPDU_Identifier */
192 static int hf_lpp_ePDU_Body = -1;                 /* EPDU_Body */
193 static int hf_lpp_ePDU_ID = -1;                   /* EPDU_ID */
194 static int hf_lpp_ePDU_Name = -1;                 /* EPDU_Name */
195 static int hf_lpp_bearing = -1;                   /* INTEGER_0_359 */
196 static int hf_lpp_horizontalSpeed = -1;           /* INTEGER_0_2047 */
197 static int hf_lpp_verticalDirection = -1;         /* T_verticalDirection */
198 static int hf_lpp_verticalSpeed = -1;             /* INTEGER_0_255 */
199 static int hf_lpp_uncertaintySpeed = -1;          /* INTEGER_0_255 */
200 static int hf_lpp_verticalDirection_01 = -1;      /* T_verticalDirection_01 */
201 static int hf_lpp_horizontalUncertaintySpeed = -1;  /* INTEGER_0_255 */
202 static int hf_lpp_verticalUncertaintySpeed = -1;  /* INTEGER_0_255 */
203 static int hf_lpp_ellipsoidPoint = -1;            /* BOOLEAN */
204 static int hf_lpp_ellipsoidPointWithUncertaintyCircle = -1;  /* BOOLEAN */
205 static int hf_lpp_ellipsoidPointWithUncertaintyEllipse = -1;  /* BOOLEAN */
206 static int hf_lpp_polygon = -1;                   /* BOOLEAN */
207 static int hf_lpp_ellipsoidPointWithAltitude = -1;  /* BOOLEAN */
208 static int hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid = -1;  /* BOOLEAN */
209 static int hf_lpp_ellipsoidArc = -1;              /* BOOLEAN */
210 static int hf_lpp_Polygon_item = -1;              /* PolygonPoints */
211 static int hf_lpp_latitudeSign_06 = -1;           /* T_latitudeSign_06 */
212 static int hf_lpp_posModes = -1;                  /* T_posModes */
213 static int hf_lpp_horizontalVelocity = -1;        /* BOOLEAN */
214 static int hf_lpp_horizontalWithVerticalVelocity = -1;  /* BOOLEAN */
215 static int hf_lpp_horizontalVelocityWithUncertainty = -1;  /* BOOLEAN */
216 static int hf_lpp_horizontalWithVerticalVelocityAndUncertainty = -1;  /* BOOLEAN */
217 static int hf_lpp_servingCellID = -1;             /* ECGI */
218 static int hf_lpp_locationInformationType = -1;   /* LocationInformationType */
219 static int hf_lpp_triggeredReporting = -1;        /* TriggeredReportingCriteria */
220 static int hf_lpp_periodicalReporting = -1;       /* PeriodicalReportingCriteria */
221 static int hf_lpp_additionalInformation = -1;     /* AdditionalInformation */
222 static int hf_lpp_qos = -1;                       /* QoS */
223 static int hf_lpp_environment = -1;               /* Environment */
224 static int hf_lpp_locationCoordinateTypes = -1;   /* LocationCoordinateTypes */
225 static int hf_lpp_velocityTypes = -1;             /* VelocityTypes */
226 static int hf_lpp_reportingAmount = -1;           /* T_reportingAmount */
227 static int hf_lpp_reportingInterval = -1;         /* T_reportingInterval */
228 static int hf_lpp_cellChange = -1;                /* BOOLEAN */
229 static int hf_lpp_reportingDuration = -1;         /* ReportingDuration */
230 static int hf_lpp_horizontalAccuracy = -1;        /* HorizontalAccuracy */
231 static int hf_lpp_verticalCoordinateRequest = -1;  /* BOOLEAN */
232 static int hf_lpp_verticalAccuracy = -1;          /* VerticalAccuracy */
233 static int hf_lpp_responseTime = -1;              /* ResponseTime */
234 static int hf_lpp_velocityRequest = -1;           /* BOOLEAN */
235 static int hf_lpp_accuracy = -1;                  /* INTEGER_0_127 */
236 static int hf_lpp_time = -1;                      /* INTEGER_1_128 */
237 static int hf_lpp_locationEstimate = -1;          /* LocationCoordinates */
238 static int hf_lpp_velocityEstimate = -1;          /* Velocity */
239 static int hf_lpp_locationError = -1;             /* LocationError */
240 static int hf_lpp_ellipsoidPoint_01 = -1;         /* Ellipsoid_Point */
241 static int hf_lpp_ellipsoidPointWithUncertaintyCircle_01 = -1;  /* Ellipsoid_PointWithUncertaintyCircle */
242 static int hf_lpp_ellipsoidPointWithUncertaintyEllipse_01 = -1;  /* EllipsoidPointWithUncertaintyEllipse */
243 static int hf_lpp_polygon_01 = -1;                /* Polygon */
244 static int hf_lpp_ellipsoidPointWithAltitude_01 = -1;  /* EllipsoidPointWithAltitude */
245 static int hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_01 = -1;  /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
246 static int hf_lpp_ellipsoidArc_01 = -1;           /* EllipsoidArc */
247 static int hf_lpp_horizontalVelocity_01 = -1;     /* HorizontalVelocity */
248 static int hf_lpp_horizontalWithVerticalVelocity_01 = -1;  /* HorizontalWithVerticalVelocity */
249 static int hf_lpp_horizontalVelocityWithUncertainty_01 = -1;  /* HorizontalVelocityWithUncertainty */
250 static int hf_lpp_horizontalWithVerticalVelocityAndUncertainty_01 = -1;  /* HorizontalWithVerticalVelocityAndUncertainty */
251 static int hf_lpp_locationfailurecause = -1;      /* LocationFailureCause */
252 static int hf_lpp_abortCause = -1;                /* T_abortCause */
253 static int hf_lpp_errorCause = -1;                /* T_errorCause */
254 static int hf_lpp_otdoa_ReferenceCellInfo = -1;   /* OTDOA_ReferenceCellInfo */
255 static int hf_lpp_otdoa_NeighbourCellInfo = -1;   /* OTDOA_NeighbourCellInfoList */
256 static int hf_lpp_otdoa_Error = -1;               /* OTDOA_Error */
257 static int hf_lpp_physCellId = -1;                /* INTEGER_0_503 */
258 static int hf_lpp_cellGlobalId = -1;              /* ECGI */
259 static int hf_lpp_earfcnRef = -1;                 /* ARFCN_ValueEUTRA */
260 static int hf_lpp_antennaPortConfig = -1;         /* T_antennaPortConfig */
261 static int hf_lpp_cpLength = -1;                  /* T_cpLength */
262 static int hf_lpp_prsInfo = -1;                   /* PRS_Info */
263 static int hf_lpp_prs_Bandwidth = -1;             /* T_prs_Bandwidth */
264 static int hf_lpp_prs_ConfigurationIndex = -1;    /* INTEGER_0_4095 */
265 static int hf_lpp_numDL_Frames = -1;              /* T_numDL_Frames */
266 static int hf_lpp_prs_MutingInfo_r9 = -1;         /* T_prs_MutingInfo_r9 */
267 static int hf_lpp_po2_r9 = -1;                    /* BIT_STRING_SIZE_2 */
268 static int hf_lpp_po4_r9 = -1;                    /* BIT_STRING_SIZE_4 */
269 static int hf_lpp_po8_r9 = -1;                    /* BIT_STRING_SIZE_8 */
270 static int hf_lpp_po16_r9 = -1;                   /* BIT_STRING_SIZE_16 */
271 static int hf_lpp_OTDOA_NeighbourCellInfoList_item = -1;  /* OTDOA_NeighbourFreqInfo */
272 static int hf_lpp_OTDOA_NeighbourFreqInfo_item = -1;  /* OTDOA_NeighbourCellInfoElement */
273 static int hf_lpp_earfcn = -1;                    /* ARFCN_ValueEUTRA */
274 static int hf_lpp_cpLength_01 = -1;               /* T_cpLength_01 */
275 static int hf_lpp_antennaPortConfig_01 = -1;      /* T_antennaPortConfig_01 */
276 static int hf_lpp_slotNumberOffset = -1;          /* INTEGER_0_19 */
277 static int hf_lpp_prs_SubframeOffset = -1;        /* INTEGER_0_1279 */
278 static int hf_lpp_expectedRSTD = -1;              /* INTEGER_0_16383 */
279 static int hf_lpp_expectedRSTD_Uncertainty = -1;  /* INTEGER_0_1023 */
280 static int hf_lpp_otdoaSignalMeasurementInformation = -1;  /* OTDOA_SignalMeasurementInformation */
281 static int hf_lpp_systemFrameNumber = -1;         /* BIT_STRING_SIZE_10 */
282 static int hf_lpp_physCellIdRef = -1;             /* INTEGER_0_503 */
283 static int hf_lpp_cellGlobalIdRef = -1;           /* ECGI */
284 static int hf_lpp_referenceQuality = -1;          /* OTDOA_MeasQuality */
285 static int hf_lpp_neighbourMeasurementList = -1;  /* NeighbourMeasurementList */
286 static int hf_lpp_NeighbourMeasurementList_item = -1;  /* NeighbourMeasurementElement */
287 static int hf_lpp_physCellIdNeighbor = -1;        /* INTEGER_0_503 */
288 static int hf_lpp_cellGlobalIdNeighbour = -1;     /* ECGI */
289 static int hf_lpp_earfcnNeighbour = -1;           /* ARFCN_ValueEUTRA */
290 static int hf_lpp_rstd = -1;                      /* INTEGER_0_12711 */
291 static int hf_lpp_rstd_Quality = -1;              /* OTDOA_MeasQuality */
292 static int hf_lpp_error_Resolution = -1;          /* BIT_STRING_SIZE_2 */
293 static int hf_lpp_error_Value = -1;               /* BIT_STRING_SIZE_5 */
294 static int hf_lpp_error_NumSamples = -1;          /* BIT_STRING_SIZE_3 */
295 static int hf_lpp_assistanceAvailability = -1;    /* BOOLEAN */
296 static int hf_lpp_otdoa_Mode = -1;                /* T_otdoa_Mode */
297 static int hf_lpp_supportedBandListEUTRA = -1;    /* SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA */
298 static int hf_lpp_supportedBandListEUTRA_item = -1;  /* SupportedBandEUTRA */
299 static int hf_lpp_bandEUTRA = -1;                 /* INTEGER_1_64 */
300 static int hf_lpp_locationServerErrorCauses = -1;  /* OTDOA_LocationServerErrorCauses */
301 static int hf_lpp_targetDeviceErrorCauses = -1;   /* OTDOA_TargetDeviceErrorCauses */
302 static int hf_lpp_cause = -1;                     /* T_cause */
303 static int hf_lpp_cause_01 = -1;                  /* T_cause_01 */
304 static int hf_lpp_gnss_CommonAssistData = -1;     /* GNSS_CommonAssistData */
305 static int hf_lpp_gnss_GenericAssistData = -1;    /* GNSS_GenericAssistData */
306 static int hf_lpp_gnss_Error = -1;                /* A_GNSS_Error */
307 static int hf_lpp_gnss_ReferenceTime = -1;        /* GNSS_ReferenceTime */
308 static int hf_lpp_gnss_ReferenceLocation = -1;    /* GNSS_ReferenceLocation */
309 static int hf_lpp_gnss_IonosphericModel = -1;     /* GNSS_IonosphericModel */
310 static int hf_lpp_gnss_EarthOrientationParameters = -1;  /* GNSS_EarthOrientationParameters */
311 static int hf_lpp_GNSS_GenericAssistData_item = -1;  /* GNSS_GenericAssistDataElement */
312 static int hf_lpp_gnss_ID = -1;                   /* GNSS_ID */
313 static int hf_lpp_sbas_ID = -1;                   /* SBAS_ID */
314 static int hf_lpp_gnss_TimeModels = -1;           /* GNSS_TimeModelList */
315 static int hf_lpp_gnss_DifferentialCorrections = -1;  /* GNSS_DifferentialCorrections */
316 static int hf_lpp_gnss_NavigationModel = -1;      /* GNSS_NavigationModel */
317 static int hf_lpp_gnss_RealTimeIntegrity = -1;    /* GNSS_RealTimeIntegrity */
318 static int hf_lpp_gnss_DataBitAssistance = -1;    /* GNSS_DataBitAssistance */
319 static int hf_lpp_gnss_AcquisitionAssistance = -1;  /* GNSS_AcquisitionAssistance */
320 static int hf_lpp_gnss_Almanac = -1;              /* GNSS_Almanac */
321 static int hf_lpp_gnss_UTC_Model = -1;            /* GNSS_UTC_Model */
322 static int hf_lpp_gnss_AuxiliaryInformation = -1;  /* GNSS_AuxiliaryInformation */
323 static int hf_lpp_gnss_SystemTime = -1;           /* GNSS_SystemTime */
324 static int hf_lpp_referenceTimeUnc = -1;          /* INTEGER_0_127 */
325 static int hf_lpp_gnss_ReferenceTimeForCells = -1;  /* SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell */
326 static int hf_lpp_gnss_ReferenceTimeForCells_item = -1;  /* GNSS_ReferenceTimeForOneCell */
327 static int hf_lpp_networkTime = -1;               /* NetworkTime */
328 static int hf_lpp_bsAlign = -1;                   /* T_bsAlign */
329 static int hf_lpp_gnss_TimeID = -1;               /* GNSS_ID */
330 static int hf_lpp_gnss_DayNumber = -1;            /* INTEGER_0_32767 */
331 static int hf_lpp_gnss_TimeOfDay = -1;            /* INTEGER_0_86399 */
332 static int hf_lpp_gnss_TimeOfDayFrac_msec = -1;   /* INTEGER_0_999 */
333 static int hf_lpp_notificationOfLeapSecond = -1;  /* BIT_STRING_SIZE_2 */
334 static int hf_lpp_gps_TOW_Assist = -1;            /* GPS_TOW_Assist */
335 static int hf_lpp_GPS_TOW_Assist_item = -1;       /* GPS_TOW_AssistElement */
336 static int hf_lpp_satelliteID = -1;               /* INTEGER_1_64 */
337 static int hf_lpp_tlmWord = -1;                   /* INTEGER_0_16383 */
338 static int hf_lpp_antiSpoof = -1;                 /* INTEGER_0_1 */
339 static int hf_lpp_alert = -1;                     /* INTEGER_0_1 */
340 static int hf_lpp_tlmRsvdBits = -1;               /* INTEGER_0_3 */
341 static int hf_lpp_secondsFromFrameStructureStart = -1;  /* INTEGER_0_12533 */
342 static int hf_lpp_fractionalSecondsFromFrameStructureStart = -1;  /* INTEGER_0_3999999 */
343 static int hf_lpp_frameDrift = -1;                /* INTEGER_M64_63 */
344 static int hf_lpp_cellID = -1;                    /* T_cellID */
345 static int hf_lpp_eUTRA = -1;                     /* T_eUTRA */
346 static int hf_lpp_cellGlobalIdEUTRA = -1;         /* CellGlobalIdEUTRA_AndUTRA */
347 static int hf_lpp_uTRA = -1;                      /* T_uTRA */
348 static int hf_lpp_mode = -1;                      /* T_mode */
349 static int hf_lpp_fdd = -1;                       /* T_fdd */
350 static int hf_lpp_primary_CPICH_Info = -1;        /* INTEGER_0_511 */
351 static int hf_lpp_tdd = -1;                       /* T_tdd */
352 static int hf_lpp_cellParameters = -1;            /* INTEGER_0_127 */
353 static int hf_lpp_cellGlobalIdUTRA = -1;          /* CellGlobalIdEUTRA_AndUTRA */
354 static int hf_lpp_uarfcn = -1;                    /* ARFCN_ValueUTRA */
355 static int hf_lpp_gSM = -1;                       /* T_gSM */
356 static int hf_lpp_bcchCarrier = -1;               /* INTEGER_0_1023 */
357 static int hf_lpp_bsic = -1;                      /* INTEGER_0_63 */
358 static int hf_lpp_cellGlobalIdGERAN = -1;         /* CellGlobalIdGERAN */
359 static int hf_lpp_threeDlocation = -1;            /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
360 static int hf_lpp_klobucharModel = -1;            /* KlobucharModelParameter */
361 static int hf_lpp_neQuickModel = -1;              /* NeQuickModelParameter */
362 static int hf_lpp_dataID = -1;                    /* BIT_STRING_SIZE_2 */
363 static int hf_lpp_alfa0 = -1;                     /* INTEGER_M128_127 */
364 static int hf_lpp_alfa1 = -1;                     /* INTEGER_M128_127 */
365 static int hf_lpp_alfa2 = -1;                     /* INTEGER_M128_127 */
366 static int hf_lpp_alfa3 = -1;                     /* INTEGER_M128_127 */
367 static int hf_lpp_beta0 = -1;                     /* INTEGER_M128_127 */
368 static int hf_lpp_beta1 = -1;                     /* INTEGER_M128_127 */
369 static int hf_lpp_beta2 = -1;                     /* INTEGER_M128_127 */
370 static int hf_lpp_beta3 = -1;                     /* INTEGER_M128_127 */
371 static int hf_lpp_ai0 = -1;                       /* INTEGER_0_4095 */
372 static int hf_lpp_ai1 = -1;                       /* INTEGER_0_4095 */
373 static int hf_lpp_ai2 = -1;                       /* INTEGER_0_4095 */
374 static int hf_lpp_ionoStormFlag1 = -1;            /* INTEGER_0_1 */
375 static int hf_lpp_ionoStormFlag2 = -1;            /* INTEGER_0_1 */
376 static int hf_lpp_ionoStormFlag3 = -1;            /* INTEGER_0_1 */
377 static int hf_lpp_ionoStormFlag4 = -1;            /* INTEGER_0_1 */
378 static int hf_lpp_ionoStormFlag5 = -1;            /* INTEGER_0_1 */
379 static int hf_lpp_teop = -1;                      /* INTEGER_0_65535 */
380 static int hf_lpp_pmX = -1;                       /* INTEGER_M1048576_1048575 */
381 static int hf_lpp_pmXdot = -1;                    /* INTEGER_M16384_16383 */
382 static int hf_lpp_pmY = -1;                       /* INTEGER_M1048576_1048575 */
383 static int hf_lpp_pmYdot = -1;                    /* INTEGER_M16384_16383 */
384 static int hf_lpp_deltaUT1 = -1;                  /* INTEGER_M1073741824_1073741823 */
385 static int hf_lpp_deltaUT1dot = -1;               /* INTEGER_M262144_262143 */
386 static int hf_lpp_GNSS_TimeModelList_item = -1;   /* GNSS_TimeModelElement */
387 static int hf_lpp_gnss_TimeModelRefTime = -1;     /* INTEGER_0_65535 */
388 static int hf_lpp_tA0 = -1;                       /* INTEGER_M67108864_67108863 */
389 static int hf_lpp_tA1 = -1;                       /* INTEGER_M4096_4095 */
390 static int hf_lpp_tA2 = -1;                       /* INTEGER_M64_63 */
391 static int hf_lpp_gnss_TO_ID = -1;                /* INTEGER_1_15 */
392 static int hf_lpp_weekNumber = -1;                /* INTEGER_0_8191 */
393 static int hf_lpp_deltaT = -1;                    /* INTEGER_M128_127 */
394 static int hf_lpp_dgnss_RefTime = -1;             /* INTEGER_0_3599 */
395 static int hf_lpp_dgnss_SgnTypeList = -1;         /* DGNSS_SgnTypeList */
396 static int hf_lpp_DGNSS_SgnTypeList_item = -1;    /* DGNSS_SgnTypeElement */
397 static int hf_lpp_gnss_SignalID = -1;             /* GNSS_SignalID */
398 static int hf_lpp_gnss_StatusHealth = -1;         /* INTEGER_0_7 */
399 static int hf_lpp_dgnss_SatList = -1;             /* DGNSS_SatList */
400 static int hf_lpp_DGNSS_SatList_item = -1;        /* DGNSS_CorrectionsElement */
401 static int hf_lpp_svID = -1;                      /* SV_ID */
402 static int hf_lpp_iod = -1;                       /* BIT_STRING_SIZE_11 */
403 static int hf_lpp_udre = -1;                      /* INTEGER_0_3 */
404 static int hf_lpp_pseudoRangeCor = -1;            /* INTEGER_M2047_2047 */
405 static int hf_lpp_rangeRateCor = -1;              /* INTEGER_M127_127 */
406 static int hf_lpp_udreGrowthRate = -1;            /* INTEGER_0_7 */
407 static int hf_lpp_udreValidityTime = -1;          /* INTEGER_0_7 */
408 static int hf_lpp_nonBroadcastIndFlag = -1;       /* INTEGER_0_1 */
409 static int hf_lpp_gnss_SatelliteList = -1;        /* GNSS_NavModelSatelliteList */
410 static int hf_lpp_GNSS_NavModelSatelliteList_item = -1;  /* GNSS_NavModelSatelliteElement */
411 static int hf_lpp_svHealth = -1;                  /* BIT_STRING_SIZE_8 */
412 static int hf_lpp_gnss_ClockModel = -1;           /* GNSS_ClockModel */
413 static int hf_lpp_gnss_OrbitModel = -1;           /* GNSS_OrbitModel */
414 static int hf_lpp_standardClockModelList = -1;    /* StandardClockModelList */
415 static int hf_lpp_nav_ClockModel = -1;            /* NAV_ClockModel */
416 static int hf_lpp_cnav_ClockModel = -1;           /* CNAV_ClockModel */
417 static int hf_lpp_glonass_ClockModel = -1;        /* GLONASS_ClockModel */
418 static int hf_lpp_sbas_ClockModel = -1;           /* SBAS_ClockModel */
419 static int hf_lpp_keplerianSet = -1;              /* NavModelKeplerianSet */
420 static int hf_lpp_nav_KeplerianSet = -1;          /* NavModelNAV_KeplerianSet */
421 static int hf_lpp_cnav_KeplerianSet = -1;         /* NavModelCNAV_KeplerianSet */
422 static int hf_lpp_glonass_ECEF = -1;              /* NavModel_GLONASS_ECEF */
423 static int hf_lpp_sbas_ECEF = -1;                 /* NavModel_SBAS_ECEF */
424 static int hf_lpp_StandardClockModelList_item = -1;  /* StandardClockModelElement */
425 static int hf_lpp_stanClockToc = -1;              /* INTEGER_0_16383 */
426 static int hf_lpp_stanClockAF2 = -1;              /* INTEGER_M2048_2047 */
427 static int hf_lpp_stanClockAF1 = -1;              /* INTEGER_M131072_131071 */
428 static int hf_lpp_stanClockAF0 = -1;              /* INTEGER_M134217728_134217727 */
429 static int hf_lpp_stanClockTgd = -1;              /* INTEGER_M512_511 */
430 static int hf_lpp_stanModelID = -1;               /* INTEGER_0_1 */
431 static int hf_lpp_navToc = -1;                    /* INTEGER_0_37799 */
432 static int hf_lpp_navaf2 = -1;                    /* INTEGER_M128_127 */
433 static int hf_lpp_navaf1 = -1;                    /* INTEGER_M32768_32767 */
434 static int hf_lpp_navaf0 = -1;                    /* INTEGER_M2097152_2097151 */
435 static int hf_lpp_navTgd = -1;                    /* INTEGER_M128_127 */
436 static int hf_lpp_cnavToc = -1;                   /* INTEGER_0_2015 */
437 static int hf_lpp_cnavTop = -1;                   /* INTEGER_0_2015 */
438 static int hf_lpp_cnavURA0 = -1;                  /* INTEGER_M16_15 */
439 static int hf_lpp_cnavURA1 = -1;                  /* INTEGER_0_7 */
440 static int hf_lpp_cnavURA2 = -1;                  /* INTEGER_0_7 */
441 static int hf_lpp_cnavAf2 = -1;                   /* INTEGER_M512_511 */
442 static int hf_lpp_cnavAf1 = -1;                   /* INTEGER_M524288_524287 */
443 static int hf_lpp_cnavAf0 = -1;                   /* INTEGER_M33554432_33554431 */
444 static int hf_lpp_cnavTgd = -1;                   /* INTEGER_M4096_4095 */
445 static int hf_lpp_cnavISCl1cp = -1;               /* INTEGER_M4096_4095 */
446 static int hf_lpp_cnavISCl1cd = -1;               /* INTEGER_M4096_4095 */
447 static int hf_lpp_cnavISCl1ca = -1;               /* INTEGER_M4096_4095 */
448 static int hf_lpp_cnavISCl2c = -1;                /* INTEGER_M4096_4095 */
449 static int hf_lpp_cnavISCl5i5 = -1;               /* INTEGER_M4096_4095 */
450 static int hf_lpp_cnavISCl5q5 = -1;               /* INTEGER_M4096_4095 */
451 static int hf_lpp_gloTau = -1;                    /* INTEGER_M2097152_2097151 */
452 static int hf_lpp_gloGamma = -1;                  /* INTEGER_M1024_1023 */
453 static int hf_lpp_gloDeltaTau = -1;               /* INTEGER_M16_15 */
454 static int hf_lpp_sbasTo = -1;                    /* INTEGER_0_5399 */
455 static int hf_lpp_sbasAgfo = -1;                  /* INTEGER_M2048_2047 */
456 static int hf_lpp_sbasAgf1 = -1;                  /* INTEGER_M128_127 */
457 static int hf_lpp_keplerToe = -1;                 /* INTEGER_0_16383 */
458 static int hf_lpp_keplerW = -1;                   /* INTEGER_M2147483648_2147483647 */
459 static int hf_lpp_keplerDeltaN = -1;              /* INTEGER_M32768_32767 */
460 static int hf_lpp_keplerM0 = -1;                  /* INTEGER_M2147483648_2147483647 */
461 static int hf_lpp_keplerOmegaDot = -1;            /* INTEGER_M8388608_8388607 */
462 static int hf_lpp_keplerE = -1;                   /* INTEGER_0_4294967295 */
463 static int hf_lpp_keplerIDot = -1;                /* INTEGER_M8192_8191 */
464 static int hf_lpp_keplerAPowerHalf = -1;          /* INTEGER_0_4294967295 */
465 static int hf_lpp_keplerI0 = -1;                  /* INTEGER_M2147483648_2147483647 */
466 static int hf_lpp_keplerOmega0 = -1;              /* INTEGER_M2147483648_2147483647 */
467 static int hf_lpp_keplerCrs = -1;                 /* INTEGER_M32768_32767 */
468 static int hf_lpp_keplerCis = -1;                 /* INTEGER_M32768_32767 */
469 static int hf_lpp_keplerCus = -1;                 /* INTEGER_M32768_32767 */
470 static int hf_lpp_keplerCrc = -1;                 /* INTEGER_M32768_32767 */
471 static int hf_lpp_keplerCic = -1;                 /* INTEGER_M32768_32767 */
472 static int hf_lpp_keplerCuc = -1;                 /* INTEGER_M32768_32767 */
473 static int hf_lpp_navURA = -1;                    /* INTEGER_0_15 */
474 static int hf_lpp_navFitFlag = -1;                /* INTEGER_0_1 */
475 static int hf_lpp_navToe = -1;                    /* INTEGER_0_37799 */
476 static int hf_lpp_navOmega = -1;                  /* INTEGER_M2147483648_2147483647 */
477 static int hf_lpp_navDeltaN = -1;                 /* INTEGER_M32768_32767 */
478 static int hf_lpp_navM0 = -1;                     /* INTEGER_M2147483648_2147483647 */
479 static int hf_lpp_navOmegaADot = -1;              /* INTEGER_M8388608_8388607 */
480 static int hf_lpp_navE = -1;                      /* INTEGER_0_4294967295 */
481 static int hf_lpp_navIDot = -1;                   /* INTEGER_M8192_8191 */
482 static int hf_lpp_navAPowerHalf = -1;             /* INTEGER_0_4294967295 */
483 static int hf_lpp_navI0 = -1;                     /* INTEGER_M2147483648_2147483647 */
484 static int hf_lpp_navOmegaA0 = -1;                /* INTEGER_M2147483648_2147483647 */
485 static int hf_lpp_navCrs = -1;                    /* INTEGER_M32768_32767 */
486 static int hf_lpp_navCis = -1;                    /* INTEGER_M32768_32767 */
487 static int hf_lpp_navCus = -1;                    /* INTEGER_M32768_32767 */
488 static int hf_lpp_navCrc = -1;                    /* INTEGER_M32768_32767 */
489 static int hf_lpp_navCic = -1;                    /* INTEGER_M32768_32767 */
490 static int hf_lpp_navCuc = -1;                    /* INTEGER_M32768_32767 */
491 static int hf_lpp_addNAVparam = -1;               /* T_addNAVparam */
492 static int hf_lpp_ephemCodeOnL2 = -1;             /* INTEGER_0_3 */
493 static int hf_lpp_ephemL2Pflag = -1;              /* INTEGER_0_1 */
494 static int hf_lpp_ephemSF1Rsvd = -1;              /* T_ephemSF1Rsvd */
495 static int hf_lpp_reserved1 = -1;                 /* INTEGER_0_8388607 */
496 static int hf_lpp_reserved2 = -1;                 /* INTEGER_0_16777215 */
497 static int hf_lpp_reserved3 = -1;                 /* INTEGER_0_16777215 */
498 static int hf_lpp_reserved4 = -1;                 /* INTEGER_0_65535 */
499 static int hf_lpp_ephemAODA = -1;                 /* INTEGER_0_31 */
500 static int hf_lpp_cnavURAindex = -1;              /* INTEGER_M16_15 */
501 static int hf_lpp_cnavDeltaA = -1;                /* INTEGER_M33554432_33554431 */
502 static int hf_lpp_cnavAdot = -1;                  /* INTEGER_M16777216_16777215 */
503 static int hf_lpp_cnavDeltaNo = -1;               /* INTEGER_M65536_65535 */
504 static int hf_lpp_cnavDeltaNoDot = -1;            /* INTEGER_M4194304_4194303 */
505 static int hf_lpp_cnavMo = -1;                    /* T_cnavMo */
506 static int hf_lpp_cnavE = -1;                     /* T_cnavE */
507 static int hf_lpp_cnavOmega = -1;                 /* T_cnavOmega */
508 static int hf_lpp_cnavOMEGA0 = -1;                /* T_cnavOMEGA0 */
509 static int hf_lpp_cnavDeltaOmegaDot = -1;         /* INTEGER_M65536_65535 */
510 static int hf_lpp_cnavIo = -1;                    /* T_cnavIo */
511 static int hf_lpp_cnavIoDot = -1;                 /* INTEGER_M16384_16383 */
512 static int hf_lpp_cnavCis = -1;                   /* INTEGER_M32768_32767 */
513 static int hf_lpp_cnavCic = -1;                   /* INTEGER_M32768_32767 */
514 static int hf_lpp_cnavCrs = -1;                   /* INTEGER_M8388608_8388607 */
515 static int hf_lpp_cnavCrc = -1;                   /* INTEGER_M8388608_8388607 */
516 static int hf_lpp_cnavCus = -1;                   /* INTEGER_M1048576_1048575 */
517 static int hf_lpp_cnavCuc = -1;                   /* INTEGER_M1048576_1048575 */
518 static int hf_lpp_gloEn = -1;                     /* INTEGER_0_31 */
519 static int hf_lpp_gloP1 = -1;                     /* BIT_STRING_SIZE_2 */
520 static int hf_lpp_gloP2 = -1;                     /* BOOLEAN */
521 static int hf_lpp_gloM = -1;                      /* INTEGER_0_3 */
522 static int hf_lpp_gloX = -1;                      /* INTEGER_M67108864_67108863 */
523 static int hf_lpp_gloXdot = -1;                   /* INTEGER_M8388608_8388607 */
524 static int hf_lpp_gloXdotdot = -1;                /* INTEGER_M16_15 */
525 static int hf_lpp_gloY = -1;                      /* INTEGER_M67108864_67108863 */
526 static int hf_lpp_gloYdot = -1;                   /* INTEGER_M8388608_8388607 */
527 static int hf_lpp_gloYdotdot = -1;                /* INTEGER_M16_15 */
528 static int hf_lpp_gloZ = -1;                      /* INTEGER_M67108864_67108863 */
529 static int hf_lpp_gloZdot = -1;                   /* INTEGER_M8388608_8388607 */
530 static int hf_lpp_gloZdotdot = -1;                /* INTEGER_M16_15 */
531 static int hf_lpp_sbasAccuracy = -1;              /* BIT_STRING_SIZE_4 */
532 static int hf_lpp_sbasXg = -1;                    /* INTEGER_M536870912_536870911 */
533 static int hf_lpp_sbasYg = -1;                    /* INTEGER_M536870912_536870911 */
534 static int hf_lpp_sbasZg = -1;                    /* INTEGER_M16777216_16777215 */
535 static int hf_lpp_sbasXgDot = -1;                 /* INTEGER_M65536_65535 */
536 static int hf_lpp_sbasYgDot = -1;                 /* INTEGER_M65536_65535 */
537 static int hf_lpp_sbasZgDot = -1;                 /* INTEGER_M131072_131071 */
538 static int hf_lpp_sbasXgDotDot = -1;              /* INTEGER_M512_511 */
539 static int hf_lpp_sbagYgDotDot = -1;              /* INTEGER_M512_511 */
540 static int hf_lpp_sbasZgDotDot = -1;              /* INTEGER_M512_511 */
541 static int hf_lpp_gnss_BadSignalList = -1;        /* GNSS_BadSignalList */
542 static int hf_lpp_GNSS_BadSignalList_item = -1;   /* BadSignalElement */
543 static int hf_lpp_badSVID = -1;                   /* SV_ID */
544 static int hf_lpp_badSignalID = -1;               /* GNSS_SignalIDs */
545 static int hf_lpp_gnss_TOD = -1;                  /* INTEGER_0_3599 */
546 static int hf_lpp_gnss_TODfrac = -1;              /* INTEGER_0_999 */
547 static int hf_lpp_gnss_DataBitsSatList = -1;      /* GNSS_DataBitsSatList */
548 static int hf_lpp_GNSS_DataBitsSatList_item = -1;  /* GNSS_DataBitsSatElement */
549 static int hf_lpp_gnss_DataBitsSgnList = -1;      /* GNSS_DataBitsSgnList */
550 static int hf_lpp_GNSS_DataBitsSgnList_item = -1;  /* GNSS_DataBitsSgnElement */
551 static int hf_lpp_gnss_SignalType = -1;           /* GNSS_SignalID */
552 static int hf_lpp_gnss_DataBits = -1;             /* BIT_STRING_SIZE_1_1024 */
553 static int hf_lpp_gnss_AcquisitionAssistList = -1;  /* GNSS_AcquisitionAssistList */
554 static int hf_lpp_GNSS_AcquisitionAssistList_item = -1;  /* GNSS_AcquisitionAssistElement */
555 static int hf_lpp_doppler0 = -1;                  /* INTEGER_M2048_2047 */
556 static int hf_lpp_doppler1 = -1;                  /* INTEGER_0_63 */
557 static int hf_lpp_dopplerUncertainty = -1;        /* INTEGER_0_4 */
558 static int hf_lpp_codePhase = -1;                 /* INTEGER_0_1022 */
559 static int hf_lpp_intCodePhase = -1;              /* INTEGER_0_127 */
560 static int hf_lpp_codePhaseSearchWindow = -1;     /* INTEGER_0_31 */
561 static int hf_lpp_azimuth = -1;                   /* INTEGER_0_511 */
562 static int hf_lpp_elevation = -1;                 /* INTEGER_0_127 */
563 static int hf_lpp_codePhase1023 = -1;             /* BOOLEAN */
564 static int hf_lpp_weekNumber_01 = -1;             /* INTEGER_0_255 */
565 static int hf_lpp_toa = -1;                       /* INTEGER_0_255 */
566 static int hf_lpp_ioda = -1;                      /* INTEGER_0_3 */
567 static int hf_lpp_completeAlmanacProvided = -1;   /* BOOLEAN */
568 static int hf_lpp_gnss_AlmanacList = -1;          /* GNSS_AlmanacList */
569 static int hf_lpp_GNSS_AlmanacList_item = -1;     /* GNSS_AlmanacElement */
570 static int hf_lpp_keplerianAlmanacSet = -1;       /* AlmanacKeplerianSet */
571 static int hf_lpp_keplerianNAV_Almanac = -1;      /* AlmanacNAV_KeplerianSet */
572 static int hf_lpp_keplerianReducedAlmanac = -1;   /* AlmanacReducedKeplerianSet */
573 static int hf_lpp_keplerianMidiAlmanac = -1;      /* AlmanacMidiAlmanacSet */
574 static int hf_lpp_keplerianGLONASS = -1;          /* AlmanacGLONASS_AlmanacSet */
575 static int hf_lpp_ecef_SBAS_Almanac = -1;         /* AlmanacECEF_SBAS_AlmanacSet */
576 static int hf_lpp_kepAlmanacE = -1;               /* INTEGER_0_2047 */
577 static int hf_lpp_kepAlmanacDeltaI = -1;          /* INTEGER_M1024_1023 */
578 static int hf_lpp_kepAlmanacOmegaDot = -1;        /* INTEGER_M1024_1023 */
579 static int hf_lpp_kepSVHealth = -1;               /* INTEGER_0_15 */
580 static int hf_lpp_kepAlmanacAPowerHalf = -1;      /* INTEGER_M65536_65535 */
581 static int hf_lpp_kepAlmanacOmega0 = -1;          /* INTEGER_M32768_32767 */
582 static int hf_lpp_kepAlmanacW = -1;               /* INTEGER_M32768_32767 */
583 static int hf_lpp_kepAlmanacM0 = -1;              /* INTEGER_M32768_32767 */
584 static int hf_lpp_kepAlmanacAF0 = -1;             /* INTEGER_M8192_8191 */
585 static int hf_lpp_kepAlmanacAF1 = -1;             /* INTEGER_M1024_1023 */
586 static int hf_lpp_navAlmE = -1;                   /* INTEGER_0_65535 */
587 static int hf_lpp_navAlmDeltaI = -1;              /* INTEGER_M32768_32767 */
588 static int hf_lpp_navAlmOMEGADOT = -1;            /* INTEGER_M32768_32767 */
589 static int hf_lpp_navAlmSVHealth = -1;            /* INTEGER_0_255 */
590 static int hf_lpp_navAlmSqrtA = -1;               /* INTEGER_0_16777215 */
591 static int hf_lpp_navAlmOMEGAo = -1;              /* INTEGER_M8388608_8388607 */
592 static int hf_lpp_navAlmOmega = -1;               /* INTEGER_M8388608_8388607 */
593 static int hf_lpp_navAlmMo = -1;                  /* INTEGER_M8388608_8388607 */
594 static int hf_lpp_navAlmaf0 = -1;                 /* INTEGER_M1024_1023 */
595 static int hf_lpp_navAlmaf1 = -1;                 /* INTEGER_M1024_1023 */
596 static int hf_lpp_redAlmDeltaA = -1;              /* INTEGER_M128_127 */
597 static int hf_lpp_redAlmOmega0 = -1;              /* INTEGER_M64_63 */
598 static int hf_lpp_redAlmPhi0 = -1;                /* INTEGER_M64_63 */
599 static int hf_lpp_redAlmL1Health = -1;            /* BOOLEAN */
600 static int hf_lpp_redAlmL2Health = -1;            /* BOOLEAN */
601 static int hf_lpp_redAlmL5Health = -1;            /* BOOLEAN */
602 static int hf_lpp_midiAlmE = -1;                  /* INTEGER_0_2047 */
603 static int hf_lpp_midiAlmDeltaI = -1;             /* INTEGER_M1024_1023 */
604 static int hf_lpp_midiAlmOmegaDot = -1;           /* INTEGER_M1024_1023 */
605 static int hf_lpp_midiAlmSqrtA = -1;              /* INTEGER_0_131071 */
606 static int hf_lpp_midiAlmOmega0 = -1;             /* INTEGER_M32768_32767 */
607 static int hf_lpp_midiAlmOmega = -1;              /* INTEGER_M32768_32767 */
608 static int hf_lpp_midiAlmMo = -1;                 /* INTEGER_M32768_32767 */
609 static int hf_lpp_midiAlmaf0 = -1;                /* INTEGER_M1024_1023 */
610 static int hf_lpp_midiAlmaf1 = -1;                /* INTEGER_M512_511 */
611 static int hf_lpp_midiAlmL1Health = -1;           /* BOOLEAN */
612 static int hf_lpp_midiAlmL2Health = -1;           /* BOOLEAN */
613 static int hf_lpp_midiAlmL5Health = -1;           /* BOOLEAN */
614 static int hf_lpp_gloAlm_NA = -1;                 /* INTEGER_1_1461 */
615 static int hf_lpp_gloAlmnA = -1;                  /* INTEGER_1_24 */
616 static int hf_lpp_gloAlmHA = -1;                  /* INTEGER_0_31 */
617 static int hf_lpp_gloAlmLambdaA = -1;             /* INTEGER_M1048576_1048575 */
618 static int hf_lpp_gloAlmtlambdaA = -1;            /* INTEGER_0_2097151 */
619 static int hf_lpp_gloAlmDeltaIa = -1;             /* INTEGER_M131072_131071 */
620 static int hf_lpp_gloAlmDeltaTA = -1;             /* INTEGER_M2097152_2097151 */
621 static int hf_lpp_gloAlmDeltaTdotA = -1;          /* INTEGER_M64_63 */
622 static int hf_lpp_gloAlmEpsilonA = -1;            /* INTEGER_0_32767 */
623 static int hf_lpp_gloAlmOmegaA = -1;              /* INTEGER_M32768_32767 */
624 static int hf_lpp_gloAlmTauA = -1;                /* INTEGER_M512_511 */
625 static int hf_lpp_gloAlmCA = -1;                  /* INTEGER_0_1 */
626 static int hf_lpp_gloAlmMA = -1;                  /* BIT_STRING_SIZE_2 */
627 static int hf_lpp_sbasAlmDataID = -1;             /* INTEGER_0_3 */
628 static int hf_lpp_sbasAlmHealth = -1;             /* BIT_STRING_SIZE_8 */
629 static int hf_lpp_sbasAlmXg = -1;                 /* INTEGER_M16384_16383 */
630 static int hf_lpp_sbasAlmYg = -1;                 /* INTEGER_M16384_16383 */
631 static int hf_lpp_sbasAlmZg = -1;                 /* INTEGER_M256_255 */
632 static int hf_lpp_sbasAlmXgdot = -1;              /* INTEGER_M4_3 */
633 static int hf_lpp_sbasAlmYgDot = -1;              /* INTEGER_M4_3 */
634 static int hf_lpp_sbasAlmZgDot = -1;              /* INTEGER_M8_7 */
635 static int hf_lpp_sbasAlmTo = -1;                 /* INTEGER_0_2047 */
636 static int hf_lpp_utcModel1 = -1;                 /* UTC_ModelSet1 */
637 static int hf_lpp_utcModel2 = -1;                 /* UTC_ModelSet2 */
638 static int hf_lpp_utcModel3 = -1;                 /* UTC_ModelSet3 */
639 static int hf_lpp_utcModel4 = -1;                 /* UTC_ModelSet4 */
640 static int hf_lpp_gnss_Utc_A1 = -1;               /* INTEGER_M8388608_8388607 */
641 static int hf_lpp_gnss_Utc_A0 = -1;               /* INTEGER_M2147483648_2147483647 */
642 static int hf_lpp_gnss_Utc_Tot = -1;              /* INTEGER_0_255 */
643 static int hf_lpp_gnss_Utc_WNt = -1;              /* INTEGER_0_255 */
644 static int hf_lpp_gnss_Utc_DeltaTls = -1;         /* INTEGER_M128_127 */
645 static int hf_lpp_gnss_Utc_WNlsf = -1;            /* INTEGER_0_255 */
646 static int hf_lpp_gnss_Utc_DN = -1;               /* INTEGER_M128_127 */
647 static int hf_lpp_gnss_Utc_DeltaTlsf = -1;        /* INTEGER_M128_127 */
648 static int hf_lpp_utcA0 = -1;                     /* INTEGER_M32768_32767 */
649 static int hf_lpp_utcA1 = -1;                     /* INTEGER_M4096_4095 */
650 static int hf_lpp_utcA2 = -1;                     /* INTEGER_M64_63 */
651 static int hf_lpp_utcDeltaTls = -1;               /* INTEGER_M128_127 */
652 static int hf_lpp_utcTot = -1;                    /* INTEGER_0_65535 */
653 static int hf_lpp_utcWNot = -1;                   /* INTEGER_0_8191 */
654 static int hf_lpp_utcWNlsf = -1;                  /* INTEGER_0_255 */
655 static int hf_lpp_utcDN = -1;                     /* BIT_STRING_SIZE_4 */
656 static int hf_lpp_utcDeltaTlsf = -1;              /* INTEGER_M128_127 */
657 static int hf_lpp_nA = -1;                        /* INTEGER_1_1461 */
658 static int hf_lpp_tauC = -1;                      /* INTEGER_M2147483648_2147483647 */
659 static int hf_lpp_b1 = -1;                        /* INTEGER_M1024_1023 */
660 static int hf_lpp_b2 = -1;                        /* INTEGER_M512_511 */
661 static int hf_lpp_kp = -1;                        /* BIT_STRING_SIZE_2 */
662 static int hf_lpp_utcA1wnt = -1;                  /* INTEGER_M8388608_8388607 */
663 static int hf_lpp_utcA0wnt = -1;                  /* INTEGER_M2147483648_2147483647 */
664 static int hf_lpp_utcTot_01 = -1;                 /* INTEGER_0_255 */
665 static int hf_lpp_utcWNt = -1;                    /* INTEGER_0_255 */
666 static int hf_lpp_utcDN_01 = -1;                  /* INTEGER_M128_127 */
667 static int hf_lpp_utcStandardID = -1;             /* INTEGER_0_7 */
668 static int hf_lpp_gnss_ID_GPS = -1;               /* GNSS_ID_GPS */
669 static int hf_lpp_gnss_ID_GLONASS = -1;           /* GNSS_ID_GLONASS */
670 static int hf_lpp_GNSS_ID_GPS_item = -1;          /* GNSS_ID_GPS_SatElement */
671 static int hf_lpp_signalsAvailable = -1;          /* GNSS_SignalIDs */
672 static int hf_lpp_GNSS_ID_GLONASS_item = -1;      /* GNSS_ID_GLONASS_SatElement */
673 static int hf_lpp_channelNumber = -1;             /* INTEGER_M7_13 */
674 static int hf_lpp_gnss_CommonAssistDataReq = -1;  /* GNSS_CommonAssistDataReq */
675 static int hf_lpp_gnss_GenericAssistDataReq = -1;  /* GNSS_GenericAssistDataReq */
676 static int hf_lpp_gnss_ReferenceTimeReq = -1;     /* GNSS_ReferenceTimeReq */
677 static int hf_lpp_gnss_ReferenceLocationReq = -1;  /* GNSS_ReferenceLocationReq */
678 static int hf_lpp_gnss_IonosphericModelReq = -1;  /* GNSS_IonosphericModelReq */
679 static int hf_lpp_gnss_EarthOrientationParametersReq = -1;  /* GNSS_EarthOrientationParametersReq */
680 static int hf_lpp_GNSS_GenericAssistDataReq_item = -1;  /* GNSS_GenericAssistDataReqElement */
681 static int hf_lpp_gnss_TimeModelsReq = -1;        /* GNSS_TimeModelListReq */
682 static int hf_lpp_gnss_DifferentialCorrectionsReq = -1;  /* GNSS_DifferentialCorrectionsReq */
683 static int hf_lpp_gnss_NavigationModelReq = -1;   /* GNSS_NavigationModelReq */
684 static int hf_lpp_gnss_RealTimeIntegrityReq = -1;  /* GNSS_RealTimeIntegrityReq */
685 static int hf_lpp_gnss_DataBitAssistanceReq = -1;  /* GNSS_DataBitAssistanceReq */
686 static int hf_lpp_gnss_AcquisitionAssistanceReq = -1;  /* GNSS_AcquisitionAssistanceReq */
687 static int hf_lpp_gnss_AlmanacReq = -1;           /* GNSS_AlmanacReq */
688 static int hf_lpp_gnss_UTCModelReq = -1;          /* GNSS_UTC_ModelReq */
689 static int hf_lpp_gnss_AuxiliaryInformationReq = -1;  /* GNSS_AuxiliaryInformationReq */
690 static int hf_lpp_gnss_TimeReqPrefList = -1;      /* SEQUENCE_SIZE_1_8_OF_GNSS_ID */
691 static int hf_lpp_gnss_TimeReqPrefList_item = -1;  /* GNSS_ID */
692 static int hf_lpp_gps_TOW_assistReq = -1;         /* BOOLEAN */
693 static int hf_lpp_notOfLeapSecReq = -1;           /* BOOLEAN */
694 static int hf_lpp_klobucharModelReq = -1;         /* BIT_STRING_SIZE_2 */
695 static int hf_lpp_neQuickModelReq = -1;           /* NULL */
696 static int hf_lpp_GNSS_TimeModelListReq_item = -1;  /* GNSS_TimeModelElementReq */
697 static int hf_lpp_gnss_TO_IDsReq = -1;            /* INTEGER_1_15 */
698 static int hf_lpp_deltaTreq = -1;                 /* BOOLEAN */
699 static int hf_lpp_dgnss_SignalsReq = -1;          /* GNSS_SignalIDs */
700 static int hf_lpp_dgnss_ValidityTimeReq = -1;     /* BOOLEAN */
701 static int hf_lpp_storedNavList = -1;             /* StoredNavListInfo */
702 static int hf_lpp_reqNavList = -1;                /* ReqNavListInfo */
703 static int hf_lpp_gnss_WeekOrDay = -1;            /* INTEGER_0_4095 */
704 static int hf_lpp_gnss_Toe = -1;                  /* INTEGER_0_255 */
705 static int hf_lpp_t_toeLimit = -1;                /* INTEGER_0_15 */
706 static int hf_lpp_satListRelatedDataList = -1;    /* SatListRelatedDataList */
707 static int hf_lpp_SatListRelatedDataList_item = -1;  /* SatListRelatedDataElement */
708 static int hf_lpp_clockModelID = -1;              /* INTEGER_1_8 */
709 static int hf_lpp_orbitModelID = -1;              /* INTEGER_1_8 */
710 static int hf_lpp_svReqList = -1;                 /* BIT_STRING_SIZE_64 */
711 static int hf_lpp_clockModelID_PrefList = -1;     /* T_clockModelID_PrefList */
712 static int hf_lpp_clockModelID_PrefList_item = -1;  /* INTEGER_1_8 */
713 static int hf_lpp_orbitModelID_PrefList = -1;     /* T_orbitModelID_PrefList */
714 static int hf_lpp_orbitModelID_PrefList_item = -1;  /* INTEGER_1_8 */
715 static int hf_lpp_addNavparamReq = -1;            /* BOOLEAN */
716 static int hf_lpp_gnss_TOD_Req = -1;              /* INTEGER_0_3599 */
717 static int hf_lpp_gnss_TOD_FracReq = -1;          /* INTEGER_0_999 */
718 static int hf_lpp_dataBitInterval = -1;           /* INTEGER_0_15 */
719 static int hf_lpp_gnss_SignalType_01 = -1;        /* GNSS_SignalIDs */
720 static int hf_lpp_gnss_DataBitsReq = -1;          /* GNSS_DataBitsReqSatList */
721 static int hf_lpp_GNSS_DataBitsReqSatList_item = -1;  /* GNSS_DataBitsReqSatElement */
722 static int hf_lpp_gnss_SignalID_Req = -1;         /* GNSS_SignalID */
723 static int hf_lpp_modelID = -1;                   /* INTEGER_1_8 */
724 static int hf_lpp_gnss_SignalMeasurementInformation = -1;  /* GNSS_SignalMeasurementInformation */
725 static int hf_lpp_gnss_LocationInformation = -1;  /* GNSS_LocationInformation */
726 static int hf_lpp_measurementReferenceTime = -1;  /* MeasurementReferenceTime */
727 static int hf_lpp_gnss_MeasurementList = -1;      /* GNSS_MeasurementList */
728 static int hf_lpp_gnss_TOD_msec = -1;             /* INTEGER_0_3599999 */
729 static int hf_lpp_gnss_TOD_frac = -1;             /* INTEGER_0_3999 */
730 static int hf_lpp_gnss_TOD_unc = -1;              /* INTEGER_0_127 */
731 static int hf_lpp_networkTime_01 = -1;            /* T_networkTime */
732 static int hf_lpp_eUTRA_01 = -1;                  /* T_eUTRA_01 */
733 static int hf_lpp_cellGlobalId_01 = -1;           /* CellGlobalIdEUTRA_AndUTRA */
734 static int hf_lpp_uTRA_01 = -1;                   /* T_uTRA_01 */
735 static int hf_lpp_mode_01 = -1;                   /* T_mode_01 */
736 static int hf_lpp_fdd_01 = -1;                    /* T_fdd_01 */
737 static int hf_lpp_tdd_01 = -1;                    /* T_tdd_01 */
738 static int hf_lpp_referenceSystemFrameNumber = -1;  /* INTEGER_0_4095 */
739 static int hf_lpp_gSM_01 = -1;                    /* T_gSM_01 */
740 static int hf_lpp_cellGlobalId_02 = -1;           /* CellGlobalIdGERAN */
741 static int hf_lpp_referenceFrame = -1;            /* T_referenceFrame */
742 static int hf_lpp_referenceFN = -1;               /* INTEGER_0_65535 */
743 static int hf_lpp_referenceFNMSB = -1;            /* INTEGER_0_63 */
744 static int hf_lpp_deltaGNSS_TOD = -1;             /* INTEGER_0_127 */
745 static int hf_lpp_GNSS_MeasurementList_item = -1;  /* GNSS_MeasurementForOneGNSS */
746 static int hf_lpp_gnss_SgnMeasList = -1;          /* GNSS_SgnMeasList */
747 static int hf_lpp_GNSS_SgnMeasList_item = -1;     /* GNSS_SgnMeasElement */
748 static int hf_lpp_gnss_CodePhaseAmbiguity = -1;   /* INTEGER_0_127 */
749 static int hf_lpp_gnss_SatMeasList = -1;          /* GNSS_SatMeasList */
750 static int hf_lpp_GNSS_SatMeasList_item = -1;     /* GNSS_SatMeasElement */
751 static int hf_lpp_cNo = -1;                       /* INTEGER_0_63 */
752 static int hf_lpp_mpathDet = -1;                  /* T_mpathDet */
753 static int hf_lpp_carrierQualityInd = -1;         /* INTEGER_0_3 */
754 static int hf_lpp_codePhase_01 = -1;              /* INTEGER_0_2097151 */
755 static int hf_lpp_integerCodePhase = -1;          /* INTEGER_0_127 */
756 static int hf_lpp_codePhaseRMSError = -1;         /* INTEGER_0_63 */
757 static int hf_lpp_doppler = -1;                   /* INTEGER_M32768_32767 */
758 static int hf_lpp_adr = -1;                       /* INTEGER_0_33554431 */
759 static int hf_lpp_agnss_List = -1;                /* GNSS_ID_Bitmap */
760 static int hf_lpp_gnss_PositioningInstructions = -1;  /* GNSS_PositioningInstructions */
761 static int hf_lpp_gnss_Methods = -1;              /* GNSS_ID_Bitmap */
762 static int hf_lpp_fineTimeAssistanceMeasReq = -1;  /* BOOLEAN */
763 static int hf_lpp_adrMeasReq = -1;                /* BOOLEAN */
764 static int hf_lpp_multiFreqMeasReq = -1;          /* BOOLEAN */
765 static int hf_lpp_gnss_SupportList = -1;          /* GNSS_SupportList */
766 static int hf_lpp_assistanceDataSupportList = -1;  /* AssistanceDataSupportList */
767 static int hf_lpp_GNSS_SupportList_item = -1;     /* GNSS_SupportElement */
768 static int hf_lpp_sbas_IDs = -1;                  /* SBAS_IDs */
769 static int hf_lpp_agnss_Modes = -1;               /* PositioningModes */
770 static int hf_lpp_gnss_Signals = -1;              /* GNSS_SignalIDs */
771 static int hf_lpp_fta_MeasSupport = -1;           /* T_fta_MeasSupport */
772 static int hf_lpp_cellTime = -1;                  /* AccessTypes */
773 static int hf_lpp_mode_02 = -1;                   /* PositioningModes */
774 static int hf_lpp_adr_Support = -1;               /* BOOLEAN */
775 static int hf_lpp_velocityMeasurementSupport = -1;  /* BOOLEAN */
776 static int hf_lpp_gnss_CommonAssistanceDataSupport = -1;  /* GNSS_CommonAssistanceDataSupport */
777 static int hf_lpp_gnss_GenericAssistanceDataSupport = -1;  /* GNSS_GenericAssistanceDataSupport */
778 static int hf_lpp_gnss_ReferenceTimeSupport = -1;  /* GNSS_ReferenceTimeSupport */
779 static int hf_lpp_gnss_ReferenceLocationSupport = -1;  /* GNSS_ReferenceLocationSupport */
780 static int hf_lpp_gnss_IonosphericModelSupport = -1;  /* GNSS_IonosphericModelSupport */
781 static int hf_lpp_gnss_EarthOrientationParametersSupport = -1;  /* GNSS_EarthOrientationParametersSupport */
782 static int hf_lpp_gnss_SystemTime_01 = -1;        /* GNSS_ID_Bitmap */
783 static int hf_lpp_fta_Support = -1;               /* AccessTypes */
784 static int hf_lpp_ionoModel = -1;                 /* T_ionoModel */
785 static int hf_lpp_GNSS_GenericAssistanceDataSupport_item = -1;  /* GNSS_GenericAssistDataSupportElement */
786 static int hf_lpp_gnss_TimeModelsSupport = -1;    /* GNSS_TimeModelListSupport */
787 static int hf_lpp_gnss_DifferentialCorrectionsSupport = -1;  /* GNSS_DifferentialCorrectionsSupport */
788 static int hf_lpp_gnss_NavigationModelSupport = -1;  /* GNSS_NavigationModelSupport */
789 static int hf_lpp_gnss_RealTimeIntegritySupport = -1;  /* GNSS_RealTimeIntegritySupport */
790 static int hf_lpp_gnss_DataBitAssistanceSupport = -1;  /* GNSS_DataBitAssistanceSupport */
791 static int hf_lpp_gnss_AcquisitionAssistanceSupport = -1;  /* GNSS_AcquisitionAssistanceSupport */
792 static int hf_lpp_gnss_AlmanacSupport = -1;       /* GNSS_AlmanacSupport */
793 static int hf_lpp_gnss_UTC_ModelSupport = -1;     /* GNSS_UTC_ModelSupport */
794 static int hf_lpp_gnss_AuxiliaryInformationSupport = -1;  /* GNSS_AuxiliaryInformationSupport */
795 static int hf_lpp_gnssSignalIDs = -1;             /* GNSS_SignalIDs */
796 static int hf_lpp_dgnss_ValidityTimeSup = -1;     /* BOOLEAN */
797 static int hf_lpp_clockModel = -1;                /* T_clockModel */
798 static int hf_lpp_orbitModel = -1;                /* T_orbitModel */
799 static int hf_lpp_almanacModel = -1;              /* T_almanacModel */
800 static int hf_lpp_utc_Model = -1;                 /* T_utc_Model */
801 static int hf_lpp_gnss_SupportListReq = -1;       /* BOOLEAN */
802 static int hf_lpp_assistanceDataSupportListReq = -1;  /* BOOLEAN */
803 static int hf_lpp_locationVelocityTypesReq = -1;  /* BOOLEAN */
804 static int hf_lpp_locationServerErrorCauses_01 = -1;  /* GNSS_LocationServerErrorCauses */
805 static int hf_lpp_targetDeviceErrorCauses_01 = -1;  /* GNSS_TargetDeviceErrorCauses */
806 static int hf_lpp_cause_02 = -1;                  /* T_cause_02 */
807 static int hf_lpp_cause_03 = -1;                  /* T_cause_03 */
808 static int hf_lpp_fineTimeAssistanceMeasurementsNotPossible = -1;  /* NULL */
809 static int hf_lpp_adrMeasurementsNotPossible = -1;  /* NULL */
810 static int hf_lpp_multiFrequencyMeasurementsNotPossible = -1;  /* NULL */
811 static int hf_lpp_gnss_id = -1;                   /* T_gnss_id */
812 static int hf_lpp_gnss_ids = -1;                  /* T_gnss_ids */
813 static int hf_lpp_gnss_SignalID_01 = -1;          /* INTEGER_0_7 */
814 static int hf_lpp_gnss_SignalIDs = -1;            /* BIT_STRING_SIZE_8 */
815 static int hf_lpp_sbas_id = -1;                   /* T_sbas_id */
816 static int hf_lpp_sbas_IDs_01 = -1;               /* T_sbas_IDs */
817 static int hf_lpp_satellite_id = -1;              /* INTEGER_0_63 */
818 static int hf_lpp_ecid_SignalMeasurementInformation = -1;  /* ECID_SignalMeasurementInformation */
819 static int hf_lpp_ecid_Error = -1;                /* ECID_Error */
820 static int hf_lpp_servingCellMeasuredResults = -1;  /* MeasuredResultsElement */
821 static int hf_lpp_measuredResultsList = -1;       /* MeasuredResultsList */
822 static int hf_lpp_MeasuredResultsList_item = -1;  /* MeasuredResultsElement */
823 static int hf_lpp_arfcnEUTRA = -1;                /* ARFCN_ValueEUTRA */
824 static int hf_lpp_rsrp_Result = -1;               /* INTEGER_0_97 */
825 static int hf_lpp_rsrq_Result = -1;               /* INTEGER_0_34 */
826 static int hf_lpp_ue_RxTxTimeDiff = -1;           /* INTEGER_0_4095 */
827 static int hf_lpp_requestedMeasurements = -1;     /* T_requestedMeasurements */
828 static int hf_lpp_ecid_MeasSupported = -1;        /* T_ecid_MeasSupported */
829 static int hf_lpp_locationServerErrorCauses_02 = -1;  /* ECID_LocationServerErrorCauses */
830 static int hf_lpp_targetDeviceErrorCauses_02 = -1;  /* ECID_TargetDeviceErrorCauses */
831 static int hf_lpp_cause_04 = -1;                  /* T_cause_04 */
832 static int hf_lpp_cause_05 = -1;                  /* T_cause_05 */
833 static int hf_lpp_rsrpMeasurementNotPossible = -1;  /* NULL */
834 static int hf_lpp_rsrqMeasurementNotPossible = -1;  /* NULL */
835 static int hf_lpp_ueRxTxMeasurementNotPossible = -1;  /* NULL */
836 /* named bits */
837 static int hf_lpp_T_accessTypes_eutra = -1;
838 static int hf_lpp_T_accessTypes_utra = -1;
839 static int hf_lpp_T_accessTypes_gsm = -1;
840 static int hf_lpp_T_posModes_standalone = -1;
841 static int hf_lpp_T_posModes_ue_based = -1;
842 static int hf_lpp_T_posModes_ue_assisted = -1;
843 static int hf_lpp_T_otdoa_Mode_ue_assisted = -1;
844 static int hf_lpp_T_ionoModel_klobuchar = -1;
845 static int hf_lpp_T_ionoModel_neQuick = -1;
846 static int hf_lpp_T_clockModel_model_1 = -1;
847 static int hf_lpp_T_clockModel_model_2 = -1;
848 static int hf_lpp_T_clockModel_model_3 = -1;
849 static int hf_lpp_T_clockModel_model_4 = -1;
850 static int hf_lpp_T_clockModel_model_5 = -1;
851 static int hf_lpp_T_orbitModel_model_1 = -1;
852 static int hf_lpp_T_orbitModel_model_2 = -1;
853 static int hf_lpp_T_orbitModel_model_3 = -1;
854 static int hf_lpp_T_orbitModel_model_4 = -1;
855 static int hf_lpp_T_orbitModel_model_5 = -1;
856 static int hf_lpp_T_almanacModel_model_1 = -1;
857 static int hf_lpp_T_almanacModel_model_2 = -1;
858 static int hf_lpp_T_almanacModel_model_3 = -1;
859 static int hf_lpp_T_almanacModel_model_4 = -1;
860 static int hf_lpp_T_almanacModel_model_5 = -1;
861 static int hf_lpp_T_almanacModel_model_6 = -1;
862 static int hf_lpp_T_utc_Model_model_1 = -1;
863 static int hf_lpp_T_utc_Model_model_2 = -1;
864 static int hf_lpp_T_utc_Model_model_3 = -1;
865 static int hf_lpp_T_utc_Model_model_4 = -1;
866 static int hf_lpp_T_gnss_ids_gps = -1;
867 static int hf_lpp_T_gnss_ids_sbas = -1;
868 static int hf_lpp_T_gnss_ids_qzss = -1;
869 static int hf_lpp_T_gnss_ids_galileo = -1;
870 static int hf_lpp_T_gnss_ids_glonass = -1;
871 static int hf_lpp_T_sbas_IDs_waas = -1;
872 static int hf_lpp_T_sbas_IDs_egnos = -1;
873 static int hf_lpp_T_sbas_IDs_msas = -1;
874 static int hf_lpp_T_sbas_IDs_gagan = -1;
875 static int hf_lpp_T_requestedMeasurements_rsrpReq = -1;
876 static int hf_lpp_T_requestedMeasurements_rsrqReq = -1;
877 static int hf_lpp_T_requestedMeasurements_ueRxTxReq = -1;
878 static int hf_lpp_T_ecid_MeasSupported_rsrpSup = -1;
879 static int hf_lpp_T_ecid_MeasSupported_rsrqSup = -1;
880 static int hf_lpp_T_ecid_MeasSupported_ueRxTxSup = -1;
881
882 /*--- End of included file: packet-lpp-hf.c ---*/
883 #line 52 "../../asn1/lpp/packet-lpp-template.c"
884
885 /* Initialize the subtree pointers */
886 static gint ett_lpp = -1;
887
888 /*--- Included file: packet-lpp-ett.c ---*/
889 #line 1 "../../asn1/lpp/packet-lpp-ett.c"
890 static gint ett_lpp_LPP_Message = -1;
891 static gint ett_lpp_Acknowledgement = -1;
892 static gint ett_lpp_LPP_MessageBody = -1;
893 static gint ett_lpp_T_c1 = -1;
894 static gint ett_lpp_T_messageClassExtension = -1;
895 static gint ett_lpp_LPP_TransactionID = -1;
896 static gint ett_lpp_RequestCapabilities = -1;
897 static gint ett_lpp_T_criticalExtensions = -1;
898 static gint ett_lpp_T_c1_01 = -1;
899 static gint ett_lpp_T_criticalExtensionsFuture = -1;
900 static gint ett_lpp_RequestCapabilities_r9_IEs = -1;
901 static gint ett_lpp_ProvideCapabilities = -1;
902 static gint ett_lpp_T_criticalExtensions_01 = -1;
903 static gint ett_lpp_T_c1_02 = -1;
904 static gint ett_lpp_T_criticalExtensionsFuture_01 = -1;
905 static gint ett_lpp_ProvideCapabilities_r9_IEs = -1;
906 static gint ett_lpp_RequestAssistanceData = -1;
907 static gint ett_lpp_T_criticalExtensions_02 = -1;
908 static gint ett_lpp_T_c1_03 = -1;
909 static gint ett_lpp_T_criticalExtensionsFuture_02 = -1;
910 static gint ett_lpp_RequestAssistanceData_r9_IEs = -1;
911 static gint ett_lpp_ProvideAssistanceData = -1;
912 static gint ett_lpp_T_criticalExtensions_03 = -1;
913 static gint ett_lpp_T_c1_04 = -1;
914 static gint ett_lpp_T_criticalExtensionsFuture_03 = -1;
915 static gint ett_lpp_ProvideAssistanceData_r9_IEs = -1;
916 static gint ett_lpp_RequestLocationInformation = -1;
917 static gint ett_lpp_T_criticalExtensions_04 = -1;
918 static gint ett_lpp_T_c1_05 = -1;
919 static gint ett_lpp_T_criticalExtensionsFuture_04 = -1;
920 static gint ett_lpp_RequestLocationInformation_r9_IEs = -1;
921 static gint ett_lpp_ProvideLocationInformation = -1;
922 static gint ett_lpp_T_criticalExtensions_05 = -1;
923 static gint ett_lpp_T_c1_06 = -1;
924 static gint ett_lpp_T_criticalExtensionsFuture_05 = -1;
925 static gint ett_lpp_ProvideLocationInformation_r9_IEs = -1;
926 static gint ett_lpp_Abort = -1;
927 static gint ett_lpp_T_criticalExtensions_06 = -1;
928 static gint ett_lpp_T_c1_07 = -1;
929 static gint ett_lpp_T_criticalExtensionsFuture_06 = -1;
930 static gint ett_lpp_Abort_r9_IEs = -1;
931 static gint ett_lpp_Error = -1;
932 static gint ett_lpp_T_criticalExtensionsFuture_07 = -1;
933 static gint ett_lpp_Error_r9_IEs = -1;
934 static gint ett_lpp_AccessTypes = -1;
935 static gint ett_lpp_T_accessTypes = -1;
936 static gint ett_lpp_CellGlobalIdEUTRA_AndUTRA = -1;
937 static gint ett_lpp_T_plmn_Identity = -1;
938 static gint ett_lpp_T_mcc = -1;
939 static gint ett_lpp_T_mnc = -1;
940 static gint ett_lpp_T_cellIdentity = -1;
941 static gint ett_lpp_CellGlobalIdGERAN = -1;
942 static gint ett_lpp_T_plmn_Identity_01 = -1;
943 static gint ett_lpp_T_mcc_01 = -1;
944 static gint ett_lpp_T_mnc_01 = -1;
945 static gint ett_lpp_ECGI = -1;
946 static gint ett_lpp_T_mcc_02 = -1;
947 static gint ett_lpp_T_mnc_02 = -1;
948 static gint ett_lpp_Ellipsoid_Point = -1;
949 static gint ett_lpp_Ellipsoid_PointWithUncertaintyCircle = -1;
950 static gint ett_lpp_EllipsoidPointWithUncertaintyEllipse = -1;
951 static gint ett_lpp_EllipsoidPointWithAltitude = -1;
952 static gint ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid = -1;
953 static gint ett_lpp_EllipsoidArc = -1;
954 static gint ett_lpp_EPDU_Sequence = -1;
955 static gint ett_lpp_EPDU = -1;
956 static gint ett_lpp_EPDU_Identifier = -1;
957 static gint ett_lpp_HorizontalVelocity = -1;
958 static gint ett_lpp_HorizontalWithVerticalVelocity = -1;
959 static gint ett_lpp_HorizontalVelocityWithUncertainty = -1;
960 static gint ett_lpp_HorizontalWithVerticalVelocityAndUncertainty = -1;
961 static gint ett_lpp_LocationCoordinateTypes = -1;
962 static gint ett_lpp_Polygon = -1;
963 static gint ett_lpp_PolygonPoints = -1;
964 static gint ett_lpp_PositioningModes = -1;
965 static gint ett_lpp_T_posModes = -1;
966 static gint ett_lpp_VelocityTypes = -1;
967 static gint ett_lpp_CommonIEsRequestCapabilities = -1;
968 static gint ett_lpp_CommonIEsProvideCapabilities = -1;
969 static gint ett_lpp_CommonIEsRequestAssistanceData = -1;
970 static gint ett_lpp_CommonIEsProvideAssistanceData = -1;
971 static gint ett_lpp_CommonIEsRequestLocationInformation = -1;
972 static gint ett_lpp_PeriodicalReportingCriteria = -1;
973 static gint ett_lpp_TriggeredReportingCriteria = -1;
974 static gint ett_lpp_QoS = -1;
975 static gint ett_lpp_HorizontalAccuracy = -1;
976 static gint ett_lpp_VerticalAccuracy = -1;
977 static gint ett_lpp_ResponseTime = -1;
978 static gint ett_lpp_CommonIEsProvideLocationInformation = -1;
979 static gint ett_lpp_LocationCoordinates = -1;
980 static gint ett_lpp_Velocity = -1;
981 static gint ett_lpp_LocationError = -1;
982 static gint ett_lpp_CommonIEsAbort = -1;
983 static gint ett_lpp_CommonIEsError = -1;
984 static gint ett_lpp_OTDOA_ProvideAssistanceData = -1;
985 static gint ett_lpp_OTDOA_ReferenceCellInfo = -1;
986 static gint ett_lpp_PRS_Info = -1;
987 static gint ett_lpp_T_prs_MutingInfo_r9 = -1;
988 static gint ett_lpp_OTDOA_NeighbourCellInfoList = -1;
989 static gint ett_lpp_OTDOA_NeighbourFreqInfo = -1;
990 static gint ett_lpp_OTDOA_NeighbourCellInfoElement = -1;
991 static gint ett_lpp_OTDOA_RequestAssistanceData = -1;
992 static gint ett_lpp_OTDOA_ProvideLocationInformation = -1;
993 static gint ett_lpp_OTDOA_SignalMeasurementInformation = -1;
994 static gint ett_lpp_NeighbourMeasurementList = -1;
995 static gint ett_lpp_NeighbourMeasurementElement = -1;
996 static gint ett_lpp_OTDOA_MeasQuality = -1;
997 static gint ett_lpp_OTDOA_RequestLocationInformation = -1;
998 static gint ett_lpp_OTDOA_ProvideCapabilities = -1;
999 static gint ett_lpp_T_otdoa_Mode = -1;
1000 static gint ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA = -1;
1001 static gint ett_lpp_SupportedBandEUTRA = -1;
1002 static gint ett_lpp_OTDOA_RequestCapabilities = -1;
1003 static gint ett_lpp_OTDOA_Error = -1;
1004 static gint ett_lpp_OTDOA_LocationServerErrorCauses = -1;
1005 static gint ett_lpp_OTDOA_TargetDeviceErrorCauses = -1;
1006 static gint ett_lpp_A_GNSS_ProvideAssistanceData = -1;
1007 static gint ett_lpp_GNSS_CommonAssistData = -1;
1008 static gint ett_lpp_GNSS_GenericAssistData = -1;
1009 static gint ett_lpp_GNSS_GenericAssistDataElement = -1;
1010 static gint ett_lpp_GNSS_ReferenceTime = -1;
1011 static gint ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell = -1;
1012 static gint ett_lpp_GNSS_ReferenceTimeForOneCell = -1;
1013 static gint ett_lpp_GNSS_SystemTime = -1;
1014 static gint ett_lpp_GPS_TOW_Assist = -1;
1015 static gint ett_lpp_GPS_TOW_AssistElement = -1;
1016 static gint ett_lpp_NetworkTime = -1;
1017 static gint ett_lpp_T_cellID = -1;
1018 static gint ett_lpp_T_eUTRA = -1;
1019 static gint ett_lpp_T_uTRA = -1;
1020 static gint ett_lpp_T_mode = -1;
1021 static gint ett_lpp_T_fdd = -1;
1022 static gint ett_lpp_T_tdd = -1;
1023 static gint ett_lpp_T_gSM = -1;
1024 static gint ett_lpp_GNSS_ReferenceLocation = -1;
1025 static gint ett_lpp_GNSS_IonosphericModel = -1;
1026 static gint ett_lpp_KlobucharModelParameter = -1;
1027 static gint ett_lpp_NeQuickModelParameter = -1;
1028 static gint ett_lpp_GNSS_EarthOrientationParameters = -1;
1029 static gint ett_lpp_GNSS_TimeModelList = -1;
1030 static gint ett_lpp_GNSS_TimeModelElement = -1;
1031 static gint ett_lpp_GNSS_DifferentialCorrections = -1;
1032 static gint ett_lpp_DGNSS_SgnTypeList = -1;
1033 static gint ett_lpp_DGNSS_SgnTypeElement = -1;
1034 static gint ett_lpp_DGNSS_SatList = -1;
1035 static gint ett_lpp_DGNSS_CorrectionsElement = -1;
1036 static gint ett_lpp_GNSS_NavigationModel = -1;
1037 static gint ett_lpp_GNSS_NavModelSatelliteList = -1;
1038 static gint ett_lpp_GNSS_NavModelSatelliteElement = -1;
1039 static gint ett_lpp_GNSS_ClockModel = -1;
1040 static gint ett_lpp_GNSS_OrbitModel = -1;
1041 static gint ett_lpp_StandardClockModelList = -1;
1042 static gint ett_lpp_StandardClockModelElement = -1;
1043 static gint ett_lpp_NAV_ClockModel = -1;
1044 static gint ett_lpp_CNAV_ClockModel = -1;
1045 static gint ett_lpp_GLONASS_ClockModel = -1;
1046 static gint ett_lpp_SBAS_ClockModel = -1;
1047 static gint ett_lpp_NavModelKeplerianSet = -1;
1048 static gint ett_lpp_NavModelNAV_KeplerianSet = -1;
1049 static gint ett_lpp_T_addNAVparam = -1;
1050 static gint ett_lpp_T_ephemSF1Rsvd = -1;
1051 static gint ett_lpp_NavModelCNAV_KeplerianSet = -1;
1052 static gint ett_lpp_NavModel_GLONASS_ECEF = -1;
1053 static gint ett_lpp_NavModel_SBAS_ECEF = -1;
1054 static gint ett_lpp_GNSS_RealTimeIntegrity = -1;
1055 static gint ett_lpp_GNSS_BadSignalList = -1;
1056 static gint ett_lpp_BadSignalElement = -1;
1057 static gint ett_lpp_GNSS_DataBitAssistance = -1;
1058 static gint ett_lpp_GNSS_DataBitsSatList = -1;
1059 static gint ett_lpp_GNSS_DataBitsSatElement = -1;
1060 static gint ett_lpp_GNSS_DataBitsSgnList = -1;
1061 static gint ett_lpp_GNSS_DataBitsSgnElement = -1;
1062 static gint ett_lpp_GNSS_AcquisitionAssistance = -1;
1063 static gint ett_lpp_GNSS_AcquisitionAssistList = -1;
1064 static gint ett_lpp_GNSS_AcquisitionAssistElement = -1;
1065 static gint ett_lpp_GNSS_Almanac = -1;
1066 static gint ett_lpp_GNSS_AlmanacList = -1;
1067 static gint ett_lpp_GNSS_AlmanacElement = -1;
1068 static gint ett_lpp_AlmanacKeplerianSet = -1;
1069 static gint ett_lpp_AlmanacNAV_KeplerianSet = -1;
1070 static gint ett_lpp_AlmanacReducedKeplerianSet = -1;
1071 static gint ett_lpp_AlmanacMidiAlmanacSet = -1;
1072 static gint ett_lpp_AlmanacGLONASS_AlmanacSet = -1;
1073 static gint ett_lpp_AlmanacECEF_SBAS_AlmanacSet = -1;
1074 static gint ett_lpp_GNSS_UTC_Model = -1;
1075 static gint ett_lpp_UTC_ModelSet1 = -1;
1076 static gint ett_lpp_UTC_ModelSet2 = -1;
1077 static gint ett_lpp_UTC_ModelSet3 = -1;
1078 static gint ett_lpp_UTC_ModelSet4 = -1;
1079 static gint ett_lpp_GNSS_AuxiliaryInformation = -1;
1080 static gint ett_lpp_GNSS_ID_GPS = -1;
1081 static gint ett_lpp_GNSS_ID_GPS_SatElement = -1;
1082 static gint ett_lpp_GNSS_ID_GLONASS = -1;
1083 static gint ett_lpp_GNSS_ID_GLONASS_SatElement = -1;
1084 static gint ett_lpp_A_GNSS_RequestAssistanceData = -1;
1085 static gint ett_lpp_GNSS_CommonAssistDataReq = -1;
1086 static gint ett_lpp_GNSS_GenericAssistDataReq = -1;
1087 static gint ett_lpp_GNSS_GenericAssistDataReqElement = -1;
1088 static gint ett_lpp_GNSS_ReferenceTimeReq = -1;
1089 static gint ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID = -1;
1090 static gint ett_lpp_GNSS_ReferenceLocationReq = -1;
1091 static gint ett_lpp_GNSS_IonosphericModelReq = -1;
1092 static gint ett_lpp_GNSS_EarthOrientationParametersReq = -1;
1093 static gint ett_lpp_GNSS_TimeModelListReq = -1;
1094 static gint ett_lpp_GNSS_TimeModelElementReq = -1;
1095 static gint ett_lpp_GNSS_DifferentialCorrectionsReq = -1;
1096 static gint ett_lpp_GNSS_NavigationModelReq = -1;
1097 static gint ett_lpp_StoredNavListInfo = -1;
1098 static gint ett_lpp_SatListRelatedDataList = -1;
1099 static gint ett_lpp_SatListRelatedDataElement = -1;
1100 static gint ett_lpp_ReqNavListInfo = -1;
1101 static gint ett_lpp_T_clockModelID_PrefList = -1;
1102 static gint ett_lpp_T_orbitModelID_PrefList = -1;
1103 static gint ett_lpp_GNSS_RealTimeIntegrityReq = -1;
1104 static gint ett_lpp_GNSS_DataBitAssistanceReq = -1;
1105 static gint ett_lpp_GNSS_DataBitsReqSatList = -1;
1106 static gint ett_lpp_GNSS_DataBitsReqSatElement = -1;
1107 static gint ett_lpp_GNSS_AcquisitionAssistanceReq = -1;
1108 static gint ett_lpp_GNSS_AlmanacReq = -1;
1109 static gint ett_lpp_GNSS_UTC_ModelReq = -1;
1110 static gint ett_lpp_GNSS_AuxiliaryInformationReq = -1;
1111 static gint ett_lpp_A_GNSS_ProvideLocationInformation = -1;
1112 static gint ett_lpp_GNSS_SignalMeasurementInformation = -1;
1113 static gint ett_lpp_MeasurementReferenceTime = -1;
1114 static gint ett_lpp_T_networkTime = -1;
1115 static gint ett_lpp_T_eUTRA_01 = -1;
1116 static gint ett_lpp_T_uTRA_01 = -1;
1117 static gint ett_lpp_T_mode_01 = -1;
1118 static gint ett_lpp_T_fdd_01 = -1;
1119 static gint ett_lpp_T_tdd_01 = -1;
1120 static gint ett_lpp_T_gSM_01 = -1;
1121 static gint ett_lpp_T_referenceFrame = -1;
1122 static gint ett_lpp_GNSS_MeasurementList = -1;
1123 static gint ett_lpp_GNSS_MeasurementForOneGNSS = -1;
1124 static gint ett_lpp_GNSS_SgnMeasList = -1;
1125 static gint ett_lpp_GNSS_SgnMeasElement = -1;
1126 static gint ett_lpp_GNSS_SatMeasList = -1;
1127 static gint ett_lpp_GNSS_SatMeasElement = -1;
1128 static gint ett_lpp_GNSS_LocationInformation = -1;
1129 static gint ett_lpp_A_GNSS_RequestLocationInformation = -1;
1130 static gint ett_lpp_GNSS_PositioningInstructions = -1;
1131 static gint ett_lpp_A_GNSS_ProvideCapabilities = -1;
1132 static gint ett_lpp_GNSS_SupportList = -1;
1133 static gint ett_lpp_GNSS_SupportElement = -1;
1134 static gint ett_lpp_T_fta_MeasSupport = -1;
1135 static gint ett_lpp_AssistanceDataSupportList = -1;
1136 static gint ett_lpp_GNSS_CommonAssistanceDataSupport = -1;
1137 static gint ett_lpp_GNSS_ReferenceTimeSupport = -1;
1138 static gint ett_lpp_GNSS_ReferenceLocationSupport = -1;
1139 static gint ett_lpp_GNSS_IonosphericModelSupport = -1;
1140 static gint ett_lpp_T_ionoModel = -1;
1141 static gint ett_lpp_GNSS_EarthOrientationParametersSupport = -1;
1142 static gint ett_lpp_GNSS_GenericAssistanceDataSupport = -1;
1143 static gint ett_lpp_GNSS_GenericAssistDataSupportElement = -1;
1144 static gint ett_lpp_GNSS_TimeModelListSupport = -1;
1145 static gint ett_lpp_GNSS_DifferentialCorrectionsSupport = -1;
1146 static gint ett_lpp_GNSS_NavigationModelSupport = -1;
1147 static gint ett_lpp_T_clockModel = -1;
1148 static gint ett_lpp_T_orbitModel = -1;
1149 static gint ett_lpp_GNSS_RealTimeIntegritySupport = -1;
1150 static gint ett_lpp_GNSS_DataBitAssistanceSupport = -1;
1151 static gint ett_lpp_GNSS_AcquisitionAssistanceSupport = -1;
1152 static gint ett_lpp_GNSS_AlmanacSupport = -1;
1153 static gint ett_lpp_T_almanacModel = -1;
1154 static gint ett_lpp_GNSS_UTC_ModelSupport = -1;
1155 static gint ett_lpp_T_utc_Model = -1;
1156 static gint ett_lpp_GNSS_AuxiliaryInformationSupport = -1;
1157 static gint ett_lpp_A_GNSS_RequestCapabilities = -1;
1158 static gint ett_lpp_A_GNSS_Error = -1;
1159 static gint ett_lpp_GNSS_LocationServerErrorCauses = -1;
1160 static gint ett_lpp_GNSS_TargetDeviceErrorCauses = -1;
1161 static gint ett_lpp_GNSS_ID = -1;
1162 static gint ett_lpp_GNSS_ID_Bitmap = -1;
1163 static gint ett_lpp_T_gnss_ids = -1;
1164 static gint ett_lpp_GNSS_SignalID = -1;
1165 static gint ett_lpp_GNSS_SignalIDs = -1;
1166 static gint ett_lpp_SBAS_ID = -1;
1167 static gint ett_lpp_SBAS_IDs = -1;
1168 static gint ett_lpp_T_sbas_IDs = -1;
1169 static gint ett_lpp_SV_ID = -1;
1170 static gint ett_lpp_ECID_ProvideLocationInformation = -1;
1171 static gint ett_lpp_ECID_SignalMeasurementInformation = -1;
1172 static gint ett_lpp_MeasuredResultsList = -1;
1173 static gint ett_lpp_MeasuredResultsElement = -1;
1174 static gint ett_lpp_ECID_RequestLocationInformation = -1;
1175 static gint ett_lpp_T_requestedMeasurements = -1;
1176 static gint ett_lpp_ECID_ProvideCapabilities = -1;
1177 static gint ett_lpp_T_ecid_MeasSupported = -1;
1178 static gint ett_lpp_ECID_RequestCapabilities = -1;
1179 static gint ett_lpp_ECID_Error = -1;
1180 static gint ett_lpp_ECID_LocationServerErrorCauses = -1;
1181 static gint ett_lpp_ECID_TargetDeviceErrorCauses = -1;
1182
1183 /*--- End of included file: packet-lpp-ett.c ---*/
1184 #line 56 "../../asn1/lpp/packet-lpp-template.c"
1185
1186 /* Include constants */
1187
1188 /*--- Included file: packet-lpp-val.h ---*/
1189 #line 1 "../../asn1/lpp/packet-lpp-val.h"
1190 #define maxEPDU                        16
1191 #define maxFreqLayers                  3
1192 #define maxBands                       64
1193
1194 /*--- End of included file: packet-lpp-val.h ---*/
1195 #line 59 "../../asn1/lpp/packet-lpp-template.c"
1196
1197
1198
1199 /*--- Included file: packet-lpp-fn.c ---*/
1200 #line 1 "../../asn1/lpp/packet-lpp-fn.c"
1201
1202 static const value_string lpp_Initiator_vals[] = {
1203   {   0, "locationServer" },
1204   {   1, "targetDevice" },
1205   { 0, NULL }
1206 };
1207
1208
1209 static int
1210 dissect_lpp_Initiator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1211   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1212                                      2, NULL, TRUE, 0, NULL);
1213
1214   return offset;
1215 }
1216
1217
1218
1219 static int
1220 dissect_lpp_TransactionNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1221   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1222                                                             0U, 255U, NULL, FALSE);
1223
1224   return offset;
1225 }
1226
1227
1228 static const per_sequence_t LPP_TransactionID_sequence[] = {
1229   { &hf_lpp_initiator       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_Initiator },
1230   { &hf_lpp_transactionNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_TransactionNumber },
1231   { NULL, 0, 0, NULL }
1232 };
1233
1234 static int
1235 dissect_lpp_LPP_TransactionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1236   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1237                                    ett_lpp_LPP_TransactionID, LPP_TransactionID_sequence);
1238
1239   return offset;
1240 }
1241
1242
1243
1244 static int
1245 dissect_lpp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1246   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1247
1248   return offset;
1249 }
1250
1251
1252
1253 static int
1254 dissect_lpp_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1255   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1256                                                             0U, 255U, NULL, FALSE);
1257
1258   return offset;
1259 }
1260
1261
1262 static const per_sequence_t Acknowledgement_sequence[] = {
1263   { &hf_lpp_ackRequested    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1264   { &hf_lpp_ackIndicator    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SequenceNumber },
1265   { NULL, 0, 0, NULL }
1266 };
1267
1268 static int
1269 dissect_lpp_Acknowledgement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1270   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1271                                    ett_lpp_Acknowledgement, Acknowledgement_sequence);
1272
1273   return offset;
1274 }
1275
1276
1277 static const per_sequence_t CommonIEsRequestCapabilities_sequence[] = {
1278   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1279 };
1280
1281 static int
1282 dissect_lpp_CommonIEsRequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1283   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1284                                    ett_lpp_CommonIEsRequestCapabilities, CommonIEsRequestCapabilities_sequence);
1285
1286   return offset;
1287 }
1288
1289
1290 static const per_sequence_t A_GNSS_RequestCapabilities_sequence[] = {
1291   { &hf_lpp_gnss_SupportListReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1292   { &hf_lpp_assistanceDataSupportListReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1293   { &hf_lpp_locationVelocityTypesReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1294   { NULL, 0, 0, NULL }
1295 };
1296
1297 static int
1298 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_) {
1299   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1300                                    ett_lpp_A_GNSS_RequestCapabilities, A_GNSS_RequestCapabilities_sequence);
1301
1302   return offset;
1303 }
1304
1305
1306 static const per_sequence_t OTDOA_RequestCapabilities_sequence[] = {
1307   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1308 };
1309
1310 static int
1311 dissect_lpp_OTDOA_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1312   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1313                                    ett_lpp_OTDOA_RequestCapabilities, OTDOA_RequestCapabilities_sequence);
1314
1315   return offset;
1316 }
1317
1318
1319 static const per_sequence_t ECID_RequestCapabilities_sequence[] = {
1320   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1321 };
1322
1323 static int
1324 dissect_lpp_ECID_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1325   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1326                                    ett_lpp_ECID_RequestCapabilities, ECID_RequestCapabilities_sequence);
1327
1328   return offset;
1329 }
1330
1331
1332
1333 static int
1334 dissect_lpp_EPDU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1335   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1336                                                             1U, 256U, NULL, FALSE);
1337
1338   return offset;
1339 }
1340
1341
1342
1343 static int
1344 dissect_lpp_EPDU_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1345   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
1346                                           1, 32, FALSE);
1347
1348   return offset;
1349 }
1350
1351
1352 static const per_sequence_t EPDU_Identifier_sequence[] = {
1353   { &hf_lpp_ePDU_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU_ID },
1354   { &hf_lpp_ePDU_Name       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Name },
1355   { NULL, 0, 0, NULL }
1356 };
1357
1358 static int
1359 dissect_lpp_EPDU_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1360   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1361                                    ett_lpp_EPDU_Identifier, EPDU_Identifier_sequence);
1362
1363   return offset;
1364 }
1365
1366
1367
1368 static int
1369 dissect_lpp_EPDU_Body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1370   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1371                                        NO_BOUND, NO_BOUND, FALSE, NULL);
1372
1373   return offset;
1374 }
1375
1376
1377 static const per_sequence_t EPDU_sequence[] = {
1378   { &hf_lpp_ePDU_Identifier , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU_Identifier },
1379   { &hf_lpp_ePDU_Body       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU_Body },
1380   { NULL, 0, 0, NULL }
1381 };
1382
1383 static int
1384 dissect_lpp_EPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1385   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1386                                    ett_lpp_EPDU, EPDU_sequence);
1387
1388   return offset;
1389 }
1390
1391
1392 static const per_sequence_t EPDU_Sequence_sequence_of[1] = {
1393   { &hf_lpp_EPDU_Sequence_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_EPDU },
1394 };
1395
1396 static int
1397 dissect_lpp_EPDU_Sequence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1398   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1399                                                   ett_lpp_EPDU_Sequence, EPDU_Sequence_sequence_of,
1400                                                   1, maxEPDU, FALSE);
1401
1402   return offset;
1403 }
1404
1405
1406 static const per_sequence_t RequestCapabilities_r9_IEs_sequence[] = {
1407   { &hf_lpp_commonIEsRequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsRequestCapabilities },
1408   { &hf_lpp_a_gnss_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_RequestCapabilities },
1409   { &hf_lpp_otdoa_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_RequestCapabilities },
1410   { &hf_lpp_ecid_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_RequestCapabilities },
1411   { &hf_lpp_epdu_RequestCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
1412   { NULL, 0, 0, NULL }
1413 };
1414
1415 static int
1416 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_) {
1417   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1418                                    ett_lpp_RequestCapabilities_r9_IEs, RequestCapabilities_r9_IEs_sequence);
1419
1420   return offset;
1421 }
1422
1423
1424
1425 static int
1426 dissect_lpp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1427   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1428
1429   return offset;
1430 }
1431
1432
1433 static const value_string lpp_T_c1_01_vals[] = {
1434   {   0, "requestCapabilities-r9" },
1435   {   1, "spare3" },
1436   {   2, "spare2" },
1437   {   3, "spare1" },
1438   { 0, NULL }
1439 };
1440
1441 static const per_choice_t T_c1_01_choice[] = {
1442   {   0, &hf_lpp_requestCapabilities_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestCapabilities_r9_IEs },
1443   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
1444   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
1445   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
1446   { 0, NULL, 0, NULL }
1447 };
1448
1449 static int
1450 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_) {
1451   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1452                                  ett_lpp_T_c1_01, T_c1_01_choice,
1453                                  NULL);
1454
1455   return offset;
1456 }
1457
1458
1459 static const per_sequence_t T_criticalExtensionsFuture_sequence[] = {
1460   { NULL, 0, 0, NULL }
1461 };
1462
1463 static int
1464 dissect_lpp_T_criticalExtensionsFuture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1465   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1466                                    ett_lpp_T_criticalExtensionsFuture, T_criticalExtensionsFuture_sequence);
1467
1468   return offset;
1469 }
1470
1471
1472 static const value_string lpp_T_criticalExtensions_vals[] = {
1473   {   0, "c1" },
1474   {   1, "criticalExtensionsFuture" },
1475   { 0, NULL }
1476 };
1477
1478 static const per_choice_t T_criticalExtensions_choice[] = {
1479   {   0, &hf_lpp_c1_01           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_01 },
1480   {   1, &hf_lpp_criticalExtensionsFuture, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture },
1481   { 0, NULL, 0, NULL }
1482 };
1483
1484 static int
1485 dissect_lpp_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1486   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1487                                  ett_lpp_T_criticalExtensions, T_criticalExtensions_choice,
1488                                  NULL);
1489
1490   return offset;
1491 }
1492
1493
1494 static const per_sequence_t RequestCapabilities_sequence[] = {
1495   { &hf_lpp_criticalExtensions, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions },
1496   { NULL, 0, 0, NULL }
1497 };
1498
1499 static int
1500 dissect_lpp_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1501 #line 29 "../../asn1/lpp/lpp.cnf"
1502
1503   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities");
1504
1505
1506   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1507                                    ett_lpp_RequestCapabilities, RequestCapabilities_sequence);
1508
1509   return offset;
1510 }
1511
1512
1513 static const per_sequence_t CommonIEsProvideCapabilities_sequence[] = {
1514   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1515 };
1516
1517 static int
1518 dissect_lpp_CommonIEsProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1519   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1520                                    ett_lpp_CommonIEsProvideCapabilities, CommonIEsProvideCapabilities_sequence);
1521
1522   return offset;
1523 }
1524
1525
1526 static const value_string lpp_T_gnss_id_vals[] = {
1527   {   0, "gps" },
1528   {   1, "sbas" },
1529   {   2, "qzss" },
1530   {   3, "galileo" },
1531   {   4, "glonass" },
1532   { 0, NULL }
1533 };
1534
1535
1536 static int
1537 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_) {
1538   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1539                                      5, NULL, TRUE, 0, NULL);
1540
1541   return offset;
1542 }
1543
1544
1545 static const per_sequence_t GNSS_ID_sequence[] = {
1546   { &hf_lpp_gnss_id         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gnss_id },
1547   { NULL, 0, 0, NULL }
1548 };
1549
1550 static int
1551 dissect_lpp_GNSS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1552   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1553                                    ett_lpp_GNSS_ID, GNSS_ID_sequence);
1554
1555   return offset;
1556 }
1557
1558
1559
1560 static int
1561 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_) {
1562   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1563                                      1, 8, FALSE, NULL);
1564
1565   return offset;
1566 }
1567
1568
1569 static const per_sequence_t SBAS_IDs_sequence[] = {
1570   { &hf_lpp_sbas_IDs_01     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_sbas_IDs },
1571   { NULL, 0, 0, NULL }
1572 };
1573
1574 static int
1575 dissect_lpp_SBAS_IDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1576   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1577                                    ett_lpp_SBAS_IDs, SBAS_IDs_sequence);
1578
1579   return offset;
1580 }
1581
1582
1583
1584 static int
1585 dissect_lpp_T_posModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1586   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1587                                      1, 8, FALSE, NULL);
1588
1589   return offset;
1590 }
1591
1592
1593 static const per_sequence_t PositioningModes_sequence[] = {
1594   { &hf_lpp_posModes        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_posModes },
1595   { NULL, 0, 0, NULL }
1596 };
1597
1598 static int
1599 dissect_lpp_PositioningModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1600   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1601                                    ett_lpp_PositioningModes, PositioningModes_sequence);
1602
1603   return offset;
1604 }
1605
1606
1607
1608 static int
1609 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_) {
1610   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1611                                      8, 8, FALSE, NULL);
1612
1613   return offset;
1614 }
1615
1616
1617 static const per_sequence_t GNSS_SignalIDs_sequence[] = {
1618   { &hf_lpp_gnss_SignalIDs  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
1619   { NULL, 0, 0, NULL }
1620 };
1621
1622 static int
1623 dissect_lpp_GNSS_SignalIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1624   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1625                                    ett_lpp_GNSS_SignalIDs, GNSS_SignalIDs_sequence);
1626
1627   return offset;
1628 }
1629
1630
1631
1632 static int
1633 dissect_lpp_T_accessTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1634   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1635                                      1, 8, FALSE, NULL);
1636
1637   return offset;
1638 }
1639
1640
1641 static const per_sequence_t AccessTypes_sequence[] = {
1642   { &hf_lpp_accessTypes     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_accessTypes },
1643   { NULL, 0, 0, NULL }
1644 };
1645
1646 static int
1647 dissect_lpp_AccessTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1648   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1649                                    ett_lpp_AccessTypes, AccessTypes_sequence);
1650
1651   return offset;
1652 }
1653
1654
1655 static const per_sequence_t T_fta_MeasSupport_sequence[] = {
1656   { &hf_lpp_cellTime        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_AccessTypes },
1657   { &hf_lpp_mode_02         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PositioningModes },
1658   { NULL, 0, 0, NULL }
1659 };
1660
1661 static int
1662 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_) {
1663   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1664                                    ett_lpp_T_fta_MeasSupport, T_fta_MeasSupport_sequence);
1665
1666   return offset;
1667 }
1668
1669
1670 static const per_sequence_t GNSS_SupportElement_sequence[] = {
1671   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
1672   { &hf_lpp_sbas_IDs        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_IDs },
1673   { &hf_lpp_agnss_Modes     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_PositioningModes },
1674   { &hf_lpp_gnss_Signals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
1675   { &hf_lpp_fta_MeasSupport , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_fta_MeasSupport },
1676   { &hf_lpp_adr_Support     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1677   { &hf_lpp_velocityMeasurementSupport, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1678   { NULL, 0, 0, NULL }
1679 };
1680
1681 static int
1682 dissect_lpp_GNSS_SupportElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1683   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1684                                    ett_lpp_GNSS_SupportElement, GNSS_SupportElement_sequence);
1685
1686   return offset;
1687 }
1688
1689
1690 static const per_sequence_t GNSS_SupportList_sequence_of[1] = {
1691   { &hf_lpp_GNSS_SupportList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SupportElement },
1692 };
1693
1694 static int
1695 dissect_lpp_GNSS_SupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1696   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1697                                                   ett_lpp_GNSS_SupportList, GNSS_SupportList_sequence_of,
1698                                                   1, 16, FALSE);
1699
1700   return offset;
1701 }
1702
1703
1704
1705 static int
1706 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_) {
1707   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1708                                      1, 16, FALSE, NULL);
1709
1710   return offset;
1711 }
1712
1713
1714 static const per_sequence_t GNSS_ID_Bitmap_sequence[] = {
1715   { &hf_lpp_gnss_ids        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_gnss_ids },
1716   { NULL, 0, 0, NULL }
1717 };
1718
1719 static int
1720 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_) {
1721   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1722                                    ett_lpp_GNSS_ID_Bitmap, GNSS_ID_Bitmap_sequence);
1723
1724   return offset;
1725 }
1726
1727
1728 static const per_sequence_t GNSS_ReferenceTimeSupport_sequence[] = {
1729   { &hf_lpp_gnss_SystemTime_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_Bitmap },
1730   { &hf_lpp_fta_Support     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AccessTypes },
1731   { NULL, 0, 0, NULL }
1732 };
1733
1734 static int
1735 dissect_lpp_GNSS_ReferenceTimeSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1737                                    ett_lpp_GNSS_ReferenceTimeSupport, GNSS_ReferenceTimeSupport_sequence);
1738
1739   return offset;
1740 }
1741
1742
1743 static const per_sequence_t GNSS_ReferenceLocationSupport_sequence[] = {
1744   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1745 };
1746
1747 static int
1748 dissect_lpp_GNSS_ReferenceLocationSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1749   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1750                                    ett_lpp_GNSS_ReferenceLocationSupport, GNSS_ReferenceLocationSupport_sequence);
1751
1752   return offset;
1753 }
1754
1755
1756
1757 static int
1758 dissect_lpp_T_ionoModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1759   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1760                                      1, 8, FALSE, NULL);
1761
1762   return offset;
1763 }
1764
1765
1766 static const per_sequence_t GNSS_IonosphericModelSupport_sequence[] = {
1767   { &hf_lpp_ionoModel       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_ionoModel },
1768   { NULL, 0, 0, NULL }
1769 };
1770
1771 static int
1772 dissect_lpp_GNSS_IonosphericModelSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1773   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1774                                    ett_lpp_GNSS_IonosphericModelSupport, GNSS_IonosphericModelSupport_sequence);
1775
1776   return offset;
1777 }
1778
1779
1780 static const per_sequence_t GNSS_EarthOrientationParametersSupport_sequence[] = {
1781   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1782 };
1783
1784 static int
1785 dissect_lpp_GNSS_EarthOrientationParametersSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1786   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1787                                    ett_lpp_GNSS_EarthOrientationParametersSupport, GNSS_EarthOrientationParametersSupport_sequence);
1788
1789   return offset;
1790 }
1791
1792
1793 static const per_sequence_t GNSS_CommonAssistanceDataSupport_sequence[] = {
1794   { &hf_lpp_gnss_ReferenceTimeSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceTimeSupport },
1795   { &hf_lpp_gnss_ReferenceLocationSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceLocationSupport },
1796   { &hf_lpp_gnss_IonosphericModelSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_IonosphericModelSupport },
1797   { &hf_lpp_gnss_EarthOrientationParametersSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_EarthOrientationParametersSupport },
1798   { NULL, 0, 0, NULL }
1799 };
1800
1801 static int
1802 dissect_lpp_GNSS_CommonAssistanceDataSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1803   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1804                                    ett_lpp_GNSS_CommonAssistanceDataSupport, GNSS_CommonAssistanceDataSupport_sequence);
1805
1806   return offset;
1807 }
1808
1809
1810 static const value_string lpp_T_sbas_id_vals[] = {
1811   {   0, "waas" },
1812   {   1, "egnos" },
1813   {   2, "msas" },
1814   {   3, "gagan" },
1815   { 0, NULL }
1816 };
1817
1818
1819 static int
1820 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_) {
1821   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1822                                      4, NULL, TRUE, 0, NULL);
1823
1824   return offset;
1825 }
1826
1827
1828 static const per_sequence_t SBAS_ID_sequence[] = {
1829   { &hf_lpp_sbas_id         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_sbas_id },
1830   { NULL, 0, 0, NULL }
1831 };
1832
1833 static int
1834 dissect_lpp_SBAS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1835   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1836                                    ett_lpp_SBAS_ID, SBAS_ID_sequence);
1837
1838   return offset;
1839 }
1840
1841
1842 static const per_sequence_t GNSS_TimeModelListSupport_sequence[] = {
1843   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1844 };
1845
1846 static int
1847 dissect_lpp_GNSS_TimeModelListSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1848   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1849                                    ett_lpp_GNSS_TimeModelListSupport, GNSS_TimeModelListSupport_sequence);
1850
1851   return offset;
1852 }
1853
1854
1855 static const per_sequence_t GNSS_DifferentialCorrectionsSupport_sequence[] = {
1856   { &hf_lpp_gnssSignalIDs   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
1857   { &hf_lpp_dgnss_ValidityTimeSup, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
1858   { NULL, 0, 0, NULL }
1859 };
1860
1861 static int
1862 dissect_lpp_GNSS_DifferentialCorrectionsSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1863   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1864                                    ett_lpp_GNSS_DifferentialCorrectionsSupport, GNSS_DifferentialCorrectionsSupport_sequence);
1865
1866   return offset;
1867 }
1868
1869
1870
1871 static int
1872 dissect_lpp_T_clockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1873   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1874                                      1, 8, FALSE, NULL);
1875
1876   return offset;
1877 }
1878
1879
1880
1881 static int
1882 dissect_lpp_T_orbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1883   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1884                                      1, 8, FALSE, NULL);
1885
1886   return offset;
1887 }
1888
1889
1890 static const per_sequence_t GNSS_NavigationModelSupport_sequence[] = {
1891   { &hf_lpp_clockModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_clockModel },
1892   { &hf_lpp_orbitModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_orbitModel },
1893   { NULL, 0, 0, NULL }
1894 };
1895
1896 static int
1897 dissect_lpp_GNSS_NavigationModelSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1898   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1899                                    ett_lpp_GNSS_NavigationModelSupport, GNSS_NavigationModelSupport_sequence);
1900
1901   return offset;
1902 }
1903
1904
1905 static const per_sequence_t GNSS_RealTimeIntegritySupport_sequence[] = {
1906   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1907 };
1908
1909 static int
1910 dissect_lpp_GNSS_RealTimeIntegritySupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1911   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1912                                    ett_lpp_GNSS_RealTimeIntegritySupport, GNSS_RealTimeIntegritySupport_sequence);
1913
1914   return offset;
1915 }
1916
1917
1918 static const per_sequence_t GNSS_DataBitAssistanceSupport_sequence[] = {
1919   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1920 };
1921
1922 static int
1923 dissect_lpp_GNSS_DataBitAssistanceSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1924   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1925                                    ett_lpp_GNSS_DataBitAssistanceSupport, GNSS_DataBitAssistanceSupport_sequence);
1926
1927   return offset;
1928 }
1929
1930
1931 static const per_sequence_t GNSS_AcquisitionAssistanceSupport_sequence[] = {
1932   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1933 };
1934
1935 static int
1936 dissect_lpp_GNSS_AcquisitionAssistanceSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1937   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1938                                    ett_lpp_GNSS_AcquisitionAssistanceSupport, GNSS_AcquisitionAssistanceSupport_sequence);
1939
1940   return offset;
1941 }
1942
1943
1944
1945 static int
1946 dissect_lpp_T_almanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1947   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1948                                      1, 8, FALSE, NULL);
1949
1950   return offset;
1951 }
1952
1953
1954 static const per_sequence_t GNSS_AlmanacSupport_sequence[] = {
1955   { &hf_lpp_almanacModel    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_almanacModel },
1956   { NULL, 0, 0, NULL }
1957 };
1958
1959 static int
1960 dissect_lpp_GNSS_AlmanacSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1961   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1962                                    ett_lpp_GNSS_AlmanacSupport, GNSS_AlmanacSupport_sequence);
1963
1964   return offset;
1965 }
1966
1967
1968
1969 static int
1970 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_) {
1971   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1972                                      1, 8, FALSE, NULL);
1973
1974   return offset;
1975 }
1976
1977
1978 static const per_sequence_t GNSS_UTC_ModelSupport_sequence[] = {
1979   { &hf_lpp_utc_Model       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_utc_Model },
1980   { NULL, 0, 0, NULL }
1981 };
1982
1983 static int
1984 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_) {
1985   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1986                                    ett_lpp_GNSS_UTC_ModelSupport, GNSS_UTC_ModelSupport_sequence);
1987
1988   return offset;
1989 }
1990
1991
1992 static const per_sequence_t GNSS_AuxiliaryInformationSupport_sequence[] = {
1993   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1994 };
1995
1996 static int
1997 dissect_lpp_GNSS_AuxiliaryInformationSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1998   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1999                                    ett_lpp_GNSS_AuxiliaryInformationSupport, GNSS_AuxiliaryInformationSupport_sequence);
2000
2001   return offset;
2002 }
2003
2004
2005 static const per_sequence_t GNSS_GenericAssistDataSupportElement_sequence[] = {
2006   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
2007   { &hf_lpp_sbas_ID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_ID },
2008   { &hf_lpp_gnss_TimeModelsSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_TimeModelListSupport },
2009   { &hf_lpp_gnss_DifferentialCorrectionsSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DifferentialCorrectionsSupport },
2010   { &hf_lpp_gnss_NavigationModelSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavigationModelSupport },
2011   { &hf_lpp_gnss_RealTimeIntegritySupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_RealTimeIntegritySupport },
2012   { &hf_lpp_gnss_DataBitAssistanceSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitAssistanceSupport },
2013   { &hf_lpp_gnss_AcquisitionAssistanceSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AcquisitionAssistanceSupport },
2014   { &hf_lpp_gnss_AlmanacSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AlmanacSupport },
2015   { &hf_lpp_gnss_UTC_ModelSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_UTC_ModelSupport },
2016   { &hf_lpp_gnss_AuxiliaryInformationSupport, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AuxiliaryInformationSupport },
2017   { NULL, 0, 0, NULL }
2018 };
2019
2020 static int
2021 dissect_lpp_GNSS_GenericAssistDataSupportElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2022   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2023                                    ett_lpp_GNSS_GenericAssistDataSupportElement, GNSS_GenericAssistDataSupportElement_sequence);
2024
2025   return offset;
2026 }
2027
2028
2029 static const per_sequence_t GNSS_GenericAssistanceDataSupport_sequence_of[1] = {
2030   { &hf_lpp_GNSS_GenericAssistanceDataSupport_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataSupportElement },
2031 };
2032
2033 static int
2034 dissect_lpp_GNSS_GenericAssistanceDataSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2036                                                   ett_lpp_GNSS_GenericAssistanceDataSupport, GNSS_GenericAssistanceDataSupport_sequence_of,
2037                                                   1, 16, FALSE);
2038
2039   return offset;
2040 }
2041
2042
2043 static const per_sequence_t AssistanceDataSupportList_sequence[] = {
2044   { &hf_lpp_gnss_CommonAssistanceDataSupport, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_CommonAssistanceDataSupport },
2045   { &hf_lpp_gnss_GenericAssistanceDataSupport, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistanceDataSupport },
2046   { NULL, 0, 0, NULL }
2047 };
2048
2049 static int
2050 dissect_lpp_AssistanceDataSupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2051   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2052                                    ett_lpp_AssistanceDataSupportList, AssistanceDataSupportList_sequence);
2053
2054   return offset;
2055 }
2056
2057
2058 static const per_sequence_t LocationCoordinateTypes_sequence[] = {
2059   { &hf_lpp_ellipsoidPoint  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2060   { &hf_lpp_ellipsoidPointWithUncertaintyCircle, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2061   { &hf_lpp_ellipsoidPointWithUncertaintyEllipse, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2062   { &hf_lpp_polygon         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2063   { &hf_lpp_ellipsoidPointWithAltitude, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2064   { &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2065   { &hf_lpp_ellipsoidArc    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2066   { NULL, 0, 0, NULL }
2067 };
2068
2069 static int
2070 dissect_lpp_LocationCoordinateTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2071   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2072                                    ett_lpp_LocationCoordinateTypes, LocationCoordinateTypes_sequence);
2073
2074   return offset;
2075 }
2076
2077
2078 static const per_sequence_t VelocityTypes_sequence[] = {
2079   { &hf_lpp_horizontalVelocity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2080   { &hf_lpp_horizontalWithVerticalVelocity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2081   { &hf_lpp_horizontalVelocityWithUncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2082   { &hf_lpp_horizontalWithVerticalVelocityAndUncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2083   { NULL, 0, 0, NULL }
2084 };
2085
2086 static int
2087 dissect_lpp_VelocityTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2088   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2089                                    ett_lpp_VelocityTypes, VelocityTypes_sequence);
2090
2091   return offset;
2092 }
2093
2094
2095 static const per_sequence_t A_GNSS_ProvideCapabilities_sequence[] = {
2096   { &hf_lpp_gnss_SupportList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SupportList },
2097   { &hf_lpp_assistanceDataSupportList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AssistanceDataSupportList },
2098   { &hf_lpp_locationCoordinateTypes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationCoordinateTypes },
2099   { &hf_lpp_velocityTypes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VelocityTypes },
2100   { NULL, 0, 0, NULL }
2101 };
2102
2103 static int
2104 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_) {
2105   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2106                                    ett_lpp_A_GNSS_ProvideCapabilities, A_GNSS_ProvideCapabilities_sequence);
2107
2108   return offset;
2109 }
2110
2111
2112
2113 static int
2114 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_) {
2115   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2116                                      1, 8, FALSE, NULL);
2117
2118   return offset;
2119 }
2120
2121
2122
2123 static int
2124 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_) {
2125   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2126                                                             1U, 64U, NULL, FALSE);
2127
2128   return offset;
2129 }
2130
2131
2132 static const per_sequence_t SupportedBandEUTRA_sequence[] = {
2133   { &hf_lpp_bandEUTRA       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_64 },
2134   { NULL, 0, 0, NULL }
2135 };
2136
2137 static int
2138 dissect_lpp_SupportedBandEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2139   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2140                                    ett_lpp_SupportedBandEUTRA, SupportedBandEUTRA_sequence);
2141
2142   return offset;
2143 }
2144
2145
2146 static const per_sequence_t SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_sequence_of[1] = {
2147   { &hf_lpp_supportedBandListEUTRA_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SupportedBandEUTRA },
2148 };
2149
2150 static int
2151 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_) {
2152   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2153                                                   ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA, SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_sequence_of,
2154                                                   1, maxBands, FALSE);
2155
2156   return offset;
2157 }
2158
2159
2160 static const per_sequence_t OTDOA_ProvideCapabilities_sequence[] = {
2161   { &hf_lpp_otdoa_Mode      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_otdoa_Mode },
2162   { &hf_lpp_supportedBandListEUTRA, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA },
2163   { NULL, 0, 0, NULL }
2164 };
2165
2166 static int
2167 dissect_lpp_OTDOA_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2168   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2169                                    ett_lpp_OTDOA_ProvideCapabilities, OTDOA_ProvideCapabilities_sequence);
2170
2171   return offset;
2172 }
2173
2174
2175
2176 static int
2177 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_) {
2178   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2179                                      1, 8, FALSE, NULL);
2180
2181   return offset;
2182 }
2183
2184
2185 static const per_sequence_t ECID_ProvideCapabilities_sequence[] = {
2186   { &hf_lpp_ecid_MeasSupported, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_ecid_MeasSupported },
2187   { NULL, 0, 0, NULL }
2188 };
2189
2190 static int
2191 dissect_lpp_ECID_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2192   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2193                                    ett_lpp_ECID_ProvideCapabilities, ECID_ProvideCapabilities_sequence);
2194
2195   return offset;
2196 }
2197
2198
2199 static const per_sequence_t ProvideCapabilities_r9_IEs_sequence[] = {
2200   { &hf_lpp_commonIEsProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsProvideCapabilities },
2201   { &hf_lpp_a_gnss_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_ProvideCapabilities },
2202   { &hf_lpp_otdoa_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ProvideCapabilities },
2203   { &hf_lpp_ecid_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_ProvideCapabilities },
2204   { &hf_lpp_epdu_ProvideCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
2205   { NULL, 0, 0, NULL }
2206 };
2207
2208 static int
2209 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_) {
2210   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2211                                    ett_lpp_ProvideCapabilities_r9_IEs, ProvideCapabilities_r9_IEs_sequence);
2212
2213   return offset;
2214 }
2215
2216
2217 static const value_string lpp_T_c1_02_vals[] = {
2218   {   0, "provideCapabilities-r9" },
2219   {   1, "spare3" },
2220   {   2, "spare2" },
2221   {   3, "spare1" },
2222   { 0, NULL }
2223 };
2224
2225 static const per_choice_t T_c1_02_choice[] = {
2226   {   0, &hf_lpp_provideCapabilities_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideCapabilities_r9_IEs },
2227   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
2228   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
2229   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
2230   { 0, NULL, 0, NULL }
2231 };
2232
2233 static int
2234 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_) {
2235   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2236                                  ett_lpp_T_c1_02, T_c1_02_choice,
2237                                  NULL);
2238
2239   return offset;
2240 }
2241
2242
2243 static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = {
2244   { NULL, 0, 0, NULL }
2245 };
2246
2247 static int
2248 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_) {
2249   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2250                                    ett_lpp_T_criticalExtensionsFuture_01, T_criticalExtensionsFuture_01_sequence);
2251
2252   return offset;
2253 }
2254
2255
2256 static const value_string lpp_T_criticalExtensions_01_vals[] = {
2257   {   0, "c1" },
2258   {   1, "criticalExtensionsFuture" },
2259   { 0, NULL }
2260 };
2261
2262 static const per_choice_t T_criticalExtensions_01_choice[] = {
2263   {   0, &hf_lpp_c1_02           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_02 },
2264   {   1, &hf_lpp_criticalExtensionsFuture_01, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_01 },
2265   { 0, NULL, 0, NULL }
2266 };
2267
2268 static int
2269 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_) {
2270   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2271                                  ett_lpp_T_criticalExtensions_01, T_criticalExtensions_01_choice,
2272                                  NULL);
2273
2274   return offset;
2275 }
2276
2277
2278 static const per_sequence_t ProvideCapabilities_sequence[] = {
2279   { &hf_lpp_criticalExtensions_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_01 },
2280   { NULL, 0, 0, NULL }
2281 };
2282
2283 static int
2284 dissect_lpp_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2285 #line 33 "../../asn1/lpp/lpp.cnf"
2286
2287   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities");
2288
2289
2290   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2291                                    ett_lpp_ProvideCapabilities, ProvideCapabilities_sequence);
2292
2293   return offset;
2294 }
2295
2296
2297
2298 static int
2299 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_) {
2300   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2301                                                             0U, 9U, NULL, FALSE);
2302
2303   return offset;
2304 }
2305
2306
2307 static const per_sequence_t T_mcc_02_sequence_of[1] = {
2308   { &hf_lpp_mcc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
2309 };
2310
2311 static int
2312 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_) {
2313   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2314                                                   ett_lpp_T_mcc_02, T_mcc_02_sequence_of,
2315                                                   3, 3, FALSE);
2316
2317   return offset;
2318 }
2319
2320
2321 static const per_sequence_t T_mnc_02_sequence_of[1] = {
2322   { &hf_lpp_mnc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
2323 };
2324
2325 static int
2326 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_) {
2327   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2328                                                   ett_lpp_T_mnc_02, T_mnc_02_sequence_of,
2329                                                   2, 3, FALSE);
2330
2331   return offset;
2332 }
2333
2334
2335
2336 static int
2337 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_) {
2338   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2339                                      28, 28, FALSE, NULL);
2340
2341   return offset;
2342 }
2343
2344
2345 static const per_sequence_t ECGI_sequence[] = {
2346   { &hf_lpp_mcc_02          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc_02 },
2347   { &hf_lpp_mnc_02          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc_02 },
2348   { &hf_lpp_cellidentity    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_28 },
2349   { NULL, 0, 0, NULL }
2350 };
2351
2352 static int
2353 dissect_lpp_ECGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2354   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2355                                    ett_lpp_ECGI, ECGI_sequence);
2356
2357   return offset;
2358 }
2359
2360
2361 static const per_sequence_t CommonIEsRequestAssistanceData_sequence[] = {
2362   { &hf_lpp_servingCellID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
2363   { NULL, 0, 0, NULL }
2364 };
2365
2366 static int
2367 dissect_lpp_CommonIEsRequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2368   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2369                                    ett_lpp_CommonIEsRequestAssistanceData, CommonIEsRequestAssistanceData_sequence);
2370
2371   return offset;
2372 }
2373
2374
2375 static const per_sequence_t SEQUENCE_SIZE_1_8_OF_GNSS_ID_sequence_of[1] = {
2376   { &hf_lpp_gnss_TimeReqPrefList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
2377 };
2378
2379 static int
2380 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_) {
2381   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2382                                                   ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID, SEQUENCE_SIZE_1_8_OF_GNSS_ID_sequence_of,
2383                                                   1, 8, FALSE);
2384
2385   return offset;
2386 }
2387
2388
2389 static const per_sequence_t GNSS_ReferenceTimeReq_sequence[] = {
2390   { &hf_lpp_gnss_TimeReqPrefList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID },
2391   { &hf_lpp_gps_TOW_assistReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
2392   { &hf_lpp_notOfLeapSecReq , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
2393   { NULL, 0, 0, NULL }
2394 };
2395
2396 static int
2397 dissect_lpp_GNSS_ReferenceTimeReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2398   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2399                                    ett_lpp_GNSS_ReferenceTimeReq, GNSS_ReferenceTimeReq_sequence);
2400
2401   return offset;
2402 }
2403
2404
2405 static const per_sequence_t GNSS_ReferenceLocationReq_sequence[] = {
2406   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
2407 };
2408
2409 static int
2410 dissect_lpp_GNSS_ReferenceLocationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2411   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2412                                    ett_lpp_GNSS_ReferenceLocationReq, GNSS_ReferenceLocationReq_sequence);
2413
2414   return offset;
2415 }
2416
2417
2418
2419 static int
2420 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_) {
2421   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2422                                      2, 2, FALSE, NULL);
2423
2424   return offset;
2425 }
2426
2427
2428 static const per_sequence_t GNSS_IonosphericModelReq_sequence[] = {
2429   { &hf_lpp_klobucharModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_2 },
2430   { &hf_lpp_neQuickModelReq , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
2431   { NULL, 0, 0, NULL }
2432 };
2433
2434 static int
2435 dissect_lpp_GNSS_IonosphericModelReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2436   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2437                                    ett_lpp_GNSS_IonosphericModelReq, GNSS_IonosphericModelReq_sequence);
2438
2439   return offset;
2440 }
2441
2442
2443 static const per_sequence_t GNSS_EarthOrientationParametersReq_sequence[] = {
2444   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
2445 };
2446
2447 static int
2448 dissect_lpp_GNSS_EarthOrientationParametersReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2449   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2450                                    ett_lpp_GNSS_EarthOrientationParametersReq, GNSS_EarthOrientationParametersReq_sequence);
2451
2452   return offset;
2453 }
2454
2455
2456 static const per_sequence_t GNSS_CommonAssistDataReq_sequence[] = {
2457   { &hf_lpp_gnss_ReferenceTimeReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceTimeReq },
2458   { &hf_lpp_gnss_ReferenceLocationReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceLocationReq },
2459   { &hf_lpp_gnss_IonosphericModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_IonosphericModelReq },
2460   { &hf_lpp_gnss_EarthOrientationParametersReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_EarthOrientationParametersReq },
2461   { NULL, 0, 0, NULL }
2462 };
2463
2464 static int
2465 dissect_lpp_GNSS_CommonAssistDataReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2466   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2467                                    ett_lpp_GNSS_CommonAssistDataReq, GNSS_CommonAssistDataReq_sequence);
2468
2469   return offset;
2470 }
2471
2472
2473
2474 static int
2475 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_) {
2476   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2477                                                             1U, 15U, NULL, FALSE);
2478
2479   return offset;
2480 }
2481
2482
2483 static const per_sequence_t GNSS_TimeModelElementReq_sequence[] = {
2484   { &hf_lpp_gnss_TO_IDsReq  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_15 },
2485   { &hf_lpp_deltaTreq       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2486   { NULL, 0, 0, NULL }
2487 };
2488
2489 static int
2490 dissect_lpp_GNSS_TimeModelElementReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2491   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2492                                    ett_lpp_GNSS_TimeModelElementReq, GNSS_TimeModelElementReq_sequence);
2493
2494   return offset;
2495 }
2496
2497
2498 static const per_sequence_t GNSS_TimeModelListReq_sequence_of[1] = {
2499   { &hf_lpp_GNSS_TimeModelListReq_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_TimeModelElementReq },
2500 };
2501
2502 static int
2503 dissect_lpp_GNSS_TimeModelListReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2504   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2505                                                   ett_lpp_GNSS_TimeModelListReq, GNSS_TimeModelListReq_sequence_of,
2506                                                   1, 15, FALSE);
2507
2508   return offset;
2509 }
2510
2511
2512 static const per_sequence_t GNSS_DifferentialCorrectionsReq_sequence[] = {
2513   { &hf_lpp_dgnss_SignalsReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
2514   { &hf_lpp_dgnss_ValidityTimeReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
2515   { NULL, 0, 0, NULL }
2516 };
2517
2518 static int
2519 dissect_lpp_GNSS_DifferentialCorrectionsReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2520   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2521                                    ett_lpp_GNSS_DifferentialCorrectionsReq, GNSS_DifferentialCorrectionsReq_sequence);
2522
2523   return offset;
2524 }
2525
2526
2527
2528 static int
2529 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_) {
2530   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2531                                                             0U, 4095U, NULL, FALSE);
2532
2533   return offset;
2534 }
2535
2536
2537
2538 static int
2539 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_) {
2540   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2541                                                             0U, 255U, NULL, FALSE);
2542
2543   return offset;
2544 }
2545
2546
2547
2548 static int
2549 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_) {
2550   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2551                                                             0U, 15U, NULL, FALSE);
2552
2553   return offset;
2554 }
2555
2556
2557
2558 static int
2559 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_) {
2560   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2561                                                             0U, 63U, NULL, FALSE);
2562
2563   return offset;
2564 }
2565
2566
2567 static const per_sequence_t SV_ID_sequence[] = {
2568   { &hf_lpp_satellite_id    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
2569   { NULL, 0, 0, NULL }
2570 };
2571
2572 static int
2573 dissect_lpp_SV_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2574   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2575                                    ett_lpp_SV_ID, SV_ID_sequence);
2576
2577   return offset;
2578 }
2579
2580
2581
2582 static int
2583 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_) {
2584   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2585                                      11, 11, FALSE, NULL);
2586
2587   return offset;
2588 }
2589
2590
2591
2592 static int
2593 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_) {
2594   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2595                                                             1U, 8U, NULL, FALSE);
2596
2597   return offset;
2598 }
2599
2600
2601 static const per_sequence_t SatListRelatedDataElement_sequence[] = {
2602   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
2603   { &hf_lpp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
2604   { &hf_lpp_clockModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
2605   { &hf_lpp_orbitModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
2606   { NULL, 0, 0, NULL }
2607 };
2608
2609 static int
2610 dissect_lpp_SatListRelatedDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2611   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2612                                    ett_lpp_SatListRelatedDataElement, SatListRelatedDataElement_sequence);
2613
2614   return offset;
2615 }
2616
2617
2618 static const per_sequence_t SatListRelatedDataList_sequence_of[1] = {
2619   { &hf_lpp_SatListRelatedDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_SatListRelatedDataElement },
2620 };
2621
2622 static int
2623 dissect_lpp_SatListRelatedDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2624   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2625                                                   ett_lpp_SatListRelatedDataList, SatListRelatedDataList_sequence_of,
2626                                                   1, 64, FALSE);
2627
2628   return offset;
2629 }
2630
2631
2632 static const per_sequence_t StoredNavListInfo_sequence[] = {
2633   { &hf_lpp_gnss_WeekOrDay  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
2634   { &hf_lpp_gnss_Toe        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
2635   { &hf_lpp_t_toeLimit      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
2636   { &hf_lpp_satListRelatedDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SatListRelatedDataList },
2637   { NULL, 0, 0, NULL }
2638 };
2639
2640 static int
2641 dissect_lpp_StoredNavListInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2642   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2643                                    ett_lpp_StoredNavListInfo, StoredNavListInfo_sequence);
2644
2645   return offset;
2646 }
2647
2648
2649
2650 static int
2651 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_) {
2652   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2653                                      64, 64, FALSE, NULL);
2654
2655   return offset;
2656 }
2657
2658
2659 static const per_sequence_t T_clockModelID_PrefList_sequence_of[1] = {
2660   { &hf_lpp_clockModelID_PrefList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_8 },
2661 };
2662
2663 static int
2664 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_) {
2665   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2666                                                   ett_lpp_T_clockModelID_PrefList, T_clockModelID_PrefList_sequence_of,
2667                                                   1, 8, FALSE);
2668
2669   return offset;
2670 }
2671
2672
2673 static const per_sequence_t T_orbitModelID_PrefList_sequence_of[1] = {
2674   { &hf_lpp_orbitModelID_PrefList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_8 },
2675 };
2676
2677 static int
2678 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_) {
2679   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2680                                                   ett_lpp_T_orbitModelID_PrefList, T_orbitModelID_PrefList_sequence_of,
2681                                                   1, 8, FALSE);
2682
2683   return offset;
2684 }
2685
2686
2687 static const per_sequence_t ReqNavListInfo_sequence[] = {
2688   { &hf_lpp_svReqList       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_64 },
2689   { &hf_lpp_clockModelID_PrefList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_clockModelID_PrefList },
2690   { &hf_lpp_orbitModelID_PrefList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_orbitModelID_PrefList },
2691   { &hf_lpp_addNavparamReq  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
2692   { NULL, 0, 0, NULL }
2693 };
2694
2695 static int
2696 dissect_lpp_ReqNavListInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2697   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2698                                    ett_lpp_ReqNavListInfo, ReqNavListInfo_sequence);
2699
2700   return offset;
2701 }
2702
2703
2704 static const value_string lpp_GNSS_NavigationModelReq_vals[] = {
2705   {   0, "storedNavList" },
2706   {   1, "reqNavList" },
2707   { 0, NULL }
2708 };
2709
2710 static const per_choice_t GNSS_NavigationModelReq_choice[] = {
2711   {   0, &hf_lpp_storedNavList   , ASN1_EXTENSION_ROOT    , dissect_lpp_StoredNavListInfo },
2712   {   1, &hf_lpp_reqNavList      , ASN1_EXTENSION_ROOT    , dissect_lpp_ReqNavListInfo },
2713   { 0, NULL, 0, NULL }
2714 };
2715
2716 static int
2717 dissect_lpp_GNSS_NavigationModelReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2718   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2719                                  ett_lpp_GNSS_NavigationModelReq, GNSS_NavigationModelReq_choice,
2720                                  NULL);
2721
2722   return offset;
2723 }
2724
2725
2726 static const per_sequence_t GNSS_RealTimeIntegrityReq_sequence[] = {
2727   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
2728 };
2729
2730 static int
2731 dissect_lpp_GNSS_RealTimeIntegrityReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2732   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2733                                    ett_lpp_GNSS_RealTimeIntegrityReq, GNSS_RealTimeIntegrityReq_sequence);
2734
2735   return offset;
2736 }
2737
2738
2739
2740 static int
2741 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_) {
2742   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2743                                                             0U, 3599U, NULL, FALSE);
2744
2745   return offset;
2746 }
2747
2748
2749
2750 static int
2751 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_) {
2752   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2753                                                             0U, 999U, NULL, FALSE);
2754
2755   return offset;
2756 }
2757
2758
2759 static const per_sequence_t GNSS_DataBitsReqSatElement_sequence[] = {
2760   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
2761   { NULL, 0, 0, NULL }
2762 };
2763
2764 static int
2765 dissect_lpp_GNSS_DataBitsReqSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2766   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2767                                    ett_lpp_GNSS_DataBitsReqSatElement, GNSS_DataBitsReqSatElement_sequence);
2768
2769   return offset;
2770 }
2771
2772
2773 static const per_sequence_t GNSS_DataBitsReqSatList_sequence_of[1] = {
2774   { &hf_lpp_GNSS_DataBitsReqSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsReqSatElement },
2775 };
2776
2777 static int
2778 dissect_lpp_GNSS_DataBitsReqSatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2779   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2780                                                   ett_lpp_GNSS_DataBitsReqSatList, GNSS_DataBitsReqSatList_sequence_of,
2781                                                   1, 64, FALSE);
2782
2783   return offset;
2784 }
2785
2786
2787 static const per_sequence_t GNSS_DataBitAssistanceReq_sequence[] = {
2788   { &hf_lpp_gnss_TOD_Req    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
2789   { &hf_lpp_gnss_TOD_FracReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_999 },
2790   { &hf_lpp_dataBitInterval , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
2791   { &hf_lpp_gnss_SignalType_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
2792   { &hf_lpp_gnss_DataBitsReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitsReqSatList },
2793   { NULL, 0, 0, NULL }
2794 };
2795
2796 static int
2797 dissect_lpp_GNSS_DataBitAssistanceReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2798   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2799                                    ett_lpp_GNSS_DataBitAssistanceReq, GNSS_DataBitAssistanceReq_sequence);
2800
2801   return offset;
2802 }
2803
2804
2805
2806 static int
2807 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_) {
2808   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2809                                                             0U, 7U, NULL, FALSE);
2810
2811   return offset;
2812 }
2813
2814
2815 static const per_sequence_t GNSS_SignalID_sequence[] = {
2816   { &hf_lpp_gnss_SignalID_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
2817   { NULL, 0, 0, NULL }
2818 };
2819
2820 static int
2821 dissect_lpp_GNSS_SignalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2822   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2823                                    ett_lpp_GNSS_SignalID, GNSS_SignalID_sequence);
2824
2825   return offset;
2826 }
2827
2828
2829 static const per_sequence_t GNSS_AcquisitionAssistanceReq_sequence[] = {
2830   { &hf_lpp_gnss_SignalID_Req, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
2831   { NULL, 0, 0, NULL }
2832 };
2833
2834 static int
2835 dissect_lpp_GNSS_AcquisitionAssistanceReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2836   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2837                                    ett_lpp_GNSS_AcquisitionAssistanceReq, GNSS_AcquisitionAssistanceReq_sequence);
2838
2839   return offset;
2840 }
2841
2842
2843 static const per_sequence_t GNSS_AlmanacReq_sequence[] = {
2844   { &hf_lpp_modelID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
2845   { NULL, 0, 0, NULL }
2846 };
2847
2848 static int
2849 dissect_lpp_GNSS_AlmanacReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2850   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2851                                    ett_lpp_GNSS_AlmanacReq, GNSS_AlmanacReq_sequence);
2852
2853   return offset;
2854 }
2855
2856
2857 static const per_sequence_t GNSS_UTC_ModelReq_sequence[] = {
2858   { &hf_lpp_modelID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_1_8 },
2859   { NULL, 0, 0, NULL }
2860 };
2861
2862 static int
2863 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_) {
2864   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2865                                    ett_lpp_GNSS_UTC_ModelReq, GNSS_UTC_ModelReq_sequence);
2866
2867   return offset;
2868 }
2869
2870
2871 static const per_sequence_t GNSS_AuxiliaryInformationReq_sequence[] = {
2872   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
2873 };
2874
2875 static int
2876 dissect_lpp_GNSS_AuxiliaryInformationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2877   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2878                                    ett_lpp_GNSS_AuxiliaryInformationReq, GNSS_AuxiliaryInformationReq_sequence);
2879
2880   return offset;
2881 }
2882
2883
2884 static const per_sequence_t GNSS_GenericAssistDataReqElement_sequence[] = {
2885   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
2886   { &hf_lpp_sbas_ID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_ID },
2887   { &hf_lpp_gnss_TimeModelsReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_TimeModelListReq },
2888   { &hf_lpp_gnss_DifferentialCorrectionsReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DifferentialCorrectionsReq },
2889   { &hf_lpp_gnss_NavigationModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavigationModelReq },
2890   { &hf_lpp_gnss_RealTimeIntegrityReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_RealTimeIntegrityReq },
2891   { &hf_lpp_gnss_DataBitAssistanceReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitAssistanceReq },
2892   { &hf_lpp_gnss_AcquisitionAssistanceReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AcquisitionAssistanceReq },
2893   { &hf_lpp_gnss_AlmanacReq , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AlmanacReq },
2894   { &hf_lpp_gnss_UTCModelReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_UTC_ModelReq },
2895   { &hf_lpp_gnss_AuxiliaryInformationReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AuxiliaryInformationReq },
2896   { NULL, 0, 0, NULL }
2897 };
2898
2899 static int
2900 dissect_lpp_GNSS_GenericAssistDataReqElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2901   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2902                                    ett_lpp_GNSS_GenericAssistDataReqElement, GNSS_GenericAssistDataReqElement_sequence);
2903
2904   return offset;
2905 }
2906
2907
2908 static const per_sequence_t GNSS_GenericAssistDataReq_sequence_of[1] = {
2909   { &hf_lpp_GNSS_GenericAssistDataReq_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataReqElement },
2910 };
2911
2912 static int
2913 dissect_lpp_GNSS_GenericAssistDataReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2914   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2915                                                   ett_lpp_GNSS_GenericAssistDataReq, GNSS_GenericAssistDataReq_sequence_of,
2916                                                   1, 16, FALSE);
2917
2918   return offset;
2919 }
2920
2921
2922 static const per_sequence_t A_GNSS_RequestAssistanceData_sequence[] = {
2923   { &hf_lpp_gnss_CommonAssistDataReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_CommonAssistDataReq },
2924   { &hf_lpp_gnss_GenericAssistDataReq, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_GenericAssistDataReq },
2925   { NULL, 0, 0, NULL }
2926 };
2927
2928 static int
2929 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_) {
2930   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2931                                    ett_lpp_A_GNSS_RequestAssistanceData, A_GNSS_RequestAssistanceData_sequence);
2932
2933   return offset;
2934 }
2935
2936
2937
2938 static int
2939 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_) {
2940   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2941                                                             0U, 503U, NULL, FALSE);
2942
2943   return offset;
2944 }
2945
2946
2947 static const per_sequence_t OTDOA_RequestAssistanceData_sequence[] = {
2948   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
2949   { NULL, 0, 0, NULL }
2950 };
2951
2952 static int
2953 dissect_lpp_OTDOA_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2954   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2955                                    ett_lpp_OTDOA_RequestAssistanceData, OTDOA_RequestAssistanceData_sequence);
2956
2957   return offset;
2958 }
2959
2960
2961 static const per_sequence_t RequestAssistanceData_r9_IEs_sequence[] = {
2962   { &hf_lpp_commonIEsRequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsRequestAssistanceData },
2963   { &hf_lpp_a_gnss_RequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_RequestAssistanceData },
2964   { &hf_lpp_otdoa_RequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_RequestAssistanceData },
2965   { &hf_lpp_epdu_RequestAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
2966   { NULL, 0, 0, NULL }
2967 };
2968
2969 static int
2970 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_) {
2971   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2972                                    ett_lpp_RequestAssistanceData_r9_IEs, RequestAssistanceData_r9_IEs_sequence);
2973
2974   return offset;
2975 }
2976
2977
2978 static const value_string lpp_T_c1_03_vals[] = {
2979   {   0, "requestAssistanceData-r9" },
2980   {   1, "spare3" },
2981   {   2, "spare2" },
2982   {   3, "spare1" },
2983   { 0, NULL }
2984 };
2985
2986 static const per_choice_t T_c1_03_choice[] = {
2987   {   0, &hf_lpp_requestAssistanceData_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestAssistanceData_r9_IEs },
2988   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
2989   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
2990   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
2991   { 0, NULL, 0, NULL }
2992 };
2993
2994 static int
2995 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_) {
2996   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2997                                  ett_lpp_T_c1_03, T_c1_03_choice,
2998                                  NULL);
2999
3000   return offset;
3001 }
3002
3003
3004 static const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = {
3005   { NULL, 0, 0, NULL }
3006 };
3007
3008 static int
3009 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_) {
3010   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3011                                    ett_lpp_T_criticalExtensionsFuture_02, T_criticalExtensionsFuture_02_sequence);
3012
3013   return offset;
3014 }
3015
3016
3017 static const value_string lpp_T_criticalExtensions_02_vals[] = {
3018   {   0, "c1" },
3019   {   1, "criticalExtensionsFuture" },
3020   { 0, NULL }
3021 };
3022
3023 static const per_choice_t T_criticalExtensions_02_choice[] = {
3024   {   0, &hf_lpp_c1_03           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_03 },
3025   {   1, &hf_lpp_criticalExtensionsFuture_02, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_02 },
3026   { 0, NULL, 0, NULL }
3027 };
3028
3029 static int
3030 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_) {
3031   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3032                                  ett_lpp_T_criticalExtensions_02, T_criticalExtensions_02_choice,
3033                                  NULL);
3034
3035   return offset;
3036 }
3037
3038
3039 static const per_sequence_t RequestAssistanceData_sequence[] = {
3040   { &hf_lpp_criticalExtensions_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_02 },
3041   { NULL, 0, 0, NULL }
3042 };
3043
3044 static int
3045 dissect_lpp_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3046 #line 37 "../../asn1/lpp/lpp.cnf"
3047
3048   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data");
3049
3050
3051   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3052                                    ett_lpp_RequestAssistanceData, RequestAssistanceData_sequence);
3053
3054   return offset;
3055 }
3056
3057
3058 static const per_sequence_t CommonIEsProvideAssistanceData_sequence[] = {
3059   { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
3060 };
3061
3062 static int
3063 dissect_lpp_CommonIEsProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3064   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3065                                    ett_lpp_CommonIEsProvideAssistanceData, CommonIEsProvideAssistanceData_sequence);
3066
3067   return offset;
3068 }
3069
3070
3071
3072 static int
3073 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_) {
3074   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3075                                                             0U, 32767U, NULL, FALSE);
3076
3077   return offset;
3078 }
3079
3080
3081
3082 static int
3083 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_) {
3084   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3085                                                             0U, 86399U, NULL, FALSE);
3086
3087   return offset;
3088 }
3089
3090
3091
3092 static int
3093 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_) {
3094   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3095                                                             0U, 16383U, NULL, FALSE);
3096
3097   return offset;
3098 }
3099
3100
3101
3102 static int
3103 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_) {
3104   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3105                                                             0U, 1U, NULL, FALSE);
3106
3107   return offset;
3108 }
3109
3110
3111
3112 static int
3113 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_) {
3114   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3115                                                             0U, 3U, NULL, FALSE);
3116
3117   return offset;
3118 }
3119
3120
3121 static const per_sequence_t GPS_TOW_AssistElement_sequence[] = {
3122   { &hf_lpp_satelliteID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_64 },
3123   { &hf_lpp_tlmWord         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
3124   { &hf_lpp_antiSpoof       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
3125   { &hf_lpp_alert           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
3126   { &hf_lpp_tlmRsvdBits     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
3127   { NULL, 0, 0, NULL }
3128 };
3129
3130 static int
3131 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_) {
3132   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3133                                    ett_lpp_GPS_TOW_AssistElement, GPS_TOW_AssistElement_sequence);
3134
3135   return offset;
3136 }
3137
3138
3139 static const per_sequence_t GPS_TOW_Assist_sequence_of[1] = {
3140   { &hf_lpp_GPS_TOW_Assist_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GPS_TOW_AssistElement },
3141 };
3142
3143 static int
3144 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_) {
3145   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3146                                                   ett_lpp_GPS_TOW_Assist, GPS_TOW_Assist_sequence_of,
3147                                                   1, 64, FALSE);
3148
3149   return offset;
3150 }
3151
3152
3153 static const per_sequence_t GNSS_SystemTime_sequence[] = {
3154   { &hf_lpp_gnss_TimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
3155   { &hf_lpp_gnss_DayNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
3156   { &hf_lpp_gnss_TimeOfDay  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_86399 },
3157   { &hf_lpp_gnss_TimeOfDayFrac_msec, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_999 },
3158   { &hf_lpp_notificationOfLeapSecond, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_2 },
3159   { &hf_lpp_gps_TOW_Assist  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GPS_TOW_Assist },
3160   { NULL, 0, 0, NULL }
3161 };
3162
3163 static int
3164 dissect_lpp_GNSS_SystemTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3165   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3166                                    ett_lpp_GNSS_SystemTime, GNSS_SystemTime_sequence);
3167
3168   return offset;
3169 }
3170
3171
3172
3173 static int
3174 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_) {
3175   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3176                                                             0U, 127U, NULL, FALSE);
3177
3178   return offset;
3179 }
3180
3181
3182
3183 static int
3184 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_) {
3185   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3186                                                             0U, 12533U, NULL, FALSE);
3187
3188   return offset;
3189 }
3190
3191
3192
3193 static int
3194 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_) {
3195   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3196                                                             0U, 3999999U, NULL, FALSE);
3197
3198   return offset;
3199 }
3200
3201
3202
3203 static int
3204 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_) {
3205   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3206                                                             -64, 63U, NULL, FALSE);
3207
3208   return offset;
3209 }
3210
3211
3212 static const per_sequence_t T_mcc_sequence_of[1] = {
3213   { &hf_lpp_mcc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
3214 };
3215
3216 static int
3217 dissect_lpp_T_mcc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3218   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3219                                                   ett_lpp_T_mcc, T_mcc_sequence_of,
3220                                                   3, 3, FALSE);
3221
3222   return offset;
3223 }
3224
3225
3226 static const per_sequence_t T_mnc_sequence_of[1] = {
3227   { &hf_lpp_mnc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
3228 };
3229
3230 static int
3231 dissect_lpp_T_mnc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3232   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3233                                                   ett_lpp_T_mnc, T_mnc_sequence_of,
3234                                                   2, 3, FALSE);
3235
3236   return offset;
3237 }
3238
3239
3240 static const per_sequence_t T_plmn_Identity_sequence[] = {
3241   { &hf_lpp_mcc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc },
3242   { &hf_lpp_mnc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc },
3243   { NULL, 0, 0, NULL }
3244 };
3245
3246 static int
3247 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_) {
3248   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3249                                    ett_lpp_T_plmn_Identity, T_plmn_Identity_sequence);
3250
3251   return offset;
3252 }
3253
3254
3255
3256 static int
3257 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_) {
3258   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3259                                      32, 32, FALSE, NULL);
3260
3261   return offset;
3262 }
3263
3264
3265 static const value_string lpp_T_cellIdentity_vals[] = {
3266   {   0, "eutra" },
3267   {   1, "utra" },
3268   { 0, NULL }
3269 };
3270
3271 static const per_choice_t T_cellIdentity_choice[] = {
3272   {   0, &hf_lpp_eutra           , ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_28 },
3273   {   1, &hf_lpp_utra            , ASN1_NO_EXTENSIONS     , dissect_lpp_BIT_STRING_SIZE_32 },
3274   { 0, NULL, 0, NULL }
3275 };
3276
3277 static int
3278 dissect_lpp_T_cellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3279   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3280                                  ett_lpp_T_cellIdentity, T_cellIdentity_choice,
3281                                  NULL);
3282
3283   return offset;
3284 }
3285
3286
3287 static const per_sequence_t CellGlobalIdEUTRA_AndUTRA_sequence[] = {
3288   { &hf_lpp_plmn_Identity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_plmn_Identity },
3289   { &hf_lpp_cellIdentity    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cellIdentity },
3290   { NULL, 0, 0, NULL }
3291 };
3292
3293 static int
3294 dissect_lpp_CellGlobalIdEUTRA_AndUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3295   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3296                                    ett_lpp_CellGlobalIdEUTRA_AndUTRA, CellGlobalIdEUTRA_AndUTRA_sequence);
3297
3298   return offset;
3299 }
3300
3301
3302
3303 static int
3304 dissect_lpp_ARFCN_ValueEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3305   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3306                                                             0U, 65535U, NULL, FALSE);
3307
3308   return offset;
3309 }
3310
3311
3312 static const per_sequence_t T_eUTRA_sequence[] = {
3313   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
3314   { &hf_lpp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
3315   { &hf_lpp_earfcn          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueEUTRA },
3316   { NULL, 0, 0, NULL }
3317 };
3318
3319 static int
3320 dissect_lpp_T_eUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3321   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3322                                    ett_lpp_T_eUTRA, T_eUTRA_sequence);
3323
3324   return offset;
3325 }
3326
3327
3328
3329 static int
3330 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_) {
3331   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3332                                                             0U, 511U, NULL, FALSE);
3333
3334   return offset;
3335 }
3336
3337
3338 static const per_sequence_t T_fdd_sequence[] = {
3339   { &hf_lpp_primary_CPICH_Info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
3340   { NULL, 0, 0, NULL }
3341 };
3342
3343 static int
3344 dissect_lpp_T_fdd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3345   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3346                                    ett_lpp_T_fdd, T_fdd_sequence);
3347
3348   return offset;
3349 }
3350
3351
3352 static const per_sequence_t T_tdd_sequence[] = {
3353   { &hf_lpp_cellParameters  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
3354   { NULL, 0, 0, NULL }
3355 };
3356
3357 static int
3358 dissect_lpp_T_tdd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3359   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3360                                    ett_lpp_T_tdd, T_tdd_sequence);
3361
3362   return offset;
3363 }
3364
3365
3366 static const value_string lpp_T_mode_vals[] = {
3367   {   0, "fdd" },
3368   {   1, "tdd" },
3369   { 0, NULL }
3370 };
3371
3372 static const per_choice_t T_mode_choice[] = {
3373   {   0, &hf_lpp_fdd             , ASN1_NO_EXTENSIONS     , dissect_lpp_T_fdd },
3374   {   1, &hf_lpp_tdd             , ASN1_NO_EXTENSIONS     , dissect_lpp_T_tdd },
3375   { 0, NULL, 0, NULL }
3376 };
3377
3378 static int
3379 dissect_lpp_T_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3380   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3381                                  ett_lpp_T_mode, T_mode_choice,
3382                                  NULL);
3383
3384   return offset;
3385 }
3386
3387
3388
3389 static int
3390 dissect_lpp_ARFCN_ValueUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3391   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3392                                                             0U, 16383U, NULL, FALSE);
3393
3394   return offset;
3395 }
3396
3397
3398 static const per_sequence_t T_uTRA_sequence[] = {
3399   { &hf_lpp_mode            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_mode },
3400   { &hf_lpp_cellGlobalIdUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
3401   { &hf_lpp_uarfcn          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueUTRA },
3402   { NULL, 0, 0, NULL }
3403 };
3404
3405 static int
3406 dissect_lpp_T_uTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3407   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3408                                    ett_lpp_T_uTRA, T_uTRA_sequence);
3409
3410   return offset;
3411 }
3412
3413
3414
3415 static int
3416 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_) {
3417   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3418                                                             0U, 1023U, NULL, FALSE);
3419
3420   return offset;
3421 }
3422
3423
3424 static const per_sequence_t T_mcc_01_sequence_of[1] = {
3425   { &hf_lpp_mcc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
3426 };
3427
3428 static int
3429 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_) {
3430   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3431                                                   ett_lpp_T_mcc_01, T_mcc_01_sequence_of,
3432                                                   3, 3, FALSE);
3433
3434   return offset;
3435 }
3436
3437
3438 static const per_sequence_t T_mnc_01_sequence_of[1] = {
3439   { &hf_lpp_mnc_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_9 },
3440 };
3441
3442 static int
3443 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_) {
3444   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3445                                                   ett_lpp_T_mnc_01, T_mnc_01_sequence_of,
3446                                                   2, 3, FALSE);
3447
3448   return offset;
3449 }
3450
3451
3452 static const per_sequence_t T_plmn_Identity_01_sequence[] = {
3453   { &hf_lpp_mcc_01          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mcc_01 },
3454   { &hf_lpp_mnc_01          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_mnc_01 },
3455   { NULL, 0, 0, NULL }
3456 };
3457
3458 static int
3459 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_) {
3460   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3461                                    ett_lpp_T_plmn_Identity_01, T_plmn_Identity_01_sequence);
3462
3463   return offset;
3464 }
3465
3466
3467
3468 static int
3469 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_) {
3470   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3471                                      16, 16, FALSE, NULL);
3472
3473   return offset;
3474 }
3475
3476
3477 static const per_sequence_t CellGlobalIdGERAN_sequence[] = {
3478   { &hf_lpp_plmn_Identity_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_plmn_Identity_01 },
3479   { &hf_lpp_locationAreaCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_16 },
3480   { &hf_lpp_cellIdentity_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_16 },
3481   { NULL, 0, 0, NULL }
3482 };
3483
3484 static int
3485 dissect_lpp_CellGlobalIdGERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3486   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3487                                    ett_lpp_CellGlobalIdGERAN, CellGlobalIdGERAN_sequence);
3488
3489   return offset;
3490 }
3491
3492
3493 static const per_sequence_t T_gSM_sequence[] = {
3494   { &hf_lpp_bcchCarrier     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
3495   { &hf_lpp_bsic            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
3496   { &hf_lpp_cellGlobalIdGERAN, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdGERAN },
3497   { NULL, 0, 0, NULL }
3498 };
3499
3500 static int
3501 dissect_lpp_T_gSM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3502   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3503                                    ett_lpp_T_gSM, T_gSM_sequence);
3504
3505   return offset;
3506 }
3507
3508
3509 static const value_string lpp_T_cellID_vals[] = {
3510   {   0, "eUTRA" },
3511   {   1, "uTRA" },
3512   {   2, "gSM" },
3513   { 0, NULL }
3514 };
3515
3516 static const per_choice_t T_cellID_choice[] = {
3517   {   0, &hf_lpp_eUTRA           , ASN1_EXTENSION_ROOT    , dissect_lpp_T_eUTRA },
3518   {   1, &hf_lpp_uTRA            , ASN1_EXTENSION_ROOT    , dissect_lpp_T_uTRA },
3519   {   2, &hf_lpp_gSM             , ASN1_EXTENSION_ROOT    , dissect_lpp_T_gSM },
3520   { 0, NULL, 0, NULL }
3521 };
3522
3523 static int
3524 dissect_lpp_T_cellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3525   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3526                                  ett_lpp_T_cellID, T_cellID_choice,
3527                                  NULL);
3528
3529   return offset;
3530 }
3531
3532
3533 static const per_sequence_t NetworkTime_sequence[] = {
3534   { &hf_lpp_secondsFromFrameStructureStart, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_12533 },
3535   { &hf_lpp_fractionalSecondsFromFrameStructureStart, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3999999 },
3536   { &hf_lpp_frameDrift      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M64_63 },
3537   { &hf_lpp_cellID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cellID },
3538   { NULL, 0, 0, NULL }
3539 };
3540
3541 static int
3542 dissect_lpp_NetworkTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3543   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3544                                    ett_lpp_NetworkTime, NetworkTime_sequence);
3545
3546   return offset;
3547 }
3548
3549
3550 static const value_string lpp_T_bsAlign_vals[] = {
3551   {   0, "true" },
3552   { 0, NULL }
3553 };
3554
3555
3556 static int
3557 dissect_lpp_T_bsAlign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3558   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3559                                      1, NULL, FALSE, 0, NULL);
3560
3561   return offset;
3562 }
3563
3564
3565 static const per_sequence_t GNSS_ReferenceTimeForOneCell_sequence[] = {
3566   { &hf_lpp_networkTime     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NetworkTime },
3567   { &hf_lpp_referenceTimeUnc, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
3568   { &hf_lpp_bsAlign         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_bsAlign },
3569   { NULL, 0, 0, NULL }
3570 };
3571
3572 static int
3573 dissect_lpp_GNSS_ReferenceTimeForOneCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3574   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3575                                    ett_lpp_GNSS_ReferenceTimeForOneCell, GNSS_ReferenceTimeForOneCell_sequence);
3576
3577   return offset;
3578 }
3579
3580
3581 static const per_sequence_t SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell_sequence_of[1] = {
3582   { &hf_lpp_gnss_ReferenceTimeForCells_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ReferenceTimeForOneCell },
3583 };
3584
3585 static int
3586 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_) {
3587   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3588                                                   ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell, SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell_sequence_of,
3589                                                   1, 16, FALSE);
3590
3591   return offset;
3592 }
3593
3594
3595 static const per_sequence_t GNSS_ReferenceTime_sequence[] = {
3596   { &hf_lpp_gnss_SystemTime , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
3597   { &hf_lpp_referenceTimeUnc, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
3598   { &hf_lpp_gnss_ReferenceTimeForCells, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell },
3599   { NULL, 0, 0, NULL }
3600 };
3601
3602 static int
3603 dissect_lpp_GNSS_ReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3604   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3605                                    ett_lpp_GNSS_ReferenceTime, GNSS_ReferenceTime_sequence);
3606
3607   return offset;
3608 }
3609
3610
3611 static const value_string lpp_T_latitudeSign_04_vals[] = {
3612   {   0, "north" },
3613   {   1, "south" },
3614   { 0, NULL }
3615 };
3616
3617
3618 static int
3619 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_) {
3620   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3621                                      2, NULL, FALSE, 0, NULL);
3622
3623   return offset;
3624 }
3625
3626
3627
3628 static int
3629 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_) {
3630   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3631                                                             0U, 8388607U, NULL, FALSE);
3632
3633   return offset;
3634 }
3635
3636
3637
3638 static int
3639 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_) {
3640   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3641                                                             -8388608, 8388607U, NULL, FALSE);
3642
3643   return offset;
3644 }
3645
3646
3647 static const value_string lpp_T_altitudeDirection_01_vals[] = {
3648   {   0, "height" },
3649   {   1, "depth" },
3650   { 0, NULL }
3651 };
3652
3653
3654 static int
3655 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_) {
3656   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3657                                      2, NULL, FALSE, 0, NULL);
3658
3659   return offset;
3660 }
3661
3662
3663
3664 static int
3665 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_) {
3666   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3667                                                             0U, 179U, NULL, FALSE);
3668
3669   return offset;
3670 }
3671
3672
3673
3674 static int
3675 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_) {
3676   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3677                                                             0U, 100U, NULL, FALSE);
3678
3679   return offset;
3680 }
3681
3682
3683 static const per_sequence_t EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_sequence[] = {
3684   { &hf_lpp_latitudeSign_04 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_04 },
3685   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
3686   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
3687   { &hf_lpp_altitudeDirection_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_altitudeDirection_01 },
3688   { &hf_lpp_altitude        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
3689   { &hf_lpp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
3690   { &hf_lpp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
3691   { &hf_lpp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
3692   { &hf_lpp_uncertaintyAltitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
3693   { &hf_lpp_confidence      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
3694   { NULL, 0, 0, NULL }
3695 };
3696
3697 static int
3698 dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3699   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3700                                    ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid, EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_sequence);
3701
3702   return offset;
3703 }
3704
3705
3706 static const per_sequence_t GNSS_ReferenceLocation_sequence[] = {
3707   { &hf_lpp_threeDlocation  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
3708   { NULL, 0, 0, NULL }
3709 };
3710
3711 static int
3712 dissect_lpp_GNSS_ReferenceLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3713   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3714                                    ett_lpp_GNSS_ReferenceLocation, GNSS_ReferenceLocation_sequence);
3715
3716   return offset;
3717 }
3718
3719
3720
3721 static int
3722 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_) {
3723   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3724                                                             -128, 127U, NULL, FALSE);
3725
3726   return offset;
3727 }
3728
3729
3730 static const per_sequence_t KlobucharModelParameter_sequence[] = {
3731   { &hf_lpp_dataID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_2 },
3732   { &hf_lpp_alfa0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3733   { &hf_lpp_alfa1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3734   { &hf_lpp_alfa2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3735   { &hf_lpp_alfa3           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3736   { &hf_lpp_beta0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3737   { &hf_lpp_beta1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3738   { &hf_lpp_beta2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3739   { &hf_lpp_beta3           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
3740   { NULL, 0, 0, NULL }
3741 };
3742
3743 static int
3744 dissect_lpp_KlobucharModelParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3745   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3746                                    ett_lpp_KlobucharModelParameter, KlobucharModelParameter_sequence);
3747
3748   return offset;
3749 }
3750
3751
3752 static const per_sequence_t NeQuickModelParameter_sequence[] = {
3753   { &hf_lpp_ai0             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
3754   { &hf_lpp_ai1             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
3755   { &hf_lpp_ai2             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
3756   { &hf_lpp_ionoStormFlag1  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
3757   { &hf_lpp_ionoStormFlag2  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
3758   { &hf_lpp_ionoStormFlag3  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
3759   { &hf_lpp_ionoStormFlag4  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
3760   { &hf_lpp_ionoStormFlag5  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
3761   { NULL, 0, 0, NULL }
3762 };
3763
3764 static int
3765 dissect_lpp_NeQuickModelParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3766   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3767                                    ett_lpp_NeQuickModelParameter, NeQuickModelParameter_sequence);
3768
3769   return offset;
3770 }
3771
3772
3773 static const per_sequence_t GNSS_IonosphericModel_sequence[] = {
3774   { &hf_lpp_klobucharModel  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_KlobucharModelParameter },
3775   { &hf_lpp_neQuickModel    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NeQuickModelParameter },
3776   { NULL, 0, 0, NULL }
3777 };
3778
3779 static int
3780 dissect_lpp_GNSS_IonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3781   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3782                                    ett_lpp_GNSS_IonosphericModel, GNSS_IonosphericModel_sequence);
3783
3784   return offset;
3785 }
3786
3787
3788
3789 static int
3790 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_) {
3791   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3792                                                             0U, 65535U, NULL, FALSE);
3793
3794   return offset;
3795 }
3796
3797
3798
3799 static int
3800 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_) {
3801   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3802                                                             -1048576, 1048575U, NULL, FALSE);
3803
3804   return offset;
3805 }
3806
3807
3808
3809 static int
3810 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_) {
3811   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3812                                                             -16384, 16383U, NULL, FALSE);
3813
3814   return offset;
3815 }
3816
3817
3818
3819 static int
3820 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_) {
3821   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3822                                                             -1073741824, 1073741823U, NULL, FALSE);
3823
3824   return offset;
3825 }
3826
3827
3828
3829 static int
3830 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_) {
3831   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3832                                                             -262144, 262143U, NULL, FALSE);
3833
3834   return offset;
3835 }
3836
3837
3838 static const per_sequence_t GNSS_EarthOrientationParameters_sequence[] = {
3839   { &hf_lpp_teop            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
3840   { &hf_lpp_pmX             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
3841   { &hf_lpp_pmXdot          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
3842   { &hf_lpp_pmY             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
3843   { &hf_lpp_pmYdot          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
3844   { &hf_lpp_deltaUT1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1073741824_1073741823 },
3845   { &hf_lpp_deltaUT1dot     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M262144_262143 },
3846   { NULL, 0, 0, NULL }
3847 };
3848
3849 static int
3850 dissect_lpp_GNSS_EarthOrientationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3851   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3852                                    ett_lpp_GNSS_EarthOrientationParameters, GNSS_EarthOrientationParameters_sequence);
3853
3854   return offset;
3855 }
3856
3857
3858 static const per_sequence_t GNSS_CommonAssistData_sequence[] = {
3859   { &hf_lpp_gnss_ReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceTime },
3860   { &hf_lpp_gnss_ReferenceLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_ReferenceLocation },
3861   { &hf_lpp_gnss_IonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_IonosphericModel },
3862   { &hf_lpp_gnss_EarthOrientationParameters, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_EarthOrientationParameters },
3863   { NULL, 0, 0, NULL }
3864 };
3865
3866 static int
3867 dissect_lpp_GNSS_CommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3868   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3869                                    ett_lpp_GNSS_CommonAssistData, GNSS_CommonAssistData_sequence);
3870
3871   return offset;
3872 }
3873
3874
3875
3876 static int
3877 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_) {
3878   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3879                                                             -67108864, 67108863U, NULL, FALSE);
3880
3881   return offset;
3882 }
3883
3884
3885
3886 static int
3887 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_) {
3888   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3889                                                             -4096, 4095U, NULL, FALSE);
3890
3891   return offset;
3892 }
3893
3894
3895
3896 static int
3897 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_) {
3898   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3899                                                             0U, 8191U, NULL, FALSE);
3900
3901   return offset;
3902 }
3903
3904
3905 static const per_sequence_t GNSS_TimeModelElement_sequence[] = {
3906   { &hf_lpp_gnss_TimeModelRefTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
3907   { &hf_lpp_tA0             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
3908   { &hf_lpp_tA1             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
3909   { &hf_lpp_tA2             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M64_63 },
3910   { &hf_lpp_gnss_TO_ID      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_15 },
3911   { &hf_lpp_weekNumber      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_8191 },
3912   { &hf_lpp_deltaT          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M128_127 },
3913   { NULL, 0, 0, NULL }
3914 };
3915
3916 static int
3917 dissect_lpp_GNSS_TimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3918   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3919                                    ett_lpp_GNSS_TimeModelElement, GNSS_TimeModelElement_sequence);
3920
3921   return offset;
3922 }
3923
3924
3925 static const per_sequence_t GNSS_TimeModelList_sequence_of[1] = {
3926   { &hf_lpp_GNSS_TimeModelList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_TimeModelElement },
3927 };
3928
3929 static int
3930 dissect_lpp_GNSS_TimeModelList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3931   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3932                                                   ett_lpp_GNSS_TimeModelList, GNSS_TimeModelList_sequence_of,
3933                                                   1, 15, FALSE);
3934
3935   return offset;
3936 }
3937
3938
3939
3940 static int
3941 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_) {
3942   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3943                                                             -2047, 2047U, NULL, FALSE);
3944
3945   return offset;
3946 }
3947
3948
3949
3950 static int
3951 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_) {
3952   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3953                                                             -127, 127U, NULL, FALSE);
3954
3955   return offset;
3956 }
3957
3958
3959 static const per_sequence_t DGNSS_CorrectionsElement_sequence[] = {
3960   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
3961   { &hf_lpp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
3962   { &hf_lpp_udre            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
3963   { &hf_lpp_pseudoRangeCor  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2047_2047 },
3964   { &hf_lpp_rangeRateCor    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M127_127 },
3965   { &hf_lpp_udreGrowthRate  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_7 },
3966   { &hf_lpp_udreValidityTime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_7 },
3967   { NULL, 0, 0, NULL }
3968 };
3969
3970 static int
3971 dissect_lpp_DGNSS_CorrectionsElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3972   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3973                                    ett_lpp_DGNSS_CorrectionsElement, DGNSS_CorrectionsElement_sequence);
3974
3975   return offset;
3976 }
3977
3978
3979 static const per_sequence_t DGNSS_SatList_sequence_of[1] = {
3980   { &hf_lpp_DGNSS_SatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_CorrectionsElement },
3981 };
3982
3983 static int
3984 dissect_lpp_DGNSS_SatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3985   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3986                                                   ett_lpp_DGNSS_SatList, DGNSS_SatList_sequence_of,
3987                                                   1, 64, FALSE);
3988
3989   return offset;
3990 }
3991
3992
3993 static const per_sequence_t DGNSS_SgnTypeElement_sequence[] = {
3994   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
3995   { &hf_lpp_gnss_StatusHealth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
3996   { &hf_lpp_dgnss_SatList   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_SatList },
3997   { NULL, 0, 0, NULL }
3998 };
3999
4000 static int
4001 dissect_lpp_DGNSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4002   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4003                                    ett_lpp_DGNSS_SgnTypeElement, DGNSS_SgnTypeElement_sequence);
4004
4005   return offset;
4006 }
4007
4008
4009 static const per_sequence_t DGNSS_SgnTypeList_sequence_of[1] = {
4010   { &hf_lpp_DGNSS_SgnTypeList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_SgnTypeElement },
4011 };
4012
4013 static int
4014 dissect_lpp_DGNSS_SgnTypeList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4015   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4016                                                   ett_lpp_DGNSS_SgnTypeList, DGNSS_SgnTypeList_sequence_of,
4017                                                   1, 3, FALSE);
4018
4019   return offset;
4020 }
4021
4022
4023 static const per_sequence_t GNSS_DifferentialCorrections_sequence[] = {
4024   { &hf_lpp_dgnss_RefTime   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
4025   { &hf_lpp_dgnss_SgnTypeList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_DGNSS_SgnTypeList },
4026   { NULL, 0, 0, NULL }
4027 };
4028
4029 static int
4030 dissect_lpp_GNSS_DifferentialCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4031   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4032                                    ett_lpp_GNSS_DifferentialCorrections, GNSS_DifferentialCorrections_sequence);
4033
4034   return offset;
4035 }
4036
4037
4038
4039 static int
4040 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_) {
4041   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4042                                                             -2048, 2047U, NULL, FALSE);
4043
4044   return offset;
4045 }
4046
4047
4048
4049 static int
4050 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_) {
4051   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4052                                                             -131072, 131071U, NULL, FALSE);
4053
4054   return offset;
4055 }
4056
4057
4058
4059 static int
4060 dissect_lpp_INTEGER_M134217728_134217727(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4061   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4062                                                             -134217728, 134217727U, NULL, FALSE);
4063
4064   return offset;
4065 }
4066
4067
4068
4069 static int
4070 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_) {
4071   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4072                                                             -512, 511U, NULL, FALSE);
4073
4074   return offset;
4075 }
4076
4077
4078 static const per_sequence_t StandardClockModelElement_sequence[] = {
4079   { &hf_lpp_stanClockToc    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
4080   { &hf_lpp_stanClockAF2    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
4081   { &hf_lpp_stanClockAF1    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
4082   { &hf_lpp_stanClockAF0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M134217728_134217727 },
4083   { &hf_lpp_stanClockTgd    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M512_511 },
4084   { &hf_lpp_stanModelID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1 },
4085   { NULL, 0, 0, NULL }
4086 };
4087
4088 static int
4089 dissect_lpp_StandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4090   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4091                                    ett_lpp_StandardClockModelElement, StandardClockModelElement_sequence);
4092
4093   return offset;
4094 }
4095
4096
4097 static const per_sequence_t StandardClockModelList_sequence_of[1] = {
4098   { &hf_lpp_StandardClockModelList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_StandardClockModelElement },
4099 };
4100
4101 static int
4102 dissect_lpp_StandardClockModelList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4103   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4104                                                   ett_lpp_StandardClockModelList, StandardClockModelList_sequence_of,
4105                                                   1, 2, FALSE);
4106
4107   return offset;
4108 }
4109
4110
4111
4112 static int
4113 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_) {
4114   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4115                                                             0U, 37799U, NULL, FALSE);
4116
4117   return offset;
4118 }
4119
4120
4121
4122 static int
4123 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_) {
4124   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4125                                                             -32768, 32767U, NULL, FALSE);
4126
4127   return offset;
4128 }
4129
4130
4131
4132 static int
4133 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_) {
4134   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4135                                                             -2097152, 2097151U, NULL, FALSE);
4136
4137   return offset;
4138 }
4139
4140
4141 static const per_sequence_t NAV_ClockModel_sequence[] = {
4142   { &hf_lpp_navToc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_37799 },
4143   { &hf_lpp_navaf2          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
4144   { &hf_lpp_navaf1          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4145   { &hf_lpp_navaf0          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
4146   { &hf_lpp_navTgd          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
4147   { NULL, 0, 0, NULL }
4148 };
4149
4150 static int
4151 dissect_lpp_NAV_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4152   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4153                                    ett_lpp_NAV_ClockModel, NAV_ClockModel_sequence);
4154
4155   return offset;
4156 }
4157
4158
4159
4160 static int
4161 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_) {
4162   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4163                                                             0U, 2015U, NULL, FALSE);
4164
4165   return offset;
4166 }
4167
4168
4169
4170 static int
4171 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_) {
4172   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4173                                                             -16, 15U, NULL, FALSE);
4174
4175   return offset;
4176 }
4177
4178
4179
4180 static int
4181 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_) {
4182   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4183                                                             -524288, 524287U, NULL, FALSE);
4184
4185   return offset;
4186 }
4187
4188
4189
4190 static int
4191 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_) {
4192   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4193                                                             -33554432, 33554431U, NULL, FALSE);
4194
4195   return offset;
4196 }
4197
4198
4199 static const per_sequence_t CNAV_ClockModel_sequence[] = {
4200   { &hf_lpp_cnavToc         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2015 },
4201   { &hf_lpp_cnavTop         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2015 },
4202   { &hf_lpp_cnavURA0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
4203   { &hf_lpp_cnavURA1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
4204   { &hf_lpp_cnavURA2        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
4205   { &hf_lpp_cnavAf2         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
4206   { &hf_lpp_cnavAf1         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M524288_524287 },
4207   { &hf_lpp_cnavAf0         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M33554432_33554431 },
4208   { &hf_lpp_cnavTgd         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
4209   { &hf_lpp_cnavISCl1cp     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
4210   { &hf_lpp_cnavISCl1cd     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
4211   { &hf_lpp_cnavISCl1ca     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
4212   { &hf_lpp_cnavISCl2c      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
4213   { &hf_lpp_cnavISCl5i5     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
4214   { &hf_lpp_cnavISCl5q5     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M4096_4095 },
4215   { NULL, 0, 0, NULL }
4216 };
4217
4218 static int
4219 dissect_lpp_CNAV_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4220   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4221                                    ett_lpp_CNAV_ClockModel, CNAV_ClockModel_sequence);
4222
4223   return offset;
4224 }
4225
4226
4227
4228 static int
4229 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_) {
4230   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4231                                                             -1024, 1023U, NULL, FALSE);
4232
4233   return offset;
4234 }
4235
4236
4237 static const per_sequence_t GLONASS_ClockModel_sequence[] = {
4238   { &hf_lpp_gloTau          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
4239   { &hf_lpp_gloGamma        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
4240   { &hf_lpp_gloDeltaTau     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M16_15 },
4241   { NULL, 0, 0, NULL }
4242 };
4243
4244 static int
4245 dissect_lpp_GLONASS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4246   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4247                                    ett_lpp_GLONASS_ClockModel, GLONASS_ClockModel_sequence);
4248
4249   return offset;
4250 }
4251
4252
4253
4254 static int
4255 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_) {
4256   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4257                                                             0U, 5399U, NULL, FALSE);
4258
4259   return offset;
4260 }
4261
4262
4263 static const per_sequence_t SBAS_ClockModel_sequence[] = {
4264   { &hf_lpp_sbasTo          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_5399 },
4265   { &hf_lpp_sbasAgfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
4266   { &hf_lpp_sbasAgf1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
4267   { NULL, 0, 0, NULL }
4268 };
4269
4270 static int
4271 dissect_lpp_SBAS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4272   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4273                                    ett_lpp_SBAS_ClockModel, SBAS_ClockModel_sequence);
4274
4275   return offset;
4276 }
4277
4278
4279 static const value_string lpp_GNSS_ClockModel_vals[] = {
4280   {   0, "standardClockModelList" },
4281   {   1, "nav-ClockModel" },
4282   {   2, "cnav-ClockModel" },
4283   {   3, "glonass-ClockModel" },
4284   {   4, "sbas-ClockModel" },
4285   { 0, NULL }
4286 };
4287
4288 static const per_choice_t GNSS_ClockModel_choice[] = {
4289   {   0, &hf_lpp_standardClockModelList, ASN1_EXTENSION_ROOT    , dissect_lpp_StandardClockModelList },
4290   {   1, &hf_lpp_nav_ClockModel  , ASN1_EXTENSION_ROOT    , dissect_lpp_NAV_ClockModel },
4291   {   2, &hf_lpp_cnav_ClockModel , ASN1_EXTENSION_ROOT    , dissect_lpp_CNAV_ClockModel },
4292   {   3, &hf_lpp_glonass_ClockModel, ASN1_EXTENSION_ROOT    , dissect_lpp_GLONASS_ClockModel },
4293   {   4, &hf_lpp_sbas_ClockModel , ASN1_EXTENSION_ROOT    , dissect_lpp_SBAS_ClockModel },
4294   { 0, NULL, 0, NULL }
4295 };
4296
4297 static int
4298 dissect_lpp_GNSS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4299   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4300                                  ett_lpp_GNSS_ClockModel, GNSS_ClockModel_choice,
4301                                  NULL);
4302
4303   return offset;
4304 }
4305
4306
4307
4308 static int
4309 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_) {
4310   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4311                                                             -2147483648, 2147483647U, NULL, FALSE);
4312
4313   return offset;
4314 }
4315
4316
4317
4318 static int
4319 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_) {
4320   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4321                                                             0U, 4294967295U, NULL, FALSE);
4322
4323   return offset;
4324 }
4325
4326
4327
4328 static int
4329 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_) {
4330   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4331                                                             -8192, 8191U, NULL, FALSE);
4332
4333   return offset;
4334 }
4335
4336
4337 static const per_sequence_t NavModelKeplerianSet_sequence[] = {
4338   { &hf_lpp_keplerToe       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
4339   { &hf_lpp_keplerW         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4340   { &hf_lpp_keplerDeltaN    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4341   { &hf_lpp_keplerM0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4342   { &hf_lpp_keplerOmegaDot  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4343   { &hf_lpp_keplerE         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
4344   { &hf_lpp_keplerIDot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
4345   { &hf_lpp_keplerAPowerHalf, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
4346   { &hf_lpp_keplerI0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4347   { &hf_lpp_keplerOmega0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4348   { &hf_lpp_keplerCrs       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4349   { &hf_lpp_keplerCis       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4350   { &hf_lpp_keplerCus       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4351   { &hf_lpp_keplerCrc       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4352   { &hf_lpp_keplerCic       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4353   { &hf_lpp_keplerCuc       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4354   { NULL, 0, 0, NULL }
4355 };
4356
4357 static int
4358 dissect_lpp_NavModelKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4359   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4360                                    ett_lpp_NavModelKeplerianSet, NavModelKeplerianSet_sequence);
4361
4362   return offset;
4363 }
4364
4365
4366
4367 static int
4368 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_) {
4369   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4370                                                             0U, 16777215U, NULL, FALSE);
4371
4372   return offset;
4373 }
4374
4375
4376 static const per_sequence_t T_ephemSF1Rsvd_sequence[] = {
4377   { &hf_lpp_reserved1       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
4378   { &hf_lpp_reserved2       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
4379   { &hf_lpp_reserved3       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
4380   { &hf_lpp_reserved4       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
4381   { NULL, 0, 0, NULL }
4382 };
4383
4384 static int
4385 dissect_lpp_T_ephemSF1Rsvd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4386   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4387                                    ett_lpp_T_ephemSF1Rsvd, T_ephemSF1Rsvd_sequence);
4388
4389   return offset;
4390 }
4391
4392
4393
4394 static int
4395 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_) {
4396   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4397                                                             0U, 31U, NULL, FALSE);
4398
4399   return offset;
4400 }
4401
4402
4403 static const per_sequence_t T_addNAVparam_sequence[] = {
4404   { &hf_lpp_ephemCodeOnL2   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
4405   { &hf_lpp_ephemL2Pflag    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
4406   { &hf_lpp_ephemSF1Rsvd    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_ephemSF1Rsvd },
4407   { &hf_lpp_ephemAODA       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
4408   { NULL, 0, 0, NULL }
4409 };
4410
4411 static int
4412 dissect_lpp_T_addNAVparam(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4413   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4414                                    ett_lpp_T_addNAVparam, T_addNAVparam_sequence);
4415
4416   return offset;
4417 }
4418
4419
4420 static const per_sequence_t NavModelNAV_KeplerianSet_sequence[] = {
4421   { &hf_lpp_navURA          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
4422   { &hf_lpp_navFitFlag      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
4423   { &hf_lpp_navToe          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_37799 },
4424   { &hf_lpp_navOmega        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4425   { &hf_lpp_navDeltaN       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4426   { &hf_lpp_navM0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4427   { &hf_lpp_navOmegaADot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4428   { &hf_lpp_navE            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
4429   { &hf_lpp_navIDot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
4430   { &hf_lpp_navAPowerHalf   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4294967295 },
4431   { &hf_lpp_navI0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4432   { &hf_lpp_navOmegaA0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
4433   { &hf_lpp_navCrs          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4434   { &hf_lpp_navCis          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4435   { &hf_lpp_navCus          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4436   { &hf_lpp_navCrc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4437   { &hf_lpp_navCic          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4438   { &hf_lpp_navCuc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4439   { &hf_lpp_addNAVparam     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_addNAVparam },
4440   { NULL, 0, 0, NULL }
4441 };
4442
4443 static int
4444 dissect_lpp_NavModelNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4445   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4446                                    ett_lpp_NavModelNAV_KeplerianSet, NavModelNAV_KeplerianSet_sequence);
4447
4448   return offset;
4449 }
4450
4451
4452
4453 static int
4454 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_) {
4455   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4456                                                             -16777216, 16777215U, NULL, FALSE);
4457
4458   return offset;
4459 }
4460
4461
4462
4463 static int
4464 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_) {
4465   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4466                                                             -65536, 65535U, NULL, FALSE);
4467
4468   return offset;
4469 }
4470
4471
4472
4473 static int
4474 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_) {
4475   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4476                                                             -4194304, 4194303U, NULL, FALSE);
4477
4478   return offset;
4479 }
4480
4481
4482
4483 static int
4484 dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4485   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
4486                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
4487
4488   return offset;
4489 }
4490
4491
4492
4493 static int
4494 dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4495   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
4496                                                             0U, G_GINT64_CONSTANT(8589934591U), NULL, FALSE);
4497
4498   return offset;
4499 }
4500
4501
4502
4503 static int
4504 dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4505   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
4506                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
4507
4508   return offset;
4509 }
4510
4511
4512
4513 static int
4514 dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4515   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
4516                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
4517
4518   return offset;
4519 }
4520
4521
4522
4523 static int
4524 dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4525   offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
4526                                                             G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
4527
4528   return offset;
4529 }
4530
4531
4532 static const per_sequence_t NavModelCNAV_KeplerianSet_sequence[] = {
4533   { &hf_lpp_cnavTop         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2015 },
4534   { &hf_lpp_cnavURAindex    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
4535   { &hf_lpp_cnavDeltaA      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M33554432_33554431 },
4536   { &hf_lpp_cnavAdot        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16777216_16777215 },
4537   { &hf_lpp_cnavDeltaNo     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
4538   { &hf_lpp_cnavDeltaNoDot  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4194304_4194303 },
4539   { &hf_lpp_cnavMo          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavMo },
4540   { &hf_lpp_cnavE           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavE },
4541   { &hf_lpp_cnavOmega       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavOmega },
4542   { &hf_lpp_cnavOMEGA0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavOMEGA0 },
4543   { &hf_lpp_cnavDeltaOmegaDot, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
4544   { &hf_lpp_cnavIo          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cnavIo },
4545   { &hf_lpp_cnavIoDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
4546   { &hf_lpp_cnavCis         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4547   { &hf_lpp_cnavCic         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4548   { &hf_lpp_cnavCrs         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4549   { &hf_lpp_cnavCrc         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4550   { &hf_lpp_cnavCus         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
4551   { &hf_lpp_cnavCuc         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
4552   { NULL, 0, 0, NULL }
4553 };
4554
4555 static int
4556 dissect_lpp_NavModelCNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4557   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4558                                    ett_lpp_NavModelCNAV_KeplerianSet, NavModelCNAV_KeplerianSet_sequence);
4559
4560   return offset;
4561 }
4562
4563
4564 static const per_sequence_t NavModel_GLONASS_ECEF_sequence[] = {
4565   { &hf_lpp_gloEn           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
4566   { &hf_lpp_gloP1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_2 },
4567   { &hf_lpp_gloP2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
4568   { &hf_lpp_gloM            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
4569   { &hf_lpp_gloX            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
4570   { &hf_lpp_gloXdot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4571   { &hf_lpp_gloXdotdot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
4572   { &hf_lpp_gloY            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
4573   { &hf_lpp_gloYdot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4574   { &hf_lpp_gloYdotdot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
4575   { &hf_lpp_gloZ            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M67108864_67108863 },
4576   { &hf_lpp_gloZdot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4577   { &hf_lpp_gloZdotdot      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16_15 },
4578   { NULL, 0, 0, NULL }
4579 };
4580
4581 static int
4582 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_) {
4583   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4584                                    ett_lpp_NavModel_GLONASS_ECEF, NavModel_GLONASS_ECEF_sequence);
4585
4586   return offset;
4587 }
4588
4589
4590
4591 static int
4592 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_) {
4593   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4594                                      4, 4, FALSE, NULL);
4595
4596   return offset;
4597 }
4598
4599
4600
4601 static int
4602 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_) {
4603   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4604                                                             -536870912, 536870911U, NULL, FALSE);
4605
4606   return offset;
4607 }
4608
4609
4610 static const per_sequence_t NavModel_SBAS_ECEF_sequence[] = {
4611   { &hf_lpp_sbasTo          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_5399 },
4612   { &hf_lpp_sbasAccuracy    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_4 },
4613   { &hf_lpp_sbasXg          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M536870912_536870911 },
4614   { &hf_lpp_sbasYg          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M536870912_536870911 },
4615   { &hf_lpp_sbasZg          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16777216_16777215 },
4616   { &hf_lpp_sbasXgDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
4617   { &hf_lpp_sbasYgDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
4618   { &hf_lpp_sbasZgDot       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
4619   { &hf_lpp_sbasXgDotDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
4620   { &hf_lpp_sbagYgDotDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
4621   { &hf_lpp_sbasZgDotDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
4622   { NULL, 0, 0, NULL }
4623 };
4624
4625 static int
4626 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_) {
4627   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4628                                    ett_lpp_NavModel_SBAS_ECEF, NavModel_SBAS_ECEF_sequence);
4629
4630   return offset;
4631 }
4632
4633
4634 static const value_string lpp_GNSS_OrbitModel_vals[] = {
4635   {   0, "keplerianSet" },
4636   {   1, "nav-KeplerianSet" },
4637   {   2, "cnav-KeplerianSet" },
4638   {   3, "glonass-ECEF" },
4639   {   4, "sbas-ECEF" },
4640   { 0, NULL }
4641 };
4642
4643 static const per_choice_t GNSS_OrbitModel_choice[] = {
4644   {   0, &hf_lpp_keplerianSet    , ASN1_EXTENSION_ROOT    , dissect_lpp_NavModelKeplerianSet },
4645   {   1, &hf_lpp_nav_KeplerianSet, ASN1_EXTENSION_ROOT    , dissect_lpp_NavModelNAV_KeplerianSet },
4646   {   2, &hf_lpp_cnav_KeplerianSet, ASN1_EXTENSION_ROOT    , dissect_lpp_NavModelCNAV_KeplerianSet },
4647   {   3, &hf_lpp_glonass_ECEF    , ASN1_EXTENSION_ROOT    , dissect_lpp_NavModel_GLONASS_ECEF },
4648   {   4, &hf_lpp_sbas_ECEF       , ASN1_EXTENSION_ROOT    , dissect_lpp_NavModel_SBAS_ECEF },
4649   { 0, NULL, 0, NULL }
4650 };
4651
4652 static int
4653 dissect_lpp_GNSS_OrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4654   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4655                                  ett_lpp_GNSS_OrbitModel, GNSS_OrbitModel_choice,
4656                                  NULL);
4657
4658   return offset;
4659 }
4660
4661
4662 static const per_sequence_t GNSS_NavModelSatelliteElement_sequence[] = {
4663   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4664   { &hf_lpp_svHealth        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
4665   { &hf_lpp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_11 },
4666   { &hf_lpp_gnss_ClockModel , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ClockModel },
4667   { &hf_lpp_gnss_OrbitModel , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_OrbitModel },
4668   { NULL, 0, 0, NULL }
4669 };
4670
4671 static int
4672 dissect_lpp_GNSS_NavModelSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4673   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4674                                    ett_lpp_GNSS_NavModelSatelliteElement, GNSS_NavModelSatelliteElement_sequence);
4675
4676   return offset;
4677 }
4678
4679
4680 static const per_sequence_t GNSS_NavModelSatelliteList_sequence_of[1] = {
4681   { &hf_lpp_GNSS_NavModelSatelliteList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NavModelSatelliteElement },
4682 };
4683
4684 static int
4685 dissect_lpp_GNSS_NavModelSatelliteList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4686   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4687                                                   ett_lpp_GNSS_NavModelSatelliteList, GNSS_NavModelSatelliteList_sequence_of,
4688                                                   1, 64, FALSE);
4689
4690   return offset;
4691 }
4692
4693
4694 static const per_sequence_t GNSS_NavigationModel_sequence[] = {
4695   { &hf_lpp_nonBroadcastIndFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
4696   { &hf_lpp_gnss_SatelliteList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_NavModelSatelliteList },
4697   { NULL, 0, 0, NULL }
4698 };
4699
4700 static int
4701 dissect_lpp_GNSS_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4702   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4703                                    ett_lpp_GNSS_NavigationModel, GNSS_NavigationModel_sequence);
4704
4705   return offset;
4706 }
4707
4708
4709 static const per_sequence_t BadSignalElement_sequence[] = {
4710   { &hf_lpp_badSVID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4711   { &hf_lpp_badSignalID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SignalIDs },
4712   { NULL, 0, 0, NULL }
4713 };
4714
4715 static int
4716 dissect_lpp_BadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4717   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4718                                    ett_lpp_BadSignalElement, BadSignalElement_sequence);
4719
4720   return offset;
4721 }
4722
4723
4724 static const per_sequence_t GNSS_BadSignalList_sequence_of[1] = {
4725   { &hf_lpp_GNSS_BadSignalList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BadSignalElement },
4726 };
4727
4728 static int
4729 dissect_lpp_GNSS_BadSignalList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4730   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4731                                                   ett_lpp_GNSS_BadSignalList, GNSS_BadSignalList_sequence_of,
4732                                                   1, 64, FALSE);
4733
4734   return offset;
4735 }
4736
4737
4738 static const per_sequence_t GNSS_RealTimeIntegrity_sequence[] = {
4739   { &hf_lpp_gnss_BadSignalList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_BadSignalList },
4740   { NULL, 0, 0, NULL }
4741 };
4742
4743 static int
4744 dissect_lpp_GNSS_RealTimeIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4745   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4746                                    ett_lpp_GNSS_RealTimeIntegrity, GNSS_RealTimeIntegrity_sequence);
4747
4748   return offset;
4749 }
4750
4751
4752
4753 static int
4754 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_) {
4755   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4756                                      1, 1024, FALSE, NULL);
4757
4758   return offset;
4759 }
4760
4761
4762 static const per_sequence_t GNSS_DataBitsSgnElement_sequence[] = {
4763   { &hf_lpp_gnss_SignalType , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
4764   { &hf_lpp_gnss_DataBits   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_1_1024 },
4765   { NULL, 0, 0, NULL }
4766 };
4767
4768 static int
4769 dissect_lpp_GNSS_DataBitsSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4770   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4771                                    ett_lpp_GNSS_DataBitsSgnElement, GNSS_DataBitsSgnElement_sequence);
4772
4773   return offset;
4774 }
4775
4776
4777 static const per_sequence_t GNSS_DataBitsSgnList_sequence_of[1] = {
4778   { &hf_lpp_GNSS_DataBitsSgnList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSgnElement },
4779 };
4780
4781 static int
4782 dissect_lpp_GNSS_DataBitsSgnList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4783   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4784                                                   ett_lpp_GNSS_DataBitsSgnList, GNSS_DataBitsSgnList_sequence_of,
4785                                                   1, 8, FALSE);
4786
4787   return offset;
4788 }
4789
4790
4791 static const per_sequence_t GNSS_DataBitsSatElement_sequence[] = {
4792   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4793   { &hf_lpp_gnss_DataBitsSgnList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSgnList },
4794   { NULL, 0, 0, NULL }
4795 };
4796
4797 static int
4798 dissect_lpp_GNSS_DataBitsSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4799   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4800                                    ett_lpp_GNSS_DataBitsSatElement, GNSS_DataBitsSatElement_sequence);
4801
4802   return offset;
4803 }
4804
4805
4806 static const per_sequence_t GNSS_DataBitsSatList_sequence_of[1] = {
4807   { &hf_lpp_GNSS_DataBitsSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSatElement },
4808 };
4809
4810 static int
4811 dissect_lpp_GNSS_DataBitsSatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4812   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4813                                                   ett_lpp_GNSS_DataBitsSatList, GNSS_DataBitsSatList_sequence_of,
4814                                                   1, 64, FALSE);
4815
4816   return offset;
4817 }
4818
4819
4820 static const per_sequence_t GNSS_DataBitAssistance_sequence[] = {
4821   { &hf_lpp_gnss_TOD        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599 },
4822   { &hf_lpp_gnss_TODfrac    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_999 },
4823   { &hf_lpp_gnss_DataBitsSatList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_DataBitsSatList },
4824   { NULL, 0, 0, NULL }
4825 };
4826
4827 static int
4828 dissect_lpp_GNSS_DataBitAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4829   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4830                                    ett_lpp_GNSS_DataBitAssistance, GNSS_DataBitAssistance_sequence);
4831
4832   return offset;
4833 }
4834
4835
4836
4837 static int
4838 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_) {
4839   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4840                                                             0U, 4U, NULL, FALSE);
4841
4842   return offset;
4843 }
4844
4845
4846
4847 static int
4848 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_) {
4849   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4850                                                             0U, 1022U, NULL, FALSE);
4851
4852   return offset;
4853 }
4854
4855
4856 static const per_sequence_t GNSS_AcquisitionAssistElement_sequence[] = {
4857   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4858   { &hf_lpp_doppler0        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2048_2047 },
4859   { &hf_lpp_doppler1        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
4860   { &hf_lpp_dopplerUncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4 },
4861   { &hf_lpp_codePhase       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1022 },
4862   { &hf_lpp_intCodePhase    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
4863   { &hf_lpp_codePhaseSearchWindow, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
4864   { &hf_lpp_azimuth         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
4865   { &hf_lpp_elevation       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
4866   { &hf_lpp_codePhase1023   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_BOOLEAN },
4867   { NULL, 0, 0, NULL }
4868 };
4869
4870 static int
4871 dissect_lpp_GNSS_AcquisitionAssistElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4872   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4873                                    ett_lpp_GNSS_AcquisitionAssistElement, GNSS_AcquisitionAssistElement_sequence);
4874
4875   return offset;
4876 }
4877
4878
4879 static const per_sequence_t GNSS_AcquisitionAssistList_sequence_of[1] = {
4880   { &hf_lpp_GNSS_AcquisitionAssistList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AcquisitionAssistElement },
4881 };
4882
4883 static int
4884 dissect_lpp_GNSS_AcquisitionAssistList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4885   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4886                                                   ett_lpp_GNSS_AcquisitionAssistList, GNSS_AcquisitionAssistList_sequence_of,
4887                                                   1, 64, FALSE);
4888
4889   return offset;
4890 }
4891
4892
4893 static const per_sequence_t GNSS_AcquisitionAssistance_sequence[] = {
4894   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
4895   { &hf_lpp_gnss_AcquisitionAssistList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AcquisitionAssistList },
4896   { NULL, 0, 0, NULL }
4897 };
4898
4899 static int
4900 dissect_lpp_GNSS_AcquisitionAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4901   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4902                                    ett_lpp_GNSS_AcquisitionAssistance, GNSS_AcquisitionAssistance_sequence);
4903
4904   return offset;
4905 }
4906
4907
4908
4909 static int
4910 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_) {
4911   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4912                                                             0U, 2047U, NULL, FALSE);
4913
4914   return offset;
4915 }
4916
4917
4918 static const per_sequence_t AlmanacKeplerianSet_sequence[] = {
4919   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4920   { &hf_lpp_kepAlmanacE     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
4921   { &hf_lpp_kepAlmanacDeltaI, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
4922   { &hf_lpp_kepAlmanacOmegaDot, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
4923   { &hf_lpp_kepSVHealth     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_15 },
4924   { &hf_lpp_kepAlmanacAPowerHalf, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M65536_65535 },
4925   { &hf_lpp_kepAlmanacOmega0, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4926   { &hf_lpp_kepAlmanacW     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4927   { &hf_lpp_kepAlmanacM0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4928   { &hf_lpp_kepAlmanacAF0   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8192_8191 },
4929   { &hf_lpp_kepAlmanacAF1   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
4930   { NULL, 0, 0, NULL }
4931 };
4932
4933 static int
4934 dissect_lpp_AlmanacKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4935   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4936                                    ett_lpp_AlmanacKeplerianSet, AlmanacKeplerianSet_sequence);
4937
4938   return offset;
4939 }
4940
4941
4942 static const per_sequence_t AlmanacNAV_KeplerianSet_sequence[] = {
4943   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4944   { &hf_lpp_navAlmE         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
4945   { &hf_lpp_navAlmDeltaI    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4946   { &hf_lpp_navAlmOMEGADOT  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
4947   { &hf_lpp_navAlmSVHealth  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
4948   { &hf_lpp_navAlmSqrtA     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16777215 },
4949   { &hf_lpp_navAlmOMEGAo    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4950   { &hf_lpp_navAlmOmega     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4951   { &hf_lpp_navAlmMo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
4952   { &hf_lpp_navAlmaf0       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
4953   { &hf_lpp_navAlmaf1       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
4954   { NULL, 0, 0, NULL }
4955 };
4956
4957 static int
4958 dissect_lpp_AlmanacNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4959   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4960                                    ett_lpp_AlmanacNAV_KeplerianSet, AlmanacNAV_KeplerianSet_sequence);
4961
4962   return offset;
4963 }
4964
4965
4966 static const per_sequence_t AlmanacReducedKeplerianSet_sequence[] = {
4967   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4968   { &hf_lpp_redAlmDeltaA    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
4969   { &hf_lpp_redAlmOmega0    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
4970   { &hf_lpp_redAlmPhi0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
4971   { &hf_lpp_redAlmL1Health  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
4972   { &hf_lpp_redAlmL2Health  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
4973   { &hf_lpp_redAlmL5Health  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
4974   { NULL, 0, 0, NULL }
4975 };
4976
4977 static int
4978 dissect_lpp_AlmanacReducedKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4979   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4980                                    ett_lpp_AlmanacReducedKeplerianSet, AlmanacReducedKeplerianSet_sequence);
4981
4982   return offset;
4983 }
4984
4985
4986
4987 static int
4988 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_) {
4989   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4990                                                             0U, 131071U, NULL, FALSE);
4991
4992   return offset;
4993 }
4994
4995
4996 static const per_sequence_t AlmanacMidiAlmanacSet_sequence[] = {
4997   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
4998   { &hf_lpp_midiAlmE        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
4999   { &hf_lpp_midiAlmDeltaI   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
5000   { &hf_lpp_midiAlmOmegaDot , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
5001   { &hf_lpp_midiAlmSqrtA    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_131071 },
5002   { &hf_lpp_midiAlmOmega0   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
5003   { &hf_lpp_midiAlmOmega    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
5004   { &hf_lpp_midiAlmMo       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
5005   { &hf_lpp_midiAlmaf0      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1024_1023 },
5006   { &hf_lpp_midiAlmaf1      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
5007   { &hf_lpp_midiAlmL1Health , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5008   { &hf_lpp_midiAlmL2Health , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5009   { &hf_lpp_midiAlmL5Health , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5010   { NULL, 0, 0, NULL }
5011 };
5012
5013 static int
5014 dissect_lpp_AlmanacMidiAlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5015   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5016                                    ett_lpp_AlmanacMidiAlmanacSet, AlmanacMidiAlmanacSet_sequence);
5017
5018   return offset;
5019 }
5020
5021
5022
5023 static int
5024 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_) {
5025   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5026                                                             1U, 1461U, NULL, FALSE);
5027
5028   return offset;
5029 }
5030
5031
5032
5033 static int
5034 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_) {
5035   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5036                                                             1U, 24U, NULL, FALSE);
5037
5038   return offset;
5039 }
5040
5041
5042
5043 static int
5044 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_) {
5045   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5046                                                             0U, 2097151U, NULL, FALSE);
5047
5048   return offset;
5049 }
5050
5051
5052 static const per_sequence_t AlmanacGLONASS_AlmanacSet_sequence[] = {
5053   { &hf_lpp_gloAlm_NA       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_1461 },
5054   { &hf_lpp_gloAlmnA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_24 },
5055   { &hf_lpp_gloAlmHA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_31 },
5056   { &hf_lpp_gloAlmLambdaA   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M1048576_1048575 },
5057   { &hf_lpp_gloAlmtlambdaA  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2097151 },
5058   { &hf_lpp_gloAlmDeltaIa   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M131072_131071 },
5059   { &hf_lpp_gloAlmDeltaTA   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2097152_2097151 },
5060   { &hf_lpp_gloAlmDeltaTdotA, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
5061   { &hf_lpp_gloAlmEpsilonA  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
5062   { &hf_lpp_gloAlmOmegaA    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
5063   { &hf_lpp_gloAlmTauA      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M512_511 },
5064   { &hf_lpp_gloAlmCA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1 },
5065   { &hf_lpp_gloAlmMA        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_2 },
5066   { NULL, 0, 0, NULL }
5067 };
5068
5069 static int
5070 dissect_lpp_AlmanacGLONASS_AlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5071   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5072                                    ett_lpp_AlmanacGLONASS_AlmanacSet, AlmanacGLONASS_AlmanacSet_sequence);
5073
5074   return offset;
5075 }
5076
5077
5078
5079 static int
5080 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_) {
5081   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5082                                                             -256, 255U, NULL, FALSE);
5083
5084   return offset;
5085 }
5086
5087
5088
5089 static int
5090 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_) {
5091   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5092                                                             -4, 3U, NULL, FALSE);
5093
5094   return offset;
5095 }
5096
5097
5098
5099 static int
5100 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_) {
5101   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5102                                                             -8, 7U, NULL, FALSE);
5103
5104   return offset;
5105 }
5106
5107
5108 static const per_sequence_t AlmanacECEF_SBAS_AlmanacSet_sequence[] = {
5109   { &hf_lpp_sbasAlmDataID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3 },
5110   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
5111   { &hf_lpp_sbasAlmHealth   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_8 },
5112   { &hf_lpp_sbasAlmXg       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
5113   { &hf_lpp_sbasAlmYg       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M16384_16383 },
5114   { &hf_lpp_sbasAlmZg       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M256_255 },
5115   { &hf_lpp_sbasAlmXgdot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4_3 },
5116   { &hf_lpp_sbasAlmYgDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4_3 },
5117   { &hf_lpp_sbasAlmZgDot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8_7 },
5118   { &hf_lpp_sbasAlmTo       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
5119   { NULL, 0, 0, NULL }
5120 };
5121
5122 static int
5123 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_) {
5124   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5125                                    ett_lpp_AlmanacECEF_SBAS_AlmanacSet, AlmanacECEF_SBAS_AlmanacSet_sequence);
5126
5127   return offset;
5128 }
5129
5130
5131 static const value_string lpp_GNSS_AlmanacElement_vals[] = {
5132   {   0, "keplerianAlmanacSet" },
5133   {   1, "keplerianNAV-Almanac" },
5134   {   2, "keplerianReducedAlmanac" },
5135   {   3, "keplerianMidiAlmanac" },
5136   {   4, "keplerianGLONASS" },
5137   {   5, "ecef-SBAS-Almanac" },
5138   { 0, NULL }
5139 };
5140
5141 static const per_choice_t GNSS_AlmanacElement_choice[] = {
5142   {   0, &hf_lpp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacKeplerianSet },
5143   {   1, &hf_lpp_keplerianNAV_Almanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacNAV_KeplerianSet },
5144   {   2, &hf_lpp_keplerianReducedAlmanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacReducedKeplerianSet },
5145   {   3, &hf_lpp_keplerianMidiAlmanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacMidiAlmanacSet },
5146   {   4, &hf_lpp_keplerianGLONASS, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacGLONASS_AlmanacSet },
5147   {   5, &hf_lpp_ecef_SBAS_Almanac, ASN1_EXTENSION_ROOT    , dissect_lpp_AlmanacECEF_SBAS_AlmanacSet },
5148   { 0, NULL, 0, NULL }
5149 };
5150
5151 static int
5152 dissect_lpp_GNSS_AlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5153   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5154                                  ett_lpp_GNSS_AlmanacElement, GNSS_AlmanacElement_choice,
5155                                  NULL);
5156
5157   return offset;
5158 }
5159
5160
5161 static const per_sequence_t GNSS_AlmanacList_sequence_of[1] = {
5162   { &hf_lpp_GNSS_AlmanacList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AlmanacElement },
5163 };
5164
5165 static int
5166 dissect_lpp_GNSS_AlmanacList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5167   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5168                                                   ett_lpp_GNSS_AlmanacList, GNSS_AlmanacList_sequence_of,
5169                                                   1, 64, FALSE);
5170
5171   return offset;
5172 }
5173
5174
5175 static const per_sequence_t GNSS_Almanac_sequence[] = {
5176   { &hf_lpp_weekNumber_01   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
5177   { &hf_lpp_toa             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_255 },
5178   { &hf_lpp_ioda            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3 },
5179   { &hf_lpp_completeAlmanacProvided, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
5180   { &hf_lpp_gnss_AlmanacList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_AlmanacList },
5181   { NULL, 0, 0, NULL }
5182 };
5183
5184 static int
5185 dissect_lpp_GNSS_Almanac(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5186   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5187                                    ett_lpp_GNSS_Almanac, GNSS_Almanac_sequence);
5188
5189   return offset;
5190 }
5191
5192
5193 static const per_sequence_t UTC_ModelSet1_sequence[] = {
5194   { &hf_lpp_gnss_Utc_A1     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
5195   { &hf_lpp_gnss_Utc_A0     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
5196   { &hf_lpp_gnss_Utc_Tot    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5197   { &hf_lpp_gnss_Utc_WNt    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5198   { &hf_lpp_gnss_Utc_DeltaTls, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5199   { &hf_lpp_gnss_Utc_WNlsf  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5200   { &hf_lpp_gnss_Utc_DN     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5201   { &hf_lpp_gnss_Utc_DeltaTlsf, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5202   { NULL, 0, 0, NULL }
5203 };
5204
5205 static int
5206 dissect_lpp_UTC_ModelSet1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5207   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5208                                    ett_lpp_UTC_ModelSet1, UTC_ModelSet1_sequence);
5209
5210   return offset;
5211 }
5212
5213
5214 static const per_sequence_t UTC_ModelSet2_sequence[] = {
5215   { &hf_lpp_utcA0           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M32768_32767 },
5216   { &hf_lpp_utcA1           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M4096_4095 },
5217   { &hf_lpp_utcA2           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M64_63 },
5218   { &hf_lpp_utcDeltaTls     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5219   { &hf_lpp_utcTot          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
5220   { &hf_lpp_utcWNot         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8191 },
5221   { &hf_lpp_utcWNlsf        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5222   { &hf_lpp_utcDN           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_4 },
5223   { &hf_lpp_utcDeltaTlsf    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5224   { NULL, 0, 0, NULL }
5225 };
5226
5227 static int
5228 dissect_lpp_UTC_ModelSet2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5229   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5230                                    ett_lpp_UTC_ModelSet2, UTC_ModelSet2_sequence);
5231
5232   return offset;
5233 }
5234
5235
5236 static const per_sequence_t UTC_ModelSet3_sequence[] = {
5237   { &hf_lpp_nA              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_1461 },
5238   { &hf_lpp_tauC            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
5239   { &hf_lpp_b1              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M1024_1023 },
5240   { &hf_lpp_b2              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M512_511 },
5241   { &hf_lpp_kp              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_2 },
5242   { NULL, 0, 0, NULL }
5243 };
5244
5245 static int
5246 dissect_lpp_UTC_ModelSet3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5247   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5248                                    ett_lpp_UTC_ModelSet3, UTC_ModelSet3_sequence);
5249
5250   return offset;
5251 }
5252
5253
5254 static const per_sequence_t UTC_ModelSet4_sequence[] = {
5255   { &hf_lpp_utcA1wnt        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
5256   { &hf_lpp_utcA0wnt        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M2147483648_2147483647 },
5257   { &hf_lpp_utcTot_01       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5258   { &hf_lpp_utcWNt          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5259   { &hf_lpp_utcDeltaTls     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5260   { &hf_lpp_utcWNlsf        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
5261   { &hf_lpp_utcDN_01        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5262   { &hf_lpp_utcDeltaTlsf    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M128_127 },
5263   { &hf_lpp_utcStandardID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_7 },
5264   { NULL, 0, 0, NULL }
5265 };
5266
5267 static int
5268 dissect_lpp_UTC_ModelSet4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5269   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5270                                    ett_lpp_UTC_ModelSet4, UTC_ModelSet4_sequence);
5271
5272   return offset;
5273 }
5274
5275
5276 static const value_string lpp_GNSS_UTC_Model_vals[] = {
5277   {   0, "utcModel1" },
5278   {   1, "utcModel2" },
5279   {   2, "utcModel3" },
5280   {   3, "utcModel4" },
5281   { 0, NULL }
5282 };
5283
5284 static const per_choice_t GNSS_UTC_Model_choice[] = {
5285   {   0, &hf_lpp_utcModel1       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet1 },
5286   {   1, &hf_lpp_utcModel2       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet2 },
5287   {   2, &hf_lpp_utcModel3       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet3 },
5288   {   3, &hf_lpp_utcModel4       , ASN1_EXTENSION_ROOT    , dissect_lpp_UTC_ModelSet4 },
5289   { 0, NULL, 0, NULL }
5290 };
5291
5292 static int
5293 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_) {
5294   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5295                                  ett_lpp_GNSS_UTC_Model, GNSS_UTC_Model_choice,
5296                                  NULL);
5297
5298   return offset;
5299 }
5300
5301
5302 static const per_sequence_t GNSS_ID_GPS_SatElement_sequence[] = {
5303   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
5304   { &hf_lpp_signalsAvailable, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
5305   { NULL, 0, 0, NULL }
5306 };
5307
5308 static int
5309 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_) {
5310   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5311                                    ett_lpp_GNSS_ID_GPS_SatElement, GNSS_ID_GPS_SatElement_sequence);
5312
5313   return offset;
5314 }
5315
5316
5317 static const per_sequence_t GNSS_ID_GPS_sequence_of[1] = {
5318   { &hf_lpp_GNSS_ID_GPS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_GPS_SatElement },
5319 };
5320
5321 static int
5322 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_) {
5323   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5324                                                   ett_lpp_GNSS_ID_GPS, GNSS_ID_GPS_sequence_of,
5325                                                   1, 64, FALSE);
5326
5327   return offset;
5328 }
5329
5330
5331
5332 static int
5333 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_) {
5334   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5335                                                             -7, 13U, NULL, FALSE);
5336
5337   return offset;
5338 }
5339
5340
5341 static const per_sequence_t GNSS_ID_GLONASS_SatElement_sequence[] = {
5342   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
5343   { &hf_lpp_signalsAvailable, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalIDs },
5344   { &hf_lpp_channelNumber   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M7_13 },
5345   { NULL, 0, 0, NULL }
5346 };
5347
5348 static int
5349 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_) {
5350   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5351                                    ett_lpp_GNSS_ID_GLONASS_SatElement, GNSS_ID_GLONASS_SatElement_sequence);
5352
5353   return offset;
5354 }
5355
5356
5357 static const per_sequence_t GNSS_ID_GLONASS_sequence_of[1] = {
5358   { &hf_lpp_GNSS_ID_GLONASS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_GLONASS_SatElement },
5359 };
5360
5361 static int
5362 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_) {
5363   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5364                                                   ett_lpp_GNSS_ID_GLONASS, GNSS_ID_GLONASS_sequence_of,
5365                                                   1, 64, FALSE);
5366
5367   return offset;
5368 }
5369
5370
5371 static const value_string lpp_GNSS_AuxiliaryInformation_vals[] = {
5372   {   0, "gnss-ID-GPS" },
5373   {   1, "gnss-ID-GLONASS" },
5374   { 0, NULL }
5375 };
5376
5377 static const per_choice_t GNSS_AuxiliaryInformation_choice[] = {
5378   {   0, &hf_lpp_gnss_ID_GPS     , ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_ID_GPS },
5379   {   1, &hf_lpp_gnss_ID_GLONASS , ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_ID_GLONASS },
5380   { 0, NULL, 0, NULL }
5381 };
5382
5383 static int
5384 dissect_lpp_GNSS_AuxiliaryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5385   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5386                                  ett_lpp_GNSS_AuxiliaryInformation, GNSS_AuxiliaryInformation_choice,
5387                                  NULL);
5388
5389   return offset;
5390 }
5391
5392
5393 static const per_sequence_t GNSS_GenericAssistDataElement_sequence[] = {
5394   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
5395   { &hf_lpp_sbas_ID         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_SBAS_ID },
5396   { &hf_lpp_gnss_TimeModels , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_TimeModelList },
5397   { &hf_lpp_gnss_DifferentialCorrections, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DifferentialCorrections },
5398   { &hf_lpp_gnss_NavigationModel, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_NavigationModel },
5399   { &hf_lpp_gnss_RealTimeIntegrity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_RealTimeIntegrity },
5400   { &hf_lpp_gnss_DataBitAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_DataBitAssistance },
5401   { &hf_lpp_gnss_AcquisitionAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AcquisitionAssistance },
5402   { &hf_lpp_gnss_Almanac    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_Almanac },
5403   { &hf_lpp_gnss_UTC_Model  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_UTC_Model },
5404   { &hf_lpp_gnss_AuxiliaryInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_AuxiliaryInformation },
5405   { NULL, 0, 0, NULL }
5406 };
5407
5408 static int
5409 dissect_lpp_GNSS_GenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5410   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5411                                    ett_lpp_GNSS_GenericAssistDataElement, GNSS_GenericAssistDataElement_sequence);
5412
5413   return offset;
5414 }
5415
5416
5417 static const per_sequence_t GNSS_GenericAssistData_sequence_of[1] = {
5418   { &hf_lpp_GNSS_GenericAssistData_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_GenericAssistDataElement },
5419 };
5420
5421 static int
5422 dissect_lpp_GNSS_GenericAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5423   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5424                                                   ett_lpp_GNSS_GenericAssistData, GNSS_GenericAssistData_sequence_of,
5425                                                   1, 16, FALSE);
5426
5427   return offset;
5428 }
5429
5430
5431 static const value_string lpp_T_cause_02_vals[] = {
5432   {   0, "undefined" },
5433   {   1, "undeliveredAssistanceDataIsNotSupportedByServer" },
5434   {   2, "undeliveredAssistanceDataIsSupportedButCurrentlyNotAvailableByServer" },
5435   {   3, "undeliveredAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailableByServer" },
5436   { 0, NULL }
5437 };
5438
5439
5440 static int
5441 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_) {
5442   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5443                                      4, NULL, TRUE, 0, NULL);
5444
5445   return offset;
5446 }
5447
5448
5449 static const per_sequence_t GNSS_LocationServerErrorCauses_sequence[] = {
5450   { &hf_lpp_cause_02        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_02 },
5451   { NULL, 0, 0, NULL }
5452 };
5453
5454 static int
5455 dissect_lpp_GNSS_LocationServerErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5456   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5457                                    ett_lpp_GNSS_LocationServerErrorCauses, GNSS_LocationServerErrorCauses_sequence);
5458
5459   return offset;
5460 }
5461
5462
5463 static const value_string lpp_T_cause_03_vals[] = {
5464   {   0, "undefined" },
5465   {   1, "thereWereNotEnoughSatellitesReceived" },
5466   {   2, "assistanceDataMissing" },
5467   {   3, "notAllRequestedMeasurementsPossible" },
5468   { 0, NULL }
5469 };
5470
5471
5472 static int
5473 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_) {
5474   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5475                                      4, NULL, TRUE, 0, NULL);
5476
5477   return offset;
5478 }
5479
5480
5481 static const per_sequence_t GNSS_TargetDeviceErrorCauses_sequence[] = {
5482   { &hf_lpp_cause_03        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_03 },
5483   { &hf_lpp_fineTimeAssistanceMeasurementsNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
5484   { &hf_lpp_adrMeasurementsNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
5485   { &hf_lpp_multiFrequencyMeasurementsNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
5486   { NULL, 0, 0, NULL }
5487 };
5488
5489 static int
5490 dissect_lpp_GNSS_TargetDeviceErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5491   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5492                                    ett_lpp_GNSS_TargetDeviceErrorCauses, GNSS_TargetDeviceErrorCauses_sequence);
5493
5494   return offset;
5495 }
5496
5497
5498 static const value_string lpp_A_GNSS_Error_vals[] = {
5499   {   0, "locationServerErrorCauses" },
5500   {   1, "targetDeviceErrorCauses" },
5501   { 0, NULL }
5502 };
5503
5504 static const per_choice_t A_GNSS_Error_choice[] = {
5505   {   0, &hf_lpp_locationServerErrorCauses_01, ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_LocationServerErrorCauses },
5506   {   1, &hf_lpp_targetDeviceErrorCauses_01, ASN1_EXTENSION_ROOT    , dissect_lpp_GNSS_TargetDeviceErrorCauses },
5507   { 0, NULL, 0, NULL }
5508 };
5509
5510 static int
5511 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_) {
5512   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5513                                  ett_lpp_A_GNSS_Error, A_GNSS_Error_choice,
5514                                  NULL);
5515
5516   return offset;
5517 }
5518
5519
5520 static const per_sequence_t A_GNSS_ProvideAssistanceData_sequence[] = {
5521   { &hf_lpp_gnss_CommonAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_CommonAssistData },
5522   { &hf_lpp_gnss_GenericAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_GenericAssistData },
5523   { &hf_lpp_gnss_Error      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_Error },
5524   { NULL, 0, 0, NULL }
5525 };
5526
5527 static int
5528 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_) {
5529   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5530                                    ett_lpp_A_GNSS_ProvideAssistanceData, A_GNSS_ProvideAssistanceData_sequence);
5531
5532   return offset;
5533 }
5534
5535
5536 static const value_string lpp_T_antennaPortConfig_vals[] = {
5537   {   0, "ports1-or-2" },
5538   {   1, "ports4" },
5539   { 0, NULL }
5540 };
5541
5542
5543 static int
5544 dissect_lpp_T_antennaPortConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5545   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5546                                      2, NULL, TRUE, 0, NULL);
5547
5548   return offset;
5549 }
5550
5551
5552 static const value_string lpp_T_cpLength_vals[] = {
5553   {   0, "normal" },
5554   {   1, "extended" },
5555   { 0, NULL }
5556 };
5557
5558
5559 static int
5560 dissect_lpp_T_cpLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5561   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5562                                      2, NULL, TRUE, 0, NULL);
5563
5564   return offset;
5565 }
5566
5567
5568 static const value_string lpp_T_prs_Bandwidth_vals[] = {
5569   {   0, "n6" },
5570   {   1, "n15" },
5571   {   2, "n25" },
5572   {   3, "n50" },
5573   {   4, "n75" },
5574   {   5, "n100" },
5575   { 0, NULL }
5576 };
5577
5578
5579 static int
5580 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_) {
5581   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5582                                      6, NULL, TRUE, 0, NULL);
5583
5584   return offset;
5585 }
5586
5587
5588 static const value_string lpp_T_numDL_Frames_vals[] = {
5589   {   0, "sf-1" },
5590   {   1, "sf-2" },
5591   {   2, "sf-4" },
5592   {   3, "sf-6" },
5593   { 0, NULL }
5594 };
5595
5596
5597 static int
5598 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_) {
5599   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5600                                      4, NULL, TRUE, 0, NULL);
5601
5602   return offset;
5603 }
5604
5605
5606 static const value_string lpp_T_prs_MutingInfo_r9_vals[] = {
5607   {   0, "po2-r9" },
5608   {   1, "po4-r9" },
5609   {   2, "po8-r9" },
5610   {   3, "po16-r9" },
5611   { 0, NULL }
5612 };
5613
5614 static const per_choice_t T_prs_MutingInfo_r9_choice[] = {
5615   {   0, &hf_lpp_po2_r9          , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_2 },
5616   {   1, &hf_lpp_po4_r9          , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_4 },
5617   {   2, &hf_lpp_po8_r9          , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_8 },
5618   {   3, &hf_lpp_po16_r9         , ASN1_EXTENSION_ROOT    , dissect_lpp_BIT_STRING_SIZE_16 },
5619   { 0, NULL, 0, NULL }
5620 };
5621
5622 static int
5623 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_) {
5624   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5625                                  ett_lpp_T_prs_MutingInfo_r9, T_prs_MutingInfo_r9_choice,
5626                                  NULL);
5627
5628   return offset;
5629 }
5630
5631
5632 static const per_sequence_t PRS_Info_sequence[] = {
5633   { &hf_lpp_prs_Bandwidth   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_prs_Bandwidth },
5634   { &hf_lpp_prs_ConfigurationIndex, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
5635   { &hf_lpp_numDL_Frames    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_numDL_Frames },
5636   { &hf_lpp_prs_MutingInfo_r9, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_T_prs_MutingInfo_r9 },
5637   { NULL, 0, 0, NULL }
5638 };
5639
5640 static int
5641 dissect_lpp_PRS_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5642   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5643                                    ett_lpp_PRS_Info, PRS_Info_sequence);
5644
5645   return offset;
5646 }
5647
5648
5649 static const per_sequence_t OTDOA_ReferenceCellInfo_sequence[] = {
5650   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
5651   { &hf_lpp_cellGlobalId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
5652   { &hf_lpp_earfcnRef       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
5653   { &hf_lpp_antennaPortConfig, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_antennaPortConfig },
5654   { &hf_lpp_cpLength        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cpLength },
5655   { &hf_lpp_prsInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info },
5656   { NULL, 0, 0, NULL }
5657 };
5658
5659 static int
5660 dissect_lpp_OTDOA_ReferenceCellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5661   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5662                                    ett_lpp_OTDOA_ReferenceCellInfo, OTDOA_ReferenceCellInfo_sequence);
5663
5664   return offset;
5665 }
5666
5667
5668 static const value_string lpp_T_cpLength_01_vals[] = {
5669   {   0, "normal" },
5670   {   1, "extended" },
5671   { 0, NULL }
5672 };
5673
5674
5675 static int
5676 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_) {
5677   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5678                                      2, NULL, TRUE, 0, NULL);
5679
5680   return offset;
5681 }
5682
5683
5684 static const value_string lpp_T_antennaPortConfig_01_vals[] = {
5685   {   0, "ports-1-or-2" },
5686   {   1, "ports-4" },
5687   { 0, NULL }
5688 };
5689
5690
5691 static int
5692 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_) {
5693   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5694                                      2, NULL, TRUE, 0, NULL);
5695
5696   return offset;
5697 }
5698
5699
5700
5701 static int
5702 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_) {
5703   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5704                                                             0U, 19U, NULL, FALSE);
5705
5706   return offset;
5707 }
5708
5709
5710
5711 static int
5712 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_) {
5713   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5714                                                             0U, 1279U, NULL, FALSE);
5715
5716   return offset;
5717 }
5718
5719
5720 static const per_sequence_t OTDOA_NeighbourCellInfoElement_sequence[] = {
5721   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
5722   { &hf_lpp_cellGlobalId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
5723   { &hf_lpp_earfcn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
5724   { &hf_lpp_cpLength_01     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_cpLength_01 },
5725   { &hf_lpp_prsInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PRS_Info },
5726   { &hf_lpp_antennaPortConfig_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_antennaPortConfig_01 },
5727   { &hf_lpp_slotNumberOffset, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_19 },
5728   { &hf_lpp_prs_SubframeOffset, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_1279 },
5729   { &hf_lpp_expectedRSTD    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_16383 },
5730   { &hf_lpp_expectedRSTD_Uncertainty, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
5731   { NULL, 0, 0, NULL }
5732 };
5733
5734 static int
5735 dissect_lpp_OTDOA_NeighbourCellInfoElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5737                                    ett_lpp_OTDOA_NeighbourCellInfoElement, OTDOA_NeighbourCellInfoElement_sequence);
5738
5739   return offset;
5740 }
5741
5742
5743 static const per_sequence_t OTDOA_NeighbourFreqInfo_sequence_of[1] = {
5744   { &hf_lpp_OTDOA_NeighbourFreqInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement },
5745 };
5746
5747 static int
5748 dissect_lpp_OTDOA_NeighbourFreqInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5749   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5750                                                   ett_lpp_OTDOA_NeighbourFreqInfo, OTDOA_NeighbourFreqInfo_sequence_of,
5751                                                   1, 24, FALSE);
5752
5753   return offset;
5754 }
5755
5756
5757 static const per_sequence_t OTDOA_NeighbourCellInfoList_sequence_of[1] = {
5758   { &hf_lpp_OTDOA_NeighbourCellInfoList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourFreqInfo },
5759 };
5760
5761 static int
5762 dissect_lpp_OTDOA_NeighbourCellInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5763   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5764                                                   ett_lpp_OTDOA_NeighbourCellInfoList, OTDOA_NeighbourCellInfoList_sequence_of,
5765                                                   1, maxFreqLayers, FALSE);
5766
5767   return offset;
5768 }
5769
5770
5771 static const value_string lpp_T_cause_vals[] = {
5772   {   0, "undefined" },
5773   {   1, "assistanceDataNotSupportedByServer" },
5774   {   2, "assistanceDataSupportedButCurrentlyNotAvailableByServer" },
5775   { 0, NULL }
5776 };
5777
5778
5779 static int
5780 dissect_lpp_T_cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5781   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5782                                      3, NULL, TRUE, 0, NULL);
5783
5784   return offset;
5785 }
5786
5787
5788 static const per_sequence_t OTDOA_LocationServerErrorCauses_sequence[] = {
5789   { &hf_lpp_cause           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause },
5790   { NULL, 0, 0, NULL }
5791 };
5792
5793 static int
5794 dissect_lpp_OTDOA_LocationServerErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5795   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5796                                    ett_lpp_OTDOA_LocationServerErrorCauses, OTDOA_LocationServerErrorCauses_sequence);
5797
5798   return offset;
5799 }
5800
5801
5802 static const value_string lpp_T_cause_01_vals[] = {
5803   {   0, "undefined" },
5804   {   1, "assistance-data-missing" },
5805   {   2, "unableToMeasureReferenceCell" },
5806   {   3, "unableToMeasureAnyNeighbourCell" },
5807   {   4, "attemptedButUnableToMeasureSomeNeighbourCells" },
5808   { 0, NULL }
5809 };
5810
5811
5812 static int
5813 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_) {
5814   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5815                                      5, NULL, TRUE, 0, NULL);
5816
5817   return offset;
5818 }
5819
5820
5821 static const per_sequence_t OTDOA_TargetDeviceErrorCauses_sequence[] = {
5822   { &hf_lpp_cause_01        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_01 },
5823   { NULL, 0, 0, NULL }
5824 };
5825
5826 static int
5827 dissect_lpp_OTDOA_TargetDeviceErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5828   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5829                                    ett_lpp_OTDOA_TargetDeviceErrorCauses, OTDOA_TargetDeviceErrorCauses_sequence);
5830
5831   return offset;
5832 }
5833
5834
5835 static const value_string lpp_OTDOA_Error_vals[] = {
5836   {   0, "locationServerErrorCauses" },
5837   {   1, "targetDeviceErrorCauses" },
5838   { 0, NULL }
5839 };
5840
5841 static const per_choice_t OTDOA_Error_choice[] = {
5842   {   0, &hf_lpp_locationServerErrorCauses, ASN1_EXTENSION_ROOT    , dissect_lpp_OTDOA_LocationServerErrorCauses },
5843   {   1, &hf_lpp_targetDeviceErrorCauses, ASN1_EXTENSION_ROOT    , dissect_lpp_OTDOA_TargetDeviceErrorCauses },
5844   { 0, NULL, 0, NULL }
5845 };
5846
5847 static int
5848 dissect_lpp_OTDOA_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5849   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5850                                  ett_lpp_OTDOA_Error, OTDOA_Error_choice,
5851                                  NULL);
5852
5853   return offset;
5854 }
5855
5856
5857 static const per_sequence_t OTDOA_ProvideAssistanceData_sequence[] = {
5858   { &hf_lpp_otdoa_ReferenceCellInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ReferenceCellInfo },
5859   { &hf_lpp_otdoa_NeighbourCellInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_NeighbourCellInfoList },
5860   { &hf_lpp_otdoa_Error     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_Error },
5861   { NULL, 0, 0, NULL }
5862 };
5863
5864 static int
5865 dissect_lpp_OTDOA_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5866   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5867                                    ett_lpp_OTDOA_ProvideAssistanceData, OTDOA_ProvideAssistanceData_sequence);
5868
5869   return offset;
5870 }
5871
5872
5873 static const per_sequence_t ProvideAssistanceData_r9_IEs_sequence[] = {
5874   { &hf_lpp_commonIEsProvideAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsProvideAssistanceData },
5875   { &hf_lpp_a_gnss_ProvideAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_ProvideAssistanceData },
5876   { &hf_lpp_otdoa_ProvideAssistanceData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ProvideAssistanceData },
5877   { &hf_lpp_epdu_Provide_Assistance_Data, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
5878   { NULL, 0, 0, NULL }
5879 };
5880
5881 static int
5882 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_) {
5883   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5884                                    ett_lpp_ProvideAssistanceData_r9_IEs, ProvideAssistanceData_r9_IEs_sequence);
5885
5886   return offset;
5887 }
5888
5889
5890 static const value_string lpp_T_c1_04_vals[] = {
5891   {   0, "provideAssistanceData-r9" },
5892   {   1, "spare3" },
5893   {   2, "spare2" },
5894   {   3, "spare1" },
5895   { 0, NULL }
5896 };
5897
5898 static const per_choice_t T_c1_04_choice[] = {
5899   {   0, &hf_lpp_provideAssistanceData_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideAssistanceData_r9_IEs },
5900   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
5901   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
5902   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
5903   { 0, NULL, 0, NULL }
5904 };
5905
5906 static int
5907 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_) {
5908   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5909                                  ett_lpp_T_c1_04, T_c1_04_choice,
5910                                  NULL);
5911
5912   return offset;
5913 }
5914
5915
5916 static const per_sequence_t T_criticalExtensionsFuture_03_sequence[] = {
5917   { NULL, 0, 0, NULL }
5918 };
5919
5920 static int
5921 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_) {
5922   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5923                                    ett_lpp_T_criticalExtensionsFuture_03, T_criticalExtensionsFuture_03_sequence);
5924
5925   return offset;
5926 }
5927
5928
5929 static const value_string lpp_T_criticalExtensions_03_vals[] = {
5930   {   0, "c1" },
5931   {   1, "criticalExtensionsFuture" },
5932   { 0, NULL }
5933 };
5934
5935 static const per_choice_t T_criticalExtensions_03_choice[] = {
5936   {   0, &hf_lpp_c1_04           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_04 },
5937   {   1, &hf_lpp_criticalExtensionsFuture_03, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_03 },
5938   { 0, NULL, 0, NULL }
5939 };
5940
5941 static int
5942 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_) {
5943   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5944                                  ett_lpp_T_criticalExtensions_03, T_criticalExtensions_03_choice,
5945                                  NULL);
5946
5947   return offset;
5948 }
5949
5950
5951 static const per_sequence_t ProvideAssistanceData_sequence[] = {
5952   { &hf_lpp_criticalExtensions_03, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_03 },
5953   { NULL, 0, 0, NULL }
5954 };
5955
5956 static int
5957 dissect_lpp_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5958 #line 41 "../../asn1/lpp/lpp.cnf"
5959
5960   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data");
5961
5962
5963   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5964                                    ett_lpp_ProvideAssistanceData, ProvideAssistanceData_sequence);
5965
5966   return offset;
5967 }
5968
5969
5970 static const value_string lpp_LocationInformationType_vals[] = {
5971   {   0, "locationEstimateRequired" },
5972   {   1, "locationMeasurementsRequired" },
5973   {   2, "locationEstimatePreferred" },
5974   {   3, "locationMeasurementsPreferred" },
5975   { 0, NULL }
5976 };
5977
5978
5979 static int
5980 dissect_lpp_LocationInformationType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5981   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5982                                      4, NULL, TRUE, 0, NULL);
5983
5984   return offset;
5985 }
5986
5987
5988
5989 static int
5990 dissect_lpp_ReportingDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5991   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5992                                                             0U, 255U, NULL, FALSE);
5993
5994   return offset;
5995 }
5996
5997
5998 static const per_sequence_t TriggeredReportingCriteria_sequence[] = {
5999   { &hf_lpp_cellChange      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6000   { &hf_lpp_reportingDuration, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ReportingDuration },
6001   { NULL, 0, 0, NULL }
6002 };
6003
6004 static int
6005 dissect_lpp_TriggeredReportingCriteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6006   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6007                                    ett_lpp_TriggeredReportingCriteria, TriggeredReportingCriteria_sequence);
6008
6009   return offset;
6010 }
6011
6012
6013 static const value_string lpp_T_reportingAmount_vals[] = {
6014   {   0, "ra1" },
6015   {   1, "ra2" },
6016   {   2, "ra4" },
6017   {   3, "ra8" },
6018   {   4, "ra16" },
6019   {   5, "ra32" },
6020   {   6, "ra64" },
6021   {   7, "ra-Infinity" },
6022   { 0, NULL }
6023 };
6024
6025
6026 static int
6027 dissect_lpp_T_reportingAmount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6028   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6029                                      8, NULL, FALSE, 0, NULL);
6030
6031   return offset;
6032 }
6033
6034
6035 static const value_string lpp_T_reportingInterval_vals[] = {
6036   {   0, "noPeriodicalReporting" },
6037   {   1, "ri0-25" },
6038   {   2, "ri0-5" },
6039   {   3, "ri1" },
6040   {   4, "ri2" },
6041   {   5, "ri4" },
6042   {   6, "ri8" },
6043   {   7, "ri16" },
6044   {   8, "ri32" },
6045   {   9, "ri64" },
6046   { 0, NULL }
6047 };
6048
6049
6050 static int
6051 dissect_lpp_T_reportingInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6052   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6053                                      10, NULL, FALSE, 0, NULL);
6054
6055   return offset;
6056 }
6057
6058
6059 static const per_sequence_t PeriodicalReportingCriteria_sequence[] = {
6060   { &hf_lpp_reportingAmount , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_T_reportingAmount },
6061   { &hf_lpp_reportingInterval, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_reportingInterval },
6062   { NULL, 0, 0, NULL }
6063 };
6064
6065 static int
6066 dissect_lpp_PeriodicalReportingCriteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6067   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6068                                    ett_lpp_PeriodicalReportingCriteria, PeriodicalReportingCriteria_sequence);
6069
6070   return offset;
6071 }
6072
6073
6074 static const value_string lpp_AdditionalInformation_vals[] = {
6075   {   0, "onlyReturnInformationRequested" },
6076   {   1, "mayReturnAditionalInformation" },
6077   { 0, NULL }
6078 };
6079
6080
6081 static int
6082 dissect_lpp_AdditionalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6083   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6084                                      2, NULL, TRUE, 0, NULL);
6085
6086   return offset;
6087 }
6088
6089
6090 static const per_sequence_t HorizontalAccuracy_sequence[] = {
6091   { &hf_lpp_accuracy        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6092   { &hf_lpp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
6093   { NULL, 0, 0, NULL }
6094 };
6095
6096 static int
6097 dissect_lpp_HorizontalAccuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6098   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6099                                    ett_lpp_HorizontalAccuracy, HorizontalAccuracy_sequence);
6100
6101   return offset;
6102 }
6103
6104
6105 static const per_sequence_t VerticalAccuracy_sequence[] = {
6106   { &hf_lpp_accuracy        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6107   { &hf_lpp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
6108   { NULL, 0, 0, NULL }
6109 };
6110
6111 static int
6112 dissect_lpp_VerticalAccuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6113   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6114                                    ett_lpp_VerticalAccuracy, VerticalAccuracy_sequence);
6115
6116   return offset;
6117 }
6118
6119
6120
6121 static int
6122 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_) {
6123   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6124                                                             1U, 128U, NULL, FALSE);
6125
6126   return offset;
6127 }
6128
6129
6130 static const per_sequence_t ResponseTime_sequence[] = {
6131   { &hf_lpp_time            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_128 },
6132   { NULL, 0, 0, NULL }
6133 };
6134
6135 static int
6136 dissect_lpp_ResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6137   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6138                                    ett_lpp_ResponseTime, ResponseTime_sequence);
6139
6140   return offset;
6141 }
6142
6143
6144 static const per_sequence_t QoS_sequence[] = {
6145   { &hf_lpp_horizontalAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_HorizontalAccuracy },
6146   { &hf_lpp_verticalCoordinateRequest, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6147   { &hf_lpp_verticalAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VerticalAccuracy },
6148   { &hf_lpp_responseTime    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ResponseTime },
6149   { &hf_lpp_velocityRequest , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6150   { NULL, 0, 0, NULL }
6151 };
6152
6153 static int
6154 dissect_lpp_QoS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6155   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6156                                    ett_lpp_QoS, QoS_sequence);
6157
6158   return offset;
6159 }
6160
6161
6162 static const value_string lpp_Environment_vals[] = {
6163   {   0, "badArea" },
6164   {   1, "notBadArea" },
6165   {   2, "mixedArea" },
6166   { 0, NULL }
6167 };
6168
6169
6170 static int
6171 dissect_lpp_Environment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6172   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6173                                      3, NULL, TRUE, 0, NULL);
6174
6175   return offset;
6176 }
6177
6178
6179 static const per_sequence_t CommonIEsRequestLocationInformation_sequence[] = {
6180   { &hf_lpp_locationInformationType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_LocationInformationType },
6181   { &hf_lpp_triggeredReporting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_TriggeredReportingCriteria },
6182   { &hf_lpp_periodicalReporting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_PeriodicalReportingCriteria },
6183   { &hf_lpp_additionalInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_AdditionalInformation },
6184   { &hf_lpp_qos             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_QoS },
6185   { &hf_lpp_environment     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Environment },
6186   { &hf_lpp_locationCoordinateTypes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationCoordinateTypes },
6187   { &hf_lpp_velocityTypes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_VelocityTypes },
6188   { NULL, 0, 0, NULL }
6189 };
6190
6191 static int
6192 dissect_lpp_CommonIEsRequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6193   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6194                                    ett_lpp_CommonIEsRequestLocationInformation, CommonIEsRequestLocationInformation_sequence);
6195
6196   return offset;
6197 }
6198
6199
6200 static const per_sequence_t GNSS_PositioningInstructions_sequence[] = {
6201   { &hf_lpp_gnss_Methods    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_Bitmap },
6202   { &hf_lpp_fineTimeAssistanceMeasReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6203   { &hf_lpp_adrMeasReq      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6204   { &hf_lpp_multiFreqMeasReq, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6205   { &hf_lpp_assistanceAvailability, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6206   { NULL, 0, 0, NULL }
6207 };
6208
6209 static int
6210 dissect_lpp_GNSS_PositioningInstructions(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_PositioningInstructions, GNSS_PositioningInstructions_sequence);
6213
6214   return offset;
6215 }
6216
6217
6218 static const per_sequence_t A_GNSS_RequestLocationInformation_sequence[] = {
6219   { &hf_lpp_gnss_PositioningInstructions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_PositioningInstructions },
6220   { NULL, 0, 0, NULL }
6221 };
6222
6223 static int
6224 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_) {
6225   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6226                                    ett_lpp_A_GNSS_RequestLocationInformation, A_GNSS_RequestLocationInformation_sequence);
6227
6228   return offset;
6229 }
6230
6231
6232 static const per_sequence_t OTDOA_RequestLocationInformation_sequence[] = {
6233   { &hf_lpp_assistanceAvailability, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
6234   { NULL, 0, 0, NULL }
6235 };
6236
6237 static int
6238 dissect_lpp_OTDOA_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6239   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6240                                    ett_lpp_OTDOA_RequestLocationInformation, OTDOA_RequestLocationInformation_sequence);
6241
6242   return offset;
6243 }
6244
6245
6246
6247 static int
6248 dissect_lpp_T_requestedMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6249   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6250                                      1, 8, FALSE, NULL);
6251
6252   return offset;
6253 }
6254
6255
6256 static const per_sequence_t ECID_RequestLocationInformation_sequence[] = {
6257   { &hf_lpp_requestedMeasurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_requestedMeasurements },
6258   { NULL, 0, 0, NULL }
6259 };
6260
6261 static int
6262 dissect_lpp_ECID_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6263   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6264                                    ett_lpp_ECID_RequestLocationInformation, ECID_RequestLocationInformation_sequence);
6265
6266   return offset;
6267 }
6268
6269
6270 static const per_sequence_t RequestLocationInformation_r9_IEs_sequence[] = {
6271   { &hf_lpp_commonIEsRequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsRequestLocationInformation },
6272   { &hf_lpp_a_gnss_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_RequestLocationInformation },
6273   { &hf_lpp_otdoa_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_RequestLocationInformation },
6274   { &hf_lpp_ecid_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_RequestLocationInformation },
6275   { &hf_lpp_epdu_RequestLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
6276   { NULL, 0, 0, NULL }
6277 };
6278
6279 static int
6280 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_) {
6281   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6282                                    ett_lpp_RequestLocationInformation_r9_IEs, RequestLocationInformation_r9_IEs_sequence);
6283
6284   return offset;
6285 }
6286
6287
6288 static const value_string lpp_T_c1_05_vals[] = {
6289   {   0, "requestLocationInformation-r9" },
6290   {   1, "spare3" },
6291   {   2, "spare2" },
6292   {   3, "spare1" },
6293   { 0, NULL }
6294 };
6295
6296 static const per_choice_t T_c1_05_choice[] = {
6297   {   0, &hf_lpp_requestLocationInformation_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestLocationInformation_r9_IEs },
6298   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
6299   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
6300   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
6301   { 0, NULL, 0, NULL }
6302 };
6303
6304 static int
6305 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_) {
6306   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6307                                  ett_lpp_T_c1_05, T_c1_05_choice,
6308                                  NULL);
6309
6310   return offset;
6311 }
6312
6313
6314 static const per_sequence_t T_criticalExtensionsFuture_04_sequence[] = {
6315   { NULL, 0, 0, NULL }
6316 };
6317
6318 static int
6319 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_) {
6320   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6321                                    ett_lpp_T_criticalExtensionsFuture_04, T_criticalExtensionsFuture_04_sequence);
6322
6323   return offset;
6324 }
6325
6326
6327 static const value_string lpp_T_criticalExtensions_04_vals[] = {
6328   {   0, "c1" },
6329   {   1, "criticalExtensionsFuture" },
6330   { 0, NULL }
6331 };
6332
6333 static const per_choice_t T_criticalExtensions_04_choice[] = {
6334   {   0, &hf_lpp_c1_05           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_05 },
6335   {   1, &hf_lpp_criticalExtensionsFuture_04, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_04 },
6336   { 0, NULL, 0, NULL }
6337 };
6338
6339 static int
6340 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_) {
6341   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6342                                  ett_lpp_T_criticalExtensions_04, T_criticalExtensions_04_choice,
6343                                  NULL);
6344
6345   return offset;
6346 }
6347
6348
6349 static const per_sequence_t RequestLocationInformation_sequence[] = {
6350   { &hf_lpp_criticalExtensions_04, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_04 },
6351   { NULL, 0, 0, NULL }
6352 };
6353
6354 static int
6355 dissect_lpp_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6356 #line 45 "../../asn1/lpp/lpp.cnf"
6357
6358   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information");
6359
6360
6361   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6362                                    ett_lpp_RequestLocationInformation, RequestLocationInformation_sequence);
6363
6364   return offset;
6365 }
6366
6367
6368 static const value_string lpp_T_latitudeSign_vals[] = {
6369   {   0, "north" },
6370   {   1, "south" },
6371   { 0, NULL }
6372 };
6373
6374
6375 static int
6376 dissect_lpp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6377   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6378                                      2, NULL, FALSE, 0, NULL);
6379
6380   return offset;
6381 }
6382
6383
6384 static const per_sequence_t Ellipsoid_Point_sequence[] = {
6385   { &hf_lpp_latitudeSign    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign },
6386   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
6387   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
6388   { NULL, 0, 0, NULL }
6389 };
6390
6391 static int
6392 dissect_lpp_Ellipsoid_Point(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6393   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6394                                    ett_lpp_Ellipsoid_Point, Ellipsoid_Point_sequence);
6395
6396   return offset;
6397 }
6398
6399
6400 static const value_string lpp_T_latitudeSign_01_vals[] = {
6401   {   0, "north" },
6402   {   1, "south" },
6403   { 0, NULL }
6404 };
6405
6406
6407 static int
6408 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_) {
6409   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6410                                      2, NULL, FALSE, 0, NULL);
6411
6412   return offset;
6413 }
6414
6415
6416 static const per_sequence_t Ellipsoid_PointWithUncertaintyCircle_sequence[] = {
6417   { &hf_lpp_latitudeSign_01 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_01 },
6418   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
6419   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
6420   { &hf_lpp_uncertainty     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6421   { NULL, 0, 0, NULL }
6422 };
6423
6424 static int
6425 dissect_lpp_Ellipsoid_PointWithUncertaintyCircle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6426   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6427                                    ett_lpp_Ellipsoid_PointWithUncertaintyCircle, Ellipsoid_PointWithUncertaintyCircle_sequence);
6428
6429   return offset;
6430 }
6431
6432
6433 static const value_string lpp_T_latitudeSign_02_vals[] = {
6434   {   0, "north" },
6435   {   1, "south" },
6436   { 0, NULL }
6437 };
6438
6439
6440 static int
6441 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_) {
6442   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6443                                      2, NULL, FALSE, 0, NULL);
6444
6445   return offset;
6446 }
6447
6448
6449 static const per_sequence_t EllipsoidPointWithUncertaintyEllipse_sequence[] = {
6450   { &hf_lpp_latitudeSign_02 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_02 },
6451   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
6452   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
6453   { &hf_lpp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6454   { &hf_lpp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6455   { &hf_lpp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
6456   { &hf_lpp_confidence      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
6457   { NULL, 0, 0, NULL }
6458 };
6459
6460 static int
6461 dissect_lpp_EllipsoidPointWithUncertaintyEllipse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6462   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6463                                    ett_lpp_EllipsoidPointWithUncertaintyEllipse, EllipsoidPointWithUncertaintyEllipse_sequence);
6464
6465   return offset;
6466 }
6467
6468
6469 static const value_string lpp_T_latitudeSign_06_vals[] = {
6470   {   0, "north" },
6471   {   1, "south" },
6472   { 0, NULL }
6473 };
6474
6475
6476 static int
6477 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_) {
6478   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6479                                      2, NULL, FALSE, 0, NULL);
6480
6481   return offset;
6482 }
6483
6484
6485 static const per_sequence_t PolygonPoints_sequence[] = {
6486   { &hf_lpp_latitudeSign_06 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_06 },
6487   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
6488   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
6489   { NULL, 0, 0, NULL }
6490 };
6491
6492 static int
6493 dissect_lpp_PolygonPoints(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6494   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6495                                    ett_lpp_PolygonPoints, PolygonPoints_sequence);
6496
6497   return offset;
6498 }
6499
6500
6501 static const per_sequence_t Polygon_sequence_of[1] = {
6502   { &hf_lpp_Polygon_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_PolygonPoints },
6503 };
6504
6505 static int
6506 dissect_lpp_Polygon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6507   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6508                                                   ett_lpp_Polygon, Polygon_sequence_of,
6509                                                   3, 15, FALSE);
6510
6511   return offset;
6512 }
6513
6514
6515 static const value_string lpp_T_latitudeSign_03_vals[] = {
6516   {   0, "north" },
6517   {   1, "south" },
6518   { 0, NULL }
6519 };
6520
6521
6522 static int
6523 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_) {
6524   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6525                                      2, NULL, FALSE, 0, NULL);
6526
6527   return offset;
6528 }
6529
6530
6531 static const value_string lpp_T_altitudeDirection_vals[] = {
6532   {   0, "height" },
6533   {   1, "depth" },
6534   { 0, NULL }
6535 };
6536
6537
6538 static int
6539 dissect_lpp_T_altitudeDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6540   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6541                                      2, NULL, FALSE, 0, NULL);
6542
6543   return offset;
6544 }
6545
6546
6547 static const per_sequence_t EllipsoidPointWithAltitude_sequence[] = {
6548   { &hf_lpp_latitudeSign_03 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_03 },
6549   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
6550   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
6551   { &hf_lpp_altitudeDirection, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_altitudeDirection },
6552   { &hf_lpp_altitude        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_32767 },
6553   { NULL, 0, 0, NULL }
6554 };
6555
6556 static int
6557 dissect_lpp_EllipsoidPointWithAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6558   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6559                                    ett_lpp_EllipsoidPointWithAltitude, EllipsoidPointWithAltitude_sequence);
6560
6561   return offset;
6562 }
6563
6564
6565 static const value_string lpp_T_latitudeSign_05_vals[] = {
6566   {   0, "north" },
6567   {   1, "south" },
6568   { 0, NULL }
6569 };
6570
6571
6572 static int
6573 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_) {
6574   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6575                                      2, NULL, FALSE, 0, NULL);
6576
6577   return offset;
6578 }
6579
6580
6581 static const per_sequence_t EllipsoidArc_sequence[] = {
6582   { &hf_lpp_latitudeSign_05 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign_05 },
6583   { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
6584   { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
6585   { &hf_lpp_innerRadius     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
6586   { &hf_lpp_uncertaintyRadius, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6587   { &hf_lpp_offsetAngle     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
6588   { &hf_lpp_includedAngle   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_179 },
6589   { &hf_lpp_confidence      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_100 },
6590   { NULL, 0, 0, NULL }
6591 };
6592
6593 static int
6594 dissect_lpp_EllipsoidArc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6595   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6596                                    ett_lpp_EllipsoidArc, EllipsoidArc_sequence);
6597
6598   return offset;
6599 }
6600
6601
6602 static const value_string lpp_LocationCoordinates_vals[] = {
6603   {   0, "ellipsoidPoint" },
6604   {   1, "ellipsoidPointWithUncertaintyCircle" },
6605   {   2, "ellipsoidPointWithUncertaintyEllipse" },
6606   {   3, "polygon" },
6607   {   4, "ellipsoidPointWithAltitude" },
6608   {   5, "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid" },
6609   {   6, "ellipsoidArc" },
6610   { 0, NULL }
6611 };
6612
6613 static const per_choice_t LocationCoordinates_choice[] = {
6614   {   0, &hf_lpp_ellipsoidPoint_01, ASN1_EXTENSION_ROOT    , dissect_lpp_Ellipsoid_Point },
6615   {   1, &hf_lpp_ellipsoidPointWithUncertaintyCircle_01, ASN1_EXTENSION_ROOT    , dissect_lpp_Ellipsoid_PointWithUncertaintyCircle },
6616   {   2, &hf_lpp_ellipsoidPointWithUncertaintyEllipse_01, ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithUncertaintyEllipse },
6617   {   3, &hf_lpp_polygon_01      , ASN1_EXTENSION_ROOT    , dissect_lpp_Polygon },
6618   {   4, &hf_lpp_ellipsoidPointWithAltitude_01, ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithAltitude },
6619   {   5, &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_01, ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
6620   {   6, &hf_lpp_ellipsoidArc_01 , ASN1_EXTENSION_ROOT    , dissect_lpp_EllipsoidArc },
6621   { 0, NULL, 0, NULL }
6622 };
6623
6624 static int
6625 dissect_lpp_LocationCoordinates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6626   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6627                                  ett_lpp_LocationCoordinates, LocationCoordinates_choice,
6628                                  NULL);
6629
6630   return offset;
6631 }
6632
6633
6634
6635 static int
6636 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_) {
6637   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6638                                                             0U, 359U, NULL, FALSE);
6639
6640   return offset;
6641 }
6642
6643
6644 static const per_sequence_t HorizontalVelocity_sequence[] = {
6645   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
6646   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
6647   { NULL, 0, 0, NULL }
6648 };
6649
6650 static int
6651 dissect_lpp_HorizontalVelocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6652   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6653                                    ett_lpp_HorizontalVelocity, HorizontalVelocity_sequence);
6654
6655   return offset;
6656 }
6657
6658
6659 static const value_string lpp_T_verticalDirection_vals[] = {
6660   {   0, "upward" },
6661   {   1, "downward" },
6662   { 0, NULL }
6663 };
6664
6665
6666 static int
6667 dissect_lpp_T_verticalDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6668   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6669                                      2, NULL, FALSE, 0, NULL);
6670
6671   return offset;
6672 }
6673
6674
6675 static const per_sequence_t HorizontalWithVerticalVelocity_sequence[] = {
6676   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
6677   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
6678   { &hf_lpp_verticalDirection, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_verticalDirection },
6679   { &hf_lpp_verticalSpeed   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
6680   { NULL, 0, 0, NULL }
6681 };
6682
6683 static int
6684 dissect_lpp_HorizontalWithVerticalVelocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6685   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6686                                    ett_lpp_HorizontalWithVerticalVelocity, HorizontalWithVerticalVelocity_sequence);
6687
6688   return offset;
6689 }
6690
6691
6692 static const per_sequence_t HorizontalVelocityWithUncertainty_sequence[] = {
6693   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
6694   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
6695   { &hf_lpp_uncertaintySpeed, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
6696   { NULL, 0, 0, NULL }
6697 };
6698
6699 static int
6700 dissect_lpp_HorizontalVelocityWithUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6701   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6702                                    ett_lpp_HorizontalVelocityWithUncertainty, HorizontalVelocityWithUncertainty_sequence);
6703
6704   return offset;
6705 }
6706
6707
6708 static const value_string lpp_T_verticalDirection_01_vals[] = {
6709   {   0, "upward" },
6710   {   1, "downward" },
6711   { 0, NULL }
6712 };
6713
6714
6715 static int
6716 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_) {
6717   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6718                                      2, NULL, FALSE, 0, NULL);
6719
6720   return offset;
6721 }
6722
6723
6724 static const per_sequence_t HorizontalWithVerticalVelocityAndUncertainty_sequence[] = {
6725   { &hf_lpp_bearing         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_359 },
6726   { &hf_lpp_horizontalSpeed , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2047 },
6727   { &hf_lpp_verticalDirection_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_verticalDirection_01 },
6728   { &hf_lpp_verticalSpeed   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
6729   { &hf_lpp_horizontalUncertaintySpeed, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
6730   { &hf_lpp_verticalUncertaintySpeed, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_255 },
6731   { NULL, 0, 0, NULL }
6732 };
6733
6734 static int
6735 dissect_lpp_HorizontalWithVerticalVelocityAndUncertainty(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_HorizontalWithVerticalVelocityAndUncertainty, HorizontalWithVerticalVelocityAndUncertainty_sequence);
6738
6739   return offset;
6740 }
6741
6742
6743 static const value_string lpp_Velocity_vals[] = {
6744   {   0, "horizontalVelocity" },
6745   {   1, "horizontalWithVerticalVelocity" },
6746   {   2, "horizontalVelocityWithUncertainty" },
6747   {   3, "horizontalWithVerticalVelocityAndUncertainty" },
6748   { 0, NULL }
6749 };
6750
6751 static const per_choice_t Velocity_choice[] = {
6752   {   0, &hf_lpp_horizontalVelocity_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalVelocity },
6753   {   1, &hf_lpp_horizontalWithVerticalVelocity_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalWithVerticalVelocity },
6754   {   2, &hf_lpp_horizontalVelocityWithUncertainty_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalVelocityWithUncertainty },
6755   {   3, &hf_lpp_horizontalWithVerticalVelocityAndUncertainty_01, ASN1_EXTENSION_ROOT    , dissect_lpp_HorizontalWithVerticalVelocityAndUncertainty },
6756   { 0, NULL, 0, NULL }
6757 };
6758
6759 static int
6760 dissect_lpp_Velocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6761   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6762                                  ett_lpp_Velocity, Velocity_choice,
6763                                  NULL);
6764
6765   return offset;
6766 }
6767
6768
6769 static const value_string lpp_LocationFailureCause_vals[] = {
6770   {   0, "undefined" },
6771   {   1, "requestedMethodNotSupported" },
6772   {   2, "positionMethodFailure" },
6773   {   3, "periodicLocationMeasurementsNotAvailable" },
6774   { 0, NULL }
6775 };
6776
6777
6778 static int
6779 dissect_lpp_LocationFailureCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6780   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6781                                      4, NULL, TRUE, 0, NULL);
6782
6783   return offset;
6784 }
6785
6786
6787 static const per_sequence_t LocationError_sequence[] = {
6788   { &hf_lpp_locationfailurecause, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_LocationFailureCause },
6789   { NULL, 0, 0, NULL }
6790 };
6791
6792 static int
6793 dissect_lpp_LocationError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6794   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6795                                    ett_lpp_LocationError, LocationError_sequence);
6796
6797   return offset;
6798 }
6799
6800
6801 static const per_sequence_t CommonIEsProvideLocationInformation_sequence[] = {
6802   { &hf_lpp_locationEstimate, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationCoordinates },
6803   { &hf_lpp_velocityEstimate, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_Velocity },
6804   { &hf_lpp_locationError   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_LocationError },
6805   { NULL, 0, 0, NULL }
6806 };
6807
6808 static int
6809 dissect_lpp_CommonIEsProvideLocationInformation(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_CommonIEsProvideLocationInformation, CommonIEsProvideLocationInformation_sequence);
6812
6813   return offset;
6814 }
6815
6816
6817
6818 static int
6819 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_) {
6820   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6821                                                             0U, 3599999U, NULL, FALSE);
6822
6823   return offset;
6824 }
6825
6826
6827
6828 static int
6829 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_) {
6830   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6831                                                             0U, 3999U, NULL, FALSE);
6832
6833   return offset;
6834 }
6835
6836
6837
6838 static int
6839 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_) {
6840   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6841                                      10, 10, FALSE, NULL);
6842
6843   return offset;
6844 }
6845
6846
6847 static const per_sequence_t T_eUTRA_01_sequence[] = {
6848   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
6849   { &hf_lpp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
6850   { &hf_lpp_systemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
6851   { NULL, 0, 0, NULL }
6852 };
6853
6854 static int
6855 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_) {
6856   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6857                                    ett_lpp_T_eUTRA_01, T_eUTRA_01_sequence);
6858
6859   return offset;
6860 }
6861
6862
6863 static const per_sequence_t T_fdd_01_sequence[] = {
6864   { &hf_lpp_primary_CPICH_Info, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_511 },
6865   { NULL, 0, 0, NULL }
6866 };
6867
6868 static int
6869 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_) {
6870   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6871                                    ett_lpp_T_fdd_01, T_fdd_01_sequence);
6872
6873   return offset;
6874 }
6875
6876
6877 static const per_sequence_t T_tdd_01_sequence[] = {
6878   { &hf_lpp_cellParameters  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_127 },
6879   { NULL, 0, 0, NULL }
6880 };
6881
6882 static int
6883 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_) {
6884   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6885                                    ett_lpp_T_tdd_01, T_tdd_01_sequence);
6886
6887   return offset;
6888 }
6889
6890
6891 static const value_string lpp_T_mode_01_vals[] = {
6892   {   0, "fdd" },
6893   {   1, "tdd" },
6894   { 0, NULL }
6895 };
6896
6897 static const per_choice_t T_mode_01_choice[] = {
6898   {   0, &hf_lpp_fdd_01          , ASN1_NO_EXTENSIONS     , dissect_lpp_T_fdd_01 },
6899   {   1, &hf_lpp_tdd_01          , ASN1_NO_EXTENSIONS     , dissect_lpp_T_tdd_01 },
6900   { 0, NULL, 0, NULL }
6901 };
6902
6903 static int
6904 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_) {
6905   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6906                                  ett_lpp_T_mode_01, T_mode_01_choice,
6907                                  NULL);
6908
6909   return offset;
6910 }
6911
6912
6913 static const per_sequence_t T_uTRA_01_sequence[] = {
6914   { &hf_lpp_mode_01         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_mode_01 },
6915   { &hf_lpp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
6916   { &hf_lpp_referenceSystemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_4095 },
6917   { NULL, 0, 0, NULL }
6918 };
6919
6920 static int
6921 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_) {
6922   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6923                                    ett_lpp_T_uTRA_01, T_uTRA_01_sequence);
6924
6925   return offset;
6926 }
6927
6928
6929 static const per_sequence_t T_referenceFrame_sequence[] = {
6930   { &hf_lpp_referenceFN     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_65535 },
6931   { &hf_lpp_referenceFNMSB  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_63 },
6932   { NULL, 0, 0, NULL }
6933 };
6934
6935 static int
6936 dissect_lpp_T_referenceFrame(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6937   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6938                                    ett_lpp_T_referenceFrame, T_referenceFrame_sequence);
6939
6940   return offset;
6941 }
6942
6943
6944 static const per_sequence_t T_gSM_01_sequence[] = {
6945   { &hf_lpp_bcchCarrier     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
6946   { &hf_lpp_bsic            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
6947   { &hf_lpp_cellGlobalId_02 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdGERAN },
6948   { &hf_lpp_referenceFrame  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_referenceFrame },
6949   { &hf_lpp_deltaGNSS_TOD   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
6950   { NULL, 0, 0, NULL }
6951 };
6952
6953 static int
6954 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_) {
6955   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6956                                    ett_lpp_T_gSM_01, T_gSM_01_sequence);
6957
6958   return offset;
6959 }
6960
6961
6962 static const value_string lpp_T_networkTime_vals[] = {
6963   {   0, "eUTRA" },
6964   {   1, "uTRA" },
6965   {   2, "gSM" },
6966   { 0, NULL }
6967 };
6968
6969 static const per_choice_t T_networkTime_choice[] = {
6970   {   0, &hf_lpp_eUTRA_01        , ASN1_EXTENSION_ROOT    , dissect_lpp_T_eUTRA_01 },
6971   {   1, &hf_lpp_uTRA_01         , ASN1_EXTENSION_ROOT    , dissect_lpp_T_uTRA_01 },
6972   {   2, &hf_lpp_gSM_01          , ASN1_EXTENSION_ROOT    , dissect_lpp_T_gSM_01 },
6973   { 0, NULL, 0, NULL }
6974 };
6975
6976 static int
6977 dissect_lpp_T_networkTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6978   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6979                                  ett_lpp_T_networkTime, T_networkTime_choice,
6980                                  NULL);
6981
6982   return offset;
6983 }
6984
6985
6986 static const per_sequence_t MeasurementReferenceTime_sequence[] = {
6987   { &hf_lpp_gnss_TOD_msec   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_3599999 },
6988   { &hf_lpp_gnss_TOD_frac   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3999 },
6989   { &hf_lpp_gnss_TOD_unc    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
6990   { &hf_lpp_gnss_TimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
6991   { &hf_lpp_networkTime_01  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_T_networkTime },
6992   { NULL, 0, 0, NULL }
6993 };
6994
6995 static int
6996 dissect_lpp_MeasurementReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6997   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6998                                    ett_lpp_MeasurementReferenceTime, MeasurementReferenceTime_sequence);
6999
7000   return offset;
7001 }
7002
7003
7004 static const value_string lpp_T_mpathDet_vals[] = {
7005   {   0, "notMeasured" },
7006   {   1, "low" },
7007   {   2, "medium" },
7008   {   3, "high" },
7009   { 0, NULL }
7010 };
7011
7012
7013 static int
7014 dissect_lpp_T_mpathDet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7015   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7016                                      4, NULL, TRUE, 0, NULL);
7017
7018   return offset;
7019 }
7020
7021
7022
7023 static int
7024 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_) {
7025   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7026                                                             0U, 33554431U, NULL, FALSE);
7027
7028   return offset;
7029 }
7030
7031
7032 static const per_sequence_t GNSS_SatMeasElement_sequence[] = {
7033   { &hf_lpp_svID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_SV_ID },
7034   { &hf_lpp_cNo             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
7035   { &hf_lpp_mpathDet        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_mpathDet },
7036   { &hf_lpp_carrierQualityInd, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_3 },
7037   { &hf_lpp_codePhase_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_2097151 },
7038   { &hf_lpp_integerCodePhase, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
7039   { &hf_lpp_codePhaseRMSError, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_63 },
7040   { &hf_lpp_doppler         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_M32768_32767 },
7041   { &hf_lpp_adr             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_33554431 },
7042   { NULL, 0, 0, NULL }
7043 };
7044
7045 static int
7046 dissect_lpp_GNSS_SatMeasElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7047   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7048                                    ett_lpp_GNSS_SatMeasElement, GNSS_SatMeasElement_sequence);
7049
7050   return offset;
7051 }
7052
7053
7054 static const per_sequence_t GNSS_SatMeasList_sequence_of[1] = {
7055   { &hf_lpp_GNSS_SatMeasList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SatMeasElement },
7056 };
7057
7058 static int
7059 dissect_lpp_GNSS_SatMeasList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7060   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7061                                                   ett_lpp_GNSS_SatMeasList, GNSS_SatMeasList_sequence_of,
7062                                                   1, 64, FALSE);
7063
7064   return offset;
7065 }
7066
7067
7068 static const per_sequence_t GNSS_SgnMeasElement_sequence[] = {
7069   { &hf_lpp_gnss_SignalID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SignalID },
7070   { &hf_lpp_gnss_CodePhaseAmbiguity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_127 },
7071   { &hf_lpp_gnss_SatMeasList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SatMeasList },
7072   { NULL, 0, 0, NULL }
7073 };
7074
7075 static int
7076 dissect_lpp_GNSS_SgnMeasElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7077   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7078                                    ett_lpp_GNSS_SgnMeasElement, GNSS_SgnMeasElement_sequence);
7079
7080   return offset;
7081 }
7082
7083
7084 static const per_sequence_t GNSS_SgnMeasList_sequence_of[1] = {
7085   { &hf_lpp_GNSS_SgnMeasList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SgnMeasElement },
7086 };
7087
7088 static int
7089 dissect_lpp_GNSS_SgnMeasList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7090   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7091                                                   ett_lpp_GNSS_SgnMeasList, GNSS_SgnMeasList_sequence_of,
7092                                                   1, 8, FALSE);
7093
7094   return offset;
7095 }
7096
7097
7098 static const per_sequence_t GNSS_MeasurementForOneGNSS_sequence[] = {
7099   { &hf_lpp_gnss_ID         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID },
7100   { &hf_lpp_gnss_SgnMeasList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SgnMeasList },
7101   { NULL, 0, 0, NULL }
7102 };
7103
7104 static int
7105 dissect_lpp_GNSS_MeasurementForOneGNSS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7106   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7107                                    ett_lpp_GNSS_MeasurementForOneGNSS, GNSS_MeasurementForOneGNSS_sequence);
7108
7109   return offset;
7110 }
7111
7112
7113 static const per_sequence_t GNSS_MeasurementList_sequence_of[1] = {
7114   { &hf_lpp_GNSS_MeasurementList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_MeasurementForOneGNSS },
7115 };
7116
7117 static int
7118 dissect_lpp_GNSS_MeasurementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7119   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7120                                                   ett_lpp_GNSS_MeasurementList, GNSS_MeasurementList_sequence_of,
7121                                                   1, 16, FALSE);
7122
7123   return offset;
7124 }
7125
7126
7127 static const per_sequence_t GNSS_SignalMeasurementInformation_sequence[] = {
7128   { &hf_lpp_measurementReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_MeasurementReferenceTime },
7129   { &hf_lpp_gnss_MeasurementList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_MeasurementList },
7130   { NULL, 0, 0, NULL }
7131 };
7132
7133 static int
7134 dissect_lpp_GNSS_SignalMeasurementInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7135   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7136                                    ett_lpp_GNSS_SignalMeasurementInformation, GNSS_SignalMeasurementInformation_sequence);
7137
7138   return offset;
7139 }
7140
7141
7142 static const per_sequence_t GNSS_LocationInformation_sequence[] = {
7143   { &hf_lpp_measurementReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_MeasurementReferenceTime },
7144   { &hf_lpp_agnss_List      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_ID_Bitmap },
7145   { NULL, 0, 0, NULL }
7146 };
7147
7148 static int
7149 dissect_lpp_GNSS_LocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7150   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7151                                    ett_lpp_GNSS_LocationInformation, GNSS_LocationInformation_sequence);
7152
7153   return offset;
7154 }
7155
7156
7157 static const per_sequence_t A_GNSS_ProvideLocationInformation_sequence[] = {
7158   { &hf_lpp_gnss_SignalMeasurementInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_SignalMeasurementInformation },
7159   { &hf_lpp_gnss_LocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_GNSS_LocationInformation },
7160   { &hf_lpp_gnss_Error      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_Error },
7161   { NULL, 0, 0, NULL }
7162 };
7163
7164 static int
7165 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_) {
7166   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7167                                    ett_lpp_A_GNSS_ProvideLocationInformation, A_GNSS_ProvideLocationInformation_sequence);
7168
7169   return offset;
7170 }
7171
7172
7173
7174 static int
7175 dissect_lpp_BIT_STRING_SIZE_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7176   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7177                                      5, 5, FALSE, NULL);
7178
7179   return offset;
7180 }
7181
7182
7183
7184 static int
7185 dissect_lpp_BIT_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7186   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7187                                      3, 3, FALSE, NULL);
7188
7189   return offset;
7190 }
7191
7192
7193 static const per_sequence_t OTDOA_MeasQuality_sequence[] = {
7194   { &hf_lpp_error_Resolution, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_2 },
7195   { &hf_lpp_error_Value     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_5 },
7196   { &hf_lpp_error_NumSamples, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_3 },
7197   { NULL, 0, 0, NULL }
7198 };
7199
7200 static int
7201 dissect_lpp_OTDOA_MeasQuality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7202   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7203                                    ett_lpp_OTDOA_MeasQuality, OTDOA_MeasQuality_sequence);
7204
7205   return offset;
7206 }
7207
7208
7209
7210 static int
7211 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_) {
7212   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7213                                                             0U, 12711U, NULL, FALSE);
7214
7215   return offset;
7216 }
7217
7218
7219 static const per_sequence_t NeighbourMeasurementElement_sequence[] = {
7220   { &hf_lpp_physCellIdNeighbor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
7221   { &hf_lpp_cellGlobalIdNeighbour, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
7222   { &hf_lpp_earfcnNeighbour , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
7223   { &hf_lpp_rstd            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_12711 },
7224   { &hf_lpp_rstd_Quality    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_MeasQuality },
7225   { NULL, 0, 0, NULL }
7226 };
7227
7228 static int
7229 dissect_lpp_NeighbourMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7230   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7231                                    ett_lpp_NeighbourMeasurementElement, NeighbourMeasurementElement_sequence);
7232
7233   return offset;
7234 }
7235
7236
7237 static const per_sequence_t NeighbourMeasurementList_sequence_of[1] = {
7238   { &hf_lpp_NeighbourMeasurementList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementElement },
7239 };
7240
7241 static int
7242 dissect_lpp_NeighbourMeasurementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7243   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7244                                                   ett_lpp_NeighbourMeasurementList, NeighbourMeasurementList_sequence_of,
7245                                                   1, 24, FALSE);
7246
7247   return offset;
7248 }
7249
7250
7251 static const per_sequence_t OTDOA_SignalMeasurementInformation_sequence[] = {
7252   { &hf_lpp_systemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_BIT_STRING_SIZE_10 },
7253   { &hf_lpp_physCellIdRef   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
7254   { &hf_lpp_cellGlobalIdRef , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECGI },
7255   { &hf_lpp_earfcnRef       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ARFCN_ValueEUTRA },
7256   { &hf_lpp_referenceQuality, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_MeasQuality },
7257   { &hf_lpp_neighbourMeasurementList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_NeighbourMeasurementList },
7258   { NULL, 0, 0, NULL }
7259 };
7260
7261 static int
7262 dissect_lpp_OTDOA_SignalMeasurementInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7263   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7264                                    ett_lpp_OTDOA_SignalMeasurementInformation, OTDOA_SignalMeasurementInformation_sequence);
7265
7266   return offset;
7267 }
7268
7269
7270 static const per_sequence_t OTDOA_ProvideLocationInformation_sequence[] = {
7271   { &hf_lpp_otdoaSignalMeasurementInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_SignalMeasurementInformation },
7272   { &hf_lpp_otdoa_Error     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_Error },
7273   { NULL, 0, 0, NULL }
7274 };
7275
7276 static int
7277 dissect_lpp_OTDOA_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7278   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7279                                    ett_lpp_OTDOA_ProvideLocationInformation, OTDOA_ProvideLocationInformation_sequence);
7280
7281   return offset;
7282 }
7283
7284
7285
7286 static int
7287 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_) {
7288   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7289                                                             0U, 97U, NULL, FALSE);
7290
7291   return offset;
7292 }
7293
7294
7295
7296 static int
7297 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_) {
7298   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7299                                                             0U, 34U, NULL, FALSE);
7300
7301   return offset;
7302 }
7303
7304
7305 static const per_sequence_t MeasuredResultsElement_sequence[] = {
7306   { &hf_lpp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
7307   { &hf_lpp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CellGlobalIdEUTRA_AndUTRA },
7308   { &hf_lpp_arfcnEUTRA      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_ARFCN_ValueEUTRA },
7309   { &hf_lpp_systemFrameNumber, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_BIT_STRING_SIZE_10 },
7310   { &hf_lpp_rsrp_Result     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_97 },
7311   { &hf_lpp_rsrq_Result     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_34 },
7312   { &hf_lpp_ue_RxTxTimeDiff , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_INTEGER_0_4095 },
7313   { NULL, 0, 0, NULL }
7314 };
7315
7316 static int
7317 dissect_lpp_MeasuredResultsElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7318   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7319                                    ett_lpp_MeasuredResultsElement, MeasuredResultsElement_sequence);
7320
7321   return offset;
7322 }
7323
7324
7325 static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
7326   { &hf_lpp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsElement },
7327 };
7328
7329 static int
7330 dissect_lpp_MeasuredResultsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7331   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7332                                                   ett_lpp_MeasuredResultsList, MeasuredResultsList_sequence_of,
7333                                                   1, 32, FALSE);
7334
7335   return offset;
7336 }
7337
7338
7339 static const per_sequence_t ECID_SignalMeasurementInformation_sequence[] = {
7340   { &hf_lpp_servingCellMeasuredResults, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_MeasuredResultsElement },
7341   { &hf_lpp_measuredResultsList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_MeasuredResultsList },
7342   { NULL, 0, 0, NULL }
7343 };
7344
7345 static int
7346 dissect_lpp_ECID_SignalMeasurementInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7347   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7348                                    ett_lpp_ECID_SignalMeasurementInformation, ECID_SignalMeasurementInformation_sequence);
7349
7350   return offset;
7351 }
7352
7353
7354 static const value_string lpp_T_cause_04_vals[] = {
7355   {   0, "undefined" },
7356   { 0, NULL }
7357 };
7358
7359
7360 static int
7361 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_) {
7362   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7363                                      1, NULL, TRUE, 0, NULL);
7364
7365   return offset;
7366 }
7367
7368
7369 static const per_sequence_t ECID_LocationServerErrorCauses_sequence[] = {
7370   { &hf_lpp_cause_04        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_04 },
7371   { NULL, 0, 0, NULL }
7372 };
7373
7374 static int
7375 dissect_lpp_ECID_LocationServerErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7376   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7377                                    ett_lpp_ECID_LocationServerErrorCauses, ECID_LocationServerErrorCauses_sequence);
7378
7379   return offset;
7380 }
7381
7382
7383 static const value_string lpp_T_cause_05_vals[] = {
7384   {   0, "undefined" },
7385   {   1, "requestedMeasurementNotAvailable" },
7386   {   2, "notAllrequestedMeasurementsPossible" },
7387   { 0, NULL }
7388 };
7389
7390
7391 static int
7392 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_) {
7393   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7394                                      3, NULL, TRUE, 0, NULL);
7395
7396   return offset;
7397 }
7398
7399
7400 static const per_sequence_t ECID_TargetDeviceErrorCauses_sequence[] = {
7401   { &hf_lpp_cause_05        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lpp_T_cause_05 },
7402   { &hf_lpp_rsrpMeasurementNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
7403   { &hf_lpp_rsrqMeasurementNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
7404   { &hf_lpp_ueRxTxMeasurementNotPossible, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_NULL },
7405   { NULL, 0, 0, NULL }
7406 };
7407
7408 static int
7409 dissect_lpp_ECID_TargetDeviceErrorCauses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7410   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7411                                    ett_lpp_ECID_TargetDeviceErrorCauses, ECID_TargetDeviceErrorCauses_sequence);
7412
7413   return offset;
7414 }
7415
7416
7417 static const value_string lpp_ECID_Error_vals[] = {
7418   {   0, "locationServerErrorCauses" },
7419   {   1, "targetDeviceErrorCauses" },
7420   { 0, NULL }
7421 };
7422
7423 static const per_choice_t ECID_Error_choice[] = {
7424   {   0, &hf_lpp_locationServerErrorCauses_02, ASN1_EXTENSION_ROOT    , dissect_lpp_ECID_LocationServerErrorCauses },
7425   {   1, &hf_lpp_targetDeviceErrorCauses_02, ASN1_EXTENSION_ROOT    , dissect_lpp_ECID_TargetDeviceErrorCauses },
7426   { 0, NULL, 0, NULL }
7427 };
7428
7429 static int
7430 dissect_lpp_ECID_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7431   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7432                                  ett_lpp_ECID_Error, ECID_Error_choice,
7433                                  NULL);
7434
7435   return offset;
7436 }
7437
7438
7439 static const per_sequence_t ECID_ProvideLocationInformation_sequence[] = {
7440   { &hf_lpp_ecid_SignalMeasurementInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_SignalMeasurementInformation },
7441   { &hf_lpp_ecid_Error      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_Error },
7442   { NULL, 0, 0, NULL }
7443 };
7444
7445 static int
7446 dissect_lpp_ECID_ProvideLocationInformation(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(tvb, offset, actx, tree, hf_index,
7448                                    ett_lpp_ECID_ProvideLocationInformation, ECID_ProvideLocationInformation_sequence);
7449
7450   return offset;
7451 }
7452
7453
7454 static const per_sequence_t ProvideLocationInformation_r9_IEs_sequence[] = {
7455   { &hf_lpp_commonIEsProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsProvideLocationInformation },
7456   { &hf_lpp_a_gnss_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_A_GNSS_ProvideLocationInformation },
7457   { &hf_lpp_otdoa_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_OTDOA_ProvideLocationInformation },
7458   { &hf_lpp_ecid_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_ECID_ProvideLocationInformation },
7459   { &hf_lpp_epdu_ProvideLocationInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
7460   { NULL, 0, 0, NULL }
7461 };
7462
7463 static int
7464 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_) {
7465   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7466                                    ett_lpp_ProvideLocationInformation_r9_IEs, ProvideLocationInformation_r9_IEs_sequence);
7467
7468   return offset;
7469 }
7470
7471
7472 static const value_string lpp_T_c1_06_vals[] = {
7473   {   0, "provideLocationInformation-r9" },
7474   {   1, "spare3" },
7475   {   2, "spare2" },
7476   {   3, "spare1" },
7477   { 0, NULL }
7478 };
7479
7480 static const per_choice_t T_c1_06_choice[] = {
7481   {   0, &hf_lpp_provideLocationInformation_r9, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideLocationInformation_r9_IEs },
7482   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7483   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7484   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7485   { 0, NULL, 0, NULL }
7486 };
7487
7488 static int
7489 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_) {
7490   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7491                                  ett_lpp_T_c1_06, T_c1_06_choice,
7492                                  NULL);
7493
7494   return offset;
7495 }
7496
7497
7498 static const per_sequence_t T_criticalExtensionsFuture_05_sequence[] = {
7499   { NULL, 0, 0, NULL }
7500 };
7501
7502 static int
7503 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_) {
7504   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7505                                    ett_lpp_T_criticalExtensionsFuture_05, T_criticalExtensionsFuture_05_sequence);
7506
7507   return offset;
7508 }
7509
7510
7511 static const value_string lpp_T_criticalExtensions_05_vals[] = {
7512   {   0, "c1" },
7513   {   1, "criticalExtensionsFuture" },
7514   { 0, NULL }
7515 };
7516
7517 static const per_choice_t T_criticalExtensions_05_choice[] = {
7518   {   0, &hf_lpp_c1_06           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_06 },
7519   {   1, &hf_lpp_criticalExtensionsFuture_05, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_05 },
7520   { 0, NULL, 0, NULL }
7521 };
7522
7523 static int
7524 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_) {
7525   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7526                                  ett_lpp_T_criticalExtensions_05, T_criticalExtensions_05_choice,
7527                                  NULL);
7528
7529   return offset;
7530 }
7531
7532
7533 static const per_sequence_t ProvideLocationInformation_sequence[] = {
7534   { &hf_lpp_criticalExtensions_05, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_05 },
7535   { NULL, 0, 0, NULL }
7536 };
7537
7538 static int
7539 dissect_lpp_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7540 #line 49 "../../asn1/lpp/lpp.cnf"
7541
7542   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information");
7543
7544
7545   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7546                                    ett_lpp_ProvideLocationInformation, ProvideLocationInformation_sequence);
7547
7548   return offset;
7549 }
7550
7551
7552 static const value_string lpp_T_abortCause_vals[] = {
7553   {   0, "undefined" },
7554   {   1, "stopPeriodicReporting" },
7555   {   2, "targetDeviceAbort" },
7556   {   3, "networkAbort" },
7557   { 0, NULL }
7558 };
7559
7560
7561 static int
7562 dissect_lpp_T_abortCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7563   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7564                                      4, NULL, TRUE, 0, NULL);
7565
7566   return offset;
7567 }
7568
7569
7570 static const per_sequence_t CommonIEsAbort_sequence[] = {
7571   { &hf_lpp_abortCause      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_abortCause },
7572   { NULL, 0, 0, NULL }
7573 };
7574
7575 static int
7576 dissect_lpp_CommonIEsAbort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7577   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7578                                    ett_lpp_CommonIEsAbort, CommonIEsAbort_sequence);
7579
7580   return offset;
7581 }
7582
7583
7584 static const per_sequence_t Abort_r9_IEs_sequence[] = {
7585   { &hf_lpp_commonIEsAbort  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsAbort },
7586   { &hf_lpp_epdu_Abort      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
7587   { NULL, 0, 0, NULL }
7588 };
7589
7590 static int
7591 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_) {
7592   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7593                                    ett_lpp_Abort_r9_IEs, Abort_r9_IEs_sequence);
7594
7595   return offset;
7596 }
7597
7598
7599 static const value_string lpp_T_c1_07_vals[] = {
7600   {   0, "abort-r9" },
7601   {   1, "spare3" },
7602   {   2, "spare2" },
7603   {   3, "spare1" },
7604   { 0, NULL }
7605 };
7606
7607 static const per_choice_t T_c1_07_choice[] = {
7608   {   0, &hf_lpp_abort_r9        , ASN1_NO_EXTENSIONS     , dissect_lpp_Abort_r9_IEs },
7609   {   1, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7610   {   2, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7611   {   3, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7612   { 0, NULL, 0, NULL }
7613 };
7614
7615 static int
7616 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_) {
7617   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7618                                  ett_lpp_T_c1_07, T_c1_07_choice,
7619                                  NULL);
7620
7621   return offset;
7622 }
7623
7624
7625 static const per_sequence_t T_criticalExtensionsFuture_06_sequence[] = {
7626   { NULL, 0, 0, NULL }
7627 };
7628
7629 static int
7630 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_) {
7631   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7632                                    ett_lpp_T_criticalExtensionsFuture_06, T_criticalExtensionsFuture_06_sequence);
7633
7634   return offset;
7635 }
7636
7637
7638 static const value_string lpp_T_criticalExtensions_06_vals[] = {
7639   {   0, "c1" },
7640   {   1, "criticalExtensionsFuture" },
7641   { 0, NULL }
7642 };
7643
7644 static const per_choice_t T_criticalExtensions_06_choice[] = {
7645   {   0, &hf_lpp_c1_07           , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1_07 },
7646   {   1, &hf_lpp_criticalExtensionsFuture_06, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_06 },
7647   { 0, NULL, 0, NULL }
7648 };
7649
7650 static int
7651 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_) {
7652   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7653                                  ett_lpp_T_criticalExtensions_06, T_criticalExtensions_06_choice,
7654                                  NULL);
7655
7656   return offset;
7657 }
7658
7659
7660 static const per_sequence_t Abort_sequence[] = {
7661   { &hf_lpp_criticalExtensions_06, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_criticalExtensions_06 },
7662   { NULL, 0, 0, NULL }
7663 };
7664
7665 static int
7666 dissect_lpp_Abort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7667 #line 53 "../../asn1/lpp/lpp.cnf"
7668
7669   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort");
7670
7671
7672   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7673                                    ett_lpp_Abort, Abort_sequence);
7674
7675   return offset;
7676 }
7677
7678
7679 static const value_string lpp_T_errorCause_vals[] = {
7680   {   0, "undefined" },
7681   {   1, "lppMessageHeaderError" },
7682   {   2, "lppMessageBodyError" },
7683   {   3, "epduError" },
7684   {   4, "incorrectDataValue" },
7685   { 0, NULL }
7686 };
7687
7688
7689 static int
7690 dissect_lpp_T_errorCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7691   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7692                                      5, NULL, TRUE, 0, NULL);
7693
7694   return offset;
7695 }
7696
7697
7698 static const per_sequence_t CommonIEsError_sequence[] = {
7699   { &hf_lpp_errorCause      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_T_errorCause },
7700   { NULL, 0, 0, NULL }
7701 };
7702
7703 static int
7704 dissect_lpp_CommonIEsError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7705   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7706                                    ett_lpp_CommonIEsError, CommonIEsError_sequence);
7707
7708   return offset;
7709 }
7710
7711
7712 static const per_sequence_t Error_r9_IEs_sequence[] = {
7713   { &hf_lpp_commonIEsError  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_lpp_CommonIEsError },
7714   { &hf_lpp_epdu_Error      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_lpp_EPDU_Sequence },
7715   { NULL, 0, 0, NULL }
7716 };
7717
7718 static int
7719 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_) {
7720   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7721                                    ett_lpp_Error_r9_IEs, Error_r9_IEs_sequence);
7722
7723   return offset;
7724 }
7725
7726
7727 static const per_sequence_t T_criticalExtensionsFuture_07_sequence[] = {
7728   { NULL, 0, 0, NULL }
7729 };
7730
7731 static int
7732 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_) {
7733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7734                                    ett_lpp_T_criticalExtensionsFuture_07, T_criticalExtensionsFuture_07_sequence);
7735
7736   return offset;
7737 }
7738
7739
7740 static const value_string lpp_Error_vals[] = {
7741   {   0, "error-r9" },
7742   {   1, "criticalExtensionsFuture" },
7743   { 0, NULL }
7744 };
7745
7746 static const per_choice_t Error_choice[] = {
7747   {   0, &hf_lpp_error_r9        , ASN1_NO_EXTENSIONS     , dissect_lpp_Error_r9_IEs },
7748   {   1, &hf_lpp_criticalExtensionsFuture_07, ASN1_NO_EXTENSIONS     , dissect_lpp_T_criticalExtensionsFuture_07 },
7749   { 0, NULL, 0, NULL }
7750 };
7751
7752 static int
7753 dissect_lpp_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7754 #line 57 "../../asn1/lpp/lpp.cnf"
7755
7756   col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error");
7757
7758
7759   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7760                                  ett_lpp_Error, Error_choice,
7761                                  NULL);
7762
7763   return offset;
7764 }
7765
7766
7767 static const value_string lpp_T_c1_vals[] = {
7768   {   0, "requestCapabilities" },
7769   {   1, "provideCapabilities" },
7770   {   2, "requestAssistanceData" },
7771   {   3, "provideAssistanceData" },
7772   {   4, "requestLocationInformation" },
7773   {   5, "provideLocationInformation" },
7774   {   6, "abort" },
7775   {   7, "error" },
7776   {   8, "spare7" },
7777   {   9, "spare6" },
7778   {  10, "spare5" },
7779   {  11, "spare4" },
7780   {  12, "spare3" },
7781   {  13, "spare2" },
7782   {  14, "spare1" },
7783   {  15, "spare0" },
7784   { 0, NULL }
7785 };
7786
7787 static const per_choice_t T_c1_choice[] = {
7788   {   0, &hf_lpp_requestCapabilities, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestCapabilities },
7789   {   1, &hf_lpp_provideCapabilities, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideCapabilities },
7790   {   2, &hf_lpp_requestAssistanceData, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestAssistanceData },
7791   {   3, &hf_lpp_provideAssistanceData, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideAssistanceData },
7792   {   4, &hf_lpp_requestLocationInformation, ASN1_NO_EXTENSIONS     , dissect_lpp_RequestLocationInformation },
7793   {   5, &hf_lpp_provideLocationInformation, ASN1_NO_EXTENSIONS     , dissect_lpp_ProvideLocationInformation },
7794   {   6, &hf_lpp_abort           , ASN1_NO_EXTENSIONS     , dissect_lpp_Abort },
7795   {   7, &hf_lpp_error           , ASN1_NO_EXTENSIONS     , dissect_lpp_Error },
7796   {   8, &hf_lpp_spare7          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7797   {   9, &hf_lpp_spare6          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7798   {  10, &hf_lpp_spare5          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7799   {  11, &hf_lpp_spare4          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7800   {  12, &hf_lpp_spare3          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7801   {  13, &hf_lpp_spare2          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7802   {  14, &hf_lpp_spare1          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7803   {  15, &hf_lpp_spare0          , ASN1_NO_EXTENSIONS     , dissect_lpp_NULL },
7804   { 0, NULL, 0, NULL }
7805 };
7806
7807 static int
7808 dissect_lpp_T_c1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7809   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7810                                  ett_lpp_T_c1, T_c1_choice,
7811                                  NULL);
7812
7813   return offset;
7814 }
7815
7816
7817 static const per_sequence_t T_messageClassExtension_sequence[] = {
7818   { NULL, 0, 0, NULL }
7819 };
7820
7821 static int
7822 dissect_lpp_T_messageClassExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7823   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7824                                    ett_lpp_T_messageClassExtension, T_messageClassExtension_sequence);
7825
7826   return offset;
7827 }
7828
7829
7830 static const value_string lpp_LPP_MessageBody_vals[] = {
7831   {   0, "c1" },
7832   {   1, "messageClassExtension" },
7833   { 0, NULL }
7834 };
7835
7836 static const per_choice_t LPP_MessageBody_choice[] = {
7837   {   0, &hf_lpp_c1              , ASN1_NO_EXTENSIONS     , dissect_lpp_T_c1 },
7838   {   1, &hf_lpp_messageClassExtension, ASN1_NO_EXTENSIONS     , dissect_lpp_T_messageClassExtension },
7839   { 0, NULL, 0, NULL }
7840 };
7841
7842 static int
7843 dissect_lpp_LPP_MessageBody(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7844   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7845                                  ett_lpp_LPP_MessageBody, LPP_MessageBody_choice,
7846                                  NULL);
7847
7848   return offset;
7849 }
7850
7851
7852 static const per_sequence_t LPP_Message_sequence[] = {
7853   { &hf_lpp_transactionID   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_LPP_TransactionID },
7854   { &hf_lpp_endTransaction  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lpp_BOOLEAN },
7855   { &hf_lpp_sequenceNumber  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_SequenceNumber },
7856   { &hf_lpp_acknowledgement , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_Acknowledgement },
7857   { &hf_lpp_lpp_MessageBody , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lpp_LPP_MessageBody },
7858   { NULL, 0, 0, NULL }
7859 };
7860
7861 static int
7862 dissect_lpp_LPP_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7863 #line 15 "../../asn1/lpp/lpp.cnf"
7864         
7865   proto_tree_add_item(tree, proto_lpp, tvb, 0, -1, ENC_NA);
7866
7867   col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/LPP");
7868
7869   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7870                                    ett_lpp_LPP_Message, LPP_Message_sequence);
7871
7872   return offset;
7873 }
7874
7875 /*--- PDUs ---*/
7876
7877 static int dissect_LPP_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
7878   int offset = 0;
7879   asn1_ctx_t asn1_ctx;
7880   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
7881   offset = dissect_lpp_LPP_Message(tvb, offset, &asn1_ctx, tree, hf_lpp_LPP_Message_PDU);
7882   offset += 7; offset >>= 3;
7883   return offset;
7884 }
7885
7886
7887 /*--- End of included file: packet-lpp-fn.c ---*/
7888 #line 62 "../../asn1/lpp/packet-lpp-template.c"
7889
7890
7891 /*--- proto_register_lpp -------------------------------------------*/
7892 void proto_register_lpp(void) {
7893
7894   /* List of fields */
7895   static hf_register_info hf[] = {
7896
7897
7898 /*--- Included file: packet-lpp-hfarr.c ---*/
7899 #line 1 "../../asn1/lpp/packet-lpp-hfarr.c"
7900     { &hf_lpp_LPP_Message_PDU,
7901       { "LPP-Message", "lpp.LPP_Message",
7902         FT_NONE, BASE_NONE, NULL, 0,
7903         NULL, HFILL }},
7904     { &hf_lpp_transactionID,
7905       { "transactionID", "lpp.transactionID",
7906         FT_NONE, BASE_NONE, NULL, 0,
7907         "LPP_TransactionID", HFILL }},
7908     { &hf_lpp_endTransaction,
7909       { "endTransaction", "lpp.endTransaction",
7910         FT_BOOLEAN, BASE_NONE, NULL, 0,
7911         "BOOLEAN", HFILL }},
7912     { &hf_lpp_sequenceNumber,
7913       { "sequenceNumber", "lpp.sequenceNumber",
7914         FT_UINT32, BASE_DEC, NULL, 0,
7915         NULL, HFILL }},
7916     { &hf_lpp_acknowledgement,
7917       { "acknowledgement", "lpp.acknowledgement",
7918         FT_NONE, BASE_NONE, NULL, 0,
7919         NULL, HFILL }},
7920     { &hf_lpp_lpp_MessageBody,
7921       { "lpp-MessageBody", "lpp.lpp_MessageBody",
7922         FT_UINT32, BASE_DEC, VALS(lpp_LPP_MessageBody_vals), 0,
7923         NULL, HFILL }},
7924     { &hf_lpp_ackRequested,
7925       { "ackRequested", "lpp.ackRequested",
7926         FT_BOOLEAN, BASE_NONE, NULL, 0,
7927         "BOOLEAN", HFILL }},
7928     { &hf_lpp_ackIndicator,
7929       { "ackIndicator", "lpp.ackIndicator",
7930         FT_UINT32, BASE_DEC, NULL, 0,
7931         "SequenceNumber", HFILL }},
7932     { &hf_lpp_c1,
7933       { "c1", "lpp.c1",
7934         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_vals), 0,
7935         NULL, HFILL }},
7936     { &hf_lpp_requestCapabilities,
7937       { "requestCapabilities", "lpp.requestCapabilities",
7938         FT_NONE, BASE_NONE, NULL, 0,
7939         NULL, HFILL }},
7940     { &hf_lpp_provideCapabilities,
7941       { "provideCapabilities", "lpp.provideCapabilities",
7942         FT_NONE, BASE_NONE, NULL, 0,
7943         NULL, HFILL }},
7944     { &hf_lpp_requestAssistanceData,
7945       { "requestAssistanceData", "lpp.requestAssistanceData",
7946         FT_NONE, BASE_NONE, NULL, 0,
7947         NULL, HFILL }},
7948     { &hf_lpp_provideAssistanceData,
7949       { "provideAssistanceData", "lpp.provideAssistanceData",
7950         FT_NONE, BASE_NONE, NULL, 0,
7951         NULL, HFILL }},
7952     { &hf_lpp_requestLocationInformation,
7953       { "requestLocationInformation", "lpp.requestLocationInformation",
7954         FT_NONE, BASE_NONE, NULL, 0,
7955         NULL, HFILL }},
7956     { &hf_lpp_provideLocationInformation,
7957       { "provideLocationInformation", "lpp.provideLocationInformation",
7958         FT_NONE, BASE_NONE, NULL, 0,
7959         NULL, HFILL }},
7960     { &hf_lpp_abort,
7961       { "abort", "lpp.abort",
7962         FT_NONE, BASE_NONE, NULL, 0,
7963         NULL, HFILL }},
7964     { &hf_lpp_error,
7965       { "error", "lpp.error",
7966         FT_UINT32, BASE_DEC, VALS(lpp_Error_vals), 0,
7967         NULL, HFILL }},
7968     { &hf_lpp_spare7,
7969       { "spare7", "lpp.spare7",
7970         FT_NONE, BASE_NONE, NULL, 0,
7971         NULL, HFILL }},
7972     { &hf_lpp_spare6,
7973       { "spare6", "lpp.spare6",
7974         FT_NONE, BASE_NONE, NULL, 0,
7975         NULL, HFILL }},
7976     { &hf_lpp_spare5,
7977       { "spare5", "lpp.spare5",
7978         FT_NONE, BASE_NONE, NULL, 0,
7979         NULL, HFILL }},
7980     { &hf_lpp_spare4,
7981       { "spare4", "lpp.spare4",
7982         FT_NONE, BASE_NONE, NULL, 0,
7983         NULL, HFILL }},
7984     { &hf_lpp_spare3,
7985       { "spare3", "lpp.spare3",
7986         FT_NONE, BASE_NONE, NULL, 0,
7987         NULL, HFILL }},
7988     { &hf_lpp_spare2,
7989       { "spare2", "lpp.spare2",
7990         FT_NONE, BASE_NONE, NULL, 0,
7991         NULL, HFILL }},
7992     { &hf_lpp_spare1,
7993       { "spare1", "lpp.spare1",
7994         FT_NONE, BASE_NONE, NULL, 0,
7995         NULL, HFILL }},
7996     { &hf_lpp_spare0,
7997       { "spare0", "lpp.spare0",
7998         FT_NONE, BASE_NONE, NULL, 0,
7999         NULL, HFILL }},
8000     { &hf_lpp_messageClassExtension,
8001       { "messageClassExtension", "lpp.messageClassExtension",
8002         FT_NONE, BASE_NONE, NULL, 0,
8003         NULL, HFILL }},
8004     { &hf_lpp_initiator,
8005       { "initiator", "lpp.initiator",
8006         FT_UINT32, BASE_DEC, VALS(lpp_Initiator_vals), 0,
8007         NULL, HFILL }},
8008     { &hf_lpp_transactionNumber,
8009       { "transactionNumber", "lpp.transactionNumber",
8010         FT_UINT32, BASE_DEC, NULL, 0,
8011         NULL, HFILL }},
8012     { &hf_lpp_criticalExtensions,
8013       { "criticalExtensions", "lpp.criticalExtensions",
8014         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_vals), 0,
8015         NULL, HFILL }},
8016     { &hf_lpp_c1_01,
8017       { "c1", "lpp.c1",
8018         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_01_vals), 0,
8019         "T_c1_01", HFILL }},
8020     { &hf_lpp_requestCapabilities_r9,
8021       { "requestCapabilities-r9", "lpp.requestCapabilities_r9",
8022         FT_NONE, BASE_NONE, NULL, 0,
8023         "RequestCapabilities_r9_IEs", HFILL }},
8024     { &hf_lpp_criticalExtensionsFuture,
8025       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8026         FT_NONE, BASE_NONE, NULL, 0,
8027         NULL, HFILL }},
8028     { &hf_lpp_commonIEsRequestCapabilities,
8029       { "commonIEsRequestCapabilities", "lpp.commonIEsRequestCapabilities",
8030         FT_NONE, BASE_NONE, NULL, 0,
8031         NULL, HFILL }},
8032     { &hf_lpp_a_gnss_RequestCapabilities,
8033       { "a-gnss-RequestCapabilities", "lpp.a_gnss_RequestCapabilities",
8034         FT_NONE, BASE_NONE, NULL, 0,
8035         NULL, HFILL }},
8036     { &hf_lpp_otdoa_RequestCapabilities,
8037       { "otdoa-RequestCapabilities", "lpp.otdoa_RequestCapabilities",
8038         FT_NONE, BASE_NONE, NULL, 0,
8039         NULL, HFILL }},
8040     { &hf_lpp_ecid_RequestCapabilities,
8041       { "ecid-RequestCapabilities", "lpp.ecid_RequestCapabilities",
8042         FT_NONE, BASE_NONE, NULL, 0,
8043         NULL, HFILL }},
8044     { &hf_lpp_epdu_RequestCapabilities,
8045       { "epdu-RequestCapabilities", "lpp.epdu_RequestCapabilities",
8046         FT_UINT32, BASE_DEC, NULL, 0,
8047         "EPDU_Sequence", HFILL }},
8048     { &hf_lpp_criticalExtensions_01,
8049       { "criticalExtensions", "lpp.criticalExtensions",
8050         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_01_vals), 0,
8051         "T_criticalExtensions_01", HFILL }},
8052     { &hf_lpp_c1_02,
8053       { "c1", "lpp.c1",
8054         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_02_vals), 0,
8055         "T_c1_02", HFILL }},
8056     { &hf_lpp_provideCapabilities_r9,
8057       { "provideCapabilities-r9", "lpp.provideCapabilities_r9",
8058         FT_NONE, BASE_NONE, NULL, 0,
8059         "ProvideCapabilities_r9_IEs", HFILL }},
8060     { &hf_lpp_criticalExtensionsFuture_01,
8061       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8062         FT_NONE, BASE_NONE, NULL, 0,
8063         "T_criticalExtensionsFuture_01", HFILL }},
8064     { &hf_lpp_commonIEsProvideCapabilities,
8065       { "commonIEsProvideCapabilities", "lpp.commonIEsProvideCapabilities",
8066         FT_NONE, BASE_NONE, NULL, 0,
8067         NULL, HFILL }},
8068     { &hf_lpp_a_gnss_ProvideCapabilities,
8069       { "a-gnss-ProvideCapabilities", "lpp.a_gnss_ProvideCapabilities",
8070         FT_NONE, BASE_NONE, NULL, 0,
8071         NULL, HFILL }},
8072     { &hf_lpp_otdoa_ProvideCapabilities,
8073       { "otdoa-ProvideCapabilities", "lpp.otdoa_ProvideCapabilities",
8074         FT_NONE, BASE_NONE, NULL, 0,
8075         NULL, HFILL }},
8076     { &hf_lpp_ecid_ProvideCapabilities,
8077       { "ecid-ProvideCapabilities", "lpp.ecid_ProvideCapabilities",
8078         FT_NONE, BASE_NONE, NULL, 0,
8079         NULL, HFILL }},
8080     { &hf_lpp_epdu_ProvideCapabilities,
8081       { "epdu-ProvideCapabilities", "lpp.epdu_ProvideCapabilities",
8082         FT_UINT32, BASE_DEC, NULL, 0,
8083         "EPDU_Sequence", HFILL }},
8084     { &hf_lpp_criticalExtensions_02,
8085       { "criticalExtensions", "lpp.criticalExtensions",
8086         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_02_vals), 0,
8087         "T_criticalExtensions_02", HFILL }},
8088     { &hf_lpp_c1_03,
8089       { "c1", "lpp.c1",
8090         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_03_vals), 0,
8091         "T_c1_03", HFILL }},
8092     { &hf_lpp_requestAssistanceData_r9,
8093       { "requestAssistanceData-r9", "lpp.requestAssistanceData_r9",
8094         FT_NONE, BASE_NONE, NULL, 0,
8095         "RequestAssistanceData_r9_IEs", HFILL }},
8096     { &hf_lpp_criticalExtensionsFuture_02,
8097       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8098         FT_NONE, BASE_NONE, NULL, 0,
8099         "T_criticalExtensionsFuture_02", HFILL }},
8100     { &hf_lpp_commonIEsRequestAssistanceData,
8101       { "commonIEsRequestAssistanceData", "lpp.commonIEsRequestAssistanceData",
8102         FT_NONE, BASE_NONE, NULL, 0,
8103         NULL, HFILL }},
8104     { &hf_lpp_a_gnss_RequestAssistanceData,
8105       { "a-gnss-RequestAssistanceData", "lpp.a_gnss_RequestAssistanceData",
8106         FT_NONE, BASE_NONE, NULL, 0,
8107         NULL, HFILL }},
8108     { &hf_lpp_otdoa_RequestAssistanceData,
8109       { "otdoa-RequestAssistanceData", "lpp.otdoa_RequestAssistanceData",
8110         FT_NONE, BASE_NONE, NULL, 0,
8111         NULL, HFILL }},
8112     { &hf_lpp_epdu_RequestAssistanceData,
8113       { "epdu-RequestAssistanceData", "lpp.epdu_RequestAssistanceData",
8114         FT_UINT32, BASE_DEC, NULL, 0,
8115         "EPDU_Sequence", HFILL }},
8116     { &hf_lpp_criticalExtensions_03,
8117       { "criticalExtensions", "lpp.criticalExtensions",
8118         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_03_vals), 0,
8119         "T_criticalExtensions_03", HFILL }},
8120     { &hf_lpp_c1_04,
8121       { "c1", "lpp.c1",
8122         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_04_vals), 0,
8123         "T_c1_04", HFILL }},
8124     { &hf_lpp_provideAssistanceData_r9,
8125       { "provideAssistanceData-r9", "lpp.provideAssistanceData_r9",
8126         FT_NONE, BASE_NONE, NULL, 0,
8127         "ProvideAssistanceData_r9_IEs", HFILL }},
8128     { &hf_lpp_criticalExtensionsFuture_03,
8129       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8130         FT_NONE, BASE_NONE, NULL, 0,
8131         "T_criticalExtensionsFuture_03", HFILL }},
8132     { &hf_lpp_commonIEsProvideAssistanceData,
8133       { "commonIEsProvideAssistanceData", "lpp.commonIEsProvideAssistanceData",
8134         FT_NONE, BASE_NONE, NULL, 0,
8135         NULL, HFILL }},
8136     { &hf_lpp_a_gnss_ProvideAssistanceData,
8137       { "a-gnss-ProvideAssistanceData", "lpp.a_gnss_ProvideAssistanceData",
8138         FT_NONE, BASE_NONE, NULL, 0,
8139         NULL, HFILL }},
8140     { &hf_lpp_otdoa_ProvideAssistanceData,
8141       { "otdoa-ProvideAssistanceData", "lpp.otdoa_ProvideAssistanceData",
8142         FT_NONE, BASE_NONE, NULL, 0,
8143         NULL, HFILL }},
8144     { &hf_lpp_epdu_Provide_Assistance_Data,
8145       { "epdu-Provide-Assistance-Data", "lpp.epdu_Provide_Assistance_Data",
8146         FT_UINT32, BASE_DEC, NULL, 0,
8147         "EPDU_Sequence", HFILL }},
8148     { &hf_lpp_criticalExtensions_04,
8149       { "criticalExtensions", "lpp.criticalExtensions",
8150         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_04_vals), 0,
8151         "T_criticalExtensions_04", HFILL }},
8152     { &hf_lpp_c1_05,
8153       { "c1", "lpp.c1",
8154         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_05_vals), 0,
8155         "T_c1_05", HFILL }},
8156     { &hf_lpp_requestLocationInformation_r9,
8157       { "requestLocationInformation-r9", "lpp.requestLocationInformation_r9",
8158         FT_NONE, BASE_NONE, NULL, 0,
8159         "RequestLocationInformation_r9_IEs", HFILL }},
8160     { &hf_lpp_criticalExtensionsFuture_04,
8161       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8162         FT_NONE, BASE_NONE, NULL, 0,
8163         "T_criticalExtensionsFuture_04", HFILL }},
8164     { &hf_lpp_commonIEsRequestLocationInformation,
8165       { "commonIEsRequestLocationInformation", "lpp.commonIEsRequestLocationInformation",
8166         FT_NONE, BASE_NONE, NULL, 0,
8167         NULL, HFILL }},
8168     { &hf_lpp_a_gnss_RequestLocationInformation,
8169       { "a-gnss-RequestLocationInformation", "lpp.a_gnss_RequestLocationInformation",
8170         FT_NONE, BASE_NONE, NULL, 0,
8171         NULL, HFILL }},
8172     { &hf_lpp_otdoa_RequestLocationInformation,
8173       { "otdoa-RequestLocationInformation", "lpp.otdoa_RequestLocationInformation",
8174         FT_NONE, BASE_NONE, NULL, 0,
8175         NULL, HFILL }},
8176     { &hf_lpp_ecid_RequestLocationInformation,
8177       { "ecid-RequestLocationInformation", "lpp.ecid_RequestLocationInformation",
8178         FT_NONE, BASE_NONE, NULL, 0,
8179         NULL, HFILL }},
8180     { &hf_lpp_epdu_RequestLocationInformation,
8181       { "epdu-RequestLocationInformation", "lpp.epdu_RequestLocationInformation",
8182         FT_UINT32, BASE_DEC, NULL, 0,
8183         "EPDU_Sequence", HFILL }},
8184     { &hf_lpp_criticalExtensions_05,
8185       { "criticalExtensions", "lpp.criticalExtensions",
8186         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_05_vals), 0,
8187         "T_criticalExtensions_05", HFILL }},
8188     { &hf_lpp_c1_06,
8189       { "c1", "lpp.c1",
8190         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_06_vals), 0,
8191         "T_c1_06", HFILL }},
8192     { &hf_lpp_provideLocationInformation_r9,
8193       { "provideLocationInformation-r9", "lpp.provideLocationInformation_r9",
8194         FT_NONE, BASE_NONE, NULL, 0,
8195         "ProvideLocationInformation_r9_IEs", HFILL }},
8196     { &hf_lpp_criticalExtensionsFuture_05,
8197       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8198         FT_NONE, BASE_NONE, NULL, 0,
8199         "T_criticalExtensionsFuture_05", HFILL }},
8200     { &hf_lpp_commonIEsProvideLocationInformation,
8201       { "commonIEsProvideLocationInformation", "lpp.commonIEsProvideLocationInformation",
8202         FT_NONE, BASE_NONE, NULL, 0,
8203         NULL, HFILL }},
8204     { &hf_lpp_a_gnss_ProvideLocationInformation,
8205       { "a-gnss-ProvideLocationInformation", "lpp.a_gnss_ProvideLocationInformation",
8206         FT_NONE, BASE_NONE, NULL, 0,
8207         NULL, HFILL }},
8208     { &hf_lpp_otdoa_ProvideLocationInformation,
8209       { "otdoa-ProvideLocationInformation", "lpp.otdoa_ProvideLocationInformation",
8210         FT_NONE, BASE_NONE, NULL, 0,
8211         NULL, HFILL }},
8212     { &hf_lpp_ecid_ProvideLocationInformation,
8213       { "ecid-ProvideLocationInformation", "lpp.ecid_ProvideLocationInformation",
8214         FT_NONE, BASE_NONE, NULL, 0,
8215         NULL, HFILL }},
8216     { &hf_lpp_epdu_ProvideLocationInformation,
8217       { "epdu-ProvideLocationInformation", "lpp.epdu_ProvideLocationInformation",
8218         FT_UINT32, BASE_DEC, NULL, 0,
8219         "EPDU_Sequence", HFILL }},
8220     { &hf_lpp_criticalExtensions_06,
8221       { "criticalExtensions", "lpp.criticalExtensions",
8222         FT_UINT32, BASE_DEC, VALS(lpp_T_criticalExtensions_06_vals), 0,
8223         "T_criticalExtensions_06", HFILL }},
8224     { &hf_lpp_c1_07,
8225       { "c1", "lpp.c1",
8226         FT_UINT32, BASE_DEC, VALS(lpp_T_c1_07_vals), 0,
8227         "T_c1_07", HFILL }},
8228     { &hf_lpp_abort_r9,
8229       { "abort-r9", "lpp.abort_r9",
8230         FT_NONE, BASE_NONE, NULL, 0,
8231         "Abort_r9_IEs", HFILL }},
8232     { &hf_lpp_criticalExtensionsFuture_06,
8233       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8234         FT_NONE, BASE_NONE, NULL, 0,
8235         "T_criticalExtensionsFuture_06", HFILL }},
8236     { &hf_lpp_commonIEsAbort,
8237       { "commonIEsAbort", "lpp.commonIEsAbort",
8238         FT_NONE, BASE_NONE, NULL, 0,
8239         NULL, HFILL }},
8240     { &hf_lpp_epdu_Abort,
8241       { "epdu-Abort", "lpp.epdu_Abort",
8242         FT_UINT32, BASE_DEC, NULL, 0,
8243         "EPDU_Sequence", HFILL }},
8244     { &hf_lpp_error_r9,
8245       { "error-r9", "lpp.error_r9",
8246         FT_NONE, BASE_NONE, NULL, 0,
8247         "Error_r9_IEs", HFILL }},
8248     { &hf_lpp_criticalExtensionsFuture_07,
8249       { "criticalExtensionsFuture", "lpp.criticalExtensionsFuture",
8250         FT_NONE, BASE_NONE, NULL, 0,
8251         "T_criticalExtensionsFuture_07", HFILL }},
8252     { &hf_lpp_commonIEsError,
8253       { "commonIEsError", "lpp.commonIEsError",
8254         FT_NONE, BASE_NONE, NULL, 0,
8255         NULL, HFILL }},
8256     { &hf_lpp_epdu_Error,
8257       { "epdu-Error", "lpp.epdu_Error",
8258         FT_UINT32, BASE_DEC, NULL, 0,
8259         "EPDU_Sequence", HFILL }},
8260     { &hf_lpp_accessTypes,
8261       { "accessTypes", "lpp.accessTypes",
8262         FT_BYTES, BASE_NONE, NULL, 0,
8263         NULL, HFILL }},
8264     { &hf_lpp_plmn_Identity,
8265       { "plmn-Identity", "lpp.plmn_Identity",
8266         FT_NONE, BASE_NONE, NULL, 0,
8267         NULL, HFILL }},
8268     { &hf_lpp_mcc,
8269       { "mcc", "lpp.mcc",
8270         FT_UINT32, BASE_DEC, NULL, 0,
8271         NULL, HFILL }},
8272     { &hf_lpp_mcc_item,
8273       { "mcc item", "lpp.mcc_item",
8274         FT_UINT32, BASE_DEC, NULL, 0,
8275         "INTEGER_0_9", HFILL }},
8276     { &hf_lpp_mnc,
8277       { "mnc", "lpp.mnc",
8278         FT_UINT32, BASE_DEC, NULL, 0,
8279         NULL, HFILL }},
8280     { &hf_lpp_mnc_item,
8281       { "mnc item", "lpp.mnc_item",
8282         FT_UINT32, BASE_DEC, NULL, 0,
8283         "INTEGER_0_9", HFILL }},
8284     { &hf_lpp_cellIdentity,
8285       { "cellIdentity", "lpp.cellIdentity",
8286         FT_UINT32, BASE_DEC, VALS(lpp_T_cellIdentity_vals), 0,
8287         NULL, HFILL }},
8288     { &hf_lpp_eutra,
8289       { "eutra", "lpp.eutra",
8290         FT_BYTES, BASE_NONE, NULL, 0,
8291         "BIT_STRING_SIZE_28", HFILL }},
8292     { &hf_lpp_utra,
8293       { "utra", "lpp.utra",
8294         FT_BYTES, BASE_NONE, NULL, 0,
8295         "BIT_STRING_SIZE_32", HFILL }},
8296     { &hf_lpp_plmn_Identity_01,
8297       { "plmn-Identity", "lpp.plmn_Identity",
8298         FT_NONE, BASE_NONE, NULL, 0,
8299         "T_plmn_Identity_01", HFILL }},
8300     { &hf_lpp_mcc_01,
8301       { "mcc", "lpp.mcc",
8302         FT_UINT32, BASE_DEC, NULL, 0,
8303         "T_mcc_01", HFILL }},
8304     { &hf_lpp_mnc_01,
8305       { "mnc", "lpp.mnc",
8306         FT_UINT32, BASE_DEC, NULL, 0,
8307         "T_mnc_01", HFILL }},
8308     { &hf_lpp_locationAreaCode,
8309       { "locationAreaCode", "lpp.locationAreaCode",
8310         FT_BYTES, BASE_NONE, NULL, 0,
8311         "BIT_STRING_SIZE_16", HFILL }},
8312     { &hf_lpp_cellIdentity_01,
8313       { "cellIdentity", "lpp.cellIdentity",
8314         FT_BYTES, BASE_NONE, NULL, 0,
8315         "BIT_STRING_SIZE_16", HFILL }},
8316     { &hf_lpp_mcc_02,
8317       { "mcc", "lpp.mcc",
8318         FT_UINT32, BASE_DEC, NULL, 0,
8319         "T_mcc_02", HFILL }},
8320     { &hf_lpp_mnc_02,
8321       { "mnc", "lpp.mnc",
8322         FT_UINT32, BASE_DEC, NULL, 0,
8323         "T_mnc_02", HFILL }},
8324     { &hf_lpp_cellidentity,
8325       { "cellidentity", "lpp.cellidentity",
8326         FT_BYTES, BASE_NONE, NULL, 0,
8327         "BIT_STRING_SIZE_28", HFILL }},
8328     { &hf_lpp_latitudeSign,
8329       { "latitudeSign", "lpp.latitudeSign",
8330         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_vals), 0,
8331         NULL, HFILL }},
8332     { &hf_lpp_degreesLatitude,
8333       { "degreesLatitude", "lpp.degreesLatitude",
8334         FT_UINT32, BASE_DEC, NULL, 0,
8335         "INTEGER_0_8388607", HFILL }},
8336     { &hf_lpp_degreesLongitude,
8337       { "degreesLongitude", "lpp.degreesLongitude",
8338         FT_INT32, BASE_DEC, NULL, 0,
8339         "INTEGER_M8388608_8388607", HFILL }},
8340     { &hf_lpp_latitudeSign_01,
8341       { "latitudeSign", "lpp.latitudeSign",
8342         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_01_vals), 0,
8343         "T_latitudeSign_01", HFILL }},
8344     { &hf_lpp_uncertainty,
8345       { "uncertainty", "lpp.uncertainty",
8346         FT_UINT32, BASE_DEC, NULL, 0,
8347         "INTEGER_0_127", HFILL }},
8348     { &hf_lpp_latitudeSign_02,
8349       { "latitudeSign", "lpp.latitudeSign",
8350         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_02_vals), 0,
8351         "T_latitudeSign_02", HFILL }},
8352     { &hf_lpp_uncertaintySemiMajor,
8353       { "uncertaintySemiMajor", "lpp.uncertaintySemiMajor",
8354         FT_UINT32, BASE_DEC, NULL, 0,
8355         "INTEGER_0_127", HFILL }},
8356     { &hf_lpp_uncertaintySemiMinor,
8357       { "uncertaintySemiMinor", "lpp.uncertaintySemiMinor",
8358         FT_UINT32, BASE_DEC, NULL, 0,
8359         "INTEGER_0_127", HFILL }},
8360     { &hf_lpp_orientationMajorAxis,
8361       { "orientationMajorAxis", "lpp.orientationMajorAxis",
8362         FT_UINT32, BASE_DEC, NULL, 0,
8363         "INTEGER_0_179", HFILL }},
8364     { &hf_lpp_confidence,
8365       { "confidence", "lpp.confidence",
8366         FT_UINT32, BASE_DEC, NULL, 0,
8367         "INTEGER_0_100", HFILL }},
8368     { &hf_lpp_latitudeSign_03,
8369       { "latitudeSign", "lpp.latitudeSign",
8370         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_03_vals), 0,
8371         "T_latitudeSign_03", HFILL }},
8372     { &hf_lpp_altitudeDirection,
8373       { "altitudeDirection", "lpp.altitudeDirection",
8374         FT_UINT32, BASE_DEC, VALS(lpp_T_altitudeDirection_vals), 0,
8375         NULL, HFILL }},
8376     { &hf_lpp_altitude,
8377       { "altitude", "lpp.altitude",
8378         FT_UINT32, BASE_DEC, NULL, 0,
8379         "INTEGER_0_32767", HFILL }},
8380     { &hf_lpp_latitudeSign_04,
8381       { "latitudeSign", "lpp.latitudeSign",
8382         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_04_vals), 0,
8383         "T_latitudeSign_04", HFILL }},
8384     { &hf_lpp_altitudeDirection_01,
8385       { "altitudeDirection", "lpp.altitudeDirection",
8386         FT_UINT32, BASE_DEC, VALS(lpp_T_altitudeDirection_01_vals), 0,
8387         "T_altitudeDirection_01", HFILL }},
8388     { &hf_lpp_uncertaintyAltitude,
8389       { "uncertaintyAltitude", "lpp.uncertaintyAltitude",
8390         FT_UINT32, BASE_DEC, NULL, 0,
8391         "INTEGER_0_127", HFILL }},
8392     { &hf_lpp_latitudeSign_05,
8393       { "latitudeSign", "lpp.latitudeSign",
8394         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_05_vals), 0,
8395         "T_latitudeSign_05", HFILL }},
8396     { &hf_lpp_innerRadius,
8397       { "innerRadius", "lpp.innerRadius",
8398         FT_UINT32, BASE_DEC, NULL, 0,
8399         "INTEGER_0_65535", HFILL }},
8400     { &hf_lpp_uncertaintyRadius,
8401       { "uncertaintyRadius", "lpp.uncertaintyRadius",
8402         FT_UINT32, BASE_DEC, NULL, 0,
8403         "INTEGER_0_127", HFILL }},
8404     { &hf_lpp_offsetAngle,
8405       { "offsetAngle", "lpp.offsetAngle",
8406         FT_UINT32, BASE_DEC, NULL, 0,
8407         "INTEGER_0_179", HFILL }},
8408     { &hf_lpp_includedAngle,
8409       { "includedAngle", "lpp.includedAngle",
8410         FT_UINT32, BASE_DEC, NULL, 0,
8411         "INTEGER_0_179", HFILL }},
8412     { &hf_lpp_EPDU_Sequence_item,
8413       { "EPDU", "lpp.EPDU",
8414         FT_NONE, BASE_NONE, NULL, 0,
8415         NULL, HFILL }},
8416     { &hf_lpp_ePDU_Identifier,
8417       { "ePDU-Identifier", "lpp.ePDU_Identifier",
8418         FT_NONE, BASE_NONE, NULL, 0,
8419         NULL, HFILL }},
8420     { &hf_lpp_ePDU_Body,
8421       { "ePDU-Body", "lpp.ePDU_Body",
8422         FT_BYTES, BASE_NONE, NULL, 0,
8423         NULL, HFILL }},
8424     { &hf_lpp_ePDU_ID,
8425       { "ePDU-ID", "lpp.ePDU_ID",
8426         FT_UINT32, BASE_DEC, NULL, 0,
8427         NULL, HFILL }},
8428     { &hf_lpp_ePDU_Name,
8429       { "ePDU-Name", "lpp.ePDU_Name",
8430         FT_STRING, BASE_NONE, NULL, 0,
8431         NULL, HFILL }},
8432     { &hf_lpp_bearing,
8433       { "bearing", "lpp.bearing",
8434         FT_UINT32, BASE_DEC, NULL, 0,
8435         "INTEGER_0_359", HFILL }},
8436     { &hf_lpp_horizontalSpeed,
8437       { "horizontalSpeed", "lpp.horizontalSpeed",
8438         FT_UINT32, BASE_DEC, NULL, 0,
8439         "INTEGER_0_2047", HFILL }},
8440     { &hf_lpp_verticalDirection,
8441       { "verticalDirection", "lpp.verticalDirection",
8442         FT_UINT32, BASE_DEC, VALS(lpp_T_verticalDirection_vals), 0,
8443         NULL, HFILL }},
8444     { &hf_lpp_verticalSpeed,
8445       { "verticalSpeed", "lpp.verticalSpeed",
8446         FT_UINT32, BASE_DEC, NULL, 0,
8447         "INTEGER_0_255", HFILL }},
8448     { &hf_lpp_uncertaintySpeed,
8449       { "uncertaintySpeed", "lpp.uncertaintySpeed",
8450         FT_UINT32, BASE_DEC, NULL, 0,
8451         "INTEGER_0_255", HFILL }},
8452     { &hf_lpp_verticalDirection_01,
8453       { "verticalDirection", "lpp.verticalDirection",
8454         FT_UINT32, BASE_DEC, VALS(lpp_T_verticalDirection_01_vals), 0,
8455         "T_verticalDirection_01", HFILL }},
8456     { &hf_lpp_horizontalUncertaintySpeed,
8457       { "horizontalUncertaintySpeed", "lpp.horizontalUncertaintySpeed",
8458         FT_UINT32, BASE_DEC, NULL, 0,
8459         "INTEGER_0_255", HFILL }},
8460     { &hf_lpp_verticalUncertaintySpeed,
8461       { "verticalUncertaintySpeed", "lpp.verticalUncertaintySpeed",
8462         FT_UINT32, BASE_DEC, NULL, 0,
8463         "INTEGER_0_255", HFILL }},
8464     { &hf_lpp_ellipsoidPoint,
8465       { "ellipsoidPoint", "lpp.ellipsoidPoint",
8466         FT_BOOLEAN, BASE_NONE, NULL, 0,
8467         "BOOLEAN", HFILL }},
8468     { &hf_lpp_ellipsoidPointWithUncertaintyCircle,
8469       { "ellipsoidPointWithUncertaintyCircle", "lpp.ellipsoidPointWithUncertaintyCircle",
8470         FT_BOOLEAN, BASE_NONE, NULL, 0,
8471         "BOOLEAN", HFILL }},
8472     { &hf_lpp_ellipsoidPointWithUncertaintyEllipse,
8473       { "ellipsoidPointWithUncertaintyEllipse", "lpp.ellipsoidPointWithUncertaintyEllipse",
8474         FT_BOOLEAN, BASE_NONE, NULL, 0,
8475         "BOOLEAN", HFILL }},
8476     { &hf_lpp_polygon,
8477       { "polygon", "lpp.polygon",
8478         FT_BOOLEAN, BASE_NONE, NULL, 0,
8479         "BOOLEAN", HFILL }},
8480     { &hf_lpp_ellipsoidPointWithAltitude,
8481       { "ellipsoidPointWithAltitude", "lpp.ellipsoidPointWithAltitude",
8482         FT_BOOLEAN, BASE_NONE, NULL, 0,
8483         "BOOLEAN", HFILL }},
8484     { &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid,
8485       { "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid", "lpp.ellipsoidPointWithAltitudeAndUncertaintyEllipsoid",
8486         FT_BOOLEAN, BASE_NONE, NULL, 0,
8487         "BOOLEAN", HFILL }},
8488     { &hf_lpp_ellipsoidArc,
8489       { "ellipsoidArc", "lpp.ellipsoidArc",
8490         FT_BOOLEAN, BASE_NONE, NULL, 0,
8491         "BOOLEAN", HFILL }},
8492     { &hf_lpp_Polygon_item,
8493       { "PolygonPoints", "lpp.PolygonPoints",
8494         FT_NONE, BASE_NONE, NULL, 0,
8495         NULL, HFILL }},
8496     { &hf_lpp_latitudeSign_06,
8497       { "latitudeSign", "lpp.latitudeSign",
8498         FT_UINT32, BASE_DEC, VALS(lpp_T_latitudeSign_06_vals), 0,
8499         "T_latitudeSign_06", HFILL }},
8500     { &hf_lpp_posModes,
8501       { "posModes", "lpp.posModes",
8502         FT_BYTES, BASE_NONE, NULL, 0,
8503         NULL, HFILL }},
8504     { &hf_lpp_horizontalVelocity,
8505       { "horizontalVelocity", "lpp.horizontalVelocity",
8506         FT_BOOLEAN, BASE_NONE, NULL, 0,
8507         "BOOLEAN", HFILL }},
8508     { &hf_lpp_horizontalWithVerticalVelocity,
8509       { "horizontalWithVerticalVelocity", "lpp.horizontalWithVerticalVelocity",
8510         FT_BOOLEAN, BASE_NONE, NULL, 0,
8511         "BOOLEAN", HFILL }},
8512     { &hf_lpp_horizontalVelocityWithUncertainty,
8513       { "horizontalVelocityWithUncertainty", "lpp.horizontalVelocityWithUncertainty",
8514         FT_BOOLEAN, BASE_NONE, NULL, 0,
8515         "BOOLEAN", HFILL }},
8516     { &hf_lpp_horizontalWithVerticalVelocityAndUncertainty,
8517       { "horizontalWithVerticalVelocityAndUncertainty", "lpp.horizontalWithVerticalVelocityAndUncertainty",
8518         FT_BOOLEAN, BASE_NONE, NULL, 0,
8519         "BOOLEAN", HFILL }},
8520     { &hf_lpp_servingCellID,
8521       { "servingCellID", "lpp.servingCellID",
8522         FT_NONE, BASE_NONE, NULL, 0,
8523         "ECGI", HFILL }},
8524     { &hf_lpp_locationInformationType,
8525       { "locationInformationType", "lpp.locationInformationType",
8526         FT_UINT32, BASE_DEC, VALS(lpp_LocationInformationType_vals), 0,
8527         NULL, HFILL }},
8528     { &hf_lpp_triggeredReporting,
8529       { "triggeredReporting", "lpp.triggeredReporting",
8530         FT_NONE, BASE_NONE, NULL, 0,
8531         "TriggeredReportingCriteria", HFILL }},
8532     { &hf_lpp_periodicalReporting,
8533       { "periodicalReporting", "lpp.periodicalReporting",
8534         FT_NONE, BASE_NONE, NULL, 0,
8535         "PeriodicalReportingCriteria", HFILL }},
8536     { &hf_lpp_additionalInformation,
8537       { "additionalInformation", "lpp.additionalInformation",
8538         FT_UINT32, BASE_DEC, VALS(lpp_AdditionalInformation_vals), 0,
8539         NULL, HFILL }},
8540     { &hf_lpp_qos,
8541       { "qos", "lpp.qos",
8542         FT_NONE, BASE_NONE, NULL, 0,
8543         NULL, HFILL }},
8544     { &hf_lpp_environment,
8545       { "environment", "lpp.environment",
8546         FT_UINT32, BASE_DEC, VALS(lpp_Environment_vals), 0,
8547         NULL, HFILL }},
8548     { &hf_lpp_locationCoordinateTypes,
8549       { "locationCoordinateTypes", "lpp.locationCoordinateTypes",
8550         FT_NONE, BASE_NONE, NULL, 0,
8551         NULL, HFILL }},
8552     { &hf_lpp_velocityTypes,
8553       { "velocityTypes", "lpp.velocityTypes",
8554         FT_NONE, BASE_NONE, NULL, 0,
8555         NULL, HFILL }},
8556     { &hf_lpp_reportingAmount,
8557       { "reportingAmount", "lpp.reportingAmount",
8558         FT_UINT32, BASE_DEC, VALS(lpp_T_reportingAmount_vals), 0,
8559         NULL, HFILL }},
8560     { &hf_lpp_reportingInterval,
8561       { "reportingInterval", "lpp.reportingInterval",
8562         FT_UINT32, BASE_DEC, VALS(lpp_T_reportingInterval_vals), 0,
8563         NULL, HFILL }},
8564     { &hf_lpp_cellChange,
8565       { "cellChange", "lpp.cellChange",
8566         FT_BOOLEAN, BASE_NONE, NULL, 0,
8567         "BOOLEAN", HFILL }},
8568     { &hf_lpp_reportingDuration,
8569       { "reportingDuration", "lpp.reportingDuration",
8570         FT_UINT32, BASE_DEC, NULL, 0,
8571         NULL, HFILL }},
8572     { &hf_lpp_horizontalAccuracy,
8573       { "horizontalAccuracy", "lpp.horizontalAccuracy",
8574         FT_NONE, BASE_NONE, NULL, 0,
8575         NULL, HFILL }},
8576     { &hf_lpp_verticalCoordinateRequest,
8577       { "verticalCoordinateRequest", "lpp.verticalCoordinateRequest",
8578         FT_BOOLEAN, BASE_NONE, NULL, 0,
8579         "BOOLEAN", HFILL }},
8580     { &hf_lpp_verticalAccuracy,
8581       { "verticalAccuracy", "lpp.verticalAccuracy",
8582         FT_NONE, BASE_NONE, NULL, 0,
8583         NULL, HFILL }},
8584     { &hf_lpp_responseTime,
8585       { "responseTime", "lpp.responseTime",
8586         FT_NONE, BASE_NONE, NULL, 0,
8587         NULL, HFILL }},
8588     { &hf_lpp_velocityRequest,
8589       { "velocityRequest", "lpp.velocityRequest",
8590         FT_BOOLEAN, BASE_NONE, NULL, 0,
8591         "BOOLEAN", HFILL }},
8592     { &hf_lpp_accuracy,
8593       { "accuracy", "lpp.accuracy",
8594         FT_UINT32, BASE_DEC, NULL, 0,
8595         "INTEGER_0_127", HFILL }},
8596     { &hf_lpp_time,
8597       { "time", "lpp.time",
8598         FT_UINT32, BASE_DEC, NULL, 0,
8599         "INTEGER_1_128", HFILL }},
8600     { &hf_lpp_locationEstimate,
8601       { "locationEstimate", "lpp.locationEstimate",
8602         FT_UINT32, BASE_DEC, VALS(lpp_LocationCoordinates_vals), 0,
8603         "LocationCoordinates", HFILL }},
8604     { &hf_lpp_velocityEstimate,
8605       { "velocityEstimate", "lpp.velocityEstimate",
8606         FT_UINT32, BASE_DEC, VALS(lpp_Velocity_vals), 0,
8607         "Velocity", HFILL }},
8608     { &hf_lpp_locationError,
8609       { "locationError", "lpp.locationError",
8610         FT_NONE, BASE_NONE, NULL, 0,
8611         NULL, HFILL }},
8612     { &hf_lpp_ellipsoidPoint_01,
8613       { "ellipsoidPoint", "lpp.ellipsoidPoint",
8614         FT_NONE, BASE_NONE, NULL, 0,
8615         "Ellipsoid_Point", HFILL }},
8616     { &hf_lpp_ellipsoidPointWithUncertaintyCircle_01,
8617       { "ellipsoidPointWithUncertaintyCircle", "lpp.ellipsoidPointWithUncertaintyCircle",
8618         FT_NONE, BASE_NONE, NULL, 0,
8619         "Ellipsoid_PointWithUncertaintyCircle", HFILL }},
8620     { &hf_lpp_ellipsoidPointWithUncertaintyEllipse_01,
8621       { "ellipsoidPointWithUncertaintyEllipse", "lpp.ellipsoidPointWithUncertaintyEllipse",
8622         FT_NONE, BASE_NONE, NULL, 0,
8623         NULL, HFILL }},
8624     { &hf_lpp_polygon_01,
8625       { "polygon", "lpp.polygon",
8626         FT_UINT32, BASE_DEC, NULL, 0,
8627         NULL, HFILL }},
8628     { &hf_lpp_ellipsoidPointWithAltitude_01,
8629       { "ellipsoidPointWithAltitude", "lpp.ellipsoidPointWithAltitude",
8630         FT_NONE, BASE_NONE, NULL, 0,
8631         NULL, HFILL }},
8632     { &hf_lpp_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_01,
8633       { "ellipsoidPointWithAltitudeAndUncertaintyEllipsoid", "lpp.ellipsoidPointWithAltitudeAndUncertaintyEllipsoid",
8634         FT_NONE, BASE_NONE, NULL, 0,
8635         NULL, HFILL }},
8636     { &hf_lpp_ellipsoidArc_01,
8637       { "ellipsoidArc", "lpp.ellipsoidArc",
8638         FT_NONE, BASE_NONE, NULL, 0,
8639         NULL, HFILL }},
8640     { &hf_lpp_horizontalVelocity_01,
8641       { "horizontalVelocity", "lpp.horizontalVelocity",
8642         FT_NONE, BASE_NONE, NULL, 0,
8643         NULL, HFILL }},
8644     { &hf_lpp_horizontalWithVerticalVelocity_01,
8645       { "horizontalWithVerticalVelocity", "lpp.horizontalWithVerticalVelocity",
8646         FT_NONE, BASE_NONE, NULL, 0,
8647         NULL, HFILL }},
8648     { &hf_lpp_horizontalVelocityWithUncertainty_01,
8649       { "horizontalVelocityWithUncertainty", "lpp.horizontalVelocityWithUncertainty",
8650         FT_NONE, BASE_NONE, NULL, 0,
8651         NULL, HFILL }},
8652     { &hf_lpp_horizontalWithVerticalVelocityAndUncertainty_01,
8653       { "horizontalWithVerticalVelocityAndUncertainty", "lpp.horizontalWithVerticalVelocityAndUncertainty",
8654         FT_NONE, BASE_NONE, NULL, 0,
8655         NULL, HFILL }},
8656     { &hf_lpp_locationfailurecause,
8657       { "locationfailurecause", "lpp.locationfailurecause",
8658         FT_UINT32, BASE_DEC, VALS(lpp_LocationFailureCause_vals), 0,
8659         NULL, HFILL }},
8660     { &hf_lpp_abortCause,
8661       { "abortCause", "lpp.abortCause",
8662         FT_UINT32, BASE_DEC, VALS(lpp_T_abortCause_vals), 0,
8663         NULL, HFILL }},
8664     { &hf_lpp_errorCause,
8665       { "errorCause", "lpp.errorCause",
8666         FT_UINT32, BASE_DEC, VALS(lpp_T_errorCause_vals), 0,
8667         NULL, HFILL }},
8668     { &hf_lpp_otdoa_ReferenceCellInfo,
8669       { "otdoa-ReferenceCellInfo", "lpp.otdoa_ReferenceCellInfo",
8670         FT_NONE, BASE_NONE, NULL, 0,
8671         NULL, HFILL }},
8672     { &hf_lpp_otdoa_NeighbourCellInfo,
8673       { "otdoa-NeighbourCellInfo", "lpp.otdoa_NeighbourCellInfo",
8674         FT_UINT32, BASE_DEC, NULL, 0,
8675         "OTDOA_NeighbourCellInfoList", HFILL }},
8676     { &hf_lpp_otdoa_Error,
8677       { "otdoa-Error", "lpp.otdoa_Error",
8678         FT_UINT32, BASE_DEC, VALS(lpp_OTDOA_Error_vals), 0,
8679         NULL, HFILL }},
8680     { &hf_lpp_physCellId,
8681       { "physCellId", "lpp.physCellId",
8682         FT_UINT32, BASE_DEC, NULL, 0,
8683         "INTEGER_0_503", HFILL }},
8684     { &hf_lpp_cellGlobalId,
8685       { "cellGlobalId", "lpp.cellGlobalId",
8686         FT_NONE, BASE_NONE, NULL, 0,
8687         "ECGI", HFILL }},
8688     { &hf_lpp_earfcnRef,
8689       { "earfcnRef", "lpp.earfcnRef",
8690         FT_UINT32, BASE_DEC, NULL, 0,
8691         "ARFCN_ValueEUTRA", HFILL }},
8692     { &hf_lpp_antennaPortConfig,
8693       { "antennaPortConfig", "lpp.antennaPortConfig",
8694         FT_UINT32, BASE_DEC, VALS(lpp_T_antennaPortConfig_vals), 0,
8695         NULL, HFILL }},
8696     { &hf_lpp_cpLength,
8697       { "cpLength", "lpp.cpLength",
8698         FT_UINT32, BASE_DEC, VALS(lpp_T_cpLength_vals), 0,
8699         NULL, HFILL }},
8700     { &hf_lpp_prsInfo,
8701       { "prsInfo", "lpp.prsInfo",
8702         FT_NONE, BASE_NONE, NULL, 0,
8703         "PRS_Info", HFILL }},
8704     { &hf_lpp_prs_Bandwidth,
8705       { "prs-Bandwidth", "lpp.prs_Bandwidth",
8706         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_Bandwidth_vals), 0,
8707         NULL, HFILL }},
8708     { &hf_lpp_prs_ConfigurationIndex,
8709       { "prs-ConfigurationIndex", "lpp.prs_ConfigurationIndex",
8710         FT_UINT32, BASE_DEC, NULL, 0,
8711         "INTEGER_0_4095", HFILL }},
8712     { &hf_lpp_numDL_Frames,
8713       { "numDL-Frames", "lpp.numDL_Frames",
8714         FT_UINT32, BASE_DEC, VALS(lpp_T_numDL_Frames_vals), 0,
8715         NULL, HFILL }},
8716     { &hf_lpp_prs_MutingInfo_r9,
8717       { "prs-MutingInfo-r9", "lpp.prs_MutingInfo_r9",
8718         FT_UINT32, BASE_DEC, VALS(lpp_T_prs_MutingInfo_r9_vals), 0,
8719         NULL, HFILL }},
8720     { &hf_lpp_po2_r9,
8721       { "po2-r9", "lpp.po2_r9",
8722         FT_BYTES, BASE_NONE, NULL, 0,
8723         "BIT_STRING_SIZE_2", HFILL }},
8724     { &hf_lpp_po4_r9,
8725       { "po4-r9", "lpp.po4_r9",
8726         FT_BYTES, BASE_NONE, NULL, 0,
8727         "BIT_STRING_SIZE_4", HFILL }},
8728     { &hf_lpp_po8_r9,
8729       { "po8-r9", "lpp.po8_r9",
8730         FT_BYTES, BASE_NONE, NULL, 0,
8731         "BIT_STRING_SIZE_8", HFILL }},
8732     { &hf_lpp_po16_r9,
8733       { "po16-r9", "lpp.po16_r9",
8734         FT_BYTES, BASE_NONE, NULL, 0,
8735         "BIT_STRING_SIZE_16", HFILL }},
8736     { &hf_lpp_OTDOA_NeighbourCellInfoList_item,
8737       { "OTDOA-NeighbourFreqInfo", "lpp.OTDOA_NeighbourFreqInfo",
8738         FT_UINT32, BASE_DEC, NULL, 0,
8739         NULL, HFILL }},
8740     { &hf_lpp_OTDOA_NeighbourFreqInfo_item,
8741       { "OTDOA-NeighbourCellInfoElement", "lpp.OTDOA_NeighbourCellInfoElement",
8742         FT_NONE, BASE_NONE, NULL, 0,
8743         NULL, HFILL }},
8744     { &hf_lpp_earfcn,
8745       { "earfcn", "lpp.earfcn",
8746         FT_UINT32, BASE_DEC, NULL, 0,
8747         "ARFCN_ValueEUTRA", HFILL }},
8748     { &hf_lpp_cpLength_01,
8749       { "cpLength", "lpp.cpLength",
8750         FT_UINT32, BASE_DEC, VALS(lpp_T_cpLength_01_vals), 0,
8751         "T_cpLength_01", HFILL }},
8752     { &hf_lpp_antennaPortConfig_01,
8753       { "antennaPortConfig", "lpp.antennaPortConfig",
8754         FT_UINT32, BASE_DEC, VALS(lpp_T_antennaPortConfig_01_vals), 0,
8755         "T_antennaPortConfig_01", HFILL }},
8756     { &hf_lpp_slotNumberOffset,
8757       { "slotNumberOffset", "lpp.slotNumberOffset",
8758         FT_UINT32, BASE_DEC, NULL, 0,
8759         "INTEGER_0_19", HFILL }},
8760     { &hf_lpp_prs_SubframeOffset,
8761       { "prs-SubframeOffset", "lpp.prs_SubframeOffset",
8762         FT_UINT32, BASE_DEC, NULL, 0,
8763         "INTEGER_0_1279", HFILL }},
8764     { &hf_lpp_expectedRSTD,
8765       { "expectedRSTD", "lpp.expectedRSTD",
8766         FT_UINT32, BASE_DEC, NULL, 0,
8767         "INTEGER_0_16383", HFILL }},
8768     { &hf_lpp_expectedRSTD_Uncertainty,
8769       { "expectedRSTD-Uncertainty", "lpp.expectedRSTD_Uncertainty",
8770         FT_UINT32, BASE_DEC, NULL, 0,
8771         "INTEGER_0_1023", HFILL }},
8772     { &hf_lpp_otdoaSignalMeasurementInformation,
8773       { "otdoaSignalMeasurementInformation", "lpp.otdoaSignalMeasurementInformation",
8774         FT_NONE, BASE_NONE, NULL, 0,
8775         "OTDOA_SignalMeasurementInformation", HFILL }},
8776     { &hf_lpp_systemFrameNumber,
8777       { "systemFrameNumber", "lpp.systemFrameNumber",
8778         FT_BYTES, BASE_NONE, NULL, 0,
8779         "BIT_STRING_SIZE_10", HFILL }},
8780     { &hf_lpp_physCellIdRef,
8781       { "physCellIdRef", "lpp.physCellIdRef",
8782         FT_UINT32, BASE_DEC, NULL, 0,
8783         "INTEGER_0_503", HFILL }},
8784     { &hf_lpp_cellGlobalIdRef,
8785       { "cellGlobalIdRef", "lpp.cellGlobalIdRef",
8786         FT_NONE, BASE_NONE, NULL, 0,
8787         "ECGI", HFILL }},
8788     { &hf_lpp_referenceQuality,
8789       { "referenceQuality", "lpp.referenceQuality",
8790         FT_NONE, BASE_NONE, NULL, 0,
8791         "OTDOA_MeasQuality", HFILL }},
8792     { &hf_lpp_neighbourMeasurementList,
8793       { "neighbourMeasurementList", "lpp.neighbourMeasurementList",
8794         FT_UINT32, BASE_DEC, NULL, 0,
8795         NULL, HFILL }},
8796     { &hf_lpp_NeighbourMeasurementList_item,
8797       { "NeighbourMeasurementElement", "lpp.NeighbourMeasurementElement",
8798         FT_NONE, BASE_NONE, NULL, 0,
8799         NULL, HFILL }},
8800     { &hf_lpp_physCellIdNeighbor,
8801       { "physCellIdNeighbor", "lpp.physCellIdNeighbor",
8802         FT_UINT32, BASE_DEC, NULL, 0,
8803         "INTEGER_0_503", HFILL }},
8804     { &hf_lpp_cellGlobalIdNeighbour,
8805       { "cellGlobalIdNeighbour", "lpp.cellGlobalIdNeighbour",
8806         FT_NONE, BASE_NONE, NULL, 0,
8807         "ECGI", HFILL }},
8808     { &hf_lpp_earfcnNeighbour,
8809       { "earfcnNeighbour", "lpp.earfcnNeighbour",
8810         FT_UINT32, BASE_DEC, NULL, 0,
8811         "ARFCN_ValueEUTRA", HFILL }},
8812     { &hf_lpp_rstd,
8813       { "rstd", "lpp.rstd",
8814         FT_UINT32, BASE_DEC, NULL, 0,
8815         "INTEGER_0_12711", HFILL }},
8816     { &hf_lpp_rstd_Quality,
8817       { "rstd-Quality", "lpp.rstd_Quality",
8818         FT_NONE, BASE_NONE, NULL, 0,
8819         "OTDOA_MeasQuality", HFILL }},
8820     { &hf_lpp_error_Resolution,
8821       { "error-Resolution", "lpp.error_Resolution",
8822         FT_BYTES, BASE_NONE, NULL, 0,
8823         "BIT_STRING_SIZE_2", HFILL }},
8824     { &hf_lpp_error_Value,
8825       { "error-Value", "lpp.error_Value",
8826         FT_BYTES, BASE_NONE, NULL, 0,
8827         "BIT_STRING_SIZE_5", HFILL }},
8828     { &hf_lpp_error_NumSamples,
8829       { "error-NumSamples", "lpp.error_NumSamples",
8830         FT_BYTES, BASE_NONE, NULL, 0,
8831         "BIT_STRING_SIZE_3", HFILL }},
8832     { &hf_lpp_assistanceAvailability,
8833       { "assistanceAvailability", "lpp.assistanceAvailability",
8834         FT_BOOLEAN, BASE_NONE, NULL, 0,
8835         "BOOLEAN", HFILL }},
8836     { &hf_lpp_otdoa_Mode,
8837       { "otdoa-Mode", "lpp.otdoa_Mode",
8838         FT_BYTES, BASE_NONE, NULL, 0,
8839         NULL, HFILL }},
8840     { &hf_lpp_supportedBandListEUTRA,
8841       { "supportedBandListEUTRA", "lpp.supportedBandListEUTRA",
8842         FT_UINT32, BASE_DEC, NULL, 0,
8843         "SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA", HFILL }},
8844     { &hf_lpp_supportedBandListEUTRA_item,
8845       { "SupportedBandEUTRA", "lpp.SupportedBandEUTRA",
8846         FT_NONE, BASE_NONE, NULL, 0,
8847         NULL, HFILL }},
8848     { &hf_lpp_bandEUTRA,
8849       { "bandEUTRA", "lpp.bandEUTRA",
8850         FT_UINT32, BASE_DEC, NULL, 0,
8851         "INTEGER_1_64", HFILL }},
8852     { &hf_lpp_locationServerErrorCauses,
8853       { "locationServerErrorCauses", "lpp.locationServerErrorCauses",
8854         FT_NONE, BASE_NONE, NULL, 0,
8855         "OTDOA_LocationServerErrorCauses", HFILL }},
8856     { &hf_lpp_targetDeviceErrorCauses,
8857       { "targetDeviceErrorCauses", "lpp.targetDeviceErrorCauses",
8858         FT_NONE, BASE_NONE, NULL, 0,
8859         "OTDOA_TargetDeviceErrorCauses", HFILL }},
8860     { &hf_lpp_cause,
8861       { "cause", "lpp.cause",
8862         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_vals), 0,
8863         NULL, HFILL }},
8864     { &hf_lpp_cause_01,
8865       { "cause", "lpp.cause",
8866         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_01_vals), 0,
8867         "T_cause_01", HFILL }},
8868     { &hf_lpp_gnss_CommonAssistData,
8869       { "gnss-CommonAssistData", "lpp.gnss_CommonAssistData",
8870         FT_NONE, BASE_NONE, NULL, 0,
8871         NULL, HFILL }},
8872     { &hf_lpp_gnss_GenericAssistData,
8873       { "gnss-GenericAssistData", "lpp.gnss_GenericAssistData",
8874         FT_UINT32, BASE_DEC, NULL, 0,
8875         NULL, HFILL }},
8876     { &hf_lpp_gnss_Error,
8877       { "gnss-Error", "lpp.gnss_Error",
8878         FT_UINT32, BASE_DEC, VALS(lpp_A_GNSS_Error_vals), 0,
8879         "A_GNSS_Error", HFILL }},
8880     { &hf_lpp_gnss_ReferenceTime,
8881       { "gnss-ReferenceTime", "lpp.gnss_ReferenceTime",
8882         FT_NONE, BASE_NONE, NULL, 0,
8883         NULL, HFILL }},
8884     { &hf_lpp_gnss_ReferenceLocation,
8885       { "gnss-ReferenceLocation", "lpp.gnss_ReferenceLocation",
8886         FT_NONE, BASE_NONE, NULL, 0,
8887         NULL, HFILL }},
8888     { &hf_lpp_gnss_IonosphericModel,
8889       { "gnss-IonosphericModel", "lpp.gnss_IonosphericModel",
8890         FT_NONE, BASE_NONE, NULL, 0,
8891         NULL, HFILL }},
8892     { &hf_lpp_gnss_EarthOrientationParameters,
8893       { "gnss-EarthOrientationParameters", "lpp.gnss_EarthOrientationParameters",
8894         FT_NONE, BASE_NONE, NULL, 0,
8895         NULL, HFILL }},
8896     { &hf_lpp_GNSS_GenericAssistData_item,
8897       { "GNSS-GenericAssistDataElement", "lpp.GNSS_GenericAssistDataElement",
8898         FT_NONE, BASE_NONE, NULL, 0,
8899         NULL, HFILL }},
8900     { &hf_lpp_gnss_ID,
8901       { "gnss-ID", "lpp.gnss_ID",
8902         FT_NONE, BASE_NONE, NULL, 0,
8903         NULL, HFILL }},
8904     { &hf_lpp_sbas_ID,
8905       { "sbas-ID", "lpp.sbas_ID",
8906         FT_NONE, BASE_NONE, NULL, 0,
8907         NULL, HFILL }},
8908     { &hf_lpp_gnss_TimeModels,
8909       { "gnss-TimeModels", "lpp.gnss_TimeModels",
8910         FT_UINT32, BASE_DEC, NULL, 0,
8911         "GNSS_TimeModelList", HFILL }},
8912     { &hf_lpp_gnss_DifferentialCorrections,
8913       { "gnss-DifferentialCorrections", "lpp.gnss_DifferentialCorrections",
8914         FT_NONE, BASE_NONE, NULL, 0,
8915         NULL, HFILL }},
8916     { &hf_lpp_gnss_NavigationModel,
8917       { "gnss-NavigationModel", "lpp.gnss_NavigationModel",
8918         FT_NONE, BASE_NONE, NULL, 0,
8919         NULL, HFILL }},
8920     { &hf_lpp_gnss_RealTimeIntegrity,
8921       { "gnss-RealTimeIntegrity", "lpp.gnss_RealTimeIntegrity",
8922         FT_NONE, BASE_NONE, NULL, 0,
8923         NULL, HFILL }},
8924     { &hf_lpp_gnss_DataBitAssistance,
8925       { "gnss-DataBitAssistance", "lpp.gnss_DataBitAssistance",
8926         FT_NONE, BASE_NONE, NULL, 0,
8927         NULL, HFILL }},
8928     { &hf_lpp_gnss_AcquisitionAssistance,
8929       { "gnss-AcquisitionAssistance", "lpp.gnss_AcquisitionAssistance",
8930         FT_NONE, BASE_NONE, NULL, 0,
8931         NULL, HFILL }},
8932     { &hf_lpp_gnss_Almanac,
8933       { "gnss-Almanac", "lpp.gnss_Almanac",
8934         FT_NONE, BASE_NONE, NULL, 0,
8935         NULL, HFILL }},
8936     { &hf_lpp_gnss_UTC_Model,
8937       { "gnss-UTC-Model", "lpp.gnss_UTC_Model",
8938         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_UTC_Model_vals), 0,
8939         NULL, HFILL }},
8940     { &hf_lpp_gnss_AuxiliaryInformation,
8941       { "gnss-AuxiliaryInformation", "lpp.gnss_AuxiliaryInformation",
8942         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_AuxiliaryInformation_vals), 0,
8943         NULL, HFILL }},
8944     { &hf_lpp_gnss_SystemTime,
8945       { "gnss-SystemTime", "lpp.gnss_SystemTime",
8946         FT_NONE, BASE_NONE, NULL, 0,
8947         NULL, HFILL }},
8948     { &hf_lpp_referenceTimeUnc,
8949       { "referenceTimeUnc", "lpp.referenceTimeUnc",
8950         FT_UINT32, BASE_DEC, NULL, 0,
8951         "INTEGER_0_127", HFILL }},
8952     { &hf_lpp_gnss_ReferenceTimeForCells,
8953       { "gnss-ReferenceTimeForCells", "lpp.gnss_ReferenceTimeForCells",
8954         FT_UINT32, BASE_DEC, NULL, 0,
8955         "SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell", HFILL }},
8956     { &hf_lpp_gnss_ReferenceTimeForCells_item,
8957       { "GNSS-ReferenceTimeForOneCell", "lpp.GNSS_ReferenceTimeForOneCell",
8958         FT_NONE, BASE_NONE, NULL, 0,
8959         NULL, HFILL }},
8960     { &hf_lpp_networkTime,
8961       { "networkTime", "lpp.networkTime",
8962         FT_NONE, BASE_NONE, NULL, 0,
8963         NULL, HFILL }},
8964     { &hf_lpp_bsAlign,
8965       { "bsAlign", "lpp.bsAlign",
8966         FT_UINT32, BASE_DEC, VALS(lpp_T_bsAlign_vals), 0,
8967         NULL, HFILL }},
8968     { &hf_lpp_gnss_TimeID,
8969       { "gnss-TimeID", "lpp.gnss_TimeID",
8970         FT_NONE, BASE_NONE, NULL, 0,
8971         "GNSS_ID", HFILL }},
8972     { &hf_lpp_gnss_DayNumber,
8973       { "gnss-DayNumber", "lpp.gnss_DayNumber",
8974         FT_UINT32, BASE_DEC, NULL, 0,
8975         "INTEGER_0_32767", HFILL }},
8976     { &hf_lpp_gnss_TimeOfDay,
8977       { "gnss-TimeOfDay", "lpp.gnss_TimeOfDay",
8978         FT_UINT32, BASE_DEC, NULL, 0,
8979         "INTEGER_0_86399", HFILL }},
8980     { &hf_lpp_gnss_TimeOfDayFrac_msec,
8981       { "gnss-TimeOfDayFrac-msec", "lpp.gnss_TimeOfDayFrac_msec",
8982         FT_UINT32, BASE_DEC, NULL, 0,
8983         "INTEGER_0_999", HFILL }},
8984     { &hf_lpp_notificationOfLeapSecond,
8985       { "notificationOfLeapSecond", "lpp.notificationOfLeapSecond",
8986         FT_BYTES, BASE_NONE, NULL, 0,
8987         "BIT_STRING_SIZE_2", HFILL }},
8988     { &hf_lpp_gps_TOW_Assist,
8989       { "gps-TOW-Assist", "lpp.gps_TOW_Assist",
8990         FT_UINT32, BASE_DEC, NULL, 0,
8991         NULL, HFILL }},
8992     { &hf_lpp_GPS_TOW_Assist_item,
8993       { "GPS-TOW-AssistElement", "lpp.GPS_TOW_AssistElement",
8994         FT_NONE, BASE_NONE, NULL, 0,
8995         NULL, HFILL }},
8996     { &hf_lpp_satelliteID,
8997       { "satelliteID", "lpp.satelliteID",
8998         FT_UINT32, BASE_DEC, NULL, 0,
8999         "INTEGER_1_64", HFILL }},
9000     { &hf_lpp_tlmWord,
9001       { "tlmWord", "lpp.tlmWord",
9002         FT_UINT32, BASE_DEC, NULL, 0,
9003         "INTEGER_0_16383", HFILL }},
9004     { &hf_lpp_antiSpoof,
9005       { "antiSpoof", "lpp.antiSpoof",
9006         FT_UINT32, BASE_DEC, NULL, 0,
9007         "INTEGER_0_1", HFILL }},
9008     { &hf_lpp_alert,
9009       { "alert", "lpp.alert",
9010         FT_UINT32, BASE_DEC, NULL, 0,
9011         "INTEGER_0_1", HFILL }},
9012     { &hf_lpp_tlmRsvdBits,
9013       { "tlmRsvdBits", "lpp.tlmRsvdBits",
9014         FT_UINT32, BASE_DEC, NULL, 0,
9015         "INTEGER_0_3", HFILL }},
9016     { &hf_lpp_secondsFromFrameStructureStart,
9017       { "secondsFromFrameStructureStart", "lpp.secondsFromFrameStructureStart",
9018         FT_UINT32, BASE_DEC, NULL, 0,
9019         "INTEGER_0_12533", HFILL }},
9020     { &hf_lpp_fractionalSecondsFromFrameStructureStart,
9021       { "fractionalSecondsFromFrameStructureStart", "lpp.fractionalSecondsFromFrameStructureStart",
9022         FT_UINT32, BASE_DEC, NULL, 0,
9023         "INTEGER_0_3999999", HFILL }},
9024     { &hf_lpp_frameDrift,
9025       { "frameDrift", "lpp.frameDrift",
9026         FT_INT32, BASE_DEC, NULL, 0,
9027         "INTEGER_M64_63", HFILL }},
9028     { &hf_lpp_cellID,
9029       { "cellID", "lpp.cellID",
9030         FT_UINT32, BASE_DEC, VALS(lpp_T_cellID_vals), 0,
9031         NULL, HFILL }},
9032     { &hf_lpp_eUTRA,
9033       { "eUTRA", "lpp.eUTRA",
9034         FT_NONE, BASE_NONE, NULL, 0,
9035         NULL, HFILL }},
9036     { &hf_lpp_cellGlobalIdEUTRA,
9037       { "cellGlobalIdEUTRA", "lpp.cellGlobalIdEUTRA",
9038         FT_NONE, BASE_NONE, NULL, 0,
9039         "CellGlobalIdEUTRA_AndUTRA", HFILL }},
9040     { &hf_lpp_uTRA,
9041       { "uTRA", "lpp.uTRA",
9042         FT_NONE, BASE_NONE, NULL, 0,
9043         NULL, HFILL }},
9044     { &hf_lpp_mode,
9045       { "mode", "lpp.mode",
9046         FT_UINT32, BASE_DEC, VALS(lpp_T_mode_vals), 0,
9047         NULL, HFILL }},
9048     { &hf_lpp_fdd,
9049       { "fdd", "lpp.fdd",
9050         FT_NONE, BASE_NONE, NULL, 0,
9051         NULL, HFILL }},
9052     { &hf_lpp_primary_CPICH_Info,
9053       { "primary-CPICH-Info", "lpp.primary_CPICH_Info",
9054         FT_UINT32, BASE_DEC, NULL, 0,
9055         "INTEGER_0_511", HFILL }},
9056     { &hf_lpp_tdd,
9057       { "tdd", "lpp.tdd",
9058         FT_NONE, BASE_NONE, NULL, 0,
9059         NULL, HFILL }},
9060     { &hf_lpp_cellParameters,
9061       { "cellParameters", "lpp.cellParameters",
9062         FT_UINT32, BASE_DEC, NULL, 0,
9063         "INTEGER_0_127", HFILL }},
9064     { &hf_lpp_cellGlobalIdUTRA,
9065       { "cellGlobalIdUTRA", "lpp.cellGlobalIdUTRA",
9066         FT_NONE, BASE_NONE, NULL, 0,
9067         "CellGlobalIdEUTRA_AndUTRA", HFILL }},
9068     { &hf_lpp_uarfcn,
9069       { "uarfcn", "lpp.uarfcn",
9070         FT_UINT32, BASE_DEC, NULL, 0,
9071         "ARFCN_ValueUTRA", HFILL }},
9072     { &hf_lpp_gSM,
9073       { "gSM", "lpp.gSM",
9074         FT_NONE, BASE_NONE, NULL, 0,
9075         NULL, HFILL }},
9076     { &hf_lpp_bcchCarrier,
9077       { "bcchCarrier", "lpp.bcchCarrier",
9078         FT_UINT32, BASE_DEC, NULL, 0,
9079         "INTEGER_0_1023", HFILL }},
9080     { &hf_lpp_bsic,
9081       { "bsic", "lpp.bsic",
9082         FT_UINT32, BASE_DEC, NULL, 0,
9083         "INTEGER_0_63", HFILL }},
9084     { &hf_lpp_cellGlobalIdGERAN,
9085       { "cellGlobalIdGERAN", "lpp.cellGlobalIdGERAN",
9086         FT_NONE, BASE_NONE, NULL, 0,
9087         NULL, HFILL }},
9088     { &hf_lpp_threeDlocation,
9089       { "threeDlocation", "lpp.threeDlocation",
9090         FT_NONE, BASE_NONE, NULL, 0,
9091         "EllipsoidPointWithAltitudeAndUncertaintyEllipsoid", HFILL }},
9092     { &hf_lpp_klobucharModel,
9093       { "klobucharModel", "lpp.klobucharModel",
9094         FT_NONE, BASE_NONE, NULL, 0,
9095         "KlobucharModelParameter", HFILL }},
9096     { &hf_lpp_neQuickModel,
9097       { "neQuickModel", "lpp.neQuickModel",
9098         FT_NONE, BASE_NONE, NULL, 0,
9099         "NeQuickModelParameter", HFILL }},
9100     { &hf_lpp_dataID,
9101       { "dataID", "lpp.dataID",
9102         FT_BYTES, BASE_NONE, NULL, 0,
9103         "BIT_STRING_SIZE_2", HFILL }},
9104     { &hf_lpp_alfa0,
9105       { "alfa0", "lpp.alfa0",
9106         FT_INT32, BASE_DEC, NULL, 0,
9107         "INTEGER_M128_127", HFILL }},
9108     { &hf_lpp_alfa1,
9109       { "alfa1", "lpp.alfa1",
9110         FT_INT32, BASE_DEC, NULL, 0,
9111         "INTEGER_M128_127", HFILL }},
9112     { &hf_lpp_alfa2,
9113       { "alfa2", "lpp.alfa2",
9114         FT_INT32, BASE_DEC, NULL, 0,
9115         "INTEGER_M128_127", HFILL }},
9116     { &hf_lpp_alfa3,
9117       { "alfa3", "lpp.alfa3",
9118         FT_INT32, BASE_DEC, NULL, 0,
9119         "INTEGER_M128_127", HFILL }},
9120     { &hf_lpp_beta0,
9121       { "beta0", "lpp.beta0",
9122         FT_INT32, BASE_DEC, NULL, 0,
9123         "INTEGER_M128_127", HFILL }},
9124     { &hf_lpp_beta1,
9125       { "beta1", "lpp.beta1",
9126         FT_INT32, BASE_DEC, NULL, 0,
9127         "INTEGER_M128_127", HFILL }},
9128     { &hf_lpp_beta2,
9129       { "beta2", "lpp.beta2",
9130         FT_INT32, BASE_DEC, NULL, 0,
9131         "INTEGER_M128_127", HFILL }},
9132     { &hf_lpp_beta3,
9133       { "beta3", "lpp.beta3",
9134         FT_INT32, BASE_DEC, NULL, 0,
9135         "INTEGER_M128_127", HFILL }},
9136     { &hf_lpp_ai0,
9137       { "ai0", "lpp.ai0",
9138         FT_UINT32, BASE_DEC, NULL, 0,
9139         "INTEGER_0_4095", HFILL }},
9140     { &hf_lpp_ai1,
9141       { "ai1", "lpp.ai1",
9142         FT_UINT32, BASE_DEC, NULL, 0,
9143         "INTEGER_0_4095", HFILL }},
9144     { &hf_lpp_ai2,
9145       { "ai2", "lpp.ai2",
9146         FT_UINT32, BASE_DEC, NULL, 0,
9147         "INTEGER_0_4095", HFILL }},
9148     { &hf_lpp_ionoStormFlag1,
9149       { "ionoStormFlag1", "lpp.ionoStormFlag1",
9150         FT_UINT32, BASE_DEC, NULL, 0,
9151         "INTEGER_0_1", HFILL }},
9152     { &hf_lpp_ionoStormFlag2,
9153       { "ionoStormFlag2", "lpp.ionoStormFlag2",
9154         FT_UINT32, BASE_DEC, NULL, 0,
9155         "INTEGER_0_1", HFILL }},
9156     { &hf_lpp_ionoStormFlag3,
9157       { "ionoStormFlag3", "lpp.ionoStormFlag3",
9158         FT_UINT32, BASE_DEC, NULL, 0,
9159         "INTEGER_0_1", HFILL }},
9160     { &hf_lpp_ionoStormFlag4,
9161       { "ionoStormFlag4", "lpp.ionoStormFlag4",
9162         FT_UINT32, BASE_DEC, NULL, 0,
9163         "INTEGER_0_1", HFILL }},
9164     { &hf_lpp_ionoStormFlag5,
9165       { "ionoStormFlag5", "lpp.ionoStormFlag5",
9166         FT_UINT32, BASE_DEC, NULL, 0,
9167         "INTEGER_0_1", HFILL }},
9168     { &hf_lpp_teop,
9169       { "teop", "lpp.teop",
9170         FT_UINT32, BASE_DEC, NULL, 0,
9171         "INTEGER_0_65535", HFILL }},
9172     { &hf_lpp_pmX,
9173       { "pmX", "lpp.pmX",
9174         FT_INT32, BASE_DEC, NULL, 0,
9175         "INTEGER_M1048576_1048575", HFILL }},
9176     { &hf_lpp_pmXdot,
9177       { "pmXdot", "lpp.pmXdot",
9178         FT_INT32, BASE_DEC, NULL, 0,
9179         "INTEGER_M16384_16383", HFILL }},
9180     { &hf_lpp_pmY,
9181       { "pmY", "lpp.pmY",
9182         FT_INT32, BASE_DEC, NULL, 0,
9183         "INTEGER_M1048576_1048575", HFILL }},
9184     { &hf_lpp_pmYdot,
9185       { "pmYdot", "lpp.pmYdot",
9186         FT_INT32, BASE_DEC, NULL, 0,
9187         "INTEGER_M16384_16383", HFILL }},
9188     { &hf_lpp_deltaUT1,
9189       { "deltaUT1", "lpp.deltaUT1",
9190         FT_INT32, BASE_DEC, NULL, 0,
9191         "INTEGER_M1073741824_1073741823", HFILL }},
9192     { &hf_lpp_deltaUT1dot,
9193       { "deltaUT1dot", "lpp.deltaUT1dot",
9194         FT_INT32, BASE_DEC, NULL, 0,
9195         "INTEGER_M262144_262143", HFILL }},
9196     { &hf_lpp_GNSS_TimeModelList_item,
9197       { "GNSS-TimeModelElement", "lpp.GNSS_TimeModelElement",
9198         FT_NONE, BASE_NONE, NULL, 0,
9199         NULL, HFILL }},
9200     { &hf_lpp_gnss_TimeModelRefTime,
9201       { "gnss-TimeModelRefTime", "lpp.gnss_TimeModelRefTime",
9202         FT_UINT32, BASE_DEC, NULL, 0,
9203         "INTEGER_0_65535", HFILL }},
9204     { &hf_lpp_tA0,
9205       { "tA0", "lpp.tA0",
9206         FT_INT32, BASE_DEC, NULL, 0,
9207         "INTEGER_M67108864_67108863", HFILL }},
9208     { &hf_lpp_tA1,
9209       { "tA1", "lpp.tA1",
9210         FT_INT32, BASE_DEC, NULL, 0,
9211         "INTEGER_M4096_4095", HFILL }},
9212     { &hf_lpp_tA2,
9213       { "tA2", "lpp.tA2",
9214         FT_INT32, BASE_DEC, NULL, 0,
9215         "INTEGER_M64_63", HFILL }},
9216     { &hf_lpp_gnss_TO_ID,
9217       { "gnss-TO-ID", "lpp.gnss_TO_ID",
9218         FT_UINT32, BASE_DEC, NULL, 0,
9219         "INTEGER_1_15", HFILL }},
9220     { &hf_lpp_weekNumber,
9221       { "weekNumber", "lpp.weekNumber",
9222         FT_UINT32, BASE_DEC, NULL, 0,
9223         "INTEGER_0_8191", HFILL }},
9224     { &hf_lpp_deltaT,
9225       { "deltaT", "lpp.deltaT",
9226         FT_INT32, BASE_DEC, NULL, 0,
9227         "INTEGER_M128_127", HFILL }},
9228     { &hf_lpp_dgnss_RefTime,
9229       { "dgnss-RefTime", "lpp.dgnss_RefTime",
9230         FT_UINT32, BASE_DEC, NULL, 0,
9231         "INTEGER_0_3599", HFILL }},
9232     { &hf_lpp_dgnss_SgnTypeList,
9233       { "dgnss-SgnTypeList", "lpp.dgnss_SgnTypeList",
9234         FT_UINT32, BASE_DEC, NULL, 0,
9235         NULL, HFILL }},
9236     { &hf_lpp_DGNSS_SgnTypeList_item,
9237       { "DGNSS-SgnTypeElement", "lpp.DGNSS_SgnTypeElement",
9238         FT_NONE, BASE_NONE, NULL, 0,
9239         NULL, HFILL }},
9240     { &hf_lpp_gnss_SignalID,
9241       { "gnss-SignalID", "lpp.gnss_SignalID",
9242         FT_NONE, BASE_NONE, NULL, 0,
9243         NULL, HFILL }},
9244     { &hf_lpp_gnss_StatusHealth,
9245       { "gnss-StatusHealth", "lpp.gnss_StatusHealth",
9246         FT_UINT32, BASE_DEC, NULL, 0,
9247         "INTEGER_0_7", HFILL }},
9248     { &hf_lpp_dgnss_SatList,
9249       { "dgnss-SatList", "lpp.dgnss_SatList",
9250         FT_UINT32, BASE_DEC, NULL, 0,
9251         NULL, HFILL }},
9252     { &hf_lpp_DGNSS_SatList_item,
9253       { "DGNSS-CorrectionsElement", "lpp.DGNSS_CorrectionsElement",
9254         FT_NONE, BASE_NONE, NULL, 0,
9255         NULL, HFILL }},
9256     { &hf_lpp_svID,
9257       { "svID", "lpp.svID",
9258         FT_NONE, BASE_NONE, NULL, 0,
9259         "SV_ID", HFILL }},
9260     { &hf_lpp_iod,
9261       { "iod", "lpp.iod",
9262         FT_BYTES, BASE_NONE, NULL, 0,
9263         "BIT_STRING_SIZE_11", HFILL }},
9264     { &hf_lpp_udre,
9265       { "udre", "lpp.udre",
9266         FT_UINT32, BASE_DEC, NULL, 0,
9267         "INTEGER_0_3", HFILL }},
9268     { &hf_lpp_pseudoRangeCor,
9269       { "pseudoRangeCor", "lpp.pseudoRangeCor",
9270         FT_INT32, BASE_DEC, NULL, 0,
9271         "INTEGER_M2047_2047", HFILL }},
9272     { &hf_lpp_rangeRateCor,
9273       { "rangeRateCor", "lpp.rangeRateCor",
9274         FT_INT32, BASE_DEC, NULL, 0,
9275         "INTEGER_M127_127", HFILL }},
9276     { &hf_lpp_udreGrowthRate,
9277       { "udreGrowthRate", "lpp.udreGrowthRate",
9278         FT_UINT32, BASE_DEC, NULL, 0,
9279         "INTEGER_0_7", HFILL }},
9280     { &hf_lpp_udreValidityTime,
9281       { "udreValidityTime", "lpp.udreValidityTime",
9282         FT_UINT32, BASE_DEC, NULL, 0,
9283         "INTEGER_0_7", HFILL }},
9284     { &hf_lpp_nonBroadcastIndFlag,
9285       { "nonBroadcastIndFlag", "lpp.nonBroadcastIndFlag",
9286         FT_UINT32, BASE_DEC, NULL, 0,
9287         "INTEGER_0_1", HFILL }},
9288     { &hf_lpp_gnss_SatelliteList,
9289       { "gnss-SatelliteList", "lpp.gnss_SatelliteList",
9290         FT_UINT32, BASE_DEC, NULL, 0,
9291         "GNSS_NavModelSatelliteList", HFILL }},
9292     { &hf_lpp_GNSS_NavModelSatelliteList_item,
9293       { "GNSS-NavModelSatelliteElement", "lpp.GNSS_NavModelSatelliteElement",
9294         FT_NONE, BASE_NONE, NULL, 0,
9295         NULL, HFILL }},
9296     { &hf_lpp_svHealth,
9297       { "svHealth", "lpp.svHealth",
9298         FT_BYTES, BASE_NONE, NULL, 0,
9299         "BIT_STRING_SIZE_8", HFILL }},
9300     { &hf_lpp_gnss_ClockModel,
9301       { "gnss-ClockModel", "lpp.gnss_ClockModel",
9302         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_ClockModel_vals), 0,
9303         NULL, HFILL }},
9304     { &hf_lpp_gnss_OrbitModel,
9305       { "gnss-OrbitModel", "lpp.gnss_OrbitModel",
9306         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_OrbitModel_vals), 0,
9307         NULL, HFILL }},
9308     { &hf_lpp_standardClockModelList,
9309       { "standardClockModelList", "lpp.standardClockModelList",
9310         FT_UINT32, BASE_DEC, NULL, 0,
9311         NULL, HFILL }},
9312     { &hf_lpp_nav_ClockModel,
9313       { "nav-ClockModel", "lpp.nav_ClockModel",
9314         FT_NONE, BASE_NONE, NULL, 0,
9315         NULL, HFILL }},
9316     { &hf_lpp_cnav_ClockModel,
9317       { "cnav-ClockModel", "lpp.cnav_ClockModel",
9318         FT_NONE, BASE_NONE, NULL, 0,
9319         NULL, HFILL }},
9320     { &hf_lpp_glonass_ClockModel,
9321       { "glonass-ClockModel", "lpp.glonass_ClockModel",
9322         FT_NONE, BASE_NONE, NULL, 0,
9323         NULL, HFILL }},
9324     { &hf_lpp_sbas_ClockModel,
9325       { "sbas-ClockModel", "lpp.sbas_ClockModel",
9326         FT_NONE, BASE_NONE, NULL, 0,
9327         NULL, HFILL }},
9328     { &hf_lpp_keplerianSet,
9329       { "keplerianSet", "lpp.keplerianSet",
9330         FT_NONE, BASE_NONE, NULL, 0,
9331         "NavModelKeplerianSet", HFILL }},
9332     { &hf_lpp_nav_KeplerianSet,
9333       { "nav-KeplerianSet", "lpp.nav_KeplerianSet",
9334         FT_NONE, BASE_NONE, NULL, 0,
9335         "NavModelNAV_KeplerianSet", HFILL }},
9336     { &hf_lpp_cnav_KeplerianSet,
9337       { "cnav-KeplerianSet", "lpp.cnav_KeplerianSet",
9338         FT_NONE, BASE_NONE, NULL, 0,
9339         "NavModelCNAV_KeplerianSet", HFILL }},
9340     { &hf_lpp_glonass_ECEF,
9341       { "glonass-ECEF", "lpp.glonass_ECEF",
9342         FT_NONE, BASE_NONE, NULL, 0,
9343         "NavModel_GLONASS_ECEF", HFILL }},
9344     { &hf_lpp_sbas_ECEF,
9345       { "sbas-ECEF", "lpp.sbas_ECEF",
9346         FT_NONE, BASE_NONE, NULL, 0,
9347         "NavModel_SBAS_ECEF", HFILL }},
9348     { &hf_lpp_StandardClockModelList_item,
9349       { "StandardClockModelElement", "lpp.StandardClockModelElement",
9350         FT_NONE, BASE_NONE, NULL, 0,
9351         NULL, HFILL }},
9352     { &hf_lpp_stanClockToc,
9353       { "stanClockToc", "lpp.stanClockToc",
9354         FT_UINT32, BASE_DEC, NULL, 0,
9355         "INTEGER_0_16383", HFILL }},
9356     { &hf_lpp_stanClockAF2,
9357       { "stanClockAF2", "lpp.stanClockAF2",
9358         FT_INT32, BASE_DEC, NULL, 0,
9359         "INTEGER_M2048_2047", HFILL }},
9360     { &hf_lpp_stanClockAF1,
9361       { "stanClockAF1", "lpp.stanClockAF1",
9362         FT_INT32, BASE_DEC, NULL, 0,
9363         "INTEGER_M131072_131071", HFILL }},
9364     { &hf_lpp_stanClockAF0,
9365       { "stanClockAF0", "lpp.stanClockAF0",
9366         FT_INT32, BASE_DEC, NULL, 0,
9367         "INTEGER_M134217728_134217727", HFILL }},
9368     { &hf_lpp_stanClockTgd,
9369       { "stanClockTgd", "lpp.stanClockTgd",
9370         FT_INT32, BASE_DEC, NULL, 0,
9371         "INTEGER_M512_511", HFILL }},
9372     { &hf_lpp_stanModelID,
9373       { "stanModelID", "lpp.stanModelID",
9374         FT_UINT32, BASE_DEC, NULL, 0,
9375         "INTEGER_0_1", HFILL }},
9376     { &hf_lpp_navToc,
9377       { "navToc", "lpp.navToc",
9378         FT_UINT32, BASE_DEC, NULL, 0,
9379         "INTEGER_0_37799", HFILL }},
9380     { &hf_lpp_navaf2,
9381       { "navaf2", "lpp.navaf2",
9382         FT_INT32, BASE_DEC, NULL, 0,
9383         "INTEGER_M128_127", HFILL }},
9384     { &hf_lpp_navaf1,
9385       { "navaf1", "lpp.navaf1",
9386         FT_INT32, BASE_DEC, NULL, 0,
9387         "INTEGER_M32768_32767", HFILL }},
9388     { &hf_lpp_navaf0,
9389       { "navaf0", "lpp.navaf0",
9390         FT_INT32, BASE_DEC, NULL, 0,
9391         "INTEGER_M2097152_2097151", HFILL }},
9392     { &hf_lpp_navTgd,
9393       { "navTgd", "lpp.navTgd",
9394         FT_INT32, BASE_DEC, NULL, 0,
9395         "INTEGER_M128_127", HFILL }},
9396     { &hf_lpp_cnavToc,
9397       { "cnavToc", "lpp.cnavToc",
9398         FT_UINT32, BASE_DEC, NULL, 0,
9399         "INTEGER_0_2015", HFILL }},
9400     { &hf_lpp_cnavTop,
9401       { "cnavTop", "lpp.cnavTop",
9402         FT_UINT32, BASE_DEC, NULL, 0,
9403         "INTEGER_0_2015", HFILL }},
9404     { &hf_lpp_cnavURA0,
9405       { "cnavURA0", "lpp.cnavURA0",
9406         FT_INT32, BASE_DEC, NULL, 0,
9407         "INTEGER_M16_15", HFILL }},
9408     { &hf_lpp_cnavURA1,
9409       { "cnavURA1", "lpp.cnavURA1",
9410         FT_UINT32, BASE_DEC, NULL, 0,
9411         "INTEGER_0_7", HFILL }},
9412     { &hf_lpp_cnavURA2,
9413       { "cnavURA2", "lpp.cnavURA2",
9414         FT_UINT32, BASE_DEC, NULL, 0,
9415         "INTEGER_0_7", HFILL }},
9416     { &hf_lpp_cnavAf2,
9417       { "cnavAf2", "lpp.cnavAf2",
9418         FT_INT32, BASE_DEC, NULL, 0,
9419         "INTEGER_M512_511", HFILL }},
9420     { &hf_lpp_cnavAf1,
9421       { "cnavAf1", "lpp.cnavAf1",
9422         FT_INT32, BASE_DEC, NULL, 0,
9423         "INTEGER_M524288_524287", HFILL }},
9424     { &hf_lpp_cnavAf0,
9425       { "cnavAf0", "lpp.cnavAf0",
9426         FT_INT32, BASE_DEC, NULL, 0,
9427         "INTEGER_M33554432_33554431", HFILL }},
9428     { &hf_lpp_cnavTgd,
9429       { "cnavTgd", "lpp.cnavTgd",
9430         FT_INT32, BASE_DEC, NULL, 0,
9431         "INTEGER_M4096_4095", HFILL }},
9432     { &hf_lpp_cnavISCl1cp,
9433       { "cnavISCl1cp", "lpp.cnavISCl1cp",
9434         FT_INT32, BASE_DEC, NULL, 0,
9435         "INTEGER_M4096_4095", HFILL }},
9436     { &hf_lpp_cnavISCl1cd,
9437       { "cnavISCl1cd", "lpp.cnavISCl1cd",
9438         FT_INT32, BASE_DEC, NULL, 0,
9439         "INTEGER_M4096_4095", HFILL }},
9440     { &hf_lpp_cnavISCl1ca,
9441       { "cnavISCl1ca", "lpp.cnavISCl1ca",
9442         FT_INT32, BASE_DEC, NULL, 0,
9443         "INTEGER_M4096_4095", HFILL }},
9444     { &hf_lpp_cnavISCl2c,
9445       { "cnavISCl2c", "lpp.cnavISCl2c",
9446         FT_INT32, BASE_DEC, NULL, 0,
9447         "INTEGER_M4096_4095", HFILL }},
9448     { &hf_lpp_cnavISCl5i5,
9449       { "cnavISCl5i5", "lpp.cnavISCl5i5",
9450         FT_INT32, BASE_DEC, NULL, 0,
9451         "INTEGER_M4096_4095", HFILL }},
9452     { &hf_lpp_cnavISCl5q5,
9453       { "cnavISCl5q5", "lpp.cnavISCl5q5",
9454         FT_INT32, BASE_DEC, NULL, 0,
9455         "INTEGER_M4096_4095", HFILL }},
9456     { &hf_lpp_gloTau,
9457       { "gloTau", "lpp.gloTau",
9458         FT_INT32, BASE_DEC, NULL, 0,
9459         "INTEGER_M2097152_2097151", HFILL }},
9460     { &hf_lpp_gloGamma,
9461       { "gloGamma", "lpp.gloGamma",
9462         FT_INT32, BASE_DEC, NULL, 0,
9463         "INTEGER_M1024_1023", HFILL }},
9464     { &hf_lpp_gloDeltaTau,
9465       { "gloDeltaTau", "lpp.gloDeltaTau",
9466         FT_INT32, BASE_DEC, NULL, 0,
9467         "INTEGER_M16_15", HFILL }},
9468     { &hf_lpp_sbasTo,
9469       { "sbasTo", "lpp.sbasTo",
9470         FT_UINT32, BASE_DEC, NULL, 0,
9471         "INTEGER_0_5399", HFILL }},
9472     { &hf_lpp_sbasAgfo,
9473       { "sbasAgfo", "lpp.sbasAgfo",
9474         FT_INT32, BASE_DEC, NULL, 0,
9475         "INTEGER_M2048_2047", HFILL }},
9476     { &hf_lpp_sbasAgf1,
9477       { "sbasAgf1", "lpp.sbasAgf1",
9478         FT_INT32, BASE_DEC, NULL, 0,
9479         "INTEGER_M128_127", HFILL }},
9480     { &hf_lpp_keplerToe,
9481       { "keplerToe", "lpp.keplerToe",
9482         FT_UINT32, BASE_DEC, NULL, 0,
9483         "INTEGER_0_16383", HFILL }},
9484     { &hf_lpp_keplerW,
9485       { "keplerW", "lpp.keplerW",
9486         FT_INT32, BASE_DEC, NULL, 0,
9487         "INTEGER_M2147483648_2147483647", HFILL }},
9488     { &hf_lpp_keplerDeltaN,
9489       { "keplerDeltaN", "lpp.keplerDeltaN",
9490         FT_INT32, BASE_DEC, NULL, 0,
9491         "INTEGER_M32768_32767", HFILL }},
9492     { &hf_lpp_keplerM0,
9493       { "keplerM0", "lpp.keplerM0",
9494         FT_INT32, BASE_DEC, NULL, 0,
9495         "INTEGER_M2147483648_2147483647", HFILL }},
9496     { &hf_lpp_keplerOmegaDot,
9497       { "keplerOmegaDot", "lpp.keplerOmegaDot",
9498         FT_INT32, BASE_DEC, NULL, 0,
9499         "INTEGER_M8388608_8388607", HFILL }},
9500     { &hf_lpp_keplerE,
9501       { "keplerE", "lpp.keplerE",
9502         FT_UINT32, BASE_DEC, NULL, 0,
9503         "INTEGER_0_4294967295", HFILL }},
9504     { &hf_lpp_keplerIDot,
9505       { "keplerIDot", "lpp.keplerIDot",
9506         FT_INT32, BASE_DEC, NULL, 0,
9507         "INTEGER_M8192_8191", HFILL }},
9508     { &hf_lpp_keplerAPowerHalf,
9509       { "keplerAPowerHalf", "lpp.keplerAPowerHalf",
9510         FT_UINT32, BASE_DEC, NULL, 0,
9511         "INTEGER_0_4294967295", HFILL }},
9512     { &hf_lpp_keplerI0,
9513       { "keplerI0", "lpp.keplerI0",
9514         FT_INT32, BASE_DEC, NULL, 0,
9515         "INTEGER_M2147483648_2147483647", HFILL }},
9516     { &hf_lpp_keplerOmega0,
9517       { "keplerOmega0", "lpp.keplerOmega0",
9518         FT_INT32, BASE_DEC, NULL, 0,
9519         "INTEGER_M2147483648_2147483647", HFILL }},
9520     { &hf_lpp_keplerCrs,
9521       { "keplerCrs", "lpp.keplerCrs",
9522         FT_INT32, BASE_DEC, NULL, 0,
9523         "INTEGER_M32768_32767", HFILL }},
9524     { &hf_lpp_keplerCis,
9525       { "keplerCis", "lpp.keplerCis",
9526         FT_INT32, BASE_DEC, NULL, 0,
9527         "INTEGER_M32768_32767", HFILL }},
9528     { &hf_lpp_keplerCus,
9529       { "keplerCus", "lpp.keplerCus",
9530         FT_INT32, BASE_DEC, NULL, 0,
9531         "INTEGER_M32768_32767", HFILL }},
9532     { &hf_lpp_keplerCrc,
9533       { "keplerCrc", "lpp.keplerCrc",
9534         FT_INT32, BASE_DEC, NULL, 0,
9535         "INTEGER_M32768_32767", HFILL }},
9536     { &hf_lpp_keplerCic,
9537       { "keplerCic", "lpp.keplerCic",
9538         FT_INT32, BASE_DEC, NULL, 0,
9539         "INTEGER_M32768_32767", HFILL }},
9540     { &hf_lpp_keplerCuc,
9541       { "keplerCuc", "lpp.keplerCuc",
9542         FT_INT32, BASE_DEC, NULL, 0,
9543         "INTEGER_M32768_32767", HFILL }},
9544     { &hf_lpp_navURA,
9545       { "navURA", "lpp.navURA",
9546         FT_UINT32, BASE_DEC, NULL, 0,
9547         "INTEGER_0_15", HFILL }},
9548     { &hf_lpp_navFitFlag,
9549       { "navFitFlag", "lpp.navFitFlag",
9550         FT_UINT32, BASE_DEC, NULL, 0,
9551         "INTEGER_0_1", HFILL }},
9552     { &hf_lpp_navToe,
9553       { "navToe", "lpp.navToe",
9554         FT_UINT32, BASE_DEC, NULL, 0,
9555         "INTEGER_0_37799", HFILL }},
9556     { &hf_lpp_navOmega,
9557       { "navOmega", "lpp.navOmega",
9558         FT_INT32, BASE_DEC, NULL, 0,
9559         "INTEGER_M2147483648_2147483647", HFILL }},
9560     { &hf_lpp_navDeltaN,
9561       { "navDeltaN", "lpp.navDeltaN",
9562         FT_INT32, BASE_DEC, NULL, 0,
9563         "INTEGER_M32768_32767", HFILL }},
9564     { &hf_lpp_navM0,
9565       { "navM0", "lpp.navM0",
9566         FT_INT32, BASE_DEC, NULL, 0,
9567         "INTEGER_M2147483648_2147483647", HFILL }},
9568     { &hf_lpp_navOmegaADot,
9569       { "navOmegaADot", "lpp.navOmegaADot",
9570         FT_INT32, BASE_DEC, NULL, 0,
9571         "INTEGER_M8388608_8388607", HFILL }},
9572     { &hf_lpp_navE,
9573       { "navE", "lpp.navE",
9574         FT_UINT32, BASE_DEC, NULL, 0,
9575         "INTEGER_0_4294967295", HFILL }},
9576     { &hf_lpp_navIDot,
9577       { "navIDot", "lpp.navIDot",
9578         FT_INT32, BASE_DEC, NULL, 0,
9579         "INTEGER_M8192_8191", HFILL }},
9580     { &hf_lpp_navAPowerHalf,
9581       { "navAPowerHalf", "lpp.navAPowerHalf",
9582         FT_UINT32, BASE_DEC, NULL, 0,
9583         "INTEGER_0_4294967295", HFILL }},
9584     { &hf_lpp_navI0,
9585       { "navI0", "lpp.navI0",
9586         FT_INT32, BASE_DEC, NULL, 0,
9587         "INTEGER_M2147483648_2147483647", HFILL }},
9588     { &hf_lpp_navOmegaA0,
9589       { "navOmegaA0", "lpp.navOmegaA0",
9590         FT_INT32, BASE_DEC, NULL, 0,
9591         "INTEGER_M2147483648_2147483647", HFILL }},
9592     { &hf_lpp_navCrs,
9593       { "navCrs", "lpp.navCrs",
9594         FT_INT32, BASE_DEC, NULL, 0,
9595         "INTEGER_M32768_32767", HFILL }},
9596     { &hf_lpp_navCis,
9597       { "navCis", "lpp.navCis",
9598         FT_INT32, BASE_DEC, NULL, 0,
9599         "INTEGER_M32768_32767", HFILL }},
9600     { &hf_lpp_navCus,
9601       { "navCus", "lpp.navCus",
9602         FT_INT32, BASE_DEC, NULL, 0,
9603         "INTEGER_M32768_32767", HFILL }},
9604     { &hf_lpp_navCrc,
9605       { "navCrc", "lpp.navCrc",
9606         FT_INT32, BASE_DEC, NULL, 0,
9607         "INTEGER_M32768_32767", HFILL }},
9608     { &hf_lpp_navCic,
9609       { "navCic", "lpp.navCic",
9610         FT_INT32, BASE_DEC, NULL, 0,
9611         "INTEGER_M32768_32767", HFILL }},
9612     { &hf_lpp_navCuc,
9613       { "navCuc", "lpp.navCuc",
9614         FT_INT32, BASE_DEC, NULL, 0,
9615         "INTEGER_M32768_32767", HFILL }},
9616     { &hf_lpp_addNAVparam,
9617       { "addNAVparam", "lpp.addNAVparam",
9618         FT_NONE, BASE_NONE, NULL, 0,
9619         NULL, HFILL }},
9620     { &hf_lpp_ephemCodeOnL2,
9621       { "ephemCodeOnL2", "lpp.ephemCodeOnL2",
9622         FT_UINT32, BASE_DEC, NULL, 0,
9623         "INTEGER_0_3", HFILL }},
9624     { &hf_lpp_ephemL2Pflag,
9625       { "ephemL2Pflag", "lpp.ephemL2Pflag",
9626         FT_UINT32, BASE_DEC, NULL, 0,
9627         "INTEGER_0_1", HFILL }},
9628     { &hf_lpp_ephemSF1Rsvd,
9629       { "ephemSF1Rsvd", "lpp.ephemSF1Rsvd",
9630         FT_NONE, BASE_NONE, NULL, 0,
9631         NULL, HFILL }},
9632     { &hf_lpp_reserved1,
9633       { "reserved1", "lpp.reserved1",
9634         FT_UINT32, BASE_DEC, NULL, 0,
9635         "INTEGER_0_8388607", HFILL }},
9636     { &hf_lpp_reserved2,
9637       { "reserved2", "lpp.reserved2",
9638         FT_UINT32, BASE_DEC, NULL, 0,
9639         "INTEGER_0_16777215", HFILL }},
9640     { &hf_lpp_reserved3,
9641       { "reserved3", "lpp.reserved3",
9642         FT_UINT32, BASE_DEC, NULL, 0,
9643         "INTEGER_0_16777215", HFILL }},
9644     { &hf_lpp_reserved4,
9645       { "reserved4", "lpp.reserved4",
9646         FT_UINT32, BASE_DEC, NULL, 0,
9647         "INTEGER_0_65535", HFILL }},
9648     { &hf_lpp_ephemAODA,
9649       { "ephemAODA", "lpp.ephemAODA",
9650         FT_UINT32, BASE_DEC, NULL, 0,
9651         "INTEGER_0_31", HFILL }},
9652     { &hf_lpp_cnavURAindex,
9653       { "cnavURAindex", "lpp.cnavURAindex",
9654         FT_INT32, BASE_DEC, NULL, 0,
9655         "INTEGER_M16_15", HFILL }},
9656     { &hf_lpp_cnavDeltaA,
9657       { "cnavDeltaA", "lpp.cnavDeltaA",
9658         FT_INT32, BASE_DEC, NULL, 0,
9659         "INTEGER_M33554432_33554431", HFILL }},
9660     { &hf_lpp_cnavAdot,
9661       { "cnavAdot", "lpp.cnavAdot",
9662         FT_INT32, BASE_DEC, NULL, 0,
9663         "INTEGER_M16777216_16777215", HFILL }},
9664     { &hf_lpp_cnavDeltaNo,
9665       { "cnavDeltaNo", "lpp.cnavDeltaNo",
9666         FT_INT32, BASE_DEC, NULL, 0,
9667         "INTEGER_M65536_65535", HFILL }},
9668     { &hf_lpp_cnavDeltaNoDot,
9669       { "cnavDeltaNoDot", "lpp.cnavDeltaNoDot",
9670         FT_INT32, BASE_DEC, NULL, 0,
9671         "INTEGER_M4194304_4194303", HFILL }},
9672     { &hf_lpp_cnavMo,
9673       { "cnavMo", "lpp.cnavMo",
9674         FT_INT32, BASE_DEC, NULL, 0,
9675         NULL, HFILL }},
9676     { &hf_lpp_cnavE,
9677       { "cnavE", "lpp.cnavE",
9678         FT_UINT32, BASE_DEC, NULL, 0,
9679         NULL, HFILL }},
9680     { &hf_lpp_cnavOmega,
9681       { "cnavOmega", "lpp.cnavOmega",
9682         FT_INT32, BASE_DEC, NULL, 0,
9683         NULL, HFILL }},
9684     { &hf_lpp_cnavOMEGA0,
9685       { "cnavOMEGA0", "lpp.cnavOMEGA0",
9686         FT_INT32, BASE_DEC, NULL, 0,
9687         NULL, HFILL }},
9688     { &hf_lpp_cnavDeltaOmegaDot,
9689       { "cnavDeltaOmegaDot", "lpp.cnavDeltaOmegaDot",
9690         FT_INT32, BASE_DEC, NULL, 0,
9691         "INTEGER_M65536_65535", HFILL }},
9692     { &hf_lpp_cnavIo,
9693       { "cnavIo", "lpp.cnavIo",
9694         FT_INT32, BASE_DEC, NULL, 0,
9695         NULL, HFILL }},
9696     { &hf_lpp_cnavIoDot,
9697       { "cnavIoDot", "lpp.cnavIoDot",
9698         FT_INT32, BASE_DEC, NULL, 0,
9699         "INTEGER_M16384_16383", HFILL }},
9700     { &hf_lpp_cnavCis,
9701       { "cnavCis", "lpp.cnavCis",
9702         FT_INT32, BASE_DEC, NULL, 0,
9703         "INTEGER_M32768_32767", HFILL }},
9704     { &hf_lpp_cnavCic,
9705       { "cnavCic", "lpp.cnavCic",
9706         FT_INT32, BASE_DEC, NULL, 0,
9707         "INTEGER_M32768_32767", HFILL }},
9708     { &hf_lpp_cnavCrs,
9709       { "cnavCrs", "lpp.cnavCrs",
9710         FT_INT32, BASE_DEC, NULL, 0,
9711         "INTEGER_M8388608_8388607", HFILL }},
9712     { &hf_lpp_cnavCrc,
9713       { "cnavCrc", "lpp.cnavCrc",
9714         FT_INT32, BASE_DEC, NULL, 0,
9715         "INTEGER_M8388608_8388607", HFILL }},
9716     { &hf_lpp_cnavCus,
9717       { "cnavCus", "lpp.cnavCus",
9718         FT_INT32, BASE_DEC, NULL, 0,
9719         "INTEGER_M1048576_1048575", HFILL }},
9720     { &hf_lpp_cnavCuc,
9721       { "cnavCuc", "lpp.cnavCuc",
9722         FT_INT32, BASE_DEC, NULL, 0,
9723         "INTEGER_M1048576_1048575", HFILL }},
9724     { &hf_lpp_gloEn,
9725       { "gloEn", "lpp.gloEn",
9726         FT_UINT32, BASE_DEC, NULL, 0,
9727         "INTEGER_0_31", HFILL }},
9728     { &hf_lpp_gloP1,
9729       { "gloP1", "lpp.gloP1",
9730         FT_BYTES, BASE_NONE, NULL, 0,
9731         "BIT_STRING_SIZE_2", HFILL }},
9732     { &hf_lpp_gloP2,
9733       { "gloP2", "lpp.gloP2",
9734         FT_BOOLEAN, BASE_NONE, NULL, 0,
9735         "BOOLEAN", HFILL }},
9736     { &hf_lpp_gloM,
9737       { "gloM", "lpp.gloM",
9738         FT_UINT32, BASE_DEC, NULL, 0,
9739         "INTEGER_0_3", HFILL }},
9740     { &hf_lpp_gloX,
9741       { "gloX", "lpp.gloX",
9742         FT_INT32, BASE_DEC, NULL, 0,
9743         "INTEGER_M67108864_67108863", HFILL }},
9744     { &hf_lpp_gloXdot,
9745       { "gloXdot", "lpp.gloXdot",
9746         FT_INT32, BASE_DEC, NULL, 0,
9747         "INTEGER_M8388608_8388607", HFILL }},
9748     { &hf_lpp_gloXdotdot,
9749       { "gloXdotdot", "lpp.gloXdotdot",
9750         FT_INT32, BASE_DEC, NULL, 0,
9751         "INTEGER_M16_15", HFILL }},
9752     { &hf_lpp_gloY,
9753       { "gloY", "lpp.gloY",
9754         FT_INT32, BASE_DEC, NULL, 0,
9755         "INTEGER_M67108864_67108863", HFILL }},
9756     { &hf_lpp_gloYdot,
9757       { "gloYdot", "lpp.gloYdot",
9758         FT_INT32, BASE_DEC, NULL, 0,
9759         "INTEGER_M8388608_8388607", HFILL }},
9760     { &hf_lpp_gloYdotdot,
9761       { "gloYdotdot", "lpp.gloYdotdot",
9762         FT_INT32, BASE_DEC, NULL, 0,
9763         "INTEGER_M16_15", HFILL }},
9764     { &hf_lpp_gloZ,
9765       { "gloZ", "lpp.gloZ",
9766         FT_INT32, BASE_DEC, NULL, 0,
9767         "INTEGER_M67108864_67108863", HFILL }},
9768     { &hf_lpp_gloZdot,
9769       { "gloZdot", "lpp.gloZdot",
9770         FT_INT32, BASE_DEC, NULL, 0,
9771         "INTEGER_M8388608_8388607", HFILL }},
9772     { &hf_lpp_gloZdotdot,
9773       { "gloZdotdot", "lpp.gloZdotdot",
9774         FT_INT32, BASE_DEC, NULL, 0,
9775         "INTEGER_M16_15", HFILL }},
9776     { &hf_lpp_sbasAccuracy,
9777       { "sbasAccuracy", "lpp.sbasAccuracy",
9778         FT_BYTES, BASE_NONE, NULL, 0,
9779         "BIT_STRING_SIZE_4", HFILL }},
9780     { &hf_lpp_sbasXg,
9781       { "sbasXg", "lpp.sbasXg",
9782         FT_INT32, BASE_DEC, NULL, 0,
9783         "INTEGER_M536870912_536870911", HFILL }},
9784     { &hf_lpp_sbasYg,
9785       { "sbasYg", "lpp.sbasYg",
9786         FT_INT32, BASE_DEC, NULL, 0,
9787         "INTEGER_M536870912_536870911", HFILL }},
9788     { &hf_lpp_sbasZg,
9789       { "sbasZg", "lpp.sbasZg",
9790         FT_INT32, BASE_DEC, NULL, 0,
9791         "INTEGER_M16777216_16777215", HFILL }},
9792     { &hf_lpp_sbasXgDot,
9793       { "sbasXgDot", "lpp.sbasXgDot",
9794         FT_INT32, BASE_DEC, NULL, 0,
9795         "INTEGER_M65536_65535", HFILL }},
9796     { &hf_lpp_sbasYgDot,
9797       { "sbasYgDot", "lpp.sbasYgDot",
9798         FT_INT32, BASE_DEC, NULL, 0,
9799         "INTEGER_M65536_65535", HFILL }},
9800     { &hf_lpp_sbasZgDot,
9801       { "sbasZgDot", "lpp.sbasZgDot",
9802         FT_INT32, BASE_DEC, NULL, 0,
9803         "INTEGER_M131072_131071", HFILL }},
9804     { &hf_lpp_sbasXgDotDot,
9805       { "sbasXgDotDot", "lpp.sbasXgDotDot",
9806         FT_INT32, BASE_DEC, NULL, 0,
9807         "INTEGER_M512_511", HFILL }},
9808     { &hf_lpp_sbagYgDotDot,
9809       { "sbagYgDotDot", "lpp.sbagYgDotDot",
9810         FT_INT32, BASE_DEC, NULL, 0,
9811         "INTEGER_M512_511", HFILL }},
9812     { &hf_lpp_sbasZgDotDot,
9813       { "sbasZgDotDot", "lpp.sbasZgDotDot",
9814         FT_INT32, BASE_DEC, NULL, 0,
9815         "INTEGER_M512_511", HFILL }},
9816     { &hf_lpp_gnss_BadSignalList,
9817       { "gnss-BadSignalList", "lpp.gnss_BadSignalList",
9818         FT_UINT32, BASE_DEC, NULL, 0,
9819         NULL, HFILL }},
9820     { &hf_lpp_GNSS_BadSignalList_item,
9821       { "BadSignalElement", "lpp.BadSignalElement",
9822         FT_NONE, BASE_NONE, NULL, 0,
9823         NULL, HFILL }},
9824     { &hf_lpp_badSVID,
9825       { "badSVID", "lpp.badSVID",
9826         FT_NONE, BASE_NONE, NULL, 0,
9827         "SV_ID", HFILL }},
9828     { &hf_lpp_badSignalID,
9829       { "badSignalID", "lpp.badSignalID",
9830         FT_NONE, BASE_NONE, NULL, 0,
9831         "GNSS_SignalIDs", HFILL }},
9832     { &hf_lpp_gnss_TOD,
9833       { "gnss-TOD", "lpp.gnss_TOD",
9834         FT_UINT32, BASE_DEC, NULL, 0,
9835         "INTEGER_0_3599", HFILL }},
9836     { &hf_lpp_gnss_TODfrac,
9837       { "gnss-TODfrac", "lpp.gnss_TODfrac",
9838         FT_UINT32, BASE_DEC, NULL, 0,
9839         "INTEGER_0_999", HFILL }},
9840     { &hf_lpp_gnss_DataBitsSatList,
9841       { "gnss-DataBitsSatList", "lpp.gnss_DataBitsSatList",
9842         FT_UINT32, BASE_DEC, NULL, 0,
9843         NULL, HFILL }},
9844     { &hf_lpp_GNSS_DataBitsSatList_item,
9845       { "GNSS-DataBitsSatElement", "lpp.GNSS_DataBitsSatElement",
9846         FT_NONE, BASE_NONE, NULL, 0,
9847         NULL, HFILL }},
9848     { &hf_lpp_gnss_DataBitsSgnList,
9849       { "gnss-DataBitsSgnList", "lpp.gnss_DataBitsSgnList",
9850         FT_UINT32, BASE_DEC, NULL, 0,
9851         NULL, HFILL }},
9852     { &hf_lpp_GNSS_DataBitsSgnList_item,
9853       { "GNSS-DataBitsSgnElement", "lpp.GNSS_DataBitsSgnElement",
9854         FT_NONE, BASE_NONE, NULL, 0,
9855         NULL, HFILL }},
9856     { &hf_lpp_gnss_SignalType,
9857       { "gnss-SignalType", "lpp.gnss_SignalType",
9858         FT_NONE, BASE_NONE, NULL, 0,
9859         "GNSS_SignalID", HFILL }},
9860     { &hf_lpp_gnss_DataBits,
9861       { "gnss-DataBits", "lpp.gnss_DataBits",
9862         FT_BYTES, BASE_NONE, NULL, 0,
9863         "BIT_STRING_SIZE_1_1024", HFILL }},
9864     { &hf_lpp_gnss_AcquisitionAssistList,
9865       { "gnss-AcquisitionAssistList", "lpp.gnss_AcquisitionAssistList",
9866         FT_UINT32, BASE_DEC, NULL, 0,
9867         NULL, HFILL }},
9868     { &hf_lpp_GNSS_AcquisitionAssistList_item,
9869       { "GNSS-AcquisitionAssistElement", "lpp.GNSS_AcquisitionAssistElement",
9870         FT_NONE, BASE_NONE, NULL, 0,
9871         NULL, HFILL }},
9872     { &hf_lpp_doppler0,
9873       { "doppler0", "lpp.doppler0",
9874         FT_INT32, BASE_DEC, NULL, 0,
9875         "INTEGER_M2048_2047", HFILL }},
9876     { &hf_lpp_doppler1,
9877       { "doppler1", "lpp.doppler1",
9878         FT_UINT32, BASE_DEC, NULL, 0,
9879         "INTEGER_0_63", HFILL }},
9880     { &hf_lpp_dopplerUncertainty,
9881       { "dopplerUncertainty", "lpp.dopplerUncertainty",
9882         FT_UINT32, BASE_DEC, NULL, 0,
9883         "INTEGER_0_4", HFILL }},
9884     { &hf_lpp_codePhase,
9885       { "codePhase", "lpp.codePhase",
9886         FT_UINT32, BASE_DEC, NULL, 0,
9887         "INTEGER_0_1022", HFILL }},
9888     { &hf_lpp_intCodePhase,
9889       { "intCodePhase", "lpp.intCodePhase",
9890         FT_UINT32, BASE_DEC, NULL, 0,
9891         "INTEGER_0_127", HFILL }},
9892     { &hf_lpp_codePhaseSearchWindow,
9893       { "codePhaseSearchWindow", "lpp.codePhaseSearchWindow",
9894         FT_UINT32, BASE_DEC, NULL, 0,
9895         "INTEGER_0_31", HFILL }},
9896     { &hf_lpp_azimuth,
9897       { "azimuth", "lpp.azimuth",
9898         FT_UINT32, BASE_DEC, NULL, 0,
9899         "INTEGER_0_511", HFILL }},
9900     { &hf_lpp_elevation,
9901       { "elevation", "lpp.elevation",
9902         FT_UINT32, BASE_DEC, NULL, 0,
9903         "INTEGER_0_127", HFILL }},
9904     { &hf_lpp_codePhase1023,
9905       { "codePhase1023", "lpp.codePhase1023",
9906         FT_BOOLEAN, BASE_NONE, NULL, 0,
9907         "BOOLEAN", HFILL }},
9908     { &hf_lpp_weekNumber_01,
9909       { "weekNumber", "lpp.weekNumber",
9910         FT_UINT32, BASE_DEC, NULL, 0,
9911         "INTEGER_0_255", HFILL }},
9912     { &hf_lpp_toa,
9913       { "toa", "lpp.toa",
9914         FT_UINT32, BASE_DEC, NULL, 0,
9915         "INTEGER_0_255", HFILL }},
9916     { &hf_lpp_ioda,
9917       { "ioda", "lpp.ioda",
9918         FT_UINT32, BASE_DEC, NULL, 0,
9919         "INTEGER_0_3", HFILL }},
9920     { &hf_lpp_completeAlmanacProvided,
9921       { "completeAlmanacProvided", "lpp.completeAlmanacProvided",
9922         FT_BOOLEAN, BASE_NONE, NULL, 0,
9923         "BOOLEAN", HFILL }},
9924     { &hf_lpp_gnss_AlmanacList,
9925       { "gnss-AlmanacList", "lpp.gnss_AlmanacList",
9926         FT_UINT32, BASE_DEC, NULL, 0,
9927         NULL, HFILL }},
9928     { &hf_lpp_GNSS_AlmanacList_item,
9929       { "GNSS-AlmanacElement", "lpp.GNSS_AlmanacElement",
9930         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_AlmanacElement_vals), 0,
9931         NULL, HFILL }},
9932     { &hf_lpp_keplerianAlmanacSet,
9933       { "keplerianAlmanacSet", "lpp.keplerianAlmanacSet",
9934         FT_NONE, BASE_NONE, NULL, 0,
9935         "AlmanacKeplerianSet", HFILL }},
9936     { &hf_lpp_keplerianNAV_Almanac,
9937       { "keplerianNAV-Almanac", "lpp.keplerianNAV_Almanac",
9938         FT_NONE, BASE_NONE, NULL, 0,
9939         "AlmanacNAV_KeplerianSet", HFILL }},
9940     { &hf_lpp_keplerianReducedAlmanac,
9941       { "keplerianReducedAlmanac", "lpp.keplerianReducedAlmanac",
9942         FT_NONE, BASE_NONE, NULL, 0,
9943         "AlmanacReducedKeplerianSet", HFILL }},
9944     { &hf_lpp_keplerianMidiAlmanac,
9945       { "keplerianMidiAlmanac", "lpp.keplerianMidiAlmanac",
9946         FT_NONE, BASE_NONE, NULL, 0,
9947         "AlmanacMidiAlmanacSet", HFILL }},
9948     { &hf_lpp_keplerianGLONASS,
9949       { "keplerianGLONASS", "lpp.keplerianGLONASS",
9950         FT_NONE, BASE_NONE, NULL, 0,
9951         "AlmanacGLONASS_AlmanacSet", HFILL }},
9952     { &hf_lpp_ecef_SBAS_Almanac,
9953       { "ecef-SBAS-Almanac", "lpp.ecef_SBAS_Almanac",
9954         FT_NONE, BASE_NONE, NULL, 0,
9955         "AlmanacECEF_SBAS_AlmanacSet", HFILL }},
9956     { &hf_lpp_kepAlmanacE,
9957       { "kepAlmanacE", "lpp.kepAlmanacE",
9958         FT_UINT32, BASE_DEC, NULL, 0,
9959         "INTEGER_0_2047", HFILL }},
9960     { &hf_lpp_kepAlmanacDeltaI,
9961       { "kepAlmanacDeltaI", "lpp.kepAlmanacDeltaI",
9962         FT_INT32, BASE_DEC, NULL, 0,
9963         "INTEGER_M1024_1023", HFILL }},
9964     { &hf_lpp_kepAlmanacOmegaDot,
9965       { "kepAlmanacOmegaDot", "lpp.kepAlmanacOmegaDot",
9966         FT_INT32, BASE_DEC, NULL, 0,
9967         "INTEGER_M1024_1023", HFILL }},
9968     { &hf_lpp_kepSVHealth,
9969       { "kepSVHealth", "lpp.kepSVHealth",
9970         FT_UINT32, BASE_DEC, NULL, 0,
9971         "INTEGER_0_15", HFILL }},
9972     { &hf_lpp_kepAlmanacAPowerHalf,
9973       { "kepAlmanacAPowerHalf", "lpp.kepAlmanacAPowerHalf",
9974         FT_INT32, BASE_DEC, NULL, 0,
9975         "INTEGER_M65536_65535", HFILL }},
9976     { &hf_lpp_kepAlmanacOmega0,
9977       { "kepAlmanacOmega0", "lpp.kepAlmanacOmega0",
9978         FT_INT32, BASE_DEC, NULL, 0,
9979         "INTEGER_M32768_32767", HFILL }},
9980     { &hf_lpp_kepAlmanacW,
9981       { "kepAlmanacW", "lpp.kepAlmanacW",
9982         FT_INT32, BASE_DEC, NULL, 0,
9983         "INTEGER_M32768_32767", HFILL }},
9984     { &hf_lpp_kepAlmanacM0,
9985       { "kepAlmanacM0", "lpp.kepAlmanacM0",
9986         FT_INT32, BASE_DEC, NULL, 0,
9987         "INTEGER_M32768_32767", HFILL }},
9988     { &hf_lpp_kepAlmanacAF0,
9989       { "kepAlmanacAF0", "lpp.kepAlmanacAF0",
9990         FT_INT32, BASE_DEC, NULL, 0,
9991         "INTEGER_M8192_8191", HFILL }},
9992     { &hf_lpp_kepAlmanacAF1,
9993       { "kepAlmanacAF1", "lpp.kepAlmanacAF1",
9994         FT_INT32, BASE_DEC, NULL, 0,
9995         "INTEGER_M1024_1023", HFILL }},
9996     { &hf_lpp_navAlmE,
9997       { "navAlmE", "lpp.navAlmE",
9998         FT_UINT32, BASE_DEC, NULL, 0,
9999         "INTEGER_0_65535", HFILL }},
10000     { &hf_lpp_navAlmDeltaI,
10001       { "navAlmDeltaI", "lpp.navAlmDeltaI",
10002         FT_INT32, BASE_DEC, NULL, 0,
10003         "INTEGER_M32768_32767", HFILL }},
10004     { &hf_lpp_navAlmOMEGADOT,
10005       { "navAlmOMEGADOT", "lpp.navAlmOMEGADOT",
10006         FT_INT32, BASE_DEC, NULL, 0,
10007         "INTEGER_M32768_32767", HFILL }},
10008     { &hf_lpp_navAlmSVHealth,
10009       { "navAlmSVHealth", "lpp.navAlmSVHealth",
10010         FT_UINT32, BASE_DEC, NULL, 0,
10011         "INTEGER_0_255", HFILL }},
10012     { &hf_lpp_navAlmSqrtA,
10013       { "navAlmSqrtA", "lpp.navAlmSqrtA",
10014         FT_UINT32, BASE_DEC, NULL, 0,
10015         "INTEGER_0_16777215", HFILL }},
10016     { &hf_lpp_navAlmOMEGAo,
10017       { "navAlmOMEGAo", "lpp.navAlmOMEGAo",
10018         FT_INT32, BASE_DEC, NULL, 0,
10019         "INTEGER_M8388608_8388607", HFILL }},
10020     { &hf_lpp_navAlmOmega,
10021       { "navAlmOmega", "lpp.navAlmOmega",
10022         FT_INT32, BASE_DEC, NULL, 0,
10023         "INTEGER_M8388608_8388607", HFILL }},
10024     { &hf_lpp_navAlmMo,
10025       { "navAlmMo", "lpp.navAlmMo",
10026         FT_INT32, BASE_DEC, NULL, 0,
10027         "INTEGER_M8388608_8388607", HFILL }},
10028     { &hf_lpp_navAlmaf0,
10029       { "navAlmaf0", "lpp.navAlmaf0",
10030         FT_INT32, BASE_DEC, NULL, 0,
10031         "INTEGER_M1024_1023", HFILL }},
10032     { &hf_lpp_navAlmaf1,
10033       { "navAlmaf1", "lpp.navAlmaf1",
10034         FT_INT32, BASE_DEC, NULL, 0,
10035         "INTEGER_M1024_1023", HFILL }},
10036     { &hf_lpp_redAlmDeltaA,
10037       { "redAlmDeltaA", "lpp.redAlmDeltaA",
10038         FT_INT32, BASE_DEC, NULL, 0,
10039         "INTEGER_M128_127", HFILL }},
10040     { &hf_lpp_redAlmOmega0,
10041       { "redAlmOmega0", "lpp.redAlmOmega0",
10042         FT_INT32, BASE_DEC, NULL, 0,
10043         "INTEGER_M64_63", HFILL }},
10044     { &hf_lpp_redAlmPhi0,
10045       { "redAlmPhi0", "lpp.redAlmPhi0",
10046         FT_INT32, BASE_DEC, NULL, 0,
10047         "INTEGER_M64_63", HFILL }},
10048     { &hf_lpp_redAlmL1Health,
10049       { "redAlmL1Health", "lpp.redAlmL1Health",
10050         FT_BOOLEAN, BASE_NONE, NULL, 0,
10051         "BOOLEAN", HFILL }},
10052     { &hf_lpp_redAlmL2Health,
10053       { "redAlmL2Health", "lpp.redAlmL2Health",
10054         FT_BOOLEAN, BASE_NONE, NULL, 0,
10055         "BOOLEAN", HFILL }},
10056     { &hf_lpp_redAlmL5Health,
10057       { "redAlmL5Health", "lpp.redAlmL5Health",
10058         FT_BOOLEAN, BASE_NONE, NULL, 0,
10059         "BOOLEAN", HFILL }},
10060     { &hf_lpp_midiAlmE,
10061       { "midiAlmE", "lpp.midiAlmE",
10062         FT_UINT32, BASE_DEC, NULL, 0,
10063         "INTEGER_0_2047", HFILL }},
10064     { &hf_lpp_midiAlmDeltaI,
10065       { "midiAlmDeltaI", "lpp.midiAlmDeltaI",
10066         FT_INT32, BASE_DEC, NULL, 0,
10067         "INTEGER_M1024_1023", HFILL }},
10068     { &hf_lpp_midiAlmOmegaDot,
10069       { "midiAlmOmegaDot", "lpp.midiAlmOmegaDot",
10070         FT_INT32, BASE_DEC, NULL, 0,
10071         "INTEGER_M1024_1023", HFILL }},
10072     { &hf_lpp_midiAlmSqrtA,
10073       { "midiAlmSqrtA", "lpp.midiAlmSqrtA",
10074         FT_UINT32, BASE_DEC, NULL, 0,
10075         "INTEGER_0_131071", HFILL }},
10076     { &hf_lpp_midiAlmOmega0,
10077       { "midiAlmOmega0", "lpp.midiAlmOmega0",
10078         FT_INT32, BASE_DEC, NULL, 0,
10079         "INTEGER_M32768_32767", HFILL }},
10080     { &hf_lpp_midiAlmOmega,
10081       { "midiAlmOmega", "lpp.midiAlmOmega",
10082         FT_INT32, BASE_DEC, NULL, 0,
10083         "INTEGER_M32768_32767", HFILL }},
10084     { &hf_lpp_midiAlmMo,
10085       { "midiAlmMo", "lpp.midiAlmMo",
10086         FT_INT32, BASE_DEC, NULL, 0,
10087         "INTEGER_M32768_32767", HFILL }},
10088     { &hf_lpp_midiAlmaf0,
10089       { "midiAlmaf0", "lpp.midiAlmaf0",
10090         FT_INT32, BASE_DEC, NULL, 0,
10091         "INTEGER_M1024_1023", HFILL }},
10092     { &hf_lpp_midiAlmaf1,
10093       { "midiAlmaf1", "lpp.midiAlmaf1",
10094         FT_INT32, BASE_DEC, NULL, 0,
10095         "INTEGER_M512_511", HFILL }},
10096     { &hf_lpp_midiAlmL1Health,
10097       { "midiAlmL1Health", "lpp.midiAlmL1Health",
10098         FT_BOOLEAN, BASE_NONE, NULL, 0,
10099         "BOOLEAN", HFILL }},
10100     { &hf_lpp_midiAlmL2Health,
10101       { "midiAlmL2Health", "lpp.midiAlmL2Health",
10102         FT_BOOLEAN, BASE_NONE, NULL, 0,
10103         "BOOLEAN", HFILL }},
10104     { &hf_lpp_midiAlmL5Health,
10105       { "midiAlmL5Health", "lpp.midiAlmL5Health",
10106         FT_BOOLEAN, BASE_NONE, NULL, 0,
10107         "BOOLEAN", HFILL }},
10108     { &hf_lpp_gloAlm_NA,
10109       { "gloAlm-NA", "lpp.gloAlm_NA",
10110         FT_UINT32, BASE_DEC, NULL, 0,
10111         "INTEGER_1_1461", HFILL }},
10112     { &hf_lpp_gloAlmnA,
10113       { "gloAlmnA", "lpp.gloAlmnA",
10114         FT_UINT32, BASE_DEC, NULL, 0,
10115         "INTEGER_1_24", HFILL }},
10116     { &hf_lpp_gloAlmHA,
10117       { "gloAlmHA", "lpp.gloAlmHA",
10118         FT_UINT32, BASE_DEC, NULL, 0,
10119         "INTEGER_0_31", HFILL }},
10120     { &hf_lpp_gloAlmLambdaA,
10121       { "gloAlmLambdaA", "lpp.gloAlmLambdaA",
10122         FT_INT32, BASE_DEC, NULL, 0,
10123         "INTEGER_M1048576_1048575", HFILL }},
10124     { &hf_lpp_gloAlmtlambdaA,
10125       { "gloAlmtlambdaA", "lpp.gloAlmtlambdaA",
10126         FT_UINT32, BASE_DEC, NULL, 0,
10127         "INTEGER_0_2097151", HFILL }},
10128     { &hf_lpp_gloAlmDeltaIa,
10129       { "gloAlmDeltaIa", "lpp.gloAlmDeltaIa",
10130         FT_INT32, BASE_DEC, NULL, 0,
10131         "INTEGER_M131072_131071", HFILL }},
10132     { &hf_lpp_gloAlmDeltaTA,
10133       { "gloAlmDeltaTA", "lpp.gloAlmDeltaTA",
10134         FT_INT32, BASE_DEC, NULL, 0,
10135         "INTEGER_M2097152_2097151", HFILL }},
10136     { &hf_lpp_gloAlmDeltaTdotA,
10137       { "gloAlmDeltaTdotA", "lpp.gloAlmDeltaTdotA",
10138         FT_INT32, BASE_DEC, NULL, 0,
10139         "INTEGER_M64_63", HFILL }},
10140     { &hf_lpp_gloAlmEpsilonA,
10141       { "gloAlmEpsilonA", "lpp.gloAlmEpsilonA",
10142         FT_UINT32, BASE_DEC, NULL, 0,
10143         "INTEGER_0_32767", HFILL }},
10144     { &hf_lpp_gloAlmOmegaA,
10145       { "gloAlmOmegaA", "lpp.gloAlmOmegaA",
10146         FT_INT32, BASE_DEC, NULL, 0,
10147         "INTEGER_M32768_32767", HFILL }},
10148     { &hf_lpp_gloAlmTauA,
10149       { "gloAlmTauA", "lpp.gloAlmTauA",
10150         FT_INT32, BASE_DEC, NULL, 0,
10151         "INTEGER_M512_511", HFILL }},
10152     { &hf_lpp_gloAlmCA,
10153       { "gloAlmCA", "lpp.gloAlmCA",
10154         FT_UINT32, BASE_DEC, NULL, 0,
10155         "INTEGER_0_1", HFILL }},
10156     { &hf_lpp_gloAlmMA,
10157       { "gloAlmMA", "lpp.gloAlmMA",
10158         FT_BYTES, BASE_NONE, NULL, 0,
10159         "BIT_STRING_SIZE_2", HFILL }},
10160     { &hf_lpp_sbasAlmDataID,
10161       { "sbasAlmDataID", "lpp.sbasAlmDataID",
10162         FT_UINT32, BASE_DEC, NULL, 0,
10163         "INTEGER_0_3", HFILL }},
10164     { &hf_lpp_sbasAlmHealth,
10165       { "sbasAlmHealth", "lpp.sbasAlmHealth",
10166         FT_BYTES, BASE_NONE, NULL, 0,
10167         "BIT_STRING_SIZE_8", HFILL }},
10168     { &hf_lpp_sbasAlmXg,
10169       { "sbasAlmXg", "lpp.sbasAlmXg",
10170         FT_INT32, BASE_DEC, NULL, 0,
10171         "INTEGER_M16384_16383", HFILL }},
10172     { &hf_lpp_sbasAlmYg,
10173       { "sbasAlmYg", "lpp.sbasAlmYg",
10174         FT_INT32, BASE_DEC, NULL, 0,
10175         "INTEGER_M16384_16383", HFILL }},
10176     { &hf_lpp_sbasAlmZg,
10177       { "sbasAlmZg", "lpp.sbasAlmZg",
10178         FT_INT32, BASE_DEC, NULL, 0,
10179         "INTEGER_M256_255", HFILL }},
10180     { &hf_lpp_sbasAlmXgdot,
10181       { "sbasAlmXgdot", "lpp.sbasAlmXgdot",
10182         FT_INT32, BASE_DEC, NULL, 0,
10183         "INTEGER_M4_3", HFILL }},
10184     { &hf_lpp_sbasAlmYgDot,
10185       { "sbasAlmYgDot", "lpp.sbasAlmYgDot",
10186         FT_INT32, BASE_DEC, NULL, 0,
10187         "INTEGER_M4_3", HFILL }},
10188     { &hf_lpp_sbasAlmZgDot,
10189       { "sbasAlmZgDot", "lpp.sbasAlmZgDot",
10190         FT_INT32, BASE_DEC, NULL, 0,
10191         "INTEGER_M8_7", HFILL }},
10192     { &hf_lpp_sbasAlmTo,
10193       { "sbasAlmTo", "lpp.sbasAlmTo",
10194         FT_UINT32, BASE_DEC, NULL, 0,
10195         "INTEGER_0_2047", HFILL }},
10196     { &hf_lpp_utcModel1,
10197       { "utcModel1", "lpp.utcModel1",
10198         FT_NONE, BASE_NONE, NULL, 0,
10199         "UTC_ModelSet1", HFILL }},
10200     { &hf_lpp_utcModel2,
10201       { "utcModel2", "lpp.utcModel2",
10202         FT_NONE, BASE_NONE, NULL, 0,
10203         "UTC_ModelSet2", HFILL }},
10204     { &hf_lpp_utcModel3,
10205       { "utcModel3", "lpp.utcModel3",
10206         FT_NONE, BASE_NONE, NULL, 0,
10207         "UTC_ModelSet3", HFILL }},
10208     { &hf_lpp_utcModel4,
10209       { "utcModel4", "lpp.utcModel4",
10210         FT_NONE, BASE_NONE, NULL, 0,
10211         "UTC_ModelSet4", HFILL }},
10212     { &hf_lpp_gnss_Utc_A1,
10213       { "gnss-Utc-A1", "lpp.gnss_Utc_A1",
10214         FT_INT32, BASE_DEC, NULL, 0,
10215         "INTEGER_M8388608_8388607", HFILL }},
10216     { &hf_lpp_gnss_Utc_A0,
10217       { "gnss-Utc-A0", "lpp.gnss_Utc_A0",
10218         FT_INT32, BASE_DEC, NULL, 0,
10219         "INTEGER_M2147483648_2147483647", HFILL }},
10220     { &hf_lpp_gnss_Utc_Tot,
10221       { "gnss-Utc-Tot", "lpp.gnss_Utc_Tot",
10222         FT_UINT32, BASE_DEC, NULL, 0,
10223         "INTEGER_0_255", HFILL }},
10224     { &hf_lpp_gnss_Utc_WNt,
10225       { "gnss-Utc-WNt", "lpp.gnss_Utc_WNt",
10226         FT_UINT32, BASE_DEC, NULL, 0,
10227         "INTEGER_0_255", HFILL }},
10228     { &hf_lpp_gnss_Utc_DeltaTls,
10229       { "gnss-Utc-DeltaTls", "lpp.gnss_Utc_DeltaTls",
10230         FT_INT32, BASE_DEC, NULL, 0,
10231         "INTEGER_M128_127", HFILL }},
10232     { &hf_lpp_gnss_Utc_WNlsf,
10233       { "gnss-Utc-WNlsf", "lpp.gnss_Utc_WNlsf",
10234         FT_UINT32, BASE_DEC, NULL, 0,
10235         "INTEGER_0_255", HFILL }},
10236     { &hf_lpp_gnss_Utc_DN,
10237       { "gnss-Utc-DN", "lpp.gnss_Utc_DN",
10238         FT_INT32, BASE_DEC, NULL, 0,
10239         "INTEGER_M128_127", HFILL }},
10240     { &hf_lpp_gnss_Utc_DeltaTlsf,
10241       { "gnss-Utc-DeltaTlsf", "lpp.gnss_Utc_DeltaTlsf",
10242         FT_INT32, BASE_DEC, NULL, 0,
10243         "INTEGER_M128_127", HFILL }},
10244     { &hf_lpp_utcA0,
10245       { "utcA0", "lpp.utcA0",
10246         FT_INT32, BASE_DEC, NULL, 0,
10247         "INTEGER_M32768_32767", HFILL }},
10248     { &hf_lpp_utcA1,
10249       { "utcA1", "lpp.utcA1",
10250         FT_INT32, BASE_DEC, NULL, 0,
10251         "INTEGER_M4096_4095", HFILL }},
10252     { &hf_lpp_utcA2,
10253       { "utcA2", "lpp.utcA2",
10254         FT_INT32, BASE_DEC, NULL, 0,
10255         "INTEGER_M64_63", HFILL }},
10256     { &hf_lpp_utcDeltaTls,
10257       { "utcDeltaTls", "lpp.utcDeltaTls",
10258         FT_INT32, BASE_DEC, NULL, 0,
10259         "INTEGER_M128_127", HFILL }},
10260     { &hf_lpp_utcTot,
10261       { "utcTot", "lpp.utcTot",
10262         FT_UINT32, BASE_DEC, NULL, 0,
10263         "INTEGER_0_65535", HFILL }},
10264     { &hf_lpp_utcWNot,
10265       { "utcWNot", "lpp.utcWNot",
10266         FT_UINT32, BASE_DEC, NULL, 0,
10267         "INTEGER_0_8191", HFILL }},
10268     { &hf_lpp_utcWNlsf,
10269       { "utcWNlsf", "lpp.utcWNlsf",
10270         FT_UINT32, BASE_DEC, NULL, 0,
10271         "INTEGER_0_255", HFILL }},
10272     { &hf_lpp_utcDN,
10273       { "utcDN", "lpp.utcDN",
10274         FT_BYTES, BASE_NONE, NULL, 0,
10275         "BIT_STRING_SIZE_4", HFILL }},
10276     { &hf_lpp_utcDeltaTlsf,
10277       { "utcDeltaTlsf", "lpp.utcDeltaTlsf",
10278         FT_INT32, BASE_DEC, NULL, 0,
10279         "INTEGER_M128_127", HFILL }},
10280     { &hf_lpp_nA,
10281       { "nA", "lpp.nA",
10282         FT_UINT32, BASE_DEC, NULL, 0,
10283         "INTEGER_1_1461", HFILL }},
10284     { &hf_lpp_tauC,
10285       { "tauC", "lpp.tauC",
10286         FT_INT32, BASE_DEC, NULL, 0,
10287         "INTEGER_M2147483648_2147483647", HFILL }},
10288     { &hf_lpp_b1,
10289       { "b1", "lpp.b1",
10290         FT_INT32, BASE_DEC, NULL, 0,
10291         "INTEGER_M1024_1023", HFILL }},
10292     { &hf_lpp_b2,
10293       { "b2", "lpp.b2",
10294         FT_INT32, BASE_DEC, NULL, 0,
10295         "INTEGER_M512_511", HFILL }},
10296     { &hf_lpp_kp,
10297       { "kp", "lpp.kp",
10298         FT_BYTES, BASE_NONE, NULL, 0,
10299         "BIT_STRING_SIZE_2", HFILL }},
10300     { &hf_lpp_utcA1wnt,
10301       { "utcA1wnt", "lpp.utcA1wnt",
10302         FT_INT32, BASE_DEC, NULL, 0,
10303         "INTEGER_M8388608_8388607", HFILL }},
10304     { &hf_lpp_utcA0wnt,
10305       { "utcA0wnt", "lpp.utcA0wnt",
10306         FT_INT32, BASE_DEC, NULL, 0,
10307         "INTEGER_M2147483648_2147483647", HFILL }},
10308     { &hf_lpp_utcTot_01,
10309       { "utcTot", "lpp.utcTot",
10310         FT_UINT32, BASE_DEC, NULL, 0,
10311         "INTEGER_0_255", HFILL }},
10312     { &hf_lpp_utcWNt,
10313       { "utcWNt", "lpp.utcWNt",
10314         FT_UINT32, BASE_DEC, NULL, 0,
10315         "INTEGER_0_255", HFILL }},
10316     { &hf_lpp_utcDN_01,
10317       { "utcDN", "lpp.utcDN",
10318         FT_INT32, BASE_DEC, NULL, 0,
10319         "INTEGER_M128_127", HFILL }},
10320     { &hf_lpp_utcStandardID,
10321       { "utcStandardID", "lpp.utcStandardID",
10322         FT_UINT32, BASE_DEC, NULL, 0,
10323         "INTEGER_0_7", HFILL }},
10324     { &hf_lpp_gnss_ID_GPS,
10325       { "gnss-ID-GPS", "lpp.gnss_ID_GPS",
10326         FT_UINT32, BASE_DEC, NULL, 0,
10327         NULL, HFILL }},
10328     { &hf_lpp_gnss_ID_GLONASS,
10329       { "gnss-ID-GLONASS", "lpp.gnss_ID_GLONASS",
10330         FT_UINT32, BASE_DEC, NULL, 0,
10331         NULL, HFILL }},
10332     { &hf_lpp_GNSS_ID_GPS_item,
10333       { "GNSS-ID-GPS-SatElement", "lpp.GNSS_ID_GPS_SatElement",
10334         FT_NONE, BASE_NONE, NULL, 0,
10335         NULL, HFILL }},
10336     { &hf_lpp_signalsAvailable,
10337       { "signalsAvailable", "lpp.signalsAvailable",
10338         FT_NONE, BASE_NONE, NULL, 0,
10339         "GNSS_SignalIDs", HFILL }},
10340     { &hf_lpp_GNSS_ID_GLONASS_item,
10341       { "GNSS-ID-GLONASS-SatElement", "lpp.GNSS_ID_GLONASS_SatElement",
10342         FT_NONE, BASE_NONE, NULL, 0,
10343         NULL, HFILL }},
10344     { &hf_lpp_channelNumber,
10345       { "channelNumber", "lpp.channelNumber",
10346         FT_INT32, BASE_DEC, NULL, 0,
10347         "INTEGER_M7_13", HFILL }},
10348     { &hf_lpp_gnss_CommonAssistDataReq,
10349       { "gnss-CommonAssistDataReq", "lpp.gnss_CommonAssistDataReq",
10350         FT_NONE, BASE_NONE, NULL, 0,
10351         NULL, HFILL }},
10352     { &hf_lpp_gnss_GenericAssistDataReq,
10353       { "gnss-GenericAssistDataReq", "lpp.gnss_GenericAssistDataReq",
10354         FT_UINT32, BASE_DEC, NULL, 0,
10355         NULL, HFILL }},
10356     { &hf_lpp_gnss_ReferenceTimeReq,
10357       { "gnss-ReferenceTimeReq", "lpp.gnss_ReferenceTimeReq",
10358         FT_NONE, BASE_NONE, NULL, 0,
10359         NULL, HFILL }},
10360     { &hf_lpp_gnss_ReferenceLocationReq,
10361       { "gnss-ReferenceLocationReq", "lpp.gnss_ReferenceLocationReq",
10362         FT_NONE, BASE_NONE, NULL, 0,
10363         NULL, HFILL }},
10364     { &hf_lpp_gnss_IonosphericModelReq,
10365       { "gnss-IonosphericModelReq", "lpp.gnss_IonosphericModelReq",
10366         FT_NONE, BASE_NONE, NULL, 0,
10367         NULL, HFILL }},
10368     { &hf_lpp_gnss_EarthOrientationParametersReq,
10369       { "gnss-EarthOrientationParametersReq", "lpp.gnss_EarthOrientationParametersReq",
10370         FT_NONE, BASE_NONE, NULL, 0,
10371         NULL, HFILL }},
10372     { &hf_lpp_GNSS_GenericAssistDataReq_item,
10373       { "GNSS-GenericAssistDataReqElement", "lpp.GNSS_GenericAssistDataReqElement",
10374         FT_NONE, BASE_NONE, NULL, 0,
10375         NULL, HFILL }},
10376     { &hf_lpp_gnss_TimeModelsReq,
10377       { "gnss-TimeModelsReq", "lpp.gnss_TimeModelsReq",
10378         FT_UINT32, BASE_DEC, NULL, 0,
10379         "GNSS_TimeModelListReq", HFILL }},
10380     { &hf_lpp_gnss_DifferentialCorrectionsReq,
10381       { "gnss-DifferentialCorrectionsReq", "lpp.gnss_DifferentialCorrectionsReq",
10382         FT_NONE, BASE_NONE, NULL, 0,
10383         NULL, HFILL }},
10384     { &hf_lpp_gnss_NavigationModelReq,
10385       { "gnss-NavigationModelReq", "lpp.gnss_NavigationModelReq",
10386         FT_UINT32, BASE_DEC, VALS(lpp_GNSS_NavigationModelReq_vals), 0,
10387         NULL, HFILL }},
10388     { &hf_lpp_gnss_RealTimeIntegrityReq,
10389       { "gnss-RealTimeIntegrityReq", "lpp.gnss_RealTimeIntegrityReq",
10390         FT_NONE, BASE_NONE, NULL, 0,
10391         NULL, HFILL }},
10392     { &hf_lpp_gnss_DataBitAssistanceReq,
10393       { "gnss-DataBitAssistanceReq", "lpp.gnss_DataBitAssistanceReq",
10394         FT_NONE, BASE_NONE, NULL, 0,
10395         NULL, HFILL }},
10396     { &hf_lpp_gnss_AcquisitionAssistanceReq,
10397       { "gnss-AcquisitionAssistanceReq", "lpp.gnss_AcquisitionAssistanceReq",
10398         FT_NONE, BASE_NONE, NULL, 0,
10399         NULL, HFILL }},
10400     { &hf_lpp_gnss_AlmanacReq,
10401       { "gnss-AlmanacReq", "lpp.gnss_AlmanacReq",
10402         FT_NONE, BASE_NONE, NULL, 0,
10403         NULL, HFILL }},
10404     { &hf_lpp_gnss_UTCModelReq,
10405       { "gnss-UTCModelReq", "lpp.gnss_UTCModelReq",
10406         FT_NONE, BASE_NONE, NULL, 0,
10407         "GNSS_UTC_ModelReq", HFILL }},
10408     { &hf_lpp_gnss_AuxiliaryInformationReq,
10409       { "gnss-AuxiliaryInformationReq", "lpp.gnss_AuxiliaryInformationReq",
10410         FT_NONE, BASE_NONE, NULL, 0,
10411         NULL, HFILL }},
10412     { &hf_lpp_gnss_TimeReqPrefList,
10413       { "gnss-TimeReqPrefList", "lpp.gnss_TimeReqPrefList",
10414         FT_UINT32, BASE_DEC, NULL, 0,
10415         "SEQUENCE_SIZE_1_8_OF_GNSS_ID", HFILL }},
10416     { &hf_lpp_gnss_TimeReqPrefList_item,
10417       { "GNSS-ID", "lpp.GNSS_ID",
10418         FT_NONE, BASE_NONE, NULL, 0,
10419         NULL, HFILL }},
10420     { &hf_lpp_gps_TOW_assistReq,
10421       { "gps-TOW-assistReq", "lpp.gps_TOW_assistReq",
10422         FT_BOOLEAN, BASE_NONE, NULL, 0,
10423         "BOOLEAN", HFILL }},
10424     { &hf_lpp_notOfLeapSecReq,
10425       { "notOfLeapSecReq", "lpp.notOfLeapSecReq",
10426         FT_BOOLEAN, BASE_NONE, NULL, 0,
10427         "BOOLEAN", HFILL }},
10428     { &hf_lpp_klobucharModelReq,
10429       { "klobucharModelReq", "lpp.klobucharModelReq",
10430         FT_BYTES, BASE_NONE, NULL, 0,
10431         "BIT_STRING_SIZE_2", HFILL }},
10432     { &hf_lpp_neQuickModelReq,
10433       { "neQuickModelReq", "lpp.neQuickModelReq",
10434         FT_NONE, BASE_NONE, NULL, 0,
10435         NULL, HFILL }},
10436     { &hf_lpp_GNSS_TimeModelListReq_item,
10437       { "GNSS-TimeModelElementReq", "lpp.GNSS_TimeModelElementReq",
10438         FT_NONE, BASE_NONE, NULL, 0,
10439         NULL, HFILL }},
10440     { &hf_lpp_gnss_TO_IDsReq,
10441       { "gnss-TO-IDsReq", "lpp.gnss_TO_IDsReq",
10442         FT_UINT32, BASE_DEC, NULL, 0,
10443         "INTEGER_1_15", HFILL }},
10444     { &hf_lpp_deltaTreq,
10445       { "deltaTreq", "lpp.deltaTreq",
10446         FT_BOOLEAN, BASE_NONE, NULL, 0,
10447         "BOOLEAN", HFILL }},
10448     { &hf_lpp_dgnss_SignalsReq,
10449       { "dgnss-SignalsReq", "lpp.dgnss_SignalsReq",
10450         FT_NONE, BASE_NONE, NULL, 0,
10451         "GNSS_SignalIDs", HFILL }},
10452     { &hf_lpp_dgnss_ValidityTimeReq,
10453       { "dgnss-ValidityTimeReq", "lpp.dgnss_ValidityTimeReq",
10454         FT_BOOLEAN, BASE_NONE, NULL, 0,
10455         "BOOLEAN", HFILL }},
10456     { &hf_lpp_storedNavList,
10457       { "storedNavList", "lpp.storedNavList",
10458         FT_NONE, BASE_NONE, NULL, 0,
10459         "StoredNavListInfo", HFILL }},
10460     { &hf_lpp_reqNavList,
10461       { "reqNavList", "lpp.reqNavList",
10462         FT_NONE, BASE_NONE, NULL, 0,
10463         "ReqNavListInfo", HFILL }},
10464     { &hf_lpp_gnss_WeekOrDay,
10465       { "gnss-WeekOrDay", "lpp.gnss_WeekOrDay",
10466         FT_UINT32, BASE_DEC, NULL, 0,
10467         "INTEGER_0_4095", HFILL }},
10468     { &hf_lpp_gnss_Toe,
10469       { "gnss-Toe", "lpp.gnss_Toe",
10470         FT_UINT32, BASE_DEC, NULL, 0,
10471         "INTEGER_0_255", HFILL }},
10472     { &hf_lpp_t_toeLimit,
10473       { "t-toeLimit", "lpp.t_toeLimit",
10474         FT_UINT32, BASE_DEC, NULL, 0,
10475         "INTEGER_0_15", HFILL }},
10476     { &hf_lpp_satListRelatedDataList,
10477       { "satListRelatedDataList", "lpp.satListRelatedDataList",
10478         FT_UINT32, BASE_DEC, NULL, 0,
10479         NULL, HFILL }},
10480     { &hf_lpp_SatListRelatedDataList_item,
10481       { "SatListRelatedDataElement", "lpp.SatListRelatedDataElement",
10482         FT_NONE, BASE_NONE, NULL, 0,
10483         NULL, HFILL }},
10484     { &hf_lpp_clockModelID,
10485       { "clockModelID", "lpp.clockModelID",
10486         FT_UINT32, BASE_DEC, NULL, 0,
10487         "INTEGER_1_8", HFILL }},
10488     { &hf_lpp_orbitModelID,
10489       { "orbitModelID", "lpp.orbitModelID",
10490         FT_UINT32, BASE_DEC, NULL, 0,
10491         "INTEGER_1_8", HFILL }},
10492     { &hf_lpp_svReqList,
10493       { "svReqList", "lpp.svReqList",
10494         FT_BYTES, BASE_NONE, NULL, 0,
10495         "BIT_STRING_SIZE_64", HFILL }},
10496     { &hf_lpp_clockModelID_PrefList,
10497       { "clockModelID-PrefList", "lpp.clockModelID_PrefList",
10498         FT_UINT32, BASE_DEC, NULL, 0,
10499         NULL, HFILL }},
10500     { &hf_lpp_clockModelID_PrefList_item,
10501       { "clockModelID-PrefList item", "lpp.clockModelID_PrefList_item",
10502         FT_UINT32, BASE_DEC, NULL, 0,
10503         "INTEGER_1_8", HFILL }},
10504     { &hf_lpp_orbitModelID_PrefList,
10505       { "orbitModelID-PrefList", "lpp.orbitModelID_PrefList",
10506         FT_UINT32, BASE_DEC, NULL, 0,
10507         NULL, HFILL }},
10508     { &hf_lpp_orbitModelID_PrefList_item,
10509       { "orbitModelID-PrefList item", "lpp.orbitModelID_PrefList_item",
10510         FT_UINT32, BASE_DEC, NULL, 0,
10511         "INTEGER_1_8", HFILL }},
10512     { &hf_lpp_addNavparamReq,
10513       { "addNavparamReq", "lpp.addNavparamReq",
10514         FT_BOOLEAN, BASE_NONE, NULL, 0,
10515         "BOOLEAN", HFILL }},
10516     { &hf_lpp_gnss_TOD_Req,
10517       { "gnss-TOD-Req", "lpp.gnss_TOD_Req",
10518         FT_UINT32, BASE_DEC, NULL, 0,
10519         "INTEGER_0_3599", HFILL }},
10520     { &hf_lpp_gnss_TOD_FracReq,
10521       { "gnss-TOD-FracReq", "lpp.gnss_TOD_FracReq",
10522         FT_UINT32, BASE_DEC, NULL, 0,
10523         "INTEGER_0_999", HFILL }},
10524     { &hf_lpp_dataBitInterval,
10525       { "dataBitInterval", "lpp.dataBitInterval",
10526         FT_UINT32, BASE_DEC, NULL, 0,
10527         "INTEGER_0_15", HFILL }},
10528     { &hf_lpp_gnss_SignalType_01,
10529       { "gnss-SignalType", "lpp.gnss_SignalType",
10530         FT_NONE, BASE_NONE, NULL, 0,
10531         "GNSS_SignalIDs", HFILL }},
10532     { &hf_lpp_gnss_DataBitsReq,
10533       { "gnss-DataBitsReq", "lpp.gnss_DataBitsReq",
10534         FT_UINT32, BASE_DEC, NULL, 0,
10535         "GNSS_DataBitsReqSatList", HFILL }},
10536     { &hf_lpp_GNSS_DataBitsReqSatList_item,
10537       { "GNSS-DataBitsReqSatElement", "lpp.GNSS_DataBitsReqSatElement",
10538         FT_NONE, BASE_NONE, NULL, 0,
10539         NULL, HFILL }},
10540     { &hf_lpp_gnss_SignalID_Req,
10541       { "gnss-SignalID-Req", "lpp.gnss_SignalID_Req",
10542         FT_NONE, BASE_NONE, NULL, 0,
10543         "GNSS_SignalID", HFILL }},
10544     { &hf_lpp_modelID,
10545       { "modelID", "lpp.modelID",
10546         FT_UINT32, BASE_DEC, NULL, 0,
10547         "INTEGER_1_8", HFILL }},
10548     { &hf_lpp_gnss_SignalMeasurementInformation,
10549       { "gnss-SignalMeasurementInformation", "lpp.gnss_SignalMeasurementInformation",
10550         FT_NONE, BASE_NONE, NULL, 0,
10551         NULL, HFILL }},
10552     { &hf_lpp_gnss_LocationInformation,
10553       { "gnss-LocationInformation", "lpp.gnss_LocationInformation",
10554         FT_NONE, BASE_NONE, NULL, 0,
10555         NULL, HFILL }},
10556     { &hf_lpp_measurementReferenceTime,
10557       { "measurementReferenceTime", "lpp.measurementReferenceTime",
10558         FT_NONE, BASE_NONE, NULL, 0,
10559         NULL, HFILL }},
10560     { &hf_lpp_gnss_MeasurementList,
10561       { "gnss-MeasurementList", "lpp.gnss_MeasurementList",
10562         FT_UINT32, BASE_DEC, NULL, 0,
10563         NULL, HFILL }},
10564     { &hf_lpp_gnss_TOD_msec,
10565       { "gnss-TOD-msec", "lpp.gnss_TOD_msec",
10566         FT_UINT32, BASE_DEC, NULL, 0,
10567         "INTEGER_0_3599999", HFILL }},
10568     { &hf_lpp_gnss_TOD_frac,
10569       { "gnss-TOD-frac", "lpp.gnss_TOD_frac",
10570         FT_UINT32, BASE_DEC, NULL, 0,
10571         "INTEGER_0_3999", HFILL }},
10572     { &hf_lpp_gnss_TOD_unc,
10573       { "gnss-TOD-unc", "lpp.gnss_TOD_unc",
10574         FT_UINT32, BASE_DEC, NULL, 0,
10575         "INTEGER_0_127", HFILL }},
10576     { &hf_lpp_networkTime_01,
10577       { "networkTime", "lpp.networkTime",
10578         FT_UINT32, BASE_DEC, VALS(lpp_T_networkTime_vals), 0,
10579         NULL, HFILL }},
10580     { &hf_lpp_eUTRA_01,
10581       { "eUTRA", "lpp.eUTRA",
10582         FT_NONE, BASE_NONE, NULL, 0,
10583         "T_eUTRA_01", HFILL }},
10584     { &hf_lpp_cellGlobalId_01,
10585       { "cellGlobalId", "lpp.cellGlobalId",
10586         FT_NONE, BASE_NONE, NULL, 0,
10587         "CellGlobalIdEUTRA_AndUTRA", HFILL }},
10588     { &hf_lpp_uTRA_01,
10589       { "uTRA", "lpp.uTRA",
10590         FT_NONE, BASE_NONE, NULL, 0,
10591         "T_uTRA_01", HFILL }},
10592     { &hf_lpp_mode_01,
10593       { "mode", "lpp.mode",
10594         FT_UINT32, BASE_DEC, VALS(lpp_T_mode_01_vals), 0,
10595         "T_mode_01", HFILL }},
10596     { &hf_lpp_fdd_01,
10597       { "fdd", "lpp.fdd",
10598         FT_NONE, BASE_NONE, NULL, 0,
10599         "T_fdd_01", HFILL }},
10600     { &hf_lpp_tdd_01,
10601       { "tdd", "lpp.tdd",
10602         FT_NONE, BASE_NONE, NULL, 0,
10603         "T_tdd_01", HFILL }},
10604     { &hf_lpp_referenceSystemFrameNumber,
10605       { "referenceSystemFrameNumber", "lpp.referenceSystemFrameNumber",
10606         FT_UINT32, BASE_DEC, NULL, 0,
10607         "INTEGER_0_4095", HFILL }},
10608     { &hf_lpp_gSM_01,
10609       { "gSM", "lpp.gSM",
10610         FT_NONE, BASE_NONE, NULL, 0,
10611         "T_gSM_01", HFILL }},
10612     { &hf_lpp_cellGlobalId_02,
10613       { "cellGlobalId", "lpp.cellGlobalId",
10614         FT_NONE, BASE_NONE, NULL, 0,
10615         "CellGlobalIdGERAN", HFILL }},
10616     { &hf_lpp_referenceFrame,
10617       { "referenceFrame", "lpp.referenceFrame",
10618         FT_NONE, BASE_NONE, NULL, 0,
10619         NULL, HFILL }},
10620     { &hf_lpp_referenceFN,
10621       { "referenceFN", "lpp.referenceFN",
10622         FT_UINT32, BASE_DEC, NULL, 0,
10623         "INTEGER_0_65535", HFILL }},
10624     { &hf_lpp_referenceFNMSB,
10625       { "referenceFNMSB", "lpp.referenceFNMSB",
10626         FT_UINT32, BASE_DEC, NULL, 0,
10627         "INTEGER_0_63", HFILL }},
10628     { &hf_lpp_deltaGNSS_TOD,
10629       { "deltaGNSS-TOD", "lpp.deltaGNSS_TOD",
10630         FT_UINT32, BASE_DEC, NULL, 0,
10631         "INTEGER_0_127", HFILL }},
10632     { &hf_lpp_GNSS_MeasurementList_item,
10633       { "GNSS-MeasurementForOneGNSS", "lpp.GNSS_MeasurementForOneGNSS",
10634         FT_NONE, BASE_NONE, NULL, 0,
10635         NULL, HFILL }},
10636     { &hf_lpp_gnss_SgnMeasList,
10637       { "gnss-SgnMeasList", "lpp.gnss_SgnMeasList",
10638         FT_UINT32, BASE_DEC, NULL, 0,
10639         NULL, HFILL }},
10640     { &hf_lpp_GNSS_SgnMeasList_item,
10641       { "GNSS-SgnMeasElement", "lpp.GNSS_SgnMeasElement",
10642         FT_NONE, BASE_NONE, NULL, 0,
10643         NULL, HFILL }},
10644     { &hf_lpp_gnss_CodePhaseAmbiguity,
10645       { "gnss-CodePhaseAmbiguity", "lpp.gnss_CodePhaseAmbiguity",
10646         FT_UINT32, BASE_DEC, NULL, 0,
10647         "INTEGER_0_127", HFILL }},
10648     { &hf_lpp_gnss_SatMeasList,
10649       { "gnss-SatMeasList", "lpp.gnss_SatMeasList",
10650         FT_UINT32, BASE_DEC, NULL, 0,
10651         NULL, HFILL }},
10652     { &hf_lpp_GNSS_SatMeasList_item,
10653       { "GNSS-SatMeasElement", "lpp.GNSS_SatMeasElement",
10654         FT_NONE, BASE_NONE, NULL, 0,
10655         NULL, HFILL }},
10656     { &hf_lpp_cNo,
10657       { "cNo", "lpp.cNo",
10658         FT_UINT32, BASE_DEC, NULL, 0,
10659         "INTEGER_0_63", HFILL }},
10660     { &hf_lpp_mpathDet,
10661       { "mpathDet", "lpp.mpathDet",
10662         FT_UINT32, BASE_DEC, VALS(lpp_T_mpathDet_vals), 0,
10663         NULL, HFILL }},
10664     { &hf_lpp_carrierQualityInd,
10665       { "carrierQualityInd", "lpp.carrierQualityInd",
10666         FT_UINT32, BASE_DEC, NULL, 0,
10667         "INTEGER_0_3", HFILL }},
10668     { &hf_lpp_codePhase_01,
10669       { "codePhase", "lpp.codePhase",
10670         FT_UINT32, BASE_DEC, NULL, 0,
10671         "INTEGER_0_2097151", HFILL }},
10672     { &hf_lpp_integerCodePhase,
10673       { "integerCodePhase", "lpp.integerCodePhase",
10674         FT_UINT32, BASE_DEC, NULL, 0,
10675         "INTEGER_0_127", HFILL }},
10676     { &hf_lpp_codePhaseRMSError,
10677       { "codePhaseRMSError", "lpp.codePhaseRMSError",
10678         FT_UINT32, BASE_DEC, NULL, 0,
10679         "INTEGER_0_63", HFILL }},
10680     { &hf_lpp_doppler,
10681       { "doppler", "lpp.doppler",
10682         FT_INT32, BASE_DEC, NULL, 0,
10683         "INTEGER_M32768_32767", HFILL }},
10684     { &hf_lpp_adr,
10685       { "adr", "lpp.adr",
10686         FT_UINT32, BASE_DEC, NULL, 0,
10687         "INTEGER_0_33554431", HFILL }},
10688     { &hf_lpp_agnss_List,
10689       { "agnss-List", "lpp.agnss_List",
10690         FT_NONE, BASE_NONE, NULL, 0,
10691         "GNSS_ID_Bitmap", HFILL }},
10692     { &hf_lpp_gnss_PositioningInstructions,
10693       { "gnss-PositioningInstructions", "lpp.gnss_PositioningInstructions",
10694         FT_NONE, BASE_NONE, NULL, 0,
10695         NULL, HFILL }},
10696     { &hf_lpp_gnss_Methods,
10697       { "gnss-Methods", "lpp.gnss_Methods",
10698         FT_NONE, BASE_NONE, NULL, 0,
10699         "GNSS_ID_Bitmap", HFILL }},
10700     { &hf_lpp_fineTimeAssistanceMeasReq,
10701       { "fineTimeAssistanceMeasReq", "lpp.fineTimeAssistanceMeasReq",
10702         FT_BOOLEAN, BASE_NONE, NULL, 0,
10703         "BOOLEAN", HFILL }},
10704     { &hf_lpp_adrMeasReq,
10705       { "adrMeasReq", "lpp.adrMeasReq",
10706         FT_BOOLEAN, BASE_NONE, NULL, 0,
10707         "BOOLEAN", HFILL }},
10708     { &hf_lpp_multiFreqMeasReq,
10709       { "multiFreqMeasReq", "lpp.multiFreqMeasReq",
10710         FT_BOOLEAN, BASE_NONE, NULL, 0,
10711         "BOOLEAN", HFILL }},
10712     { &hf_lpp_gnss_SupportList,
10713       { "gnss-SupportList", "lpp.gnss_SupportList",
10714         FT_UINT32, BASE_DEC, NULL, 0,
10715         NULL, HFILL }},
10716     { &hf_lpp_assistanceDataSupportList,
10717       { "assistanceDataSupportList", "lpp.assistanceDataSupportList",
10718         FT_NONE, BASE_NONE, NULL, 0,
10719         NULL, HFILL }},
10720     { &hf_lpp_GNSS_SupportList_item,
10721       { "GNSS-SupportElement", "lpp.GNSS_SupportElement",
10722         FT_NONE, BASE_NONE, NULL, 0,
10723         NULL, HFILL }},
10724     { &hf_lpp_sbas_IDs,
10725       { "sbas-IDs", "lpp.sbas_IDs",
10726         FT_NONE, BASE_NONE, NULL, 0,
10727         NULL, HFILL }},
10728     { &hf_lpp_agnss_Modes,
10729       { "agnss-Modes", "lpp.agnss_Modes",
10730         FT_NONE, BASE_NONE, NULL, 0,
10731         "PositioningModes", HFILL }},
10732     { &hf_lpp_gnss_Signals,
10733       { "gnss-Signals", "lpp.gnss_Signals",
10734         FT_NONE, BASE_NONE, NULL, 0,
10735         "GNSS_SignalIDs", HFILL }},
10736     { &hf_lpp_fta_MeasSupport,
10737       { "fta-MeasSupport", "lpp.fta_MeasSupport",
10738         FT_NONE, BASE_NONE, NULL, 0,
10739         NULL, HFILL }},
10740     { &hf_lpp_cellTime,
10741       { "cellTime", "lpp.cellTime",
10742         FT_NONE, BASE_NONE, NULL, 0,
10743         "AccessTypes", HFILL }},
10744     { &hf_lpp_mode_02,
10745       { "mode", "lpp.mode",
10746         FT_NONE, BASE_NONE, NULL, 0,
10747         "PositioningModes", HFILL }},
10748     { &hf_lpp_adr_Support,
10749       { "adr-Support", "lpp.adr_Support",
10750         FT_BOOLEAN, BASE_NONE, NULL, 0,
10751         "BOOLEAN", HFILL }},
10752     { &hf_lpp_velocityMeasurementSupport,
10753       { "velocityMeasurementSupport", "lpp.velocityMeasurementSupport",
10754         FT_BOOLEAN, BASE_NONE, NULL, 0,
10755         "BOOLEAN", HFILL }},
10756     { &hf_lpp_gnss_CommonAssistanceDataSupport,
10757       { "gnss-CommonAssistanceDataSupport", "lpp.gnss_CommonAssistanceDataSupport",
10758         FT_NONE, BASE_NONE, NULL, 0,
10759         NULL, HFILL }},
10760     { &hf_lpp_gnss_GenericAssistanceDataSupport,
10761       { "gnss-GenericAssistanceDataSupport", "lpp.gnss_GenericAssistanceDataSupport",
10762         FT_UINT32, BASE_DEC, NULL, 0,
10763         NULL, HFILL }},
10764     { &hf_lpp_gnss_ReferenceTimeSupport,
10765       { "gnss-ReferenceTimeSupport", "lpp.gnss_ReferenceTimeSupport",
10766         FT_NONE, BASE_NONE, NULL, 0,
10767         NULL, HFILL }},
10768     { &hf_lpp_gnss_ReferenceLocationSupport,
10769       { "gnss-ReferenceLocationSupport", "lpp.gnss_ReferenceLocationSupport",
10770         FT_NONE, BASE_NONE, NULL, 0,
10771         NULL, HFILL }},
10772     { &hf_lpp_gnss_IonosphericModelSupport,
10773       { "gnss-IonosphericModelSupport", "lpp.gnss_IonosphericModelSupport",
10774         FT_NONE, BASE_NONE, NULL, 0,
10775         NULL, HFILL }},
10776     { &hf_lpp_gnss_EarthOrientationParametersSupport,
10777       { "gnss-EarthOrientationParametersSupport", "lpp.gnss_EarthOrientationParametersSupport",
10778         FT_NONE, BASE_NONE, NULL, 0,
10779         NULL, HFILL }},
10780     { &hf_lpp_gnss_SystemTime_01,
10781       { "gnss-SystemTime", "lpp.gnss_SystemTime",
10782         FT_NONE, BASE_NONE, NULL, 0,
10783         "GNSS_ID_Bitmap", HFILL }},
10784     { &hf_lpp_fta_Support,
10785       { "fta-Support", "lpp.fta_Support",
10786         FT_NONE, BASE_NONE, NULL, 0,
10787         "AccessTypes", HFILL }},
10788     { &hf_lpp_ionoModel,
10789       { "ionoModel", "lpp.ionoModel",
10790         FT_BYTES, BASE_NONE, NULL, 0,
10791         NULL, HFILL }},
10792     { &hf_lpp_GNSS_GenericAssistanceDataSupport_item,
10793       { "GNSS-GenericAssistDataSupportElement", "lpp.GNSS_GenericAssistDataSupportElement",
10794         FT_NONE, BASE_NONE, NULL, 0,
10795         NULL, HFILL }},
10796     { &hf_lpp_gnss_TimeModelsSupport,
10797       { "gnss-TimeModelsSupport", "lpp.gnss_TimeModelsSupport",
10798         FT_NONE, BASE_NONE, NULL, 0,
10799         "GNSS_TimeModelListSupport", HFILL }},
10800     { &hf_lpp_gnss_DifferentialCorrectionsSupport,
10801       { "gnss-DifferentialCorrectionsSupport", "lpp.gnss_DifferentialCorrectionsSupport",
10802         FT_NONE, BASE_NONE, NULL, 0,
10803         NULL, HFILL }},
10804     { &hf_lpp_gnss_NavigationModelSupport,
10805       { "gnss-NavigationModelSupport", "lpp.gnss_NavigationModelSupport",
10806         FT_NONE, BASE_NONE, NULL, 0,
10807         NULL, HFILL }},
10808     { &hf_lpp_gnss_RealTimeIntegritySupport,
10809       { "gnss-RealTimeIntegritySupport", "lpp.gnss_RealTimeIntegritySupport",
10810         FT_NONE, BASE_NONE, NULL, 0,
10811         NULL, HFILL }},
10812     { &hf_lpp_gnss_DataBitAssistanceSupport,
10813       { "gnss-DataBitAssistanceSupport", "lpp.gnss_DataBitAssistanceSupport",
10814         FT_NONE, BASE_NONE, NULL, 0,
10815         NULL, HFILL }},
10816     { &hf_lpp_gnss_AcquisitionAssistanceSupport,
10817       { "gnss-AcquisitionAssistanceSupport", "lpp.gnss_AcquisitionAssistanceSupport",
10818         FT_NONE, BASE_NONE, NULL, 0,
10819         NULL, HFILL }},
10820     { &hf_lpp_gnss_AlmanacSupport,
10821       { "gnss-AlmanacSupport", "lpp.gnss_AlmanacSupport",
10822         FT_NONE, BASE_NONE, NULL, 0,
10823         NULL, HFILL }},
10824     { &hf_lpp_gnss_UTC_ModelSupport,
10825       { "gnss-UTC-ModelSupport", "lpp.gnss_UTC_ModelSupport",
10826         FT_NONE, BASE_NONE, NULL, 0,
10827         NULL, HFILL }},
10828     { &hf_lpp_gnss_AuxiliaryInformationSupport,
10829       { "gnss-AuxiliaryInformationSupport", "lpp.gnss_AuxiliaryInformationSupport",
10830         FT_NONE, BASE_NONE, NULL, 0,
10831         NULL, HFILL }},
10832     { &hf_lpp_gnssSignalIDs,
10833       { "gnssSignalIDs", "lpp.gnssSignalIDs",
10834         FT_NONE, BASE_NONE, NULL, 0,
10835         "GNSS_SignalIDs", HFILL }},
10836     { &hf_lpp_dgnss_ValidityTimeSup,
10837       { "dgnss-ValidityTimeSup", "lpp.dgnss_ValidityTimeSup",
10838         FT_BOOLEAN, BASE_NONE, NULL, 0,
10839         "BOOLEAN", HFILL }},
10840     { &hf_lpp_clockModel,
10841       { "clockModel", "lpp.clockModel",
10842         FT_BYTES, BASE_NONE, NULL, 0,
10843         NULL, HFILL }},
10844     { &hf_lpp_orbitModel,
10845       { "orbitModel", "lpp.orbitModel",
10846         FT_BYTES, BASE_NONE, NULL, 0,
10847         NULL, HFILL }},
10848     { &hf_lpp_almanacModel,
10849       { "almanacModel", "lpp.almanacModel",
10850         FT_BYTES, BASE_NONE, NULL, 0,
10851         NULL, HFILL }},
10852     { &hf_lpp_utc_Model,
10853       { "utc-Model", "lpp.utc_Model",
10854         FT_BYTES, BASE_NONE, NULL, 0,
10855         NULL, HFILL }},
10856     { &hf_lpp_gnss_SupportListReq,
10857       { "gnss-SupportListReq", "lpp.gnss_SupportListReq",
10858         FT_BOOLEAN, BASE_NONE, NULL, 0,
10859         "BOOLEAN", HFILL }},
10860     { &hf_lpp_assistanceDataSupportListReq,
10861       { "assistanceDataSupportListReq", "lpp.assistanceDataSupportListReq",
10862         FT_BOOLEAN, BASE_NONE, NULL, 0,
10863         "BOOLEAN", HFILL }},
10864     { &hf_lpp_locationVelocityTypesReq,
10865       { "locationVelocityTypesReq", "lpp.locationVelocityTypesReq",
10866         FT_BOOLEAN, BASE_NONE, NULL, 0,
10867         "BOOLEAN", HFILL }},
10868     { &hf_lpp_locationServerErrorCauses_01,
10869       { "locationServerErrorCauses", "lpp.locationServerErrorCauses",
10870         FT_NONE, BASE_NONE, NULL, 0,
10871         "GNSS_LocationServerErrorCauses", HFILL }},
10872     { &hf_lpp_targetDeviceErrorCauses_01,
10873       { "targetDeviceErrorCauses", "lpp.targetDeviceErrorCauses",
10874         FT_NONE, BASE_NONE, NULL, 0,
10875         "GNSS_TargetDeviceErrorCauses", HFILL }},
10876     { &hf_lpp_cause_02,
10877       { "cause", "lpp.cause",
10878         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_02_vals), 0,
10879         "T_cause_02", HFILL }},
10880     { &hf_lpp_cause_03,
10881       { "cause", "lpp.cause",
10882         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_03_vals), 0,
10883         "T_cause_03", HFILL }},
10884     { &hf_lpp_fineTimeAssistanceMeasurementsNotPossible,
10885       { "fineTimeAssistanceMeasurementsNotPossible", "lpp.fineTimeAssistanceMeasurementsNotPossible",
10886         FT_NONE, BASE_NONE, NULL, 0,
10887         NULL, HFILL }},
10888     { &hf_lpp_adrMeasurementsNotPossible,
10889       { "adrMeasurementsNotPossible", "lpp.adrMeasurementsNotPossible",
10890         FT_NONE, BASE_NONE, NULL, 0,
10891         NULL, HFILL }},
10892     { &hf_lpp_multiFrequencyMeasurementsNotPossible,
10893       { "multiFrequencyMeasurementsNotPossible", "lpp.multiFrequencyMeasurementsNotPossible",
10894         FT_NONE, BASE_NONE, NULL, 0,
10895         NULL, HFILL }},
10896     { &hf_lpp_gnss_id,
10897       { "gnss-id", "lpp.gnss_id",
10898         FT_UINT32, BASE_DEC, VALS(lpp_T_gnss_id_vals), 0,
10899         NULL, HFILL }},
10900     { &hf_lpp_gnss_ids,
10901       { "gnss-ids", "lpp.gnss_ids",
10902         FT_BYTES, BASE_NONE, NULL, 0,
10903         NULL, HFILL }},
10904     { &hf_lpp_gnss_SignalID_01,
10905       { "gnss-SignalID", "lpp.gnss_SignalID",
10906         FT_UINT32, BASE_DEC, NULL, 0,
10907         "INTEGER_0_7", HFILL }},
10908     { &hf_lpp_gnss_SignalIDs,
10909       { "gnss-SignalIDs", "lpp.gnss_SignalIDs",
10910         FT_BYTES, BASE_NONE, NULL, 0,
10911         "BIT_STRING_SIZE_8", HFILL }},
10912     { &hf_lpp_sbas_id,
10913       { "sbas-id", "lpp.sbas_id",
10914         FT_UINT32, BASE_DEC, VALS(lpp_T_sbas_id_vals), 0,
10915         NULL, HFILL }},
10916     { &hf_lpp_sbas_IDs_01,
10917       { "sbas-IDs", "lpp.sbas_IDs",
10918         FT_BYTES, BASE_NONE, NULL, 0,
10919         NULL, HFILL }},
10920     { &hf_lpp_satellite_id,
10921       { "satellite-id", "lpp.satellite_id",
10922         FT_UINT32, BASE_DEC, NULL, 0,
10923         "INTEGER_0_63", HFILL }},
10924     { &hf_lpp_ecid_SignalMeasurementInformation,
10925       { "ecid-SignalMeasurementInformation", "lpp.ecid_SignalMeasurementInformation",
10926         FT_NONE, BASE_NONE, NULL, 0,
10927         NULL, HFILL }},
10928     { &hf_lpp_ecid_Error,
10929       { "ecid-Error", "lpp.ecid_Error",
10930         FT_UINT32, BASE_DEC, VALS(lpp_ECID_Error_vals), 0,
10931         NULL, HFILL }},
10932     { &hf_lpp_servingCellMeasuredResults,
10933       { "servingCellMeasuredResults", "lpp.servingCellMeasuredResults",
10934         FT_NONE, BASE_NONE, NULL, 0,
10935         "MeasuredResultsElement", HFILL }},
10936     { &hf_lpp_measuredResultsList,
10937       { "measuredResultsList", "lpp.measuredResultsList",
10938         FT_UINT32, BASE_DEC, NULL, 0,
10939         NULL, HFILL }},
10940     { &hf_lpp_MeasuredResultsList_item,
10941       { "MeasuredResultsElement", "lpp.MeasuredResultsElement",
10942         FT_NONE, BASE_NONE, NULL, 0,
10943         NULL, HFILL }},
10944     { &hf_lpp_arfcnEUTRA,
10945       { "arfcnEUTRA", "lpp.arfcnEUTRA",
10946         FT_UINT32, BASE_DEC, NULL, 0,
10947         "ARFCN_ValueEUTRA", HFILL }},
10948     { &hf_lpp_rsrp_Result,
10949       { "rsrp-Result", "lpp.rsrp_Result",
10950         FT_UINT32, BASE_DEC, NULL, 0,
10951         "INTEGER_0_97", HFILL }},
10952     { &hf_lpp_rsrq_Result,
10953       { "rsrq-Result", "lpp.rsrq_Result",
10954         FT_UINT32, BASE_DEC, NULL, 0,
10955         "INTEGER_0_34", HFILL }},
10956     { &hf_lpp_ue_RxTxTimeDiff,
10957       { "ue-RxTxTimeDiff", "lpp.ue_RxTxTimeDiff",
10958         FT_UINT32, BASE_DEC, NULL, 0,
10959         "INTEGER_0_4095", HFILL }},
10960     { &hf_lpp_requestedMeasurements,
10961       { "requestedMeasurements", "lpp.requestedMeasurements",
10962         FT_BYTES, BASE_NONE, NULL, 0,
10963         NULL, HFILL }},
10964     { &hf_lpp_ecid_MeasSupported,
10965       { "ecid-MeasSupported", "lpp.ecid_MeasSupported",
10966         FT_BYTES, BASE_NONE, NULL, 0,
10967         NULL, HFILL }},
10968     { &hf_lpp_locationServerErrorCauses_02,
10969       { "locationServerErrorCauses", "lpp.locationServerErrorCauses",
10970         FT_NONE, BASE_NONE, NULL, 0,
10971         "ECID_LocationServerErrorCauses", HFILL }},
10972     { &hf_lpp_targetDeviceErrorCauses_02,
10973       { "targetDeviceErrorCauses", "lpp.targetDeviceErrorCauses",
10974         FT_NONE, BASE_NONE, NULL, 0,
10975         "ECID_TargetDeviceErrorCauses", HFILL }},
10976     { &hf_lpp_cause_04,
10977       { "cause", "lpp.cause",
10978         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_04_vals), 0,
10979         "T_cause_04", HFILL }},
10980     { &hf_lpp_cause_05,
10981       { "cause", "lpp.cause",
10982         FT_UINT32, BASE_DEC, VALS(lpp_T_cause_05_vals), 0,
10983         "T_cause_05", HFILL }},
10984     { &hf_lpp_rsrpMeasurementNotPossible,
10985       { "rsrpMeasurementNotPossible", "lpp.rsrpMeasurementNotPossible",
10986         FT_NONE, BASE_NONE, NULL, 0,
10987         NULL, HFILL }},
10988     { &hf_lpp_rsrqMeasurementNotPossible,
10989       { "rsrqMeasurementNotPossible", "lpp.rsrqMeasurementNotPossible",
10990         FT_NONE, BASE_NONE, NULL, 0,
10991         NULL, HFILL }},
10992     { &hf_lpp_ueRxTxMeasurementNotPossible,
10993       { "ueRxTxMeasurementNotPossible", "lpp.ueRxTxMeasurementNotPossible",
10994         FT_NONE, BASE_NONE, NULL, 0,
10995         NULL, HFILL }},
10996     { &hf_lpp_T_accessTypes_eutra,
10997       { "eutra", "lpp.eutra",
10998         FT_BOOLEAN, 8, NULL, 0x80,
10999         NULL, HFILL }},
11000     { &hf_lpp_T_accessTypes_utra,
11001       { "utra", "lpp.utra",
11002         FT_BOOLEAN, 8, NULL, 0x40,
11003         NULL, HFILL }},
11004     { &hf_lpp_T_accessTypes_gsm,
11005       { "gsm", "lpp.gsm",
11006         FT_BOOLEAN, 8, NULL, 0x20,
11007         NULL, HFILL }},
11008     { &hf_lpp_T_posModes_standalone,
11009       { "standalone", "lpp.standalone",
11010         FT_BOOLEAN, 8, NULL, 0x80,
11011         NULL, HFILL }},
11012     { &hf_lpp_T_posModes_ue_based,
11013       { "ue-based", "lpp.ue-based",
11014         FT_BOOLEAN, 8, NULL, 0x40,
11015         NULL, HFILL }},
11016     { &hf_lpp_T_posModes_ue_assisted,
11017       { "ue-assisted", "lpp.ue-assisted",
11018         FT_BOOLEAN, 8, NULL, 0x20,
11019         NULL, HFILL }},
11020     { &hf_lpp_T_otdoa_Mode_ue_assisted,
11021       { "ue-assisted", "lpp.ue-assisted",
11022         FT_BOOLEAN, 8, NULL, 0x80,
11023         NULL, HFILL }},
11024     { &hf_lpp_T_ionoModel_klobuchar,
11025       { "klobuchar", "lpp.klobuchar",
11026         FT_BOOLEAN, 8, NULL, 0x80,
11027         NULL, HFILL }},
11028     { &hf_lpp_T_ionoModel_neQuick,
11029       { "neQuick", "lpp.neQuick",
11030         FT_BOOLEAN, 8, NULL, 0x40,
11031         NULL, HFILL }},
11032     { &hf_lpp_T_clockModel_model_1,
11033       { "model-1", "lpp.model-1",
11034         FT_BOOLEAN, 8, NULL, 0x80,
11035         NULL, HFILL }},
11036     { &hf_lpp_T_clockModel_model_2,
11037       { "model-2", "lpp.model-2",
11038         FT_BOOLEAN, 8, NULL, 0x40,
11039         NULL, HFILL }},
11040     { &hf_lpp_T_clockModel_model_3,
11041       { "model-3", "lpp.model-3",
11042         FT_BOOLEAN, 8, NULL, 0x20,
11043         NULL, HFILL }},
11044     { &hf_lpp_T_clockModel_model_4,
11045       { "model-4", "lpp.model-4",
11046         FT_BOOLEAN, 8, NULL, 0x10,
11047         NULL, HFILL }},
11048     { &hf_lpp_T_clockModel_model_5,
11049       { "model-5", "lpp.model-5",
11050         FT_BOOLEAN, 8, NULL, 0x08,
11051         NULL, HFILL }},
11052     { &hf_lpp_T_orbitModel_model_1,
11053       { "model-1", "lpp.model-1",
11054         FT_BOOLEAN, 8, NULL, 0x80,
11055         NULL, HFILL }},
11056     { &hf_lpp_T_orbitModel_model_2,
11057       { "model-2", "lpp.model-2",
11058         FT_BOOLEAN, 8, NULL, 0x40,
11059         NULL, HFILL }},
11060     { &hf_lpp_T_orbitModel_model_3,
11061       { "model-3", "lpp.model-3",
11062         FT_BOOLEAN, 8, NULL, 0x20,
11063         NULL, HFILL }},
11064     { &hf_lpp_T_orbitModel_model_4,
11065       { "model-4", "lpp.model-4",
11066         FT_BOOLEAN, 8, NULL, 0x10,
11067         NULL, HFILL }},
11068     { &hf_lpp_T_orbitModel_model_5,
11069       { "model-5", "lpp.model-5",
11070         FT_BOOLEAN, 8, NULL, 0x08,
11071         NULL, HFILL }},
11072     { &hf_lpp_T_almanacModel_model_1,
11073       { "model-1", "lpp.model-1",
11074         FT_BOOLEAN, 8, NULL, 0x80,
11075         NULL, HFILL }},
11076     { &hf_lpp_T_almanacModel_model_2,
11077       { "model-2", "lpp.model-2",
11078         FT_BOOLEAN, 8, NULL, 0x40,
11079         NULL, HFILL }},
11080     { &hf_lpp_T_almanacModel_model_3,
11081       { "model-3", "lpp.model-3",
11082         FT_BOOLEAN, 8, NULL, 0x20,
11083         NULL, HFILL }},
11084     { &hf_lpp_T_almanacModel_model_4,
11085       { "model-4", "lpp.model-4",
11086         FT_BOOLEAN, 8, NULL, 0x10,
11087         NULL, HFILL }},
11088     { &hf_lpp_T_almanacModel_model_5,
11089       { "model-5", "lpp.model-5",
11090         FT_BOOLEAN, 8, NULL, 0x08,
11091         NULL, HFILL }},
11092     { &hf_lpp_T_almanacModel_model_6,
11093       { "model-6", "lpp.model-6",
11094         FT_BOOLEAN, 8, NULL, 0x04,
11095         NULL, HFILL }},
11096     { &hf_lpp_T_utc_Model_model_1,
11097       { "model-1", "lpp.model-1",
11098         FT_BOOLEAN, 8, NULL, 0x80,
11099         NULL, HFILL }},
11100     { &hf_lpp_T_utc_Model_model_2,
11101       { "model-2", "lpp.model-2",
11102         FT_BOOLEAN, 8, NULL, 0x40,
11103         NULL, HFILL }},
11104     { &hf_lpp_T_utc_Model_model_3,
11105       { "model-3", "lpp.model-3",
11106         FT_BOOLEAN, 8, NULL, 0x20,
11107         NULL, HFILL }},
11108     { &hf_lpp_T_utc_Model_model_4,
11109       { "model-4", "lpp.model-4",
11110         FT_BOOLEAN, 8, NULL, 0x10,
11111         NULL, HFILL }},
11112     { &hf_lpp_T_gnss_ids_gps,
11113       { "gps", "lpp.gps",
11114         FT_BOOLEAN, 8, NULL, 0x80,
11115         NULL, HFILL }},
11116     { &hf_lpp_T_gnss_ids_sbas,
11117       { "sbas", "lpp.sbas",
11118         FT_BOOLEAN, 8, NULL, 0x40,
11119         NULL, HFILL }},
11120     { &hf_lpp_T_gnss_ids_qzss,
11121       { "qzss", "lpp.qzss",
11122         FT_BOOLEAN, 8, NULL, 0x20,
11123         NULL, HFILL }},
11124     { &hf_lpp_T_gnss_ids_galileo,
11125       { "galileo", "lpp.galileo",
11126         FT_BOOLEAN, 8, NULL, 0x10,
11127         NULL, HFILL }},
11128     { &hf_lpp_T_gnss_ids_glonass,
11129       { "glonass", "lpp.glonass",
11130         FT_BOOLEAN, 8, NULL, 0x08,
11131         NULL, HFILL }},
11132     { &hf_lpp_T_sbas_IDs_waas,
11133       { "waas", "lpp.waas",
11134         FT_BOOLEAN, 8, NULL, 0x80,
11135         NULL, HFILL }},
11136     { &hf_lpp_T_sbas_IDs_egnos,
11137       { "egnos", "lpp.egnos",
11138         FT_BOOLEAN, 8, NULL, 0x40,
11139         NULL, HFILL }},
11140     { &hf_lpp_T_sbas_IDs_msas,
11141       { "msas", "lpp.msas",
11142         FT_BOOLEAN, 8, NULL, 0x20,
11143         NULL, HFILL }},
11144     { &hf_lpp_T_sbas_IDs_gagan,
11145       { "gagan", "lpp.gagan",
11146         FT_BOOLEAN, 8, NULL, 0x10,
11147         NULL, HFILL }},
11148     { &hf_lpp_T_requestedMeasurements_rsrpReq,
11149       { "rsrpReq", "lpp.rsrpReq",
11150         FT_BOOLEAN, 8, NULL, 0x80,
11151         NULL, HFILL }},
11152     { &hf_lpp_T_requestedMeasurements_rsrqReq,
11153       { "rsrqReq", "lpp.rsrqReq",
11154         FT_BOOLEAN, 8, NULL, 0x40,
11155         NULL, HFILL }},
11156     { &hf_lpp_T_requestedMeasurements_ueRxTxReq,
11157       { "ueRxTxReq", "lpp.ueRxTxReq",
11158         FT_BOOLEAN, 8, NULL, 0x20,
11159         NULL, HFILL }},
11160     { &hf_lpp_T_ecid_MeasSupported_rsrpSup,
11161       { "rsrpSup", "lpp.rsrpSup",
11162         FT_BOOLEAN, 8, NULL, 0x80,
11163         NULL, HFILL }},
11164     { &hf_lpp_T_ecid_MeasSupported_rsrqSup,
11165       { "rsrqSup", "lpp.rsrqSup",
11166         FT_BOOLEAN, 8, NULL, 0x40,
11167         NULL, HFILL }},
11168     { &hf_lpp_T_ecid_MeasSupported_ueRxTxSup,
11169       { "ueRxTxSup", "lpp.ueRxTxSup",
11170         FT_BOOLEAN, 8, NULL, 0x20,
11171         NULL, HFILL }},
11172
11173 /*--- End of included file: packet-lpp-hfarr.c ---*/
11174 #line 71 "../../asn1/lpp/packet-lpp-template.c"
11175   };
11176
11177   /* List of subtrees */
11178   static gint *ett[] = {
11179           &ett_lpp,
11180
11181 /*--- Included file: packet-lpp-ettarr.c ---*/
11182 #line 1 "../../asn1/lpp/packet-lpp-ettarr.c"
11183     &ett_lpp_LPP_Message,
11184     &ett_lpp_Acknowledgement,
11185     &ett_lpp_LPP_MessageBody,
11186     &ett_lpp_T_c1,
11187     &ett_lpp_T_messageClassExtension,
11188     &ett_lpp_LPP_TransactionID,
11189     &ett_lpp_RequestCapabilities,
11190     &ett_lpp_T_criticalExtensions,
11191     &ett_lpp_T_c1_01,
11192     &ett_lpp_T_criticalExtensionsFuture,
11193     &ett_lpp_RequestCapabilities_r9_IEs,
11194     &ett_lpp_ProvideCapabilities,
11195     &ett_lpp_T_criticalExtensions_01,
11196     &ett_lpp_T_c1_02,
11197     &ett_lpp_T_criticalExtensionsFuture_01,
11198     &ett_lpp_ProvideCapabilities_r9_IEs,
11199     &ett_lpp_RequestAssistanceData,
11200     &ett_lpp_T_criticalExtensions_02,
11201     &ett_lpp_T_c1_03,
11202     &ett_lpp_T_criticalExtensionsFuture_02,
11203     &ett_lpp_RequestAssistanceData_r9_IEs,
11204     &ett_lpp_ProvideAssistanceData,
11205     &ett_lpp_T_criticalExtensions_03,
11206     &ett_lpp_T_c1_04,
11207     &ett_lpp_T_criticalExtensionsFuture_03,
11208     &ett_lpp_ProvideAssistanceData_r9_IEs,
11209     &ett_lpp_RequestLocationInformation,
11210     &ett_lpp_T_criticalExtensions_04,
11211     &ett_lpp_T_c1_05,
11212     &ett_lpp_T_criticalExtensionsFuture_04,
11213     &ett_lpp_RequestLocationInformation_r9_IEs,
11214     &ett_lpp_ProvideLocationInformation,
11215     &ett_lpp_T_criticalExtensions_05,
11216     &ett_lpp_T_c1_06,
11217     &ett_lpp_T_criticalExtensionsFuture_05,
11218     &ett_lpp_ProvideLocationInformation_r9_IEs,
11219     &ett_lpp_Abort,
11220     &ett_lpp_T_criticalExtensions_06,
11221     &ett_lpp_T_c1_07,
11222     &ett_lpp_T_criticalExtensionsFuture_06,
11223     &ett_lpp_Abort_r9_IEs,
11224     &ett_lpp_Error,
11225     &ett_lpp_T_criticalExtensionsFuture_07,
11226     &ett_lpp_Error_r9_IEs,
11227     &ett_lpp_AccessTypes,
11228     &ett_lpp_T_accessTypes,
11229     &ett_lpp_CellGlobalIdEUTRA_AndUTRA,
11230     &ett_lpp_T_plmn_Identity,
11231     &ett_lpp_T_mcc,
11232     &ett_lpp_T_mnc,
11233     &ett_lpp_T_cellIdentity,
11234     &ett_lpp_CellGlobalIdGERAN,
11235     &ett_lpp_T_plmn_Identity_01,
11236     &ett_lpp_T_mcc_01,
11237     &ett_lpp_T_mnc_01,
11238     &ett_lpp_ECGI,
11239     &ett_lpp_T_mcc_02,
11240     &ett_lpp_T_mnc_02,
11241     &ett_lpp_Ellipsoid_Point,
11242     &ett_lpp_Ellipsoid_PointWithUncertaintyCircle,
11243     &ett_lpp_EllipsoidPointWithUncertaintyEllipse,
11244     &ett_lpp_EllipsoidPointWithAltitude,
11245     &ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
11246     &ett_lpp_EllipsoidArc,
11247     &ett_lpp_EPDU_Sequence,
11248     &ett_lpp_EPDU,
11249     &ett_lpp_EPDU_Identifier,
11250     &ett_lpp_HorizontalVelocity,
11251     &ett_lpp_HorizontalWithVerticalVelocity,
11252     &ett_lpp_HorizontalVelocityWithUncertainty,
11253     &ett_lpp_HorizontalWithVerticalVelocityAndUncertainty,
11254     &ett_lpp_LocationCoordinateTypes,
11255     &ett_lpp_Polygon,
11256     &ett_lpp_PolygonPoints,
11257     &ett_lpp_PositioningModes,
11258     &ett_lpp_T_posModes,
11259     &ett_lpp_VelocityTypes,
11260     &ett_lpp_CommonIEsRequestCapabilities,
11261     &ett_lpp_CommonIEsProvideCapabilities,
11262     &ett_lpp_CommonIEsRequestAssistanceData,
11263     &ett_lpp_CommonIEsProvideAssistanceData,
11264     &ett_lpp_CommonIEsRequestLocationInformation,
11265     &ett_lpp_PeriodicalReportingCriteria,
11266     &ett_lpp_TriggeredReportingCriteria,
11267     &ett_lpp_QoS,
11268     &ett_lpp_HorizontalAccuracy,
11269     &ett_lpp_VerticalAccuracy,
11270     &ett_lpp_ResponseTime,
11271     &ett_lpp_CommonIEsProvideLocationInformation,
11272     &ett_lpp_LocationCoordinates,
11273     &ett_lpp_Velocity,
11274     &ett_lpp_LocationError,
11275     &ett_lpp_CommonIEsAbort,
11276     &ett_lpp_CommonIEsError,
11277     &ett_lpp_OTDOA_ProvideAssistanceData,
11278     &ett_lpp_OTDOA_ReferenceCellInfo,
11279     &ett_lpp_PRS_Info,
11280     &ett_lpp_T_prs_MutingInfo_r9,
11281     &ett_lpp_OTDOA_NeighbourCellInfoList,
11282     &ett_lpp_OTDOA_NeighbourFreqInfo,
11283     &ett_lpp_OTDOA_NeighbourCellInfoElement,
11284     &ett_lpp_OTDOA_RequestAssistanceData,
11285     &ett_lpp_OTDOA_ProvideLocationInformation,
11286     &ett_lpp_OTDOA_SignalMeasurementInformation,
11287     &ett_lpp_NeighbourMeasurementList,
11288     &ett_lpp_NeighbourMeasurementElement,
11289     &ett_lpp_OTDOA_MeasQuality,
11290     &ett_lpp_OTDOA_RequestLocationInformation,
11291     &ett_lpp_OTDOA_ProvideCapabilities,
11292     &ett_lpp_T_otdoa_Mode,
11293     &ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA,
11294     &ett_lpp_SupportedBandEUTRA,
11295     &ett_lpp_OTDOA_RequestCapabilities,
11296     &ett_lpp_OTDOA_Error,
11297     &ett_lpp_OTDOA_LocationServerErrorCauses,
11298     &ett_lpp_OTDOA_TargetDeviceErrorCauses,
11299     &ett_lpp_A_GNSS_ProvideAssistanceData,
11300     &ett_lpp_GNSS_CommonAssistData,
11301     &ett_lpp_GNSS_GenericAssistData,
11302     &ett_lpp_GNSS_GenericAssistDataElement,
11303     &ett_lpp_GNSS_ReferenceTime,
11304     &ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell,
11305     &ett_lpp_GNSS_ReferenceTimeForOneCell,
11306     &ett_lpp_GNSS_SystemTime,
11307     &ett_lpp_GPS_TOW_Assist,
11308     &ett_lpp_GPS_TOW_AssistElement,
11309     &ett_lpp_NetworkTime,
11310     &ett_lpp_T_cellID,
11311     &ett_lpp_T_eUTRA,
11312     &ett_lpp_T_uTRA,
11313     &ett_lpp_T_mode,
11314     &ett_lpp_T_fdd,
11315     &ett_lpp_T_tdd,
11316     &ett_lpp_T_gSM,
11317     &ett_lpp_GNSS_ReferenceLocation,
11318     &ett_lpp_GNSS_IonosphericModel,
11319     &ett_lpp_KlobucharModelParameter,
11320     &ett_lpp_NeQuickModelParameter,
11321     &ett_lpp_GNSS_EarthOrientationParameters,
11322     &ett_lpp_GNSS_TimeModelList,
11323     &ett_lpp_GNSS_TimeModelElement,
11324     &ett_lpp_GNSS_DifferentialCorrections,
11325     &ett_lpp_DGNSS_SgnTypeList,
11326     &ett_lpp_DGNSS_SgnTypeElement,
11327     &ett_lpp_DGNSS_SatList,
11328     &ett_lpp_DGNSS_CorrectionsElement,
11329     &ett_lpp_GNSS_NavigationModel,
11330     &ett_lpp_GNSS_NavModelSatelliteList,
11331     &ett_lpp_GNSS_NavModelSatelliteElement,
11332     &ett_lpp_GNSS_ClockModel,
11333     &ett_lpp_GNSS_OrbitModel,
11334     &ett_lpp_StandardClockModelList,
11335     &ett_lpp_StandardClockModelElement,
11336     &ett_lpp_NAV_ClockModel,
11337     &ett_lpp_CNAV_ClockModel,
11338     &ett_lpp_GLONASS_ClockModel,
11339     &ett_lpp_SBAS_ClockModel,
11340     &ett_lpp_NavModelKeplerianSet,
11341     &ett_lpp_NavModelNAV_KeplerianSet,
11342     &ett_lpp_T_addNAVparam,
11343     &ett_lpp_T_ephemSF1Rsvd,
11344     &ett_lpp_NavModelCNAV_KeplerianSet,
11345     &ett_lpp_NavModel_GLONASS_ECEF,
11346     &ett_lpp_NavModel_SBAS_ECEF,
11347     &ett_lpp_GNSS_RealTimeIntegrity,
11348     &ett_lpp_GNSS_BadSignalList,
11349     &ett_lpp_BadSignalElement,
11350     &ett_lpp_GNSS_DataBitAssistance,
11351     &ett_lpp_GNSS_DataBitsSatList,
11352     &ett_lpp_GNSS_DataBitsSatElement,
11353     &ett_lpp_GNSS_DataBitsSgnList,
11354     &ett_lpp_GNSS_DataBitsSgnElement,
11355     &ett_lpp_GNSS_AcquisitionAssistance,
11356     &ett_lpp_GNSS_AcquisitionAssistList,
11357     &ett_lpp_GNSS_AcquisitionAssistElement,
11358     &ett_lpp_GNSS_Almanac,
11359     &ett_lpp_GNSS_AlmanacList,
11360     &ett_lpp_GNSS_AlmanacElement,
11361     &ett_lpp_AlmanacKeplerianSet,
11362     &ett_lpp_AlmanacNAV_KeplerianSet,
11363     &ett_lpp_AlmanacReducedKeplerianSet,
11364     &ett_lpp_AlmanacMidiAlmanacSet,
11365     &ett_lpp_AlmanacGLONASS_AlmanacSet,
11366     &ett_lpp_AlmanacECEF_SBAS_AlmanacSet,
11367     &ett_lpp_GNSS_UTC_Model,
11368     &ett_lpp_UTC_ModelSet1,
11369     &ett_lpp_UTC_ModelSet2,
11370     &ett_lpp_UTC_ModelSet3,
11371     &ett_lpp_UTC_ModelSet4,
11372     &ett_lpp_GNSS_AuxiliaryInformation,
11373     &ett_lpp_GNSS_ID_GPS,
11374     &ett_lpp_GNSS_ID_GPS_SatElement,
11375     &ett_lpp_GNSS_ID_GLONASS,
11376     &ett_lpp_GNSS_ID_GLONASS_SatElement,
11377     &ett_lpp_A_GNSS_RequestAssistanceData,
11378     &ett_lpp_GNSS_CommonAssistDataReq,
11379     &ett_lpp_GNSS_GenericAssistDataReq,
11380     &ett_lpp_GNSS_GenericAssistDataReqElement,
11381     &ett_lpp_GNSS_ReferenceTimeReq,
11382     &ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID,
11383     &ett_lpp_GNSS_ReferenceLocationReq,
11384     &ett_lpp_GNSS_IonosphericModelReq,
11385     &ett_lpp_GNSS_EarthOrientationParametersReq,
11386     &ett_lpp_GNSS_TimeModelListReq,
11387     &ett_lpp_GNSS_TimeModelElementReq,
11388     &ett_lpp_GNSS_DifferentialCorrectionsReq,
11389     &ett_lpp_GNSS_NavigationModelReq,
11390     &ett_lpp_StoredNavListInfo,
11391     &ett_lpp_SatListRelatedDataList,
11392     &ett_lpp_SatListRelatedDataElement,
11393     &ett_lpp_ReqNavListInfo,
11394     &ett_lpp_T_clockModelID_PrefList,
11395     &ett_lpp_T_orbitModelID_PrefList,
11396     &ett_lpp_GNSS_RealTimeIntegrityReq,
11397     &ett_lpp_GNSS_DataBitAssistanceReq,
11398     &ett_lpp_GNSS_DataBitsReqSatList,
11399     &ett_lpp_GNSS_DataBitsReqSatElement,
11400     &ett_lpp_GNSS_AcquisitionAssistanceReq,
11401     &ett_lpp_GNSS_AlmanacReq,
11402     &ett_lpp_GNSS_UTC_ModelReq,
11403     &ett_lpp_GNSS_AuxiliaryInformationReq,
11404     &ett_lpp_A_GNSS_ProvideLocationInformation,
11405     &ett_lpp_GNSS_SignalMeasurementInformation,
11406     &ett_lpp_MeasurementReferenceTime,
11407     &ett_lpp_T_networkTime,
11408     &ett_lpp_T_eUTRA_01,
11409     &ett_lpp_T_uTRA_01,
11410     &ett_lpp_T_mode_01,
11411     &ett_lpp_T_fdd_01,
11412     &ett_lpp_T_tdd_01,
11413     &ett_lpp_T_gSM_01,
11414     &ett_lpp_T_referenceFrame,
11415     &ett_lpp_GNSS_MeasurementList,
11416     &ett_lpp_GNSS_MeasurementForOneGNSS,
11417     &ett_lpp_GNSS_SgnMeasList,
11418     &ett_lpp_GNSS_SgnMeasElement,
11419     &ett_lpp_GNSS_SatMeasList,
11420     &ett_lpp_GNSS_SatMeasElement,
11421     &ett_lpp_GNSS_LocationInformation,
11422     &ett_lpp_A_GNSS_RequestLocationInformation,
11423     &ett_lpp_GNSS_PositioningInstructions,
11424     &ett_lpp_A_GNSS_ProvideCapabilities,
11425     &ett_lpp_GNSS_SupportList,
11426     &ett_lpp_GNSS_SupportElement,
11427     &ett_lpp_T_fta_MeasSupport,
11428     &ett_lpp_AssistanceDataSupportList,
11429     &ett_lpp_GNSS_CommonAssistanceDataSupport,
11430     &ett_lpp_GNSS_ReferenceTimeSupport,
11431     &ett_lpp_GNSS_ReferenceLocationSupport,
11432     &ett_lpp_GNSS_IonosphericModelSupport,
11433     &ett_lpp_T_ionoModel,
11434     &ett_lpp_GNSS_EarthOrientationParametersSupport,
11435     &ett_lpp_GNSS_GenericAssistanceDataSupport,
11436     &ett_lpp_GNSS_GenericAssistDataSupportElement,
11437     &ett_lpp_GNSS_TimeModelListSupport,
11438     &ett_lpp_GNSS_DifferentialCorrectionsSupport,
11439     &ett_lpp_GNSS_NavigationModelSupport,
11440     &ett_lpp_T_clockModel,
11441     &ett_lpp_T_orbitModel,
11442     &ett_lpp_GNSS_RealTimeIntegritySupport,
11443     &ett_lpp_GNSS_DataBitAssistanceSupport,
11444     &ett_lpp_GNSS_AcquisitionAssistanceSupport,
11445     &ett_lpp_GNSS_AlmanacSupport,
11446     &ett_lpp_T_almanacModel,
11447     &ett_lpp_GNSS_UTC_ModelSupport,
11448     &ett_lpp_T_utc_Model,
11449     &ett_lpp_GNSS_AuxiliaryInformationSupport,
11450     &ett_lpp_A_GNSS_RequestCapabilities,
11451     &ett_lpp_A_GNSS_Error,
11452     &ett_lpp_GNSS_LocationServerErrorCauses,
11453     &ett_lpp_GNSS_TargetDeviceErrorCauses,
11454     &ett_lpp_GNSS_ID,
11455     &ett_lpp_GNSS_ID_Bitmap,
11456     &ett_lpp_T_gnss_ids,
11457     &ett_lpp_GNSS_SignalID,
11458     &ett_lpp_GNSS_SignalIDs,
11459     &ett_lpp_SBAS_ID,
11460     &ett_lpp_SBAS_IDs,
11461     &ett_lpp_T_sbas_IDs,
11462     &ett_lpp_SV_ID,
11463     &ett_lpp_ECID_ProvideLocationInformation,
11464     &ett_lpp_ECID_SignalMeasurementInformation,
11465     &ett_lpp_MeasuredResultsList,
11466     &ett_lpp_MeasuredResultsElement,
11467     &ett_lpp_ECID_RequestLocationInformation,
11468     &ett_lpp_T_requestedMeasurements,
11469     &ett_lpp_ECID_ProvideCapabilities,
11470     &ett_lpp_T_ecid_MeasSupported,
11471     &ett_lpp_ECID_RequestCapabilities,
11472     &ett_lpp_ECID_Error,
11473     &ett_lpp_ECID_LocationServerErrorCauses,
11474     &ett_lpp_ECID_TargetDeviceErrorCauses,
11475
11476 /*--- End of included file: packet-lpp-ettarr.c ---*/
11477 #line 77 "../../asn1/lpp/packet-lpp-template.c"
11478   };
11479
11480
11481   /* Register protocol */
11482   proto_lpp = proto_register_protocol(PNAME, PSNAME, PFNAME);
11483   new_register_dissector("lpp", dissect_LPP_Message_PDU, proto_lpp);
11484
11485   /* Register fields and subtrees */
11486   proto_register_field_array(proto_lpp, hf, array_length(hf));
11487   proto_register_subtree_array(ett, array_length(ett));
11488
11489  
11490 }
11491
11492
11493 /*--- proto_reg_handoff_lpp ---------------------------------------*/
11494 void
11495 proto_reg_handoff_lpp(void)
11496 {
11497
11498 }
11499
11500