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