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