epan/dissectors/pidl/samr/samr.cnf cnf_dissect_lsa_BinaryString => lsarpc_dissect_str...
[wireshark-sm.git] / epan / dissectors / packet-rrlp.c
blobc1920142e41fad90faa645658993f2f3b934491d
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-rrlp.c */
4 /* asn2wrs.py -q -L -p rrlp -c ./rrlp.cnf -s ./packet-rrlp-template -D . -O ../.. ../gsm_map/MAP-ExtensionDataTypes.asn ../gsm_map/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.asn */
6 /* packet-rrlp.c
7 * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
8 * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
16 * Ref 3GPP TS 44.031 version 11.0.0 Release 11
17 * http://www.3gpp.org
20 #include "config.h"
22 #include <epan/packet.h>
23 #include <epan/asn1.h>
24 #include <wsutil/array.h>
26 #include "packet-ber.h"
27 #include "packet-per.h"
28 #include "packet-gsm_a_common.h"
30 #define PNAME "Radio Resource LCS Protocol (RRLP)"
31 #define PSNAME "RRLP"
32 #define PFNAME "rrlp"
36 #ifdef _MSC_VER
37 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
38 #pragma warning(disable:4146)
39 #endif
41 void proto_register_rrlp(void);
42 void proto_reg_handoff_rrlp(void);
44 /* Initialize the protocol and registered fields */
45 static int proto_rrlp;
48 static int hf_rrlp_PDU_PDU; /* PDU */
49 static int hf_rrlp_privateExtensionList; /* PrivateExtensionList */
50 static int hf_rrlp_pcs_Extensions; /* PCS_Extensions */
51 static int hf_rrlp_PrivateExtensionList_item; /* PrivateExtension */
52 static int hf_rrlp_extId; /* OBJECT_IDENTIFIER */
53 static int hf_rrlp_extType; /* T_extType */
54 static int hf_rrlp_referenceNumber; /* INTEGER_0_7 */
55 static int hf_rrlp_component; /* RRLP_Component */
56 static int hf_rrlp_msrPositionReq; /* MsrPosition_Req */
57 static int hf_rrlp_msrPositionRsp; /* MsrPosition_Rsp */
58 static int hf_rrlp_assistanceData; /* AssistanceData */
59 static int hf_rrlp_assistanceDataAck; /* NULL */
60 static int hf_rrlp_protocolError; /* ProtocolError */
61 static int hf_rrlp_posCapabilityReq; /* PosCapability_Req */
62 static int hf_rrlp_posCapabilityRsp; /* PosCapability_Rsp */
63 static int hf_rrlp_positionInstruct; /* PositionInstruct */
64 static int hf_rrlp_referenceAssistData; /* ReferenceAssistData */
65 static int hf_rrlp_msrAssistData; /* MsrAssistData */
66 static int hf_rrlp_systemInfoAssistData; /* SystemInfoAssistData */
67 static int hf_rrlp_gps_AssistData; /* GPS_AssistData */
68 static int hf_rrlp_extensionContainer; /* ExtensionContainer */
69 static int hf_rrlp_rel98_MsrPosition_Req_extension; /* Rel98_MsrPosition_Req_Extension */
70 static int hf_rrlp_rel5_MsrPosition_Req_extension; /* Rel5_MsrPosition_Req_Extension */
71 static int hf_rrlp_rel7_MsrPosition_Req_extension; /* Rel7_MsrPosition_Req_Extension */
72 static int hf_rrlp_multipleSets; /* MultipleSets */
73 static int hf_rrlp_referenceIdentity; /* ReferenceIdentity */
74 static int hf_rrlp_otd_MeasureInfo; /* OTD_MeasureInfo */
75 static int hf_rrlp_locationInfo; /* LocationInfo */
76 static int hf_rrlp_gps_MeasureInfo; /* GPS_MeasureInfo */
77 static int hf_rrlp_locationError; /* LocationError */
78 static int hf_rrlp_rel_98_MsrPosition_Rsp_Extension; /* Rel_98_MsrPosition_Rsp_Extension */
79 static int hf_rrlp_rel_5_MsrPosition_Rsp_Extension; /* Rel_5_MsrPosition_Rsp_Extension */
80 static int hf_rrlp_rel_7_MsrPosition_Rsp_Extension; /* Rel_7_MsrPosition_Rsp_Extension */
81 static int hf_rrlp_moreAssDataToBeSent; /* MoreAssDataToBeSent */
82 static int hf_rrlp_rel98_AssistanceData_Extension; /* Rel98_AssistanceData_Extension */
83 static int hf_rrlp_rel5_AssistanceData_Extension; /* Rel5_AssistanceData_Extension */
84 static int hf_rrlp_rel7_AssistanceData_Extension; /* Rel7_AssistanceData_Extension */
85 static int hf_rrlp_errorCause; /* ErrorCodes */
86 static int hf_rrlp_rel_5_ProtocolError_Extension; /* Rel_5_ProtocolError_Extension */
87 static int hf_rrlp_extended_reference; /* Extended_reference */
88 static int hf_rrlp_gANSSPositionMethods; /* GANSSPositionMethods */
89 static int hf_rrlp_posCapabilities; /* PosCapabilities */
90 static int hf_rrlp_assistanceSupported; /* AssistanceSupported */
91 static int hf_rrlp_assistanceNeeded; /* AssistanceNeeded */
92 static int hf_rrlp_methodType; /* MethodType */
93 static int hf_rrlp_positionMethod; /* PositionMethod */
94 static int hf_rrlp_measureResponseTime; /* MeasureResponseTime */
95 static int hf_rrlp_useMultipleSets; /* UseMultipleSets */
96 static int hf_rrlp_environmentCharacter; /* EnvironmentCharacter */
97 static int hf_rrlp_msAssisted; /* AccuracyOpt */
98 static int hf_rrlp_msBased; /* Accuracy */
99 static int hf_rrlp_msBasedPref; /* Accuracy */
100 static int hf_rrlp_msAssistedPref; /* Accuracy */
101 static int hf_rrlp_accuracy; /* Accuracy */
102 static int hf_rrlp_bcchCarrier; /* BCCHCarrier */
103 static int hf_rrlp_bsic; /* BSIC */
104 static int hf_rrlp_timeSlotScheme; /* TimeSlotScheme */
105 static int hf_rrlp_btsPosition; /* BTSPosition */
106 static int hf_rrlp_msrAssistList; /* SeqOfMsrAssistBTS */
107 static int hf_rrlp_SeqOfMsrAssistBTS_item; /* MsrAssistBTS */
108 static int hf_rrlp_multiFrameOffset; /* MultiFrameOffset */
109 static int hf_rrlp_roughRTD; /* RoughRTD */
110 static int hf_rrlp_calcAssistanceBTS; /* CalcAssistanceBTS */
111 static int hf_rrlp_systemInfoAssistList; /* SeqOfSystemInfoAssistBTS */
112 static int hf_rrlp_SeqOfSystemInfoAssistBTS_item; /* SystemInfoAssistBTS */
113 static int hf_rrlp_notPresent; /* NULL */
114 static int hf_rrlp_present; /* AssistBTSData */
115 static int hf_rrlp_fineRTD; /* FineRTD */
116 static int hf_rrlp_referenceWGS84; /* ReferenceWGS84 */
117 static int hf_rrlp_relativeNorth; /* RelDistance */
118 static int hf_rrlp_relativeEast; /* RelDistance */
119 static int hf_rrlp_relativeAlt; /* RelativeAlt */
120 static int hf_rrlp_nbrOfSets; /* INTEGER_2_3 */
121 static int hf_rrlp_nbrOfReferenceBTSs; /* INTEGER_1_3 */
122 static int hf_rrlp_referenceRelation; /* ReferenceRelation */
123 static int hf_rrlp_refBTSList; /* SeqOfReferenceIdentityType */
124 static int hf_rrlp_SeqOfReferenceIdentityType_item; /* ReferenceIdentityType */
125 static int hf_rrlp_bsicAndCarrier; /* BSICAndCarrier */
126 static int hf_rrlp_ci; /* CellID */
127 static int hf_rrlp_requestIndex; /* RequestIndex */
128 static int hf_rrlp_systemInfoIndex; /* SystemInfoIndex */
129 static int hf_rrlp_ciAndLAC; /* CellIDAndLAC */
130 static int hf_rrlp_carrier; /* BCCHCarrier */
131 static int hf_rrlp_referenceLAC; /* LAC */
132 static int hf_rrlp_referenceCI; /* CellID */
133 static int hf_rrlp_otdMsrFirstSets; /* OTD_MsrElementFirst */
134 static int hf_rrlp_otdMsrRestSets; /* SeqOfOTD_MsrElementRest */
135 static int hf_rrlp_SeqOfOTD_MsrElementRest_item; /* OTD_MsrElementRest */
136 static int hf_rrlp_refFrameNumber; /* INTEGER_0_42431 */
137 static int hf_rrlp_referenceTimeSlot; /* ModuloTimeSlot */
138 static int hf_rrlp_toaMeasurementsOfRef; /* TOA_MeasurementsOfRef */
139 static int hf_rrlp_stdResolution; /* StdResolution */
140 static int hf_rrlp_taCorrection; /* INTEGER_0_960 */
141 static int hf_rrlp_otd_FirstSetMsrs; /* SeqOfOTD_FirstSetMsrs */
142 static int hf_rrlp_SeqOfOTD_FirstSetMsrs_item; /* OTD_FirstSetMsrs */
143 static int hf_rrlp_otd_MsrsOfOtherSets; /* SeqOfOTD_MsrsOfOtherSets */
144 static int hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item; /* OTD_MsrsOfOtherSets */
145 static int hf_rrlp_refQuality; /* RefQuality */
146 static int hf_rrlp_numOfMeasurements; /* NumOfMeasurements */
147 static int hf_rrlp_identityNotPresent; /* OTD_Measurement */
148 static int hf_rrlp_identityPresent; /* OTD_MeasurementWithID */
149 static int hf_rrlp_nborTimeSlot; /* ModuloTimeSlot */
150 static int hf_rrlp_eotdQuality; /* EOTDQuality */
151 static int hf_rrlp_otdValue; /* OTDValue */
152 static int hf_rrlp_neighborIdentity; /* NeighborIdentity */
153 static int hf_rrlp_nbrOfMeasurements; /* INTEGER_0_7 */
154 static int hf_rrlp_stdOfEOTD; /* INTEGER_0_31 */
155 static int hf_rrlp_multiFrameCarrier; /* MultiFrameCarrier */
156 static int hf_rrlp_refFrame; /* INTEGER_0_65535 */
157 static int hf_rrlp_gpsTOW; /* INTEGER_0_14399999 */
158 static int hf_rrlp_fixType; /* FixType */
159 static int hf_rrlp_posEstimate; /* Ext_GeographicalInformation */
160 static int hf_rrlp_gpsMsrSetList; /* SeqOfGPS_MsrSetElement */
161 static int hf_rrlp_SeqOfGPS_MsrSetElement_item; /* GPS_MsrSetElement */
162 static int hf_rrlp_gpsTOW_01; /* GPSTOW24b */
163 static int hf_rrlp_gps_msrList; /* SeqOfGPS_MsrElement */
164 static int hf_rrlp_SeqOfGPS_MsrElement_item; /* GPS_MsrElement */
165 static int hf_rrlp_satelliteID; /* SatelliteID */
166 static int hf_rrlp_cNo; /* INTEGER_0_63 */
167 static int hf_rrlp_doppler; /* INTEGER_M32768_32767 */
168 static int hf_rrlp_wholeChips; /* INTEGER_0_1022 */
169 static int hf_rrlp_fracChips; /* INTEGER_0_1024 */
170 static int hf_rrlp_mpathIndic; /* MpathIndic */
171 static int hf_rrlp_pseuRangeRMSErr; /* INTEGER_0_63 */
172 static int hf_rrlp_locErrorReason; /* LocErrorReason */
173 static int hf_rrlp_additionalAssistanceData; /* AdditionalAssistanceData */
174 static int hf_rrlp_gpsAssistanceData; /* GPSAssistanceData */
175 static int hf_rrlp_ganssAssistanceData; /* GANSSAssistanceData */
176 static int hf_rrlp_controlHeader; /* ControlHeader */
177 static int hf_rrlp_referenceTime; /* ReferenceTime */
178 static int hf_rrlp_refLocation; /* RefLocation */
179 static int hf_rrlp_dgpsCorrections; /* DGPSCorrections */
180 static int hf_rrlp_navigationModel; /* NavigationModel */
181 static int hf_rrlp_ionosphericModel; /* IonosphericModel */
182 static int hf_rrlp_utcModel; /* UTCModel */
183 static int hf_rrlp_almanac; /* Almanac */
184 static int hf_rrlp_acquisAssist; /* AcquisAssist */
185 static int hf_rrlp_realTimeIntegrity; /* SeqOf_BadSatelliteSet */
186 static int hf_rrlp_gpsTime; /* GPSTime */
187 static int hf_rrlp_gsmTime; /* GSMTime */
188 static int hf_rrlp_gpsTowAssist; /* GPSTOWAssist */
189 static int hf_rrlp_gpsTOW23b; /* GPSTOW23b */
190 static int hf_rrlp_gpsWeek; /* GPSWeek */
191 static int hf_rrlp_GPSTOWAssist_item; /* GPSTOWAssistElement */
192 static int hf_rrlp_tlmWord; /* TLMWord */
193 static int hf_rrlp_antiSpoof; /* AntiSpoofFlag */
194 static int hf_rrlp_alert; /* AlertFlag */
195 static int hf_rrlp_tlmRsvdBits; /* TLMReservedBits */
196 static int hf_rrlp_frameNumber; /* FrameNumber */
197 static int hf_rrlp_timeSlot; /* TimeSlot */
198 static int hf_rrlp_bitNumber; /* BitNumber */
199 static int hf_rrlp_threeDLocation; /* Ext_GeographicalInformation */
200 static int hf_rrlp_gpsTOW_02; /* INTEGER_0_604799 */
201 static int hf_rrlp_status; /* INTEGER_0_7 */
202 static int hf_rrlp_satList; /* SeqOfSatElement */
203 static int hf_rrlp_SeqOfSatElement_item; /* SatElement */
204 static int hf_rrlp_iode; /* INTEGER_0_239 */
205 static int hf_rrlp_udre; /* INTEGER_0_3 */
206 static int hf_rrlp_pseudoRangeCor; /* INTEGER_M2047_2047 */
207 static int hf_rrlp_rangeRateCor; /* INTEGER_M127_127 */
208 static int hf_rrlp_deltaPseudoRangeCor2; /* INTEGER_M127_127 */
209 static int hf_rrlp_deltaRangeRateCor2; /* INTEGER_M7_7 */
210 static int hf_rrlp_deltaPseudoRangeCor3; /* INTEGER_M127_127 */
211 static int hf_rrlp_deltaRangeRateCor3; /* INTEGER_M7_7 */
212 static int hf_rrlp_navModelList; /* SeqOfNavModelElement */
213 static int hf_rrlp_SeqOfNavModelElement_item; /* NavModelElement */
214 static int hf_rrlp_satStatus; /* SatStatus */
215 static int hf_rrlp_newSatelliteAndModelUC; /* UncompressedEphemeris */
216 static int hf_rrlp_oldSatelliteAndModel; /* NULL */
217 static int hf_rrlp_newNaviModelUC; /* UncompressedEphemeris */
218 static int hf_rrlp_ephemCodeOnL2; /* INTEGER_0_3 */
219 static int hf_rrlp_ephemURA; /* INTEGER_0_15 */
220 static int hf_rrlp_ephemSVhealth; /* INTEGER_0_63 */
221 static int hf_rrlp_ephemIODC; /* INTEGER_0_1023 */
222 static int hf_rrlp_ephemL2Pflag; /* INTEGER_0_1 */
223 static int hf_rrlp_ephemSF1Rsvd; /* EphemerisSubframe1Reserved */
224 static int hf_rrlp_ephemTgd; /* INTEGER_M128_127 */
225 static int hf_rrlp_ephemToc; /* INTEGER_0_37799 */
226 static int hf_rrlp_ephemAF2; /* INTEGER_M128_127 */
227 static int hf_rrlp_ephemAF1; /* INTEGER_M32768_32767 */
228 static int hf_rrlp_ephemAF0; /* INTEGER_M2097152_2097151 */
229 static int hf_rrlp_ephemCrs; /* INTEGER_M32768_32767 */
230 static int hf_rrlp_ephemDeltaN; /* INTEGER_M32768_32767 */
231 static int hf_rrlp_ephemM0; /* INTEGER_M2147483648_2147483647 */
232 static int hf_rrlp_ephemCuc; /* INTEGER_M32768_32767 */
233 static int hf_rrlp_ephemE; /* INTEGER_0_4294967295 */
234 static int hf_rrlp_ephemCus; /* INTEGER_M32768_32767 */
235 static int hf_rrlp_ephemAPowerHalf; /* INTEGER_0_4294967295 */
236 static int hf_rrlp_ephemToe; /* INTEGER_0_37799 */
237 static int hf_rrlp_ephemFitFlag; /* INTEGER_0_1 */
238 static int hf_rrlp_ephemAODA; /* INTEGER_0_31 */
239 static int hf_rrlp_ephemCic; /* INTEGER_M32768_32767 */
240 static int hf_rrlp_ephemOmegaA0; /* INTEGER_M2147483648_2147483647 */
241 static int hf_rrlp_ephemCis; /* INTEGER_M32768_32767 */
242 static int hf_rrlp_ephemI0; /* INTEGER_M2147483648_2147483647 */
243 static int hf_rrlp_ephemCrc; /* INTEGER_M32768_32767 */
244 static int hf_rrlp_ephemW; /* INTEGER_M2147483648_2147483647 */
245 static int hf_rrlp_ephemOmegaADot; /* INTEGER_M8388608_8388607 */
246 static int hf_rrlp_ephemIDot; /* INTEGER_M8192_8191 */
247 static int hf_rrlp_reserved1; /* INTEGER_0_8388607 */
248 static int hf_rrlp_reserved2; /* INTEGER_0_16777215 */
249 static int hf_rrlp_reserved3; /* INTEGER_0_16777215 */
250 static int hf_rrlp_reserved4; /* INTEGER_0_65535 */
251 static int hf_rrlp_alfa0; /* INTEGER_M128_127 */
252 static int hf_rrlp_alfa1; /* INTEGER_M128_127 */
253 static int hf_rrlp_alfa2; /* INTEGER_M128_127 */
254 static int hf_rrlp_alfa3; /* INTEGER_M128_127 */
255 static int hf_rrlp_beta0; /* INTEGER_M128_127 */
256 static int hf_rrlp_beta1; /* INTEGER_M128_127 */
257 static int hf_rrlp_beta2; /* INTEGER_M128_127 */
258 static int hf_rrlp_beta3; /* INTEGER_M128_127 */
259 static int hf_rrlp_utcA1; /* INTEGER_M8388608_8388607 */
260 static int hf_rrlp_utcA0; /* INTEGER_M2147483648_2147483647 */
261 static int hf_rrlp_utcTot; /* INTEGER_0_255 */
262 static int hf_rrlp_utcWNt; /* INTEGER_0_255 */
263 static int hf_rrlp_utcDeltaTls; /* INTEGER_M128_127 */
264 static int hf_rrlp_utcWNlsf; /* INTEGER_0_255 */
265 static int hf_rrlp_utcDN; /* INTEGER_M128_127 */
266 static int hf_rrlp_utcDeltaTlsf; /* INTEGER_M128_127 */
267 static int hf_rrlp_alamanacWNa; /* INTEGER_0_255 */
268 static int hf_rrlp_almanacList; /* SeqOfAlmanacElement */
269 static int hf_rrlp_SeqOfAlmanacElement_item; /* AlmanacElement */
270 static int hf_rrlp_almanacE; /* INTEGER_0_65535 */
271 static int hf_rrlp_alamanacToa; /* INTEGER_0_255 */
272 static int hf_rrlp_almanacKsii; /* INTEGER_M32768_32767 */
273 static int hf_rrlp_almanacOmegaDot; /* INTEGER_M32768_32767 */
274 static int hf_rrlp_almanacSVhealth; /* INTEGER_0_255 */
275 static int hf_rrlp_almanacAPowerHalf; /* INTEGER_0_16777215 */
276 static int hf_rrlp_almanacOmega0; /* INTEGER_M8388608_8388607 */
277 static int hf_rrlp_almanacW; /* INTEGER_M8388608_8388607 */
278 static int hf_rrlp_almanacM0; /* INTEGER_M8388608_8388607 */
279 static int hf_rrlp_almanacAF0; /* INTEGER_M1024_1023 */
280 static int hf_rrlp_almanacAF1; /* INTEGER_M1024_1023 */
281 static int hf_rrlp_timeRelation; /* TimeRelation */
282 static int hf_rrlp_acquisList; /* SeqOfAcquisElement */
283 static int hf_rrlp_SeqOfAcquisElement_item; /* AcquisElement */
284 static int hf_rrlp_gpsTOW_03; /* GPSTOW23b */
285 static int hf_rrlp_svid; /* SatelliteID */
286 static int hf_rrlp_doppler0; /* INTEGER_M2048_2047 */
287 static int hf_rrlp_addionalDoppler; /* AddionalDopplerFields */
288 static int hf_rrlp_codePhase; /* INTEGER_0_1022 */
289 static int hf_rrlp_intCodePhase; /* INTEGER_0_19 */
290 static int hf_rrlp_gpsBitNumber; /* INTEGER_0_3 */
291 static int hf_rrlp_codePhaseSearchWindow; /* INTEGER_0_15 */
292 static int hf_rrlp_addionalAngle; /* AddionalAngleFields */
293 static int hf_rrlp_doppler1; /* INTEGER_0_63 */
294 static int hf_rrlp_dopplerUncertainty; /* INTEGER_0_7 */
295 static int hf_rrlp_azimuth; /* INTEGER_0_31 */
296 static int hf_rrlp_elevation; /* INTEGER_0_7 */
297 static int hf_rrlp_SeqOf_BadSatelliteSet_item; /* SatelliteID */
298 static int hf_rrlp_rel98_Ext_ExpOTD; /* Rel98_Ext_ExpOTD */
299 static int hf_rrlp_gpsTimeAssistanceMeasurementRequest; /* NULL */
300 static int hf_rrlp_gpsReferenceTimeUncertainty; /* GPSReferenceTimeUncertainty */
301 static int hf_rrlp_msrAssistData_R98_ExpOTD; /* MsrAssistData_R98_ExpOTD */
302 static int hf_rrlp_systemInfoAssistData_R98_ExpOTD; /* SystemInfoAssistData_R98_ExpOTD */
303 static int hf_rrlp_msrAssistList_R98_ExpOTD; /* SeqOfMsrAssistBTS_R98_ExpOTD */
304 static int hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item; /* MsrAssistBTS_R98_ExpOTD */
305 static int hf_rrlp_expectedOTD; /* ExpectedOTD */
306 static int hf_rrlp_expOTDUncertainty; /* ExpOTDUncertainty */
307 static int hf_rrlp_systemInfoAssistListR98_ExpOTD; /* SeqOfSystemInfoAssistBTS_R98_ExpOTD */
308 static int hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item; /* SystemInfoAssistBTS_R98_ExpOTD */
309 static int hf_rrlp_present_01; /* AssistBTSData_R98_ExpOTD */
310 static int hf_rrlp_expOTDuncertainty; /* ExpOTDUncertainty */
311 static int hf_rrlp_referenceFrameMSB; /* INTEGER_0_63 */
312 static int hf_rrlp_gpsTowSubms; /* INTEGER_0_9999 */
313 static int hf_rrlp_deltaTow; /* INTEGER_0_127 */
314 static int hf_rrlp_rel_98_Ext_MeasureInfo; /* T_rel_98_Ext_MeasureInfo */
315 static int hf_rrlp_otd_MeasureInfo_R98_Ext; /* OTD_MeasureInfo_R98_Ext */
316 static int hf_rrlp_timeAssistanceMeasurements; /* GPSTimeAssistanceMeasurements */
317 static int hf_rrlp_otdMsrFirstSets_R98_Ext; /* OTD_MsrElementFirst_R98_Ext */
318 static int hf_rrlp_otd_FirstSetMsrs_R98_Ext; /* SeqOfOTD_FirstSetMsrs_R98_Ext */
319 static int hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item; /* OTD_FirstSetMsrs */
320 static int hf_rrlp_otd_MeasureInfo_5_Ext; /* OTD_MeasureInfo_5_Ext */
321 static int hf_rrlp_ulPseudoSegInd; /* UlPseudoSegInd */
322 static int hf_rrlp_smlc_code; /* INTEGER_0_63 */
323 static int hf_rrlp_transaction_ID; /* INTEGER_0_262143 */
324 static int hf_rrlp_velocityRequested; /* NULL */
325 static int hf_rrlp_ganssPositionMethod; /* GANSSPositioningMethod */
326 static int hf_rrlp_ganss_AssistData; /* GANSS_AssistData */
327 static int hf_rrlp_ganssCarrierPhaseMeasurementRequest; /* NULL */
328 static int hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest; /* NULL */
329 static int hf_rrlp_requiredResponseTime; /* RequiredResponseTime */
330 static int hf_rrlp_add_GPS_AssistData; /* Add_GPS_AssistData */
331 static int hf_rrlp_ganssMultiFreqMeasurementRequest; /* NULL */
332 static int hf_rrlp_ganss_controlHeader; /* GANSS_ControlHeader */
333 static int hf_rrlp_ganssCommonAssistData; /* GANSSCommonAssistData */
334 static int hf_rrlp_ganssGenericAssistDataList; /* SeqOfGANSSGenericAssistDataElement */
335 static int hf_rrlp_ganssReferenceTime; /* GANSSReferenceTime */
336 static int hf_rrlp_ganssRefLocation; /* GANSSRefLocation */
337 static int hf_rrlp_ganssIonosphericModel; /* GANSSIonosphericModel */
338 static int hf_rrlp_ganssAddIonosphericModel; /* GANSSAddIonosphericModel */
339 static int hf_rrlp_ganssEarthOrientParam; /* GANSSEarthOrientParam */
340 static int hf_rrlp_ganssReferenceTime_R10_Ext; /* GANSSReferenceTime_R10_Ext */
341 static int hf_rrlp_SeqOfGANSSGenericAssistDataElement_item; /* GANSSGenericAssistDataElement */
342 static int hf_rrlp_ganssID; /* INTEGER_0_7 */
343 static int hf_rrlp_ganssTimeModel; /* SeqOfGANSSTimeModel */
344 static int hf_rrlp_ganssDiffCorrections; /* GANSSDiffCorrections */
345 static int hf_rrlp_ganssNavigationModel; /* GANSSNavModel */
346 static int hf_rrlp_ganssRealTimeIntegrity; /* GANSSRealTimeIntegrity */
347 static int hf_rrlp_ganssDataBitAssist; /* GANSSDataBitAssist */
348 static int hf_rrlp_ganssRefMeasurementAssist; /* GANSSRefMeasurementAssist */
349 static int hf_rrlp_ganssAlmanacModel; /* GANSSAlmanacModel */
350 static int hf_rrlp_ganssUTCModel; /* GANSSUTCModel */
351 static int hf_rrlp_ganssEphemerisExtension; /* GANSSEphemerisExtension */
352 static int hf_rrlp_ganssEphemerisExtCheck; /* GANSSEphemerisExtensionCheck */
353 static int hf_rrlp_sbasID; /* INTEGER_0_7 */
354 static int hf_rrlp_ganssAddUTCModel; /* GANSSAddUTCModel */
355 static int hf_rrlp_ganssAuxiliaryInfo; /* GANSSAuxiliaryInformation */
356 static int hf_rrlp_ganssDiffCorrectionsValidityPeriod; /* GANSSDiffCorrectionsValidityPeriod */
357 static int hf_rrlp_ganssTimeModel_R10_Ext; /* SeqOfGANSSTimeModel_R10_Ext */
358 static int hf_rrlp_ganssRefMeasurementAssist_R10_Ext; /* GANSSRefMeasurementAssist_R10_Ext */
359 static int hf_rrlp_ganssAlmanacModel_R10_Ext; /* GANSSAlmanacModel_R10_Ext */
360 static int hf_rrlp_ganssRefTimeInfo; /* GANSSRefTimeInfo */
361 static int hf_rrlp_ganssTOD_GSMTimeAssociation; /* GANSSTOD_GSMTimeAssociation */
362 static int hf_rrlp_ganssDay; /* INTEGER_0_8191 */
363 static int hf_rrlp_ganssTOD; /* GANSSTOD */
364 static int hf_rrlp_ganssTODUncertainty; /* GANSSTODUncertainty */
365 static int hf_rrlp_ganssTimeID; /* INTEGER_0_7 */
366 static int hf_rrlp_ganssDayCycleNumber; /* INTEGER_0_7 */
367 static int hf_rrlp_frameDrift; /* FrameDrift */
368 static int hf_rrlp_ganssIonoModel; /* GANSSIonosphereModel */
369 static int hf_rrlp_ganssIonoStormFlags; /* GANSSIonoStormFlags */
370 static int hf_rrlp_ai0; /* INTEGER_0_4095 */
371 static int hf_rrlp_ai1; /* INTEGER_0_4095 */
372 static int hf_rrlp_ai2; /* INTEGER_0_4095 */
373 static int hf_rrlp_ionoStormFlag1; /* INTEGER_0_1 */
374 static int hf_rrlp_ionoStormFlag2; /* INTEGER_0_1 */
375 static int hf_rrlp_ionoStormFlag3; /* INTEGER_0_1 */
376 static int hf_rrlp_ionoStormFlag4; /* INTEGER_0_1 */
377 static int hf_rrlp_ionoStormFlag5; /* INTEGER_0_1 */
378 static int hf_rrlp_dataID; /* BIT_STRING_SIZE_2 */
379 static int hf_rrlp_ionoModel; /* IonosphericModel */
380 static int hf_rrlp_teop; /* INTEGER_0_65535 */
381 static int hf_rrlp_pmX; /* INTEGER_M1048576_1048575 */
382 static int hf_rrlp_pmXdot; /* INTEGER_M16384_16383 */
383 static int hf_rrlp_pmY; /* INTEGER_M1048576_1048575 */
384 static int hf_rrlp_pmYdot; /* INTEGER_M16384_16383 */
385 static int hf_rrlp_deltaUT1; /* INTEGER_M1073741824_1073741823 */
386 static int hf_rrlp_deltaUT1dot; /* INTEGER_M262144_262143 */
387 static int hf_rrlp_SeqOfGANSSTimeModel_item; /* GANSSTimeModelElement */
388 static int hf_rrlp_ganssTimeModelRefTime; /* INTEGER_0_65535 */
389 static int hf_rrlp_tA0; /* TA0 */
390 static int hf_rrlp_tA1; /* TA1 */
391 static int hf_rrlp_tA2; /* TA2 */
392 static int hf_rrlp_gnssTOID; /* INTEGER_0_7 */
393 static int hf_rrlp_weekNumber; /* INTEGER_0_8191 */
394 static int hf_rrlp_SeqOfGANSSTimeModel_R10_Ext_item; /* GANSSTimeModelElement_R10_Ext */
395 static int hf_rrlp_deltaT; /* INTEGER_M128_127 */
396 static int hf_rrlp_dganssRefTime; /* INTEGER_0_119 */
397 static int hf_rrlp_sgnTypeList; /* SeqOfSgnTypeElement */
398 static int hf_rrlp_SeqOfSgnTypeElement_item; /* SgnTypeElement */
399 static int hf_rrlp_ganssSignalID; /* GANSSSignalID */
400 static int hf_rrlp_ganssStatusHealth; /* INTEGER_0_7 */
401 static int hf_rrlp_dganssSgnList; /* SeqOfDGANSSSgnElement */
402 static int hf_rrlp_SeqOfDGANSSSgnElement_item; /* DGANSSSgnElement */
403 static int hf_rrlp_svID; /* SVID */
404 static int hf_rrlp_iod; /* INTEGER_0_1023 */
405 static int hf_rrlp_nonBroadcastIndFlag; /* INTEGER_0_1 */
406 static int hf_rrlp_ganssSatelliteList; /* SeqOfGANSSSatelliteElement */
407 static int hf_rrlp_SeqOfGANSSSatelliteElement_item; /* GANSSSatelliteElement */
408 static int hf_rrlp_svHealth; /* BIT_STRING_SIZE_5 */
409 static int hf_rrlp_ganssClockModel; /* GANSSClockModel */
410 static int hf_rrlp_ganssOrbitModel; /* GANSSOrbitModel */
411 static int hf_rrlp_svHealthMSB; /* BIT_STRING_SIZE_1 */
412 static int hf_rrlp_iodMSB; /* INTEGER_0_1 */
413 static int hf_rrlp_keplerianSet; /* NavModel_KeplerianSet */
414 static int hf_rrlp_navKeplerianSet; /* NavModel_NAVKeplerianSet */
415 static int hf_rrlp_cnavKeplerianSet; /* NavModel_CNAVKeplerianSet */
416 static int hf_rrlp_glonassECEF; /* NavModel_GLONASSecef */
417 static int hf_rrlp_sbasECEF; /* NavModel_SBASecef */
418 static int hf_rrlp_keplerToe; /* INTEGER_0_16383 */
419 static int hf_rrlp_keplerW; /* INTEGER_M2147483648_2147483647 */
420 static int hf_rrlp_keplerDeltaN; /* INTEGER_M32768_32767 */
421 static int hf_rrlp_keplerM0; /* INTEGER_M2147483648_2147483647 */
422 static int hf_rrlp_keplerOmegaDot; /* INTEGER_M8388608_8388607 */
423 static int hf_rrlp_keplerE; /* INTEGER_0_4294967295 */
424 static int hf_rrlp_keplerIDot; /* INTEGER_M8192_8191 */
425 static int hf_rrlp_keplerAPowerHalf; /* INTEGER_0_4294967295 */
426 static int hf_rrlp_keplerI0; /* INTEGER_M2147483648_2147483647 */
427 static int hf_rrlp_keplerOmega0; /* INTEGER_M2147483648_2147483647 */
428 static int hf_rrlp_keplerCrs; /* INTEGER_M32768_32767 */
429 static int hf_rrlp_keplerCis; /* INTEGER_M32768_32767 */
430 static int hf_rrlp_keplerCus; /* INTEGER_M32768_32767 */
431 static int hf_rrlp_keplerCrc; /* INTEGER_M32768_32767 */
432 static int hf_rrlp_keplerCic; /* INTEGER_M32768_32767 */
433 static int hf_rrlp_keplerCuc; /* INTEGER_M32768_32767 */
434 static int hf_rrlp_navURA; /* INTEGER_0_15 */
435 static int hf_rrlp_navFitFlag; /* INTEGER_0_1 */
436 static int hf_rrlp_navToe; /* INTEGER_0_37799 */
437 static int hf_rrlp_navOmega; /* INTEGER_M2147483648_2147483647 */
438 static int hf_rrlp_navDeltaN; /* INTEGER_M32768_32767 */
439 static int hf_rrlp_navM0; /* INTEGER_M2147483648_2147483647 */
440 static int hf_rrlp_navOmegaADot; /* INTEGER_M8388608_8388607 */
441 static int hf_rrlp_navE; /* INTEGER_0_4294967295 */
442 static int hf_rrlp_navIDot; /* INTEGER_M8192_8191 */
443 static int hf_rrlp_navAPowerHalf; /* INTEGER_0_4294967295 */
444 static int hf_rrlp_navI0; /* INTEGER_M2147483648_2147483647 */
445 static int hf_rrlp_navOmegaA0; /* INTEGER_M2147483648_2147483647 */
446 static int hf_rrlp_navCrs; /* INTEGER_M32768_32767 */
447 static int hf_rrlp_navCis; /* INTEGER_M32768_32767 */
448 static int hf_rrlp_navCus; /* INTEGER_M32768_32767 */
449 static int hf_rrlp_navCrc; /* INTEGER_M32768_32767 */
450 static int hf_rrlp_navCic; /* INTEGER_M32768_32767 */
451 static int hf_rrlp_navCuc; /* INTEGER_M32768_32767 */
452 static int hf_rrlp_cnavTop; /* INTEGER_0_2015 */
453 static int hf_rrlp_cnavURAindex; /* INTEGER_M16_15 */
454 static int hf_rrlp_cnavDeltaA; /* INTEGER_M33554432_33554431 */
455 static int hf_rrlp_cnavAdot; /* INTEGER_M16777216_16777215 */
456 static int hf_rrlp_cnavDeltaNo; /* INTEGER_M65536_65535 */
457 static int hf_rrlp_cnavDeltaNoDot; /* INTEGER_M4194304_4194303 */
458 static int hf_rrlp_cnavMo; /* INTEGER_M4294967296_4294967295 */
459 static int hf_rrlp_cnavE; /* INTEGER_0_8589934591 */
460 static int hf_rrlp_cnavOmega; /* INTEGER_M4294967296_4294967295 */
461 static int hf_rrlp_cnavOMEGA0; /* INTEGER_M4294967296_4294967295 */
462 static int hf_rrlp_cnavDeltaOmegaDot; /* INTEGER_M65536_65535 */
463 static int hf_rrlp_cnavIo; /* INTEGER_M4294967296_4294967295 */
464 static int hf_rrlp_cnavIoDot; /* INTEGER_M16384_16383 */
465 static int hf_rrlp_cnavCis; /* INTEGER_M32768_32767 */
466 static int hf_rrlp_cnavCic; /* INTEGER_M32768_32767 */
467 static int hf_rrlp_cnavCrs; /* INTEGER_M8388608_8388607 */
468 static int hf_rrlp_cnavCrc; /* INTEGER_M8388608_8388607 */
469 static int hf_rrlp_cnavCus; /* INTEGER_M1048576_1048575 */
470 static int hf_rrlp_cnavCuc; /* INTEGER_M1048576_1048575 */
471 static int hf_rrlp_gloEn; /* INTEGER_0_31 */
472 static int hf_rrlp_gloP1; /* BIT_STRING_SIZE_2 */
473 static int hf_rrlp_gloP2; /* BOOLEAN */
474 static int hf_rrlp_gloM; /* INTEGER_0_3 */
475 static int hf_rrlp_gloX; /* INTEGER_M67108864_67108863 */
476 static int hf_rrlp_gloXdot; /* INTEGER_M8388608_8388607 */
477 static int hf_rrlp_gloXdotdot; /* INTEGER_M16_15 */
478 static int hf_rrlp_gloY; /* INTEGER_M67108864_67108863 */
479 static int hf_rrlp_gloYdot; /* INTEGER_M8388608_8388607 */
480 static int hf_rrlp_gloYdotdot; /* INTEGER_M16_15 */
481 static int hf_rrlp_gloZ; /* INTEGER_M67108864_67108863 */
482 static int hf_rrlp_gloZdot; /* INTEGER_M8388608_8388607 */
483 static int hf_rrlp_gloZdotdot; /* INTEGER_M16_15 */
484 static int hf_rrlp_sbasTo; /* INTEGER_0_5399 */
485 static int hf_rrlp_sbasAccuracy; /* BIT_STRING_SIZE_4 */
486 static int hf_rrlp_sbasXg; /* INTEGER_M536870912_536870911 */
487 static int hf_rrlp_sbasYg; /* INTEGER_M536870912_536870911 */
488 static int hf_rrlp_sbasZg; /* INTEGER_M16777216_16777215 */
489 static int hf_rrlp_sbasXgDot; /* INTEGER_M65536_65535 */
490 static int hf_rrlp_sbasYgDot; /* INTEGER_M65536_65535 */
491 static int hf_rrlp_sbasZgDot; /* INTEGER_M131072_131071 */
492 static int hf_rrlp_sbasXgDotDot; /* INTEGER_M512_511 */
493 static int hf_rrlp_sbagYgDotDot; /* INTEGER_M512_511 */
494 static int hf_rrlp_sbasZgDotDot; /* INTEGER_M512_511 */
495 static int hf_rrlp_standardClockModelList; /* SeqOfStandardClockModelElement */
496 static int hf_rrlp_navClockModel; /* NAVclockModel */
497 static int hf_rrlp_cnavClockModel; /* CNAVclockModel */
498 static int hf_rrlp_glonassClockModel; /* GLONASSclockModel */
499 static int hf_rrlp_sbasClockModel; /* SBASclockModel */
500 static int hf_rrlp_SeqOfStandardClockModelElement_item; /* StandardClockModelElement */
501 static int hf_rrlp_stanClockToc; /* INTEGER_0_16383 */
502 static int hf_rrlp_stanClockAF2; /* INTEGER_M2048_2047 */
503 static int hf_rrlp_stanClockAF1; /* INTEGER_M131072_131071 */
504 static int hf_rrlp_stanClockAF0; /* INTEGER_M134217728_134217727 */
505 static int hf_rrlp_stanClockTgd; /* INTEGER_M512_511 */
506 static int hf_rrlp_stanModelID; /* INTEGER_0_1 */
507 static int hf_rrlp_navToc; /* INTEGER_0_37799 */
508 static int hf_rrlp_navaf2; /* INTEGER_M128_127 */
509 static int hf_rrlp_navaf1; /* INTEGER_M32768_32767 */
510 static int hf_rrlp_navaf0; /* INTEGER_M2097152_2097151 */
511 static int hf_rrlp_navTgd; /* INTEGER_M128_127 */
512 static int hf_rrlp_cnavToc; /* INTEGER_0_2015 */
513 static int hf_rrlp_cnavURA0; /* INTEGER_M16_15 */
514 static int hf_rrlp_cnavURA1; /* INTEGER_0_7 */
515 static int hf_rrlp_cnavURA2; /* INTEGER_0_7 */
516 static int hf_rrlp_cnavAf2; /* INTEGER_M512_511 */
517 static int hf_rrlp_cnavAf1; /* INTEGER_M524288_524287 */
518 static int hf_rrlp_cnavAf0; /* INTEGER_M33554432_33554431 */
519 static int hf_rrlp_cnavTgd; /* INTEGER_M4096_4095 */
520 static int hf_rrlp_cnavISCl1cp; /* INTEGER_M4096_4095 */
521 static int hf_rrlp_cnavISCl1cd; /* INTEGER_M4096_4095 */
522 static int hf_rrlp_cnavISCl1ca; /* INTEGER_M4096_4095 */
523 static int hf_rrlp_cnavISCl2c; /* INTEGER_M4096_4095 */
524 static int hf_rrlp_cnavISCl5i5; /* INTEGER_M4096_4095 */
525 static int hf_rrlp_cnavISCl5q5; /* INTEGER_M4096_4095 */
526 static int hf_rrlp_gloTau; /* INTEGER_M2097152_2097151 */
527 static int hf_rrlp_gloGamma; /* INTEGER_M1024_1023 */
528 static int hf_rrlp_gloDeltaTau; /* INTEGER_M16_15 */
529 static int hf_rrlp_sbasAgfo; /* INTEGER_M2048_2047 */
530 static int hf_rrlp_sbasAgf1; /* INTEGER_M128_127 */
531 static int hf_rrlp_ganssBadSignalList; /* SeqOfBadSignalElement */
532 static int hf_rrlp_SeqOfBadSignalElement_item; /* BadSignalElement */
533 static int hf_rrlp_badSVID; /* SVID */
534 static int hf_rrlp_badSignalID; /* GANSSSignals */
535 static int hf_rrlp_ganssTOD_01; /* INTEGER_0_59 */
536 static int hf_rrlp_ganssDataBitsSatList; /* SeqOfGanssDataBitsElement */
537 static int hf_rrlp_SeqOfGanssDataBitsElement_item; /* GanssDataBitsElement */
538 static int hf_rrlp_ganssDataBitsSgnList; /* Seq_OfGANSSDataBitsSgn */
539 static int hf_rrlp_Seq_OfGANSSDataBitsSgn_item; /* GANSSDataBitsSgnElement */
540 static int hf_rrlp_ganssSignalType; /* GANSSSignalID */
541 static int hf_rrlp_ganssDataBits; /* SeqOf_GANSSDataBits */
542 static int hf_rrlp_SeqOf_GANSSDataBits_item; /* GANSSDataBit */
543 static int hf_rrlp_ganssRefMeasAssistList; /* SeqOfGANSSRefMeasurementElement */
544 static int hf_rrlp_SeqOfGANSSRefMeasurementElement_item; /* GANSSRefMeasurementElement */
545 static int hf_rrlp_additionalDoppler; /* AdditionalDopplerFields */
546 static int hf_rrlp_intCodePhase_01; /* INTEGER_0_127 */
547 static int hf_rrlp_codePhaseSearchWindow_01; /* INTEGER_0_31 */
548 static int hf_rrlp_additionalAngle; /* AddionalAngleFields */
549 static int hf_rrlp_dopplerUncertainty_01; /* INTEGER_0_4 */
550 static int hf_rrlp_GANSSRefMeasurementAssist_R10_Ext_item; /* GANSSRefMeasurement_R10_Ext_Element */
551 static int hf_rrlp_azimuthLSB; /* INTEGER_0_15 */
552 static int hf_rrlp_elevationLSB; /* INTEGER_0_15 */
553 static int hf_rrlp_weekNumber_01; /* INTEGER_0_255 */
554 static int hf_rrlp_toa; /* INTEGER_0_255 */
555 static int hf_rrlp_ioda; /* INTEGER_0_3 */
556 static int hf_rrlp_ganssAlmanacList; /* SeqOfGANSSAlmanacElement */
557 static int hf_rrlp_SeqOfGANSSAlmanacElement_item; /* GANSSAlmanacElement */
558 static int hf_rrlp_keplerianAlmanacSet; /* Almanac_KeplerianSet */
559 static int hf_rrlp_keplerianNAVAlmanac; /* Almanac_NAVKeplerianSet */
560 static int hf_rrlp_keplerianReducedAlmanac; /* Almanac_ReducedKeplerianSet */
561 static int hf_rrlp_keplerianMidiAlmanac; /* Almanac_MidiAlmanacSet */
562 static int hf_rrlp_keplerianGLONASS; /* Almanac_GlonassAlmanacSet */
563 static int hf_rrlp_ecefSBASAlmanac; /* Almanac_ECEFsbasAlmanacSet */
564 static int hf_rrlp_kepAlmanacE; /* INTEGER_0_2047 */
565 static int hf_rrlp_kepAlmanacDeltaI; /* INTEGER_M1024_1023 */
566 static int hf_rrlp_kepAlmanacOmegaDot; /* INTEGER_M1024_1023 */
567 static int hf_rrlp_kepSVHealth; /* INTEGER_0_15 */
568 static int hf_rrlp_kepAlmanacAPowerHalf; /* INTEGER_M65536_65535 */
569 static int hf_rrlp_kepAlmanacOmega0; /* INTEGER_M32768_32767 */
570 static int hf_rrlp_kepAlmanacW; /* INTEGER_M32768_32767 */
571 static int hf_rrlp_kepAlmanacM0; /* INTEGER_M32768_32767 */
572 static int hf_rrlp_kepAlmanacAF0; /* INTEGER_M8192_8191 */
573 static int hf_rrlp_kepAlmanacAF1; /* INTEGER_M1024_1023 */
574 static int hf_rrlp_navAlmE; /* INTEGER_0_65535 */
575 static int hf_rrlp_navAlmDeltaI; /* INTEGER_M32768_32767 */
576 static int hf_rrlp_navAlmOMEGADOT; /* INTEGER_M32768_32767 */
577 static int hf_rrlp_navAlmSVHealth; /* INTEGER_0_255 */
578 static int hf_rrlp_navAlmSqrtA; /* INTEGER_0_16777215 */
579 static int hf_rrlp_navAlmOMEGAo; /* INTEGER_M8388608_8388607 */
580 static int hf_rrlp_navAlmOmega; /* INTEGER_M8388608_8388607 */
581 static int hf_rrlp_navAlmMo; /* INTEGER_M8388608_8388607 */
582 static int hf_rrlp_navAlmaf0; /* INTEGER_M1024_1023 */
583 static int hf_rrlp_navAlmaf1; /* INTEGER_M1024_1023 */
584 static int hf_rrlp_redAlmDeltaA; /* INTEGER_M128_127 */
585 static int hf_rrlp_redAlmOmega0; /* INTEGER_M64_63 */
586 static int hf_rrlp_redAlmPhi0; /* INTEGER_M64_63 */
587 static int hf_rrlp_redAlmL1Health; /* BOOLEAN */
588 static int hf_rrlp_redAlmL2Health; /* BOOLEAN */
589 static int hf_rrlp_redAlmL5Health; /* BOOLEAN */
590 static int hf_rrlp_midiAlmE; /* INTEGER_0_2047 */
591 static int hf_rrlp_midiAlmDeltaI; /* INTEGER_M1024_1023 */
592 static int hf_rrlp_midiAlmOmegaDot; /* INTEGER_M1024_1023 */
593 static int hf_rrlp_midiAlmSqrtA; /* INTEGER_0_131071 */
594 static int hf_rrlp_midiAlmOmega0; /* INTEGER_M32768_32767 */
595 static int hf_rrlp_midiAlmOmega; /* INTEGER_M32768_32767 */
596 static int hf_rrlp_midiAlmMo; /* INTEGER_M32768_32767 */
597 static int hf_rrlp_midiAlmaf0; /* INTEGER_M1024_1023 */
598 static int hf_rrlp_midiAlmaf1; /* INTEGER_M512_511 */
599 static int hf_rrlp_midiAlmL1Health; /* BOOLEAN */
600 static int hf_rrlp_midiAlmL2Health; /* BOOLEAN */
601 static int hf_rrlp_midiAlmL5Health; /* BOOLEAN */
602 static int hf_rrlp_gloAlmNA; /* INTEGER_1_1461 */
603 static int hf_rrlp_gloAlmnA; /* INTEGER_1_24 */
604 static int hf_rrlp_gloAlmHA; /* INTEGER_0_31 */
605 static int hf_rrlp_gloAlmLambdaA; /* INTEGER_M1048576_1048575 */
606 static int hf_rrlp_gloAlmtlambdaA; /* INTEGER_0_2097151 */
607 static int hf_rrlp_gloAlmDeltaIa; /* INTEGER_M131072_131071 */
608 static int hf_rrlp_gloAlmDeltaTA; /* INTEGER_M2097152_2097151 */
609 static int hf_rrlp_gloAlmDeltaTdotA; /* INTEGER_M64_63 */
610 static int hf_rrlp_gloAlmEpsilonA; /* INTEGER_0_32767 */
611 static int hf_rrlp_gloAlmOmegaA; /* INTEGER_M32768_32767 */
612 static int hf_rrlp_gloAlmTauA; /* INTEGER_M512_511 */
613 static int hf_rrlp_gloAlmCA; /* INTEGER_0_1 */
614 static int hf_rrlp_gloAlmMA; /* BIT_STRING_SIZE_2 */
615 static int hf_rrlp_sbasAlmDataID; /* INTEGER_0_3 */
616 static int hf_rrlp_sbasAlmHealth; /* BIT_STRING_SIZE_8 */
617 static int hf_rrlp_sbasAlmXg; /* INTEGER_M16384_16383 */
618 static int hf_rrlp_sbasAlmYg; /* INTEGER_M16384_16383 */
619 static int hf_rrlp_sbasAlmZg; /* INTEGER_M256_255 */
620 static int hf_rrlp_sbasAlmXgdot; /* INTEGER_M4_3 */
621 static int hf_rrlp_sbasAlmYgDot; /* INTEGER_M4_3 */
622 static int hf_rrlp_sbasAlmZgDot; /* INTEGER_M8_7 */
623 static int hf_rrlp_sbasAlmTo; /* INTEGER_0_2047 */
624 static int hf_rrlp_completeAlmanacProvided; /* BOOLEAN */
625 static int hf_rrlp_ganssUtcA1; /* INTEGER_M8388608_8388607 */
626 static int hf_rrlp_ganssUtcA0; /* INTEGER_M2147483648_2147483647 */
627 static int hf_rrlp_ganssUtcTot; /* INTEGER_0_255 */
628 static int hf_rrlp_ganssUtcWNt; /* INTEGER_0_255 */
629 static int hf_rrlp_ganssUtcDeltaTls; /* INTEGER_M128_127 */
630 static int hf_rrlp_ganssUtcWNlsf; /* INTEGER_0_255 */
631 static int hf_rrlp_ganssUtcDN; /* INTEGER_M128_127 */
632 static int hf_rrlp_ganssUtcDeltaTlsf; /* INTEGER_M128_127 */
633 static int hf_rrlp_ganssEphemerisHeader; /* GANSSEphemerisExtensionHeader */
634 static int hf_rrlp_ganssReferenceSet; /* SeqOfGANSSRefOrbit */
635 static int hf_rrlp_ganssephemerisDeltasMatrix; /* GANSSEphemerisDeltaMatrix */
636 static int hf_rrlp_timeAtEstimation; /* GANSSEphemerisExtensionTime */
637 static int hf_rrlp_validityPeriod; /* INTEGER_1_8 */
638 static int hf_rrlp_ephemerisExtensionDuration; /* INTEGER_1_512 */
639 static int hf_rrlp_ganssEphExtDay; /* INTEGER_0_8191 */
640 static int hf_rrlp_ganssEphExtTOD; /* GANSSTOD */
641 static int hf_rrlp_keplerToe_01; /* INTEGER_0_37799 */
642 static int hf_rrlp_SeqOfGANSSRefOrbit_item; /* GANSSReferenceOrbit */
643 static int hf_rrlp_ganssOrbitModel_01; /* ReferenceNavModel */
644 static int hf_rrlp_GANSSEphemerisDeltaMatrix_item; /* GANSSEphemerisDeltaEpoch */
645 static int hf_rrlp_ganssDeltaEpochHeader; /* GANSSDeltaEpochHeader */
646 static int hf_rrlp_ganssDeltaElementList; /* GANSSDeltaElementList */
647 static int hf_rrlp_ephemerisDeltaSizes; /* GANSSEphemerisDeltaBitSizes */
648 static int hf_rrlp_ephemerisDeltaScales; /* GANSSEphemerisDeltaScales */
649 static int hf_rrlp_GANSSDeltaElementList_item; /* OCTET_STRING_SIZE_1_49 */
650 static int hf_rrlp_bitsize_delta_omega; /* INTEGER_1_32 */
651 static int hf_rrlp_bitsize_delta_deltaN; /* INTEGER_1_16 */
652 static int hf_rrlp_bitsize_delta_m0; /* INTEGER_1_32 */
653 static int hf_rrlp_bitsize_delta_omegadot; /* INTEGER_1_24 */
654 static int hf_rrlp_bitsize_delta_e; /* INTEGER_1_32 */
655 static int hf_rrlp_bitsize_delta_idot; /* INTEGER_1_14 */
656 static int hf_rrlp_bitsize_delta_sqrtA; /* INTEGER_1_32 */
657 static int hf_rrlp_bitsize_delta_i0; /* INTEGER_1_32 */
658 static int hf_rrlp_bitsize_delta_omega0; /* INTEGER_1_32 */
659 static int hf_rrlp_bitsize_delta_crs; /* INTEGER_1_16 */
660 static int hf_rrlp_bitsize_delta_cis; /* INTEGER_1_16 */
661 static int hf_rrlp_bitsize_delta_cus; /* INTEGER_1_16 */
662 static int hf_rrlp_bitsize_delta_crc; /* INTEGER_1_16 */
663 static int hf_rrlp_bitsize_delta_cic; /* INTEGER_1_16 */
664 static int hf_rrlp_bitsize_delta_cuc; /* INTEGER_1_16 */
665 static int hf_rrlp_bitsize_delta_tgd1; /* INTEGER_1_10 */
666 static int hf_rrlp_bitsize_delta_tgd2; /* INTEGER_1_10 */
667 static int hf_rrlp_scale_delta_omega; /* INTEGER_M16_15 */
668 static int hf_rrlp_scale_delta_deltaN; /* INTEGER_M16_15 */
669 static int hf_rrlp_scale_delta_m0; /* INTEGER_M16_15 */
670 static int hf_rrlp_scale_delta_omegadot; /* INTEGER_M16_15 */
671 static int hf_rrlp_scale_delta_e; /* INTEGER_M16_15 */
672 static int hf_rrlp_scale_delta_idot; /* INTEGER_M16_15 */
673 static int hf_rrlp_scale_delta_sqrtA; /* INTEGER_M16_15 */
674 static int hf_rrlp_scale_delta_i0; /* INTEGER_M16_15 */
675 static int hf_rrlp_scale_delta_omega0; /* INTEGER_M16_15 */
676 static int hf_rrlp_scale_delta_crs; /* INTEGER_M16_15 */
677 static int hf_rrlp_scale_delta_cis; /* INTEGER_M16_15 */
678 static int hf_rrlp_scale_delta_cus; /* INTEGER_M16_15 */
679 static int hf_rrlp_scale_delta_crc; /* INTEGER_M16_15 */
680 static int hf_rrlp_scale_delta_cic; /* INTEGER_M16_15 */
681 static int hf_rrlp_scale_delta_cuc; /* INTEGER_M16_15 */
682 static int hf_rrlp_scale_delta_tgd1; /* INTEGER_M16_15 */
683 static int hf_rrlp_scale_delta_tgd2; /* INTEGER_M16_15 */
684 static int hf_rrlp_ganssBeginTime; /* GANSSEphemerisExtensionTime */
685 static int hf_rrlp_ganssEndTime; /* GANSSEphemerisExtensionTime */
686 static int hf_rrlp_ganssSatEventsInfo; /* GANSSSatEventsInfo */
687 static int hf_rrlp_eventOccured; /* BIT_STRING_SIZE_64 */
688 static int hf_rrlp_futureEventNoted; /* BIT_STRING_SIZE_64 */
689 static int hf_rrlp_utcModel2; /* UTCmodelSet2 */
690 static int hf_rrlp_utcModel3; /* UTCmodelSet3 */
691 static int hf_rrlp_utcModel4; /* UTCmodelSet4 */
692 static int hf_rrlp_utcA0_01; /* INTEGER_M32768_32767 */
693 static int hf_rrlp_utcA1_01; /* INTEGER_M4096_4095 */
694 static int hf_rrlp_utcA2; /* INTEGER_M64_63 */
695 static int hf_rrlp_utcTot_01; /* INTEGER_0_65535 */
696 static int hf_rrlp_utcWNot; /* INTEGER_0_8191 */
697 static int hf_rrlp_utcDN_01; /* BIT_STRING_SIZE_4 */
698 static int hf_rrlp_nA; /* INTEGER_1_1461 */
699 static int hf_rrlp_tauC; /* INTEGER_M2147483648_2147483647 */
700 static int hf_rrlp_b1; /* INTEGER_M1024_1023 */
701 static int hf_rrlp_b2; /* INTEGER_M512_511 */
702 static int hf_rrlp_kp; /* BIT_STRING_SIZE_2 */
703 static int hf_rrlp_utcA1wnt; /* INTEGER_M8388608_8388607 */
704 static int hf_rrlp_utcA0wnt; /* INTEGER_M2147483648_2147483647 */
705 static int hf_rrlp_utcStandardID; /* INTEGER_0_7 */
706 static int hf_rrlp_ganssID1; /* GANSS_ID1 */
707 static int hf_rrlp_ganssID3; /* GANSS_ID3 */
708 static int hf_rrlp_GANSS_ID1_item; /* GANSS_ID1_element */
709 static int hf_rrlp_signalsAvailable; /* GANSSSignals */
710 static int hf_rrlp_GANSS_ID3_item; /* GANSS_ID3_element */
711 static int hf_rrlp_channelNumber; /* INTEGER_M7_13 */
712 static int hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item; /* DGANSSExtensionSgnTypeElement */
713 static int hf_rrlp_dganssExtensionSgnList; /* SeqOfDGANSSExtensionSgnElement */
714 static int hf_rrlp_SeqOfDGANSSExtensionSgnElement_item; /* DGANSSExtensionSgnElement */
715 static int hf_rrlp_udreGrowthRate; /* INTEGER_0_7 */
716 static int hf_rrlp_udreValidityTime; /* INTEGER_0_7 */
717 static int hf_rrlp_add_GPS_controlHeader; /* Add_GPS_ControlHeader */
718 static int hf_rrlp_gpsEphemerisExtension; /* GPSEphemerisExtension */
719 static int hf_rrlp_gpsEphemerisExtensionCheck; /* GPSEphemerisExtensionCheck */
720 static int hf_rrlp_dgpsCorrectionsValidityPeriod; /* DGPSCorrectionsValidityPeriod */
721 static int hf_rrlp_gpsReferenceTime_R10_Ext; /* GPSReferenceTime_R10_Ext */
722 static int hf_rrlp_gpsAcquisAssist_R10_Ext; /* GPSAcquisAssist_R10_Ext */
723 static int hf_rrlp_gpsAlmanac_R10_Ext; /* GPSAlmanac_R10_Ext */
724 static int hf_rrlp_af2; /* INTEGER_M128_127 */
725 static int hf_rrlp_af1; /* INTEGER_M32768_32767 */
726 static int hf_rrlp_af0; /* INTEGER_M2097152_2097151 */
727 static int hf_rrlp_tgd; /* INTEGER_M128_127 */
728 static int hf_rrlp_gpsEphemerisHeader; /* GPSEphemerisExtensionHeader */
729 static int hf_rrlp_gpsReferenceSet; /* SeqOfGPSRefOrbit */
730 static int hf_rrlp_gpsephemerisDeltaMatrix; /* GPSEphemerisDeltaMatrix */
731 static int hf_rrlp_timeofEstimation; /* GPSEphemerisExtensionTime */
732 static int hf_rrlp_SeqOfGPSRefOrbit_item; /* GPSReferenceOrbit */
733 static int hf_rrlp_gpsOrbitModel; /* ReferenceNavModel */
734 static int hf_rrlp_gpsClockModel; /* GPSClockModel */
735 static int hf_rrlp_GPSEphemerisDeltaMatrix_item; /* GPSEphemerisDeltaEpoch */
736 static int hf_rrlp_gpsDeltaEpochHeader; /* GPSDeltaEpochHeader */
737 static int hf_rrlp_gpsDeltaElementList; /* GPSDeltaElementList */
738 static int hf_rrlp_ephemerisDeltaSizes_01; /* GPSEphemerisDeltaBitSizes */
739 static int hf_rrlp_ephemerisDeltaScales_01; /* GPSEphemerisDeltaScales */
740 static int hf_rrlp_GPSDeltaElementList_item; /* OCTET_STRING_SIZE_1_47 */
741 static int hf_rrlp_bitsize_delta_tgd; /* INTEGER_1_10 */
742 static int hf_rrlp_scale_delta_tgd; /* INTEGER_M16_15 */
743 static int hf_rrlp_gpsBeginTime; /* GPSEphemerisExtensionTime */
744 static int hf_rrlp_gpsEndTime; /* GPSEphemerisExtensionTime */
745 static int hf_rrlp_gpsSatEventsInfo; /* GPSSatEventsInfo */
746 static int hf_rrlp_eventOccured_01; /* BIT_STRING_SIZE_32 */
747 static int hf_rrlp_futureEventNoted_01; /* BIT_STRING_SIZE_32 */
748 static int hf_rrlp_DGPSCorrectionsValidityPeriod_item; /* DGPSExtensionSatElement */
749 static int hf_rrlp_gpsWeekCycleNumber; /* INTEGER_0_7 */
750 static int hf_rrlp_GPSAcquisAssist_R10_Ext_item; /* GPSAcquisAssist_R10_Ext_Element */
751 static int hf_rrlp_velEstimate; /* VelocityEstimate */
752 static int hf_rrlp_ganssLocationInfo; /* GANSSLocationInfo */
753 static int hf_rrlp_ganssMeasureInfo; /* GANSSMeasureInfo */
754 static int hf_rrlp_referenceFrame; /* ReferenceFrame */
755 static int hf_rrlp_ganssTODm; /* GANSSTODm */
756 static int hf_rrlp_ganssTODFrac; /* INTEGER_0_16384 */
757 static int hf_rrlp_posData; /* PositionData */
758 static int hf_rrlp_stationaryIndication; /* INTEGER_0_1 */
759 static int hf_rrlp_referenceFN; /* INTEGER_0_65535 */
760 static int hf_rrlp_referenceFNMSB; /* INTEGER_0_63 */
761 static int hf_rrlp_ganssMsrSetList; /* SeqOfGANSS_MsrSetElement */
762 static int hf_rrlp_SeqOfGANSS_MsrSetElement_item; /* GANSS_MsrSetElement */
763 static int hf_rrlp_deltaGANSSTOD; /* INTEGER_0_127 */
764 static int hf_rrlp_ganss_MsrElementList; /* SeqOfGANSS_MsrElement */
765 static int hf_rrlp_SeqOfGANSS_MsrElement_item; /* GANSS_MsrElement */
766 static int hf_rrlp_ganss_SgnTypeList; /* SeqOfGANSS_SgnTypeElement */
767 static int hf_rrlp_SeqOfGANSS_SgnTypeElement_item; /* GANSS_SgnTypeElement */
768 static int hf_rrlp_ganssCodePhaseAmbiguity; /* INTEGER_0_127 */
769 static int hf_rrlp_ganss_SgnList; /* SeqOfGANSS_SgnElement */
770 static int hf_rrlp_SeqOfGANSS_SgnElement_item; /* GANSS_SgnElement */
771 static int hf_rrlp_mpathDet; /* MpathIndic */
772 static int hf_rrlp_carrierQualityInd; /* INTEGER_0_3 */
773 static int hf_rrlp_codePhase_01; /* INTEGER_0_2097151 */
774 static int hf_rrlp_integerCodePhase; /* INTEGER_0_127 */
775 static int hf_rrlp_codePhaseRMSError; /* INTEGER_0_63 */
776 static int hf_rrlp_adr; /* INTEGER_0_33554431 */
777 static int hf_rrlp_nonGANSSpositionMethods; /* NonGANSSPositionMethods */
778 static int hf_rrlp_multipleMeasurementSets; /* MultipleMeasurementSets */
779 static int hf_rrlp_GANSSPositionMethods_item; /* GANSSPositionMethod */
780 static int hf_rrlp_gANSSPositioningMethodTypes; /* GANSSPositioningMethodTypes */
781 static int hf_rrlp_gANSSSignals; /* GANSSSignals */
782 static int hf_rrlp_sbasID_01; /* SBASID */
783 static int hf_rrlp_gpsAssistance; /* GPSAssistance */
784 static int hf_rrlp_gANSSAssistanceSet; /* GANSSAssistanceSet */
785 static int hf_rrlp_gANSSAdditionalAssistanceChoices; /* GANSSAdditionalAssistanceChoices */
786 static int hf_rrlp_commonGANSSAssistance; /* CommonGANSSAssistance */
787 static int hf_rrlp_specificGANSSAssistance; /* SpecificGANSSAssistance */
788 static int hf_rrlp_SpecificGANSSAssistance_item; /* GANSSAssistanceForOneGANSS */
789 static int hf_rrlp_gANSSAssistance; /* GANSSAssistance */
790 static int hf_rrlp_GANSSAdditionalAssistanceChoices_item; /* GANSSAdditionalAssistanceChoicesForOneGANSS */
791 static int hf_rrlp_ganssClockModelChoice; /* GANSSModelID */
792 static int hf_rrlp_gannsOrbitModelChoice; /* GANSSModelID */
793 static int hf_rrlp_ganssAlmanacModelChoice; /* GANSSModelID */
794 static int hf_rrlp_ganssAdditionalUTCModelChoice; /* GANSSModelID */
795 /* named bits */
796 static int hf_rrlp_GANSSPositioningMethod_gps;
797 static int hf_rrlp_GANSSPositioningMethod_galileo;
798 static int hf_rrlp_GANSSPositioningMethod_sbas;
799 static int hf_rrlp_GANSSPositioningMethod_modernizedGPS;
800 static int hf_rrlp_GANSSPositioningMethod_qzss;
801 static int hf_rrlp_GANSSPositioningMethod_glonass;
802 static int hf_rrlp_PositionData_e_otd;
803 static int hf_rrlp_PositionData_gps;
804 static int hf_rrlp_PositionData_galileo;
805 static int hf_rrlp_PositionData_sbas;
806 static int hf_rrlp_PositionData_modernizedGPS;
807 static int hf_rrlp_PositionData_qzss;
808 static int hf_rrlp_PositionData_glonass;
809 static int hf_rrlp_NonGANSSPositionMethods_msAssistedEOTD;
810 static int hf_rrlp_NonGANSSPositionMethods_msBasedEOTD;
811 static int hf_rrlp_NonGANSSPositionMethods_msAssistedGPS;
812 static int hf_rrlp_NonGANSSPositionMethods_msBasedGPS;
813 static int hf_rrlp_NonGANSSPositionMethods_standaloneGPS;
814 static int hf_rrlp_GANSSPositioningMethodTypes_msAssisted;
815 static int hf_rrlp_GANSSPositioningMethodTypes_msBased;
816 static int hf_rrlp_GANSSPositioningMethodTypes_standalone;
817 static int hf_rrlp_GANSSSignals_signal1;
818 static int hf_rrlp_GANSSSignals_signal2;
819 static int hf_rrlp_GANSSSignals_signal3;
820 static int hf_rrlp_GANSSSignals_signal4;
821 static int hf_rrlp_GANSSSignals_signal5;
822 static int hf_rrlp_GANSSSignals_signal6;
823 static int hf_rrlp_GANSSSignals_signal7;
824 static int hf_rrlp_GANSSSignals_signal8;
825 static int hf_rrlp_SBASID_waas;
826 static int hf_rrlp_SBASID_egnos;
827 static int hf_rrlp_SBASID_masas;
828 static int hf_rrlp_SBASID_gagan;
829 static int hf_rrlp_MultipleMeasurementSets_eotd;
830 static int hf_rrlp_MultipleMeasurementSets_gps;
831 static int hf_rrlp_MultipleMeasurementSets_ganss;
832 static int hf_rrlp_GPSAssistance_almanac;
833 static int hf_rrlp_GPSAssistance_uTCmodel;
834 static int hf_rrlp_GPSAssistance_ionosphericModel;
835 static int hf_rrlp_GPSAssistance_navigationmodel;
836 static int hf_rrlp_GPSAssistance_dGPScorrections;
837 static int hf_rrlp_GPSAssistance_referenceLocation;
838 static int hf_rrlp_GPSAssistance_referenceTime;
839 static int hf_rrlp_GPSAssistance_acquisitionAssistance;
840 static int hf_rrlp_GPSAssistance_realTimeIntegrity;
841 static int hf_rrlp_GPSAssistance_ephemerisExtension;
842 static int hf_rrlp_GPSAssistance_ephemerisExtensionCheck;
843 static int hf_rrlp_CommonGANSSAssistance_referenceTime;
844 static int hf_rrlp_CommonGANSSAssistance_referenceLocation;
845 static int hf_rrlp_CommonGANSSAssistance_spare_bit2;
846 static int hf_rrlp_CommonGANSSAssistance_ionosphericModel;
847 static int hf_rrlp_CommonGANSSAssistance_addIonosphericModel;
848 static int hf_rrlp_CommonGANSSAssistance_earthOrientationParam;
849 static int hf_rrlp_GANSSAssistance_realTimeIntegrity;
850 static int hf_rrlp_GANSSAssistance_differentialCorrections;
851 static int hf_rrlp_GANSSAssistance_almanac;
852 static int hf_rrlp_GANSSAssistance_referenceMeasurementInformation;
853 static int hf_rrlp_GANSSAssistance_navigationModel;
854 static int hf_rrlp_GANSSAssistance_timeModelGNSS_UTC;
855 static int hf_rrlp_GANSSAssistance_timeModelGNSS_GNSS;
856 static int hf_rrlp_GANSSAssistance_databitassistance;
857 static int hf_rrlp_GANSSAssistance_ephemerisExtension;
858 static int hf_rrlp_GANSSAssistance_ephemerisExtensionCheck;
859 static int hf_rrlp_GANSSAssistance_addUTCmodel;
860 static int hf_rrlp_GANSSAssistance_auxiliaryInformation;
861 static int hf_rrlp_GANSSModelID_model1;
862 static int hf_rrlp_GANSSModelID_model2;
863 static int hf_rrlp_GANSSModelID_model3;
864 static int hf_rrlp_GANSSModelID_model4;
865 static int hf_rrlp_GANSSModelID_model5;
866 static int hf_rrlp_GANSSModelID_model6;
867 static int hf_rrlp_GANSSModelID_model7;
868 static int hf_rrlp_GANSSModelID_model8;
870 /* Initialize the subtree pointers */
871 static int ett_rrlp;
872 static int ett_rrlp_ExtensionContainer;
873 static int ett_rrlp_PrivateExtensionList;
874 static int ett_rrlp_PrivateExtension;
875 static int ett_rrlp_PCS_Extensions;
876 static int ett_rrlp_PDU;
877 static int ett_rrlp_RRLP_Component;
878 static int ett_rrlp_MsrPosition_Req;
879 static int ett_rrlp_MsrPosition_Rsp;
880 static int ett_rrlp_AssistanceData;
881 static int ett_rrlp_ProtocolError;
882 static int ett_rrlp_PosCapability_Req;
883 static int ett_rrlp_PosCapability_Rsp;
884 static int ett_rrlp_PositionInstruct;
885 static int ett_rrlp_MethodType;
886 static int ett_rrlp_AccuracyOpt;
887 static int ett_rrlp_ReferenceAssistData;
888 static int ett_rrlp_MsrAssistData;
889 static int ett_rrlp_SeqOfMsrAssistBTS;
890 static int ett_rrlp_MsrAssistBTS;
891 static int ett_rrlp_SystemInfoAssistData;
892 static int ett_rrlp_SeqOfSystemInfoAssistBTS;
893 static int ett_rrlp_SystemInfoAssistBTS;
894 static int ett_rrlp_AssistBTSData;
895 static int ett_rrlp_CalcAssistanceBTS;
896 static int ett_rrlp_ReferenceWGS84;
897 static int ett_rrlp_MultipleSets;
898 static int ett_rrlp_ReferenceIdentity;
899 static int ett_rrlp_SeqOfReferenceIdentityType;
900 static int ett_rrlp_ReferenceIdentityType;
901 static int ett_rrlp_BSICAndCarrier;
902 static int ett_rrlp_CellIDAndLAC;
903 static int ett_rrlp_OTD_MeasureInfo;
904 static int ett_rrlp_SeqOfOTD_MsrElementRest;
905 static int ett_rrlp_OTD_MsrElementFirst;
906 static int ett_rrlp_SeqOfOTD_FirstSetMsrs;
907 static int ett_rrlp_OTD_MsrElementRest;
908 static int ett_rrlp_SeqOfOTD_MsrsOfOtherSets;
909 static int ett_rrlp_TOA_MeasurementsOfRef;
910 static int ett_rrlp_OTD_MsrsOfOtherSets;
911 static int ett_rrlp_OTD_Measurement;
912 static int ett_rrlp_OTD_MeasurementWithID;
913 static int ett_rrlp_EOTDQuality;
914 static int ett_rrlp_NeighborIdentity;
915 static int ett_rrlp_MultiFrameCarrier;
916 static int ett_rrlp_LocationInfo;
917 static int ett_rrlp_GPS_MeasureInfo;
918 static int ett_rrlp_SeqOfGPS_MsrSetElement;
919 static int ett_rrlp_GPS_MsrSetElement;
920 static int ett_rrlp_SeqOfGPS_MsrElement;
921 static int ett_rrlp_GPS_MsrElement;
922 static int ett_rrlp_LocationError;
923 static int ett_rrlp_AdditionalAssistanceData;
924 static int ett_rrlp_GPS_AssistData;
925 static int ett_rrlp_ControlHeader;
926 static int ett_rrlp_ReferenceTime;
927 static int ett_rrlp_GPSTime;
928 static int ett_rrlp_GPSTOWAssist;
929 static int ett_rrlp_GPSTOWAssistElement;
930 static int ett_rrlp_GSMTime;
931 static int ett_rrlp_RefLocation;
932 static int ett_rrlp_DGPSCorrections;
933 static int ett_rrlp_SeqOfSatElement;
934 static int ett_rrlp_SatElement;
935 static int ett_rrlp_NavigationModel;
936 static int ett_rrlp_SeqOfNavModelElement;
937 static int ett_rrlp_NavModelElement;
938 static int ett_rrlp_SatStatus;
939 static int ett_rrlp_UncompressedEphemeris;
940 static int ett_rrlp_EphemerisSubframe1Reserved;
941 static int ett_rrlp_IonosphericModel;
942 static int ett_rrlp_UTCModel;
943 static int ett_rrlp_Almanac;
944 static int ett_rrlp_SeqOfAlmanacElement;
945 static int ett_rrlp_AlmanacElement;
946 static int ett_rrlp_AcquisAssist;
947 static int ett_rrlp_SeqOfAcquisElement;
948 static int ett_rrlp_TimeRelation;
949 static int ett_rrlp_AcquisElement;
950 static int ett_rrlp_AddionalDopplerFields;
951 static int ett_rrlp_AddionalAngleFields;
952 static int ett_rrlp_SeqOf_BadSatelliteSet;
953 static int ett_rrlp_Rel98_MsrPosition_Req_Extension;
954 static int ett_rrlp_Rel98_AssistanceData_Extension;
955 static int ett_rrlp_Rel98_Ext_ExpOTD;
956 static int ett_rrlp_MsrAssistData_R98_ExpOTD;
957 static int ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD;
958 static int ett_rrlp_MsrAssistBTS_R98_ExpOTD;
959 static int ett_rrlp_SystemInfoAssistData_R98_ExpOTD;
960 static int ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD;
961 static int ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD;
962 static int ett_rrlp_AssistBTSData_R98_ExpOTD;
963 static int ett_rrlp_GPSTimeAssistanceMeasurements;
964 static int ett_rrlp_Rel_98_MsrPosition_Rsp_Extension;
965 static int ett_rrlp_T_rel_98_Ext_MeasureInfo;
966 static int ett_rrlp_OTD_MeasureInfo_R98_Ext;
967 static int ett_rrlp_OTD_MsrElementFirst_R98_Ext;
968 static int ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext;
969 static int ett_rrlp_Rel_5_MsrPosition_Rsp_Extension;
970 static int ett_rrlp_Extended_reference;
971 static int ett_rrlp_Rel5_MsrPosition_Req_Extension;
972 static int ett_rrlp_Rel5_AssistanceData_Extension;
973 static int ett_rrlp_Rel_5_ProtocolError_Extension;
974 static int ett_rrlp_Rel7_MsrPosition_Req_Extension;
975 static int ett_rrlp_GANSSPositioningMethod;
976 static int ett_rrlp_GANSS_AssistData;
977 static int ett_rrlp_GANSS_ControlHeader;
978 static int ett_rrlp_GANSSCommonAssistData;
979 static int ett_rrlp_SeqOfGANSSGenericAssistDataElement;
980 static int ett_rrlp_GANSSGenericAssistDataElement;
981 static int ett_rrlp_GANSSReferenceTime;
982 static int ett_rrlp_GANSSRefTimeInfo;
983 static int ett_rrlp_GANSSReferenceTime_R10_Ext;
984 static int ett_rrlp_GANSSTOD_GSMTimeAssociation;
985 static int ett_rrlp_GANSSRefLocation;
986 static int ett_rrlp_GANSSIonosphericModel;
987 static int ett_rrlp_GANSSIonosphereModel;
988 static int ett_rrlp_GANSSIonoStormFlags;
989 static int ett_rrlp_GANSSAddIonosphericModel;
990 static int ett_rrlp_GANSSEarthOrientParam;
991 static int ett_rrlp_SeqOfGANSSTimeModel;
992 static int ett_rrlp_GANSSTimeModelElement;
993 static int ett_rrlp_SeqOfGANSSTimeModel_R10_Ext;
994 static int ett_rrlp_GANSSTimeModelElement_R10_Ext;
995 static int ett_rrlp_GANSSDiffCorrections;
996 static int ett_rrlp_SeqOfSgnTypeElement;
997 static int ett_rrlp_SgnTypeElement;
998 static int ett_rrlp_SeqOfDGANSSSgnElement;
999 static int ett_rrlp_DGANSSSgnElement;
1000 static int ett_rrlp_GANSSNavModel;
1001 static int ett_rrlp_SeqOfGANSSSatelliteElement;
1002 static int ett_rrlp_GANSSSatelliteElement;
1003 static int ett_rrlp_GANSSOrbitModel;
1004 static int ett_rrlp_NavModel_KeplerianSet;
1005 static int ett_rrlp_NavModel_NAVKeplerianSet;
1006 static int ett_rrlp_NavModel_CNAVKeplerianSet;
1007 static int ett_rrlp_NavModel_GLONASSecef;
1008 static int ett_rrlp_NavModel_SBASecef;
1009 static int ett_rrlp_GANSSClockModel;
1010 static int ett_rrlp_SeqOfStandardClockModelElement;
1011 static int ett_rrlp_StandardClockModelElement;
1012 static int ett_rrlp_NAVclockModel;
1013 static int ett_rrlp_CNAVclockModel;
1014 static int ett_rrlp_GLONASSclockModel;
1015 static int ett_rrlp_SBASclockModel;
1016 static int ett_rrlp_GANSSRealTimeIntegrity;
1017 static int ett_rrlp_SeqOfBadSignalElement;
1018 static int ett_rrlp_BadSignalElement;
1019 static int ett_rrlp_GANSSDataBitAssist;
1020 static int ett_rrlp_SeqOfGanssDataBitsElement;
1021 static int ett_rrlp_GanssDataBitsElement;
1022 static int ett_rrlp_Seq_OfGANSSDataBitsSgn;
1023 static int ett_rrlp_GANSSDataBitsSgnElement;
1024 static int ett_rrlp_SeqOf_GANSSDataBits;
1025 static int ett_rrlp_GANSSRefMeasurementAssist;
1026 static int ett_rrlp_SeqOfGANSSRefMeasurementElement;
1027 static int ett_rrlp_GANSSRefMeasurementElement;
1028 static int ett_rrlp_AdditionalDopplerFields;
1029 static int ett_rrlp_GANSSRefMeasurementAssist_R10_Ext;
1030 static int ett_rrlp_GANSSRefMeasurement_R10_Ext_Element;
1031 static int ett_rrlp_GANSSAlmanacModel;
1032 static int ett_rrlp_SeqOfGANSSAlmanacElement;
1033 static int ett_rrlp_GANSSAlmanacElement;
1034 static int ett_rrlp_Almanac_KeplerianSet;
1035 static int ett_rrlp_Almanac_NAVKeplerianSet;
1036 static int ett_rrlp_Almanac_ReducedKeplerianSet;
1037 static int ett_rrlp_Almanac_MidiAlmanacSet;
1038 static int ett_rrlp_Almanac_GlonassAlmanacSet;
1039 static int ett_rrlp_Almanac_ECEFsbasAlmanacSet;
1040 static int ett_rrlp_GANSSAlmanacModel_R10_Ext;
1041 static int ett_rrlp_GANSSUTCModel;
1042 static int ett_rrlp_GANSSEphemerisExtension;
1043 static int ett_rrlp_GANSSEphemerisExtensionHeader;
1044 static int ett_rrlp_GANSSEphemerisExtensionTime;
1045 static int ett_rrlp_ReferenceNavModel;
1046 static int ett_rrlp_SeqOfGANSSRefOrbit;
1047 static int ett_rrlp_GANSSReferenceOrbit;
1048 static int ett_rrlp_GANSSEphemerisDeltaMatrix;
1049 static int ett_rrlp_GANSSEphemerisDeltaEpoch;
1050 static int ett_rrlp_GANSSDeltaEpochHeader;
1051 static int ett_rrlp_GANSSDeltaElementList;
1052 static int ett_rrlp_GANSSEphemerisDeltaBitSizes;
1053 static int ett_rrlp_GANSSEphemerisDeltaScales;
1054 static int ett_rrlp_GANSSEphemerisExtensionCheck;
1055 static int ett_rrlp_GANSSSatEventsInfo;
1056 static int ett_rrlp_GANSSAddUTCModel;
1057 static int ett_rrlp_UTCmodelSet2;
1058 static int ett_rrlp_UTCmodelSet3;
1059 static int ett_rrlp_UTCmodelSet4;
1060 static int ett_rrlp_GANSSAuxiliaryInformation;
1061 static int ett_rrlp_GANSS_ID1;
1062 static int ett_rrlp_GANSS_ID1_element;
1063 static int ett_rrlp_GANSS_ID3;
1064 static int ett_rrlp_GANSS_ID3_element;
1065 static int ett_rrlp_GANSSDiffCorrectionsValidityPeriod;
1066 static int ett_rrlp_DGANSSExtensionSgnTypeElement;
1067 static int ett_rrlp_SeqOfDGANSSExtensionSgnElement;
1068 static int ett_rrlp_DGANSSExtensionSgnElement;
1069 static int ett_rrlp_Add_GPS_AssistData;
1070 static int ett_rrlp_Add_GPS_ControlHeader;
1071 static int ett_rrlp_GPSClockModel;
1072 static int ett_rrlp_GPSEphemerisExtension;
1073 static int ett_rrlp_GPSEphemerisExtensionHeader;
1074 static int ett_rrlp_GPSEphemerisExtensionTime;
1075 static int ett_rrlp_SeqOfGPSRefOrbit;
1076 static int ett_rrlp_GPSReferenceOrbit;
1077 static int ett_rrlp_GPSEphemerisDeltaMatrix;
1078 static int ett_rrlp_GPSEphemerisDeltaEpoch;
1079 static int ett_rrlp_GPSDeltaEpochHeader;
1080 static int ett_rrlp_GPSDeltaElementList;
1081 static int ett_rrlp_GPSEphemerisDeltaBitSizes;
1082 static int ett_rrlp_GPSEphemerisDeltaScales;
1083 static int ett_rrlp_GPSEphemerisExtensionCheck;
1084 static int ett_rrlp_GPSSatEventsInfo;
1085 static int ett_rrlp_DGPSCorrectionsValidityPeriod;
1086 static int ett_rrlp_DGPSExtensionSatElement;
1087 static int ett_rrlp_GPSReferenceTime_R10_Ext;
1088 static int ett_rrlp_GPSAcquisAssist_R10_Ext;
1089 static int ett_rrlp_GPSAcquisAssist_R10_Ext_Element;
1090 static int ett_rrlp_GPSAlmanac_R10_Ext;
1091 static int ett_rrlp_Rel_7_MsrPosition_Rsp_Extension;
1092 static int ett_rrlp_GANSSLocationInfo;
1093 static int ett_rrlp_PositionData;
1094 static int ett_rrlp_ReferenceFrame;
1095 static int ett_rrlp_GANSSMeasureInfo;
1096 static int ett_rrlp_SeqOfGANSS_MsrSetElement;
1097 static int ett_rrlp_GANSS_MsrSetElement;
1098 static int ett_rrlp_SeqOfGANSS_MsrElement;
1099 static int ett_rrlp_GANSS_MsrElement;
1100 static int ett_rrlp_SeqOfGANSS_SgnTypeElement;
1101 static int ett_rrlp_GANSS_SgnTypeElement;
1102 static int ett_rrlp_SeqOfGANSS_SgnElement;
1103 static int ett_rrlp_GANSS_SgnElement;
1104 static int ett_rrlp_Rel7_AssistanceData_Extension;
1105 static int ett_rrlp_PosCapabilities;
1106 static int ett_rrlp_NonGANSSPositionMethods;
1107 static int ett_rrlp_GANSSPositionMethods;
1108 static int ett_rrlp_GANSSPositionMethod;
1109 static int ett_rrlp_GANSSPositioningMethodTypes;
1110 static int ett_rrlp_GANSSSignals;
1111 static int ett_rrlp_SBASID;
1112 static int ett_rrlp_MultipleMeasurementSets;
1113 static int ett_rrlp_AssistanceSupported;
1114 static int ett_rrlp_GPSAssistance;
1115 static int ett_rrlp_GANSSAssistanceSet;
1116 static int ett_rrlp_CommonGANSSAssistance;
1117 static int ett_rrlp_SpecificGANSSAssistance;
1118 static int ett_rrlp_GANSSAssistanceForOneGANSS;
1119 static int ett_rrlp_GANSSAssistance;
1120 static int ett_rrlp_GANSSAdditionalAssistanceChoices;
1121 static int ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS;
1122 static int ett_rrlp_GANSSModelID;
1123 static int ett_rrlp_AssistanceNeeded;
1125 /* Include constants */
1126 #define maxNumOfPrivateExtensions 10
1127 #define maxExt_GeographicalInformation 20
1128 #define maxGPSAssistanceData 40
1129 #define maxGANSSAssistanceData 40
1134 static int
1135 dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1136 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1138 return offset;
1143 static int
1144 dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1145 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
1147 return offset;
1151 static const per_sequence_t PrivateExtension_sequence[] = {
1152 { &hf_rrlp_extId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER },
1153 { &hf_rrlp_extType , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_T_extType },
1154 { NULL, 0, 0, NULL }
1157 static int
1158 dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1159 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1160 ett_rrlp_PrivateExtension, PrivateExtension_sequence);
1162 return offset;
1166 static const per_sequence_t PrivateExtensionList_sequence_of[1] = {
1167 { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension },
1170 static int
1171 dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1172 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1173 ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of,
1174 1, maxNumOfPrivateExtensions, false);
1176 return offset;
1180 static const per_sequence_t PCS_Extensions_sequence[] = {
1181 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1184 static int
1185 dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1186 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1187 ett_rrlp_PCS_Extensions, PCS_Extensions_sequence);
1189 return offset;
1193 static const per_sequence_t ExtensionContainer_sequence[] = {
1194 { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
1195 { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PCS_Extensions },
1196 { NULL, 0, 0, NULL }
1199 static int
1200 dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1201 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1202 ett_rrlp_ExtensionContainer, ExtensionContainer_sequence);
1204 return offset;
1209 static int
1210 dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1212 tvbuff_t *parameter_tvb = NULL;
1214 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1215 1, maxExt_GeographicalInformation, false, &parameter_tvb);
1218 if(parameter_tvb)
1219 dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
1221 return offset;
1226 static int
1227 dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1228 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1229 4, 7, false, NULL);
1231 return offset;
1236 static int
1237 dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1238 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1239 0U, 7U, NULL, false);
1241 return offset;
1246 static int
1247 dissect_rrlp_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1248 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1249 0U, 127U, NULL, false);
1251 return offset;
1255 static const per_sequence_t AccuracyOpt_sequence[] = {
1256 { &hf_rrlp_accuracy , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_Accuracy },
1257 { NULL, 0, 0, NULL }
1260 static int
1261 dissect_rrlp_AccuracyOpt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1262 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1263 ett_rrlp_AccuracyOpt, AccuracyOpt_sequence);
1265 return offset;
1269 static const value_string rrlp_MethodType_vals[] = {
1270 { 0, "msAssisted" },
1271 { 1, "msBased" },
1272 { 2, "msBasedPref" },
1273 { 3, "msAssistedPref" },
1274 { 0, NULL }
1277 static const per_choice_t MethodType_choice[] = {
1278 { 0, &hf_rrlp_msAssisted , ASN1_NO_EXTENSIONS , dissect_rrlp_AccuracyOpt },
1279 { 1, &hf_rrlp_msBased , ASN1_NO_EXTENSIONS , dissect_rrlp_Accuracy },
1280 { 2, &hf_rrlp_msBasedPref , ASN1_NO_EXTENSIONS , dissect_rrlp_Accuracy },
1281 { 3, &hf_rrlp_msAssistedPref , ASN1_NO_EXTENSIONS , dissect_rrlp_Accuracy },
1282 { 0, NULL, 0, NULL }
1285 static int
1286 dissect_rrlp_MethodType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1287 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1288 ett_rrlp_MethodType, MethodType_choice,
1289 NULL);
1291 return offset;
1295 static const value_string rrlp_PositionMethod_vals[] = {
1296 { 0, "eotd" },
1297 { 1, "gps" },
1298 { 2, "gpsOrEOTD" },
1299 { 0, NULL }
1303 static int
1304 dissect_rrlp_PositionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1305 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1306 3, NULL, false, 0, NULL);
1308 return offset;
1313 static int
1314 dissect_rrlp_MeasureResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1315 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1316 0U, 7U, NULL, false);
1318 return offset;
1322 static const value_string rrlp_UseMultipleSets_vals[] = {
1323 { 0, "multipleSets" },
1324 { 1, "oneSet" },
1325 { 0, NULL }
1329 static int
1330 dissect_rrlp_UseMultipleSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1331 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1332 2, NULL, false, 0, NULL);
1334 return offset;
1338 static const value_string rrlp_EnvironmentCharacter_vals[] = {
1339 { 0, "badArea" },
1340 { 1, "notBadArea" },
1341 { 2, "mixedArea" },
1342 { 0, NULL }
1346 static int
1347 dissect_rrlp_EnvironmentCharacter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1348 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1349 3, NULL, true, 0, NULL);
1351 return offset;
1355 static const per_sequence_t PositionInstruct_sequence[] = {
1356 { &hf_rrlp_methodType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MethodType },
1357 { &hf_rrlp_positionMethod , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionMethod },
1358 { &hf_rrlp_measureResponseTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MeasureResponseTime },
1359 { &hf_rrlp_useMultipleSets, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_UseMultipleSets },
1360 { &hf_rrlp_environmentCharacter, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_EnvironmentCharacter },
1361 { NULL, 0, 0, NULL }
1364 static int
1365 dissect_rrlp_PositionInstruct(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1366 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1367 ett_rrlp_PositionInstruct, PositionInstruct_sequence);
1369 return offset;
1374 static int
1375 dissect_rrlp_BCCHCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1376 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1377 0U, 1023U, NULL, false);
1379 return offset;
1384 static int
1385 dissect_rrlp_BSIC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1386 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1387 0U, 63U, NULL, false);
1389 return offset;
1393 static const value_string rrlp_TimeSlotScheme_vals[] = {
1394 { 0, "equalLength" },
1395 { 1, "variousLength" },
1396 { 0, NULL }
1400 static int
1401 dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1402 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1403 2, NULL, false, 0, NULL);
1405 return offset;
1410 static int
1411 dissect_rrlp_BTSPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1412 offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, actx, tree, hf_index);
1414 return offset;
1418 static const per_sequence_t ReferenceAssistData_sequence[] = {
1419 { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
1420 { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1421 { &hf_rrlp_timeSlotScheme , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlotScheme },
1422 { &hf_rrlp_btsPosition , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_BTSPosition },
1423 { NULL, 0, 0, NULL }
1426 static int
1427 dissect_rrlp_ReferenceAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1428 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1429 ett_rrlp_ReferenceAssistData, ReferenceAssistData_sequence);
1431 return offset;
1436 static int
1437 dissect_rrlp_MultiFrameOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1438 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1439 0U, 51U, NULL, false);
1441 return offset;
1446 static int
1447 dissect_rrlp_RoughRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1448 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1449 0U, 1250U, NULL, false);
1451 return offset;
1456 static int
1457 dissect_rrlp_FineRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1458 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1459 0U, 255U, NULL, false);
1461 return offset;
1466 static int
1467 dissect_rrlp_RelDistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1468 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1469 -200000, 200000U, NULL, false);
1471 return offset;
1476 static int
1477 dissect_rrlp_RelativeAlt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1478 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1479 -4000, 4000U, NULL, false);
1481 return offset;
1485 static const per_sequence_t ReferenceWGS84_sequence[] = {
1486 { &hf_rrlp_relativeNorth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RelDistance },
1487 { &hf_rrlp_relativeEast , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RelDistance },
1488 { &hf_rrlp_relativeAlt , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_RelativeAlt },
1489 { NULL, 0, 0, NULL }
1492 static int
1493 dissect_rrlp_ReferenceWGS84(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1494 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1495 ett_rrlp_ReferenceWGS84, ReferenceWGS84_sequence);
1497 return offset;
1501 static const per_sequence_t CalcAssistanceBTS_sequence[] = {
1502 { &hf_rrlp_fineRTD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FineRTD },
1503 { &hf_rrlp_referenceWGS84 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceWGS84 },
1504 { NULL, 0, 0, NULL }
1507 static int
1508 dissect_rrlp_CalcAssistanceBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1509 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1510 ett_rrlp_CalcAssistanceBTS, CalcAssistanceBTS_sequence);
1512 return offset;
1516 static const per_sequence_t MsrAssistBTS_sequence[] = {
1517 { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
1518 { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1519 { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
1520 { &hf_rrlp_timeSlotScheme , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlotScheme },
1521 { &hf_rrlp_roughRTD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RoughRTD },
1522 { &hf_rrlp_calcAssistanceBTS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_CalcAssistanceBTS },
1523 { NULL, 0, 0, NULL }
1526 static int
1527 dissect_rrlp_MsrAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1528 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1529 ett_rrlp_MsrAssistBTS, MsrAssistBTS_sequence);
1531 return offset;
1535 static const per_sequence_t SeqOfMsrAssistBTS_sequence_of[1] = {
1536 { &hf_rrlp_SeqOfMsrAssistBTS_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MsrAssistBTS },
1539 static int
1540 dissect_rrlp_SeqOfMsrAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1541 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1542 ett_rrlp_SeqOfMsrAssistBTS, SeqOfMsrAssistBTS_sequence_of,
1543 1, 15, false);
1545 return offset;
1549 static const per_sequence_t MsrAssistData_sequence[] = {
1550 { &hf_rrlp_msrAssistList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfMsrAssistBTS },
1551 { NULL, 0, 0, NULL }
1554 static int
1555 dissect_rrlp_MsrAssistData(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_rrlp_MsrAssistData, MsrAssistData_sequence);
1559 return offset;
1564 static int
1565 dissect_rrlp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1566 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1568 return offset;
1572 static const per_sequence_t AssistBTSData_sequence[] = {
1573 { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1574 { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
1575 { &hf_rrlp_timeSlotScheme , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlotScheme },
1576 { &hf_rrlp_roughRTD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RoughRTD },
1577 { &hf_rrlp_calcAssistanceBTS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_CalcAssistanceBTS },
1578 { NULL, 0, 0, NULL }
1581 static int
1582 dissect_rrlp_AssistBTSData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1583 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1584 ett_rrlp_AssistBTSData, AssistBTSData_sequence);
1586 return offset;
1590 static const value_string rrlp_SystemInfoAssistBTS_vals[] = {
1591 { 0, "notPresent" },
1592 { 1, "present" },
1593 { 0, NULL }
1596 static const per_choice_t SystemInfoAssistBTS_choice[] = {
1597 { 0, &hf_rrlp_notPresent , ASN1_NO_EXTENSIONS , dissect_rrlp_NULL },
1598 { 1, &hf_rrlp_present , ASN1_NO_EXTENSIONS , dissect_rrlp_AssistBTSData },
1599 { 0, NULL, 0, NULL }
1602 static int
1603 dissect_rrlp_SystemInfoAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1604 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1605 ett_rrlp_SystemInfoAssistBTS, SystemInfoAssistBTS_choice,
1606 NULL);
1608 return offset;
1612 static const per_sequence_t SeqOfSystemInfoAssistBTS_sequence_of[1] = {
1613 { &hf_rrlp_SeqOfSystemInfoAssistBTS_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SystemInfoAssistBTS },
1616 static int
1617 dissect_rrlp_SeqOfSystemInfoAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1618 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1619 ett_rrlp_SeqOfSystemInfoAssistBTS, SeqOfSystemInfoAssistBTS_sequence_of,
1620 1, 32, false);
1622 return offset;
1626 static const per_sequence_t SystemInfoAssistData_sequence[] = {
1627 { &hf_rrlp_systemInfoAssistList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSystemInfoAssistBTS },
1628 { NULL, 0, 0, NULL }
1631 static int
1632 dissect_rrlp_SystemInfoAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1633 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1634 ett_rrlp_SystemInfoAssistData, SystemInfoAssistData_sequence);
1636 return offset;
1641 static int
1642 dissect_rrlp_GPSTOW23b(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1643 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1644 0U, 7559999U, NULL, false);
1646 return offset;
1651 static int
1652 dissect_rrlp_GPSWeek(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1653 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1654 0U, 1023U, NULL, false);
1656 return offset;
1660 static const per_sequence_t GPSTime_sequence[] = {
1661 { &hf_rrlp_gpsTOW23b , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOW23b },
1662 { &hf_rrlp_gpsWeek , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSWeek },
1663 { NULL, 0, 0, NULL }
1666 static int
1667 dissect_rrlp_GPSTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1668 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1669 ett_rrlp_GPSTime, GPSTime_sequence);
1671 return offset;
1676 static int
1677 dissect_rrlp_FrameNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1678 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1679 0U, 2097151U, NULL, false);
1681 return offset;
1686 static int
1687 dissect_rrlp_TimeSlot(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1688 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1689 0U, 7U, NULL, false);
1691 return offset;
1696 static int
1697 dissect_rrlp_BitNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1698 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1699 0U, 156U, NULL, false);
1701 return offset;
1705 static const per_sequence_t GSMTime_sequence[] = {
1706 { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
1707 { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1708 { &hf_rrlp_frameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber },
1709 { &hf_rrlp_timeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot },
1710 { &hf_rrlp_bitNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber },
1711 { NULL, 0, 0, NULL }
1714 static int
1715 dissect_rrlp_GSMTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1716 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1717 ett_rrlp_GSMTime, GSMTime_sequence);
1719 return offset;
1724 static int
1725 dissect_rrlp_SatelliteID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1726 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1727 0U, 63U, NULL, false);
1729 return offset;
1734 static int
1735 dissect_rrlp_TLMWord(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1736 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1737 0U, 16383U, NULL, false);
1739 return offset;
1744 static int
1745 dissect_rrlp_AntiSpoofFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1746 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1747 0U, 1U, NULL, false);
1749 return offset;
1754 static int
1755 dissect_rrlp_AlertFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1756 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1757 0U, 1U, NULL, false);
1759 return offset;
1764 static int
1765 dissect_rrlp_TLMReservedBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1766 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1767 0U, 3U, NULL, false);
1769 return offset;
1773 static const per_sequence_t GPSTOWAssistElement_sequence[] = {
1774 { &hf_rrlp_satelliteID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
1775 { &hf_rrlp_tlmWord , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TLMWord },
1776 { &hf_rrlp_antiSpoof , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_AntiSpoofFlag },
1777 { &hf_rrlp_alert , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_AlertFlag },
1778 { &hf_rrlp_tlmRsvdBits , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TLMReservedBits },
1779 { NULL, 0, 0, NULL }
1782 static int
1783 dissect_rrlp_GPSTOWAssistElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1784 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1785 ett_rrlp_GPSTOWAssistElement, GPSTOWAssistElement_sequence);
1787 return offset;
1791 static const per_sequence_t GPSTOWAssist_sequence_of[1] = {
1792 { &hf_rrlp_GPSTOWAssist_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOWAssistElement },
1795 static int
1796 dissect_rrlp_GPSTOWAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1797 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1798 ett_rrlp_GPSTOWAssist, GPSTOWAssist_sequence_of,
1799 1, 12, false);
1801 return offset;
1805 static const per_sequence_t ReferenceTime_sequence[] = {
1806 { &hf_rrlp_gpsTime , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTime },
1807 { &hf_rrlp_gsmTime , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GSMTime },
1808 { &hf_rrlp_gpsTowAssist , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GPSTOWAssist },
1809 { NULL, 0, 0, NULL }
1812 static int
1813 dissect_rrlp_ReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1814 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1815 ett_rrlp_ReferenceTime, ReferenceTime_sequence);
1817 return offset;
1821 static const per_sequence_t RefLocation_sequence[] = {
1822 { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
1823 { NULL, 0, 0, NULL }
1826 static int
1827 dissect_rrlp_RefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1828 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1829 ett_rrlp_RefLocation, RefLocation_sequence);
1831 return offset;
1836 static int
1837 dissect_rrlp_INTEGER_0_604799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1838 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1839 0U, 604799U, NULL, false);
1841 return offset;
1846 static int
1847 dissect_rrlp_INTEGER_0_239(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1848 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1849 0U, 239U, NULL, false);
1851 return offset;
1856 static int
1857 dissect_rrlp_INTEGER_0_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1858 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1859 0U, 3U, NULL, false);
1861 return offset;
1866 static int
1867 dissect_rrlp_INTEGER_M2047_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1868 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1869 -2047, 2047U, NULL, false);
1871 return offset;
1876 static int
1877 dissect_rrlp_INTEGER_M127_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1878 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1879 -127, 127U, NULL, false);
1881 return offset;
1886 static int
1887 dissect_rrlp_INTEGER_M7_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1888 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1889 -7, 7U, NULL, false);
1891 return offset;
1895 static const per_sequence_t SatElement_sequence[] = {
1896 { &hf_rrlp_satelliteID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
1897 { &hf_rrlp_iode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_239 },
1898 { &hf_rrlp_udre , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
1899 { &hf_rrlp_pseudoRangeCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2047_2047 },
1900 { &hf_rrlp_rangeRateCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
1901 { &hf_rrlp_deltaPseudoRangeCor2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
1902 { &hf_rrlp_deltaRangeRateCor2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_7 },
1903 { &hf_rrlp_deltaPseudoRangeCor3, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
1904 { &hf_rrlp_deltaRangeRateCor3, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_7 },
1905 { NULL, 0, 0, NULL }
1908 static int
1909 dissect_rrlp_SatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1910 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1911 ett_rrlp_SatElement, SatElement_sequence);
1913 return offset;
1917 static const per_sequence_t SeqOfSatElement_sequence_of[1] = {
1918 { &hf_rrlp_SeqOfSatElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatElement },
1921 static int
1922 dissect_rrlp_SeqOfSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1923 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1924 ett_rrlp_SeqOfSatElement, SeqOfSatElement_sequence_of,
1925 1, 16, false);
1927 return offset;
1931 static const per_sequence_t DGPSCorrections_sequence[] = {
1932 { &hf_rrlp_gpsTOW_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_604799 },
1933 { &hf_rrlp_status , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
1934 { &hf_rrlp_satList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSatElement },
1935 { NULL, 0, 0, NULL }
1938 static int
1939 dissect_rrlp_DGPSCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1940 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1941 ett_rrlp_DGPSCorrections, DGPSCorrections_sequence);
1943 return offset;
1948 static int
1949 dissect_rrlp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1950 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1951 0U, 15U, NULL, false);
1953 return offset;
1958 static int
1959 dissect_rrlp_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1960 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1961 0U, 63U, NULL, false);
1963 return offset;
1968 static int
1969 dissect_rrlp_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1970 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1971 0U, 1023U, NULL, false);
1973 return offset;
1978 static int
1979 dissect_rrlp_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1980 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1981 0U, 1U, NULL, false);
1983 return offset;
1988 static int
1989 dissect_rrlp_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1990 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1991 0U, 8388607U, NULL, false);
1993 return offset;
1998 static int
1999 dissect_rrlp_INTEGER_0_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2000 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2001 0U, 16777215U, NULL, false);
2003 return offset;
2008 static int
2009 dissect_rrlp_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2010 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2011 0U, 65535U, NULL, false);
2013 return offset;
2017 static const per_sequence_t EphemerisSubframe1Reserved_sequence[] = {
2018 { &hf_rrlp_reserved1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8388607 },
2019 { &hf_rrlp_reserved2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
2020 { &hf_rrlp_reserved3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
2021 { &hf_rrlp_reserved4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
2022 { NULL, 0, 0, NULL }
2025 static int
2026 dissect_rrlp_EphemerisSubframe1Reserved(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2027 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2028 ett_rrlp_EphemerisSubframe1Reserved, EphemerisSubframe1Reserved_sequence);
2030 return offset;
2035 static int
2036 dissect_rrlp_INTEGER_M128_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2037 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2038 -128, 127U, NULL, false);
2040 return offset;
2045 static int
2046 dissect_rrlp_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2047 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2048 0U, 37799U, NULL, false);
2050 return offset;
2055 static int
2056 dissect_rrlp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2057 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2058 -32768, 32767U, NULL, false);
2060 return offset;
2065 static int
2066 dissect_rrlp_INTEGER_M2097152_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2067 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2068 -2097152, 2097151U, NULL, false);
2070 return offset;
2075 static int
2076 dissect_rrlp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2077 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2078 INT32_MIN, 2147483647U, NULL, false);
2080 return offset;
2085 static int
2086 dissect_rrlp_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2087 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2088 0U, 4294967295U, NULL, false);
2090 return offset;
2095 static int
2096 dissect_rrlp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2097 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2098 0U, 31U, NULL, false);
2100 return offset;
2105 static int
2106 dissect_rrlp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2107 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2108 -8388608, 8388607U, NULL, false);
2110 return offset;
2115 static int
2116 dissect_rrlp_INTEGER_M8192_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2117 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2118 -8192, 8191U, NULL, false);
2120 return offset;
2124 static const per_sequence_t UncompressedEphemeris_sequence[] = {
2125 { &hf_rrlp_ephemCodeOnL2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
2126 { &hf_rrlp_ephemURA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
2127 { &hf_rrlp_ephemSVhealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
2128 { &hf_rrlp_ephemIODC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
2129 { &hf_rrlp_ephemL2Pflag , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2130 { &hf_rrlp_ephemSF1Rsvd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_EphemerisSubframe1Reserved },
2131 { &hf_rrlp_ephemTgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2132 { &hf_rrlp_ephemToc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
2133 { &hf_rrlp_ephemAF2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2134 { &hf_rrlp_ephemAF1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2135 { &hf_rrlp_ephemAF0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
2136 { &hf_rrlp_ephemCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2137 { &hf_rrlp_ephemDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2138 { &hf_rrlp_ephemM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2139 { &hf_rrlp_ephemCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2140 { &hf_rrlp_ephemE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
2141 { &hf_rrlp_ephemCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2142 { &hf_rrlp_ephemAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
2143 { &hf_rrlp_ephemToe , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
2144 { &hf_rrlp_ephemFitFlag , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2145 { &hf_rrlp_ephemAODA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
2146 { &hf_rrlp_ephemCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2147 { &hf_rrlp_ephemOmegaA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2148 { &hf_rrlp_ephemCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2149 { &hf_rrlp_ephemI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2150 { &hf_rrlp_ephemCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2151 { &hf_rrlp_ephemW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2152 { &hf_rrlp_ephemOmegaADot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2153 { &hf_rrlp_ephemIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
2154 { NULL, 0, 0, NULL }
2157 static int
2158 dissect_rrlp_UncompressedEphemeris(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2159 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2160 ett_rrlp_UncompressedEphemeris, UncompressedEphemeris_sequence);
2162 return offset;
2166 static const value_string rrlp_SatStatus_vals[] = {
2167 { 0, "newSatelliteAndModelUC" },
2168 { 1, "oldSatelliteAndModel" },
2169 { 2, "newNaviModelUC" },
2170 { 0, NULL }
2173 static const per_choice_t SatStatus_choice[] = {
2174 { 0, &hf_rrlp_newSatelliteAndModelUC, ASN1_EXTENSION_ROOT , dissect_rrlp_UncompressedEphemeris },
2175 { 1, &hf_rrlp_oldSatelliteAndModel, ASN1_EXTENSION_ROOT , dissect_rrlp_NULL },
2176 { 2, &hf_rrlp_newNaviModelUC , ASN1_EXTENSION_ROOT , dissect_rrlp_UncompressedEphemeris },
2177 { 0, NULL, 0, NULL }
2180 static int
2181 dissect_rrlp_SatStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2182 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2183 ett_rrlp_SatStatus, SatStatus_choice,
2184 NULL);
2186 return offset;
2190 static const per_sequence_t NavModelElement_sequence[] = {
2191 { &hf_rrlp_satelliteID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2192 { &hf_rrlp_satStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatStatus },
2193 { NULL, 0, 0, NULL }
2196 static int
2197 dissect_rrlp_NavModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2198 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2199 ett_rrlp_NavModelElement, NavModelElement_sequence);
2201 return offset;
2205 static const per_sequence_t SeqOfNavModelElement_sequence_of[1] = {
2206 { &hf_rrlp_SeqOfNavModelElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_NavModelElement },
2209 static int
2210 dissect_rrlp_SeqOfNavModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2211 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2212 ett_rrlp_SeqOfNavModelElement, SeqOfNavModelElement_sequence_of,
2213 1, 16, false);
2215 return offset;
2219 static const per_sequence_t NavigationModel_sequence[] = {
2220 { &hf_rrlp_navModelList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfNavModelElement },
2221 { NULL, 0, 0, NULL }
2224 static int
2225 dissect_rrlp_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2226 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2227 ett_rrlp_NavigationModel, NavigationModel_sequence);
2229 return offset;
2233 static const per_sequence_t IonosphericModel_sequence[] = {
2234 { &hf_rrlp_alfa0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2235 { &hf_rrlp_alfa1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2236 { &hf_rrlp_alfa2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2237 { &hf_rrlp_alfa3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2238 { &hf_rrlp_beta0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2239 { &hf_rrlp_beta1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2240 { &hf_rrlp_beta2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2241 { &hf_rrlp_beta3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2242 { NULL, 0, 0, NULL }
2245 static int
2246 dissect_rrlp_IonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2247 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2248 ett_rrlp_IonosphericModel, IonosphericModel_sequence);
2250 return offset;
2255 static int
2256 dissect_rrlp_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2257 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2258 0U, 255U, NULL, false);
2260 return offset;
2264 static const per_sequence_t UTCModel_sequence[] = {
2265 { &hf_rrlp_utcA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2266 { &hf_rrlp_utcA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2267 { &hf_rrlp_utcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2268 { &hf_rrlp_utcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2269 { &hf_rrlp_utcDeltaTls , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2270 { &hf_rrlp_utcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2271 { &hf_rrlp_utcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2272 { &hf_rrlp_utcDeltaTlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2273 { NULL, 0, 0, NULL }
2276 static int
2277 dissect_rrlp_UTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2278 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2279 ett_rrlp_UTCModel, UTCModel_sequence);
2281 return offset;
2286 static int
2287 dissect_rrlp_INTEGER_M1024_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2288 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2289 -1024, 1023U, NULL, false);
2291 return offset;
2295 static const per_sequence_t AlmanacElement_sequence[] = {
2296 { &hf_rrlp_satelliteID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2297 { &hf_rrlp_almanacE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
2298 { &hf_rrlp_alamanacToa , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2299 { &hf_rrlp_almanacKsii , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2300 { &hf_rrlp_almanacOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2301 { &hf_rrlp_almanacSVhealth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2302 { &hf_rrlp_almanacAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
2303 { &hf_rrlp_almanacOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2304 { &hf_rrlp_almanacW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2305 { &hf_rrlp_almanacM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2306 { &hf_rrlp_almanacAF0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
2307 { &hf_rrlp_almanacAF1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
2308 { NULL, 0, 0, NULL }
2311 static int
2312 dissect_rrlp_AlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2313 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2314 ett_rrlp_AlmanacElement, AlmanacElement_sequence);
2316 return offset;
2320 static const per_sequence_t SeqOfAlmanacElement_sequence_of[1] = {
2321 { &hf_rrlp_SeqOfAlmanacElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_AlmanacElement },
2324 static int
2325 dissect_rrlp_SeqOfAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2326 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2327 ett_rrlp_SeqOfAlmanacElement, SeqOfAlmanacElement_sequence_of,
2328 1, 64, false);
2330 return offset;
2334 static const per_sequence_t Almanac_sequence[] = {
2335 { &hf_rrlp_alamanacWNa , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2336 { &hf_rrlp_almanacList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfAlmanacElement },
2337 { NULL, 0, 0, NULL }
2340 static int
2341 dissect_rrlp_Almanac(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2342 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2343 ett_rrlp_Almanac, Almanac_sequence);
2345 return offset;
2349 static const per_sequence_t TimeRelation_sequence[] = {
2350 { &hf_rrlp_gpsTOW_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOW23b },
2351 { &hf_rrlp_gsmTime , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GSMTime },
2352 { NULL, 0, 0, NULL }
2355 static int
2356 dissect_rrlp_TimeRelation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2357 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2358 ett_rrlp_TimeRelation, TimeRelation_sequence);
2360 return offset;
2365 static int
2366 dissect_rrlp_INTEGER_M2048_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2367 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2368 -2048, 2047U, NULL, false);
2370 return offset;
2374 static const per_sequence_t AddionalDopplerFields_sequence[] = {
2375 { &hf_rrlp_doppler1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
2376 { &hf_rrlp_dopplerUncertainty, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
2377 { NULL, 0, 0, NULL }
2380 static int
2381 dissect_rrlp_AddionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2382 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2383 ett_rrlp_AddionalDopplerFields, AddionalDopplerFields_sequence);
2385 return offset;
2390 static int
2391 dissect_rrlp_INTEGER_0_1022(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2392 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2393 0U, 1022U, NULL, false);
2395 return offset;
2400 static int
2401 dissect_rrlp_INTEGER_0_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2402 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2403 0U, 19U, NULL, false);
2405 return offset;
2409 static const per_sequence_t AddionalAngleFields_sequence[] = {
2410 { &hf_rrlp_azimuth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
2411 { &hf_rrlp_elevation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
2412 { NULL, 0, 0, NULL }
2415 static int
2416 dissect_rrlp_AddionalAngleFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2417 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2418 ett_rrlp_AddionalAngleFields, AddionalAngleFields_sequence);
2420 return offset;
2424 static const per_sequence_t AcquisElement_sequence[] = {
2425 { &hf_rrlp_svid , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2426 { &hf_rrlp_doppler0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
2427 { &hf_rrlp_addionalDoppler, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_AddionalDopplerFields },
2428 { &hf_rrlp_codePhase , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 },
2429 { &hf_rrlp_intCodePhase , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_19 },
2430 { &hf_rrlp_gpsBitNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
2431 { &hf_rrlp_codePhaseSearchWindow, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
2432 { &hf_rrlp_addionalAngle , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_AddionalAngleFields },
2433 { NULL, 0, 0, NULL }
2436 static int
2437 dissect_rrlp_AcquisElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2438 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2439 ett_rrlp_AcquisElement, AcquisElement_sequence);
2441 return offset;
2445 static const per_sequence_t SeqOfAcquisElement_sequence_of[1] = {
2446 { &hf_rrlp_SeqOfAcquisElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_AcquisElement },
2449 static int
2450 dissect_rrlp_SeqOfAcquisElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2451 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2452 ett_rrlp_SeqOfAcquisElement, SeqOfAcquisElement_sequence_of,
2453 1, 16, false);
2455 return offset;
2459 static const per_sequence_t AcquisAssist_sequence[] = {
2460 { &hf_rrlp_timeRelation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeRelation },
2461 { &hf_rrlp_acquisList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfAcquisElement },
2462 { NULL, 0, 0, NULL }
2465 static int
2466 dissect_rrlp_AcquisAssist(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_rrlp_AcquisAssist, AcquisAssist_sequence);
2470 return offset;
2474 static const per_sequence_t SeqOf_BadSatelliteSet_sequence_of[1] = {
2475 { &hf_rrlp_SeqOf_BadSatelliteSet_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2478 static int
2479 dissect_rrlp_SeqOf_BadSatelliteSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2480 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2481 ett_rrlp_SeqOf_BadSatelliteSet, SeqOf_BadSatelliteSet_sequence_of,
2482 1, 16, false);
2484 return offset;
2488 static const per_sequence_t ControlHeader_sequence[] = {
2489 { &hf_rrlp_referenceTime , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceTime },
2490 { &hf_rrlp_refLocation , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_RefLocation },
2491 { &hf_rrlp_dgpsCorrections, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_DGPSCorrections },
2492 { &hf_rrlp_navigationModel, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_NavigationModel },
2493 { &hf_rrlp_ionosphericModel, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_IonosphericModel },
2494 { &hf_rrlp_utcModel , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_UTCModel },
2495 { &hf_rrlp_almanac , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_Almanac },
2496 { &hf_rrlp_acquisAssist , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_AcquisAssist },
2497 { &hf_rrlp_realTimeIntegrity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOf_BadSatelliteSet },
2498 { NULL, 0, 0, NULL }
2501 static int
2502 dissect_rrlp_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2503 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2504 ett_rrlp_ControlHeader, ControlHeader_sequence);
2506 return offset;
2510 static const per_sequence_t GPS_AssistData_sequence[] = {
2511 { &hf_rrlp_controlHeader , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ControlHeader },
2512 { NULL, 0, 0, NULL }
2515 static int
2516 dissect_rrlp_GPS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2517 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2518 ett_rrlp_GPS_AssistData, GPS_AssistData_sequence);
2520 return offset;
2525 static int
2526 dissect_rrlp_ExpectedOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2527 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2528 0U, 1250U, NULL, false);
2530 return offset;
2535 static int
2536 dissect_rrlp_ExpOTDUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2537 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2538 0U, 7U, NULL, false);
2540 return offset;
2544 static const per_sequence_t MsrAssistBTS_R98_ExpOTD_sequence[] = {
2545 { &hf_rrlp_expectedOTD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpectedOTD },
2546 { &hf_rrlp_expOTDUncertainty, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpOTDUncertainty },
2547 { NULL, 0, 0, NULL }
2550 static int
2551 dissect_rrlp_MsrAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2552 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2553 ett_rrlp_MsrAssistBTS_R98_ExpOTD, MsrAssistBTS_R98_ExpOTD_sequence);
2555 return offset;
2559 static const per_sequence_t SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of[1] = {
2560 { &hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MsrAssistBTS_R98_ExpOTD },
2563 static int
2564 dissect_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2565 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2566 ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD, SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of,
2567 1, 15, false);
2569 return offset;
2573 static const per_sequence_t MsrAssistData_R98_ExpOTD_sequence[] = {
2574 { &hf_rrlp_msrAssistList_R98_ExpOTD, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD },
2575 { NULL, 0, 0, NULL }
2578 static int
2579 dissect_rrlp_MsrAssistData_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2580 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2581 ett_rrlp_MsrAssistData_R98_ExpOTD, MsrAssistData_R98_ExpOTD_sequence);
2583 return offset;
2587 static const per_sequence_t AssistBTSData_R98_ExpOTD_sequence[] = {
2588 { &hf_rrlp_expectedOTD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpectedOTD },
2589 { &hf_rrlp_expOTDuncertainty, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpOTDUncertainty },
2590 { NULL, 0, 0, NULL }
2593 static int
2594 dissect_rrlp_AssistBTSData_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2595 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2596 ett_rrlp_AssistBTSData_R98_ExpOTD, AssistBTSData_R98_ExpOTD_sequence);
2598 return offset;
2602 static const value_string rrlp_SystemInfoAssistBTS_R98_ExpOTD_vals[] = {
2603 { 0, "notPresent" },
2604 { 1, "present" },
2605 { 0, NULL }
2608 static const per_choice_t SystemInfoAssistBTS_R98_ExpOTD_choice[] = {
2609 { 0, &hf_rrlp_notPresent , ASN1_NO_EXTENSIONS , dissect_rrlp_NULL },
2610 { 1, &hf_rrlp_present_01 , ASN1_NO_EXTENSIONS , dissect_rrlp_AssistBTSData_R98_ExpOTD },
2611 { 0, NULL, 0, NULL }
2614 static int
2615 dissect_rrlp_SystemInfoAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2616 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2617 ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD, SystemInfoAssistBTS_R98_ExpOTD_choice,
2618 NULL);
2620 return offset;
2624 static const per_sequence_t SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of[1] = {
2625 { &hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SystemInfoAssistBTS_R98_ExpOTD },
2628 static int
2629 dissect_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2630 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2631 ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD, SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of,
2632 1, 32, false);
2634 return offset;
2638 static const per_sequence_t SystemInfoAssistData_R98_ExpOTD_sequence[] = {
2639 { &hf_rrlp_systemInfoAssistListR98_ExpOTD, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD },
2640 { NULL, 0, 0, NULL }
2643 static int
2644 dissect_rrlp_SystemInfoAssistData_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2645 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2646 ett_rrlp_SystemInfoAssistData_R98_ExpOTD, SystemInfoAssistData_R98_ExpOTD_sequence);
2648 return offset;
2652 static const per_sequence_t Rel98_Ext_ExpOTD_sequence[] = {
2653 { &hf_rrlp_msrAssistData_R98_ExpOTD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData_R98_ExpOTD },
2654 { &hf_rrlp_systemInfoAssistData_R98_ExpOTD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SystemInfoAssistData_R98_ExpOTD },
2655 { NULL, 0, 0, NULL }
2658 static int
2659 dissect_rrlp_Rel98_Ext_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2660 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2661 ett_rrlp_Rel98_Ext_ExpOTD, Rel98_Ext_ExpOTD_sequence);
2663 return offset;
2668 static int
2669 dissect_rrlp_GPSReferenceTimeUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2670 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2671 0U, 127U, NULL, false);
2673 return offset;
2677 static const per_sequence_t Rel98_MsrPosition_Req_Extension_sequence[] = {
2678 { &hf_rrlp_rel98_Ext_ExpOTD, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Rel98_Ext_ExpOTD },
2679 { &hf_rrlp_gpsTimeAssistanceMeasurementRequest, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL },
2680 { &hf_rrlp_gpsReferenceTimeUncertainty, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GPSReferenceTimeUncertainty },
2681 { NULL, 0, 0, NULL }
2684 static int
2685 dissect_rrlp_Rel98_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2686 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2687 ett_rrlp_Rel98_MsrPosition_Req_Extension, Rel98_MsrPosition_Req_Extension_sequence);
2689 return offset;
2694 static int
2695 dissect_rrlp_INTEGER_0_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2696 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2697 0U, 262143U, NULL, false);
2699 return offset;
2703 static const per_sequence_t Extended_reference_sequence[] = {
2704 { &hf_rrlp_smlc_code , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
2705 { &hf_rrlp_transaction_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_262143 },
2706 { NULL, 0, 0, NULL }
2709 static int
2710 dissect_rrlp_Extended_reference(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_rrlp_Extended_reference, Extended_reference_sequence);
2714 return offset;
2718 static const per_sequence_t Rel5_MsrPosition_Req_Extension_sequence[] = {
2719 { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
2720 { NULL, 0, 0, NULL }
2723 static int
2724 dissect_rrlp_Rel5_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2725 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2726 ett_rrlp_Rel5_MsrPosition_Req_Extension, Rel5_MsrPosition_Req_Extension_sequence);
2728 return offset;
2732 static int * const GANSSPositioningMethod_bits[] = {
2733 &hf_rrlp_GANSSPositioningMethod_gps,
2734 &hf_rrlp_GANSSPositioningMethod_galileo,
2735 &hf_rrlp_GANSSPositioningMethod_sbas,
2736 &hf_rrlp_GANSSPositioningMethod_modernizedGPS,
2737 &hf_rrlp_GANSSPositioningMethod_qzss,
2738 &hf_rrlp_GANSSPositioningMethod_glonass,
2739 NULL
2742 static int
2743 dissect_rrlp_GANSSPositioningMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2744 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2745 2, 16, false, GANSSPositioningMethod_bits, 6, NULL, NULL);
2747 return offset;
2752 static int
2753 dissect_rrlp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2754 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2755 0U, 8191U, NULL, false);
2757 return offset;
2762 static int
2763 dissect_rrlp_GANSSTOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2764 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2765 0U, 86399U, NULL, false);
2767 return offset;
2772 static int
2773 dissect_rrlp_GANSSTODUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2774 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2775 0U, 127U, NULL, false);
2777 return offset;
2781 static const per_sequence_t GANSSRefTimeInfo_sequence[] = {
2782 { &hf_rrlp_ganssDay , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 },
2783 { &hf_rrlp_ganssTOD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD },
2784 { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
2785 { &hf_rrlp_ganssTimeID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
2786 { NULL, 0, 0, NULL }
2789 static int
2790 dissect_rrlp_GANSSRefTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2791 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2792 ett_rrlp_GANSSRefTimeInfo, GANSSRefTimeInfo_sequence);
2794 return offset;
2799 static int
2800 dissect_rrlp_FrameDrift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2801 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2802 -64, 63U, NULL, false);
2804 return offset;
2808 static const per_sequence_t GANSSTOD_GSMTimeAssociation_sequence[] = {
2809 { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
2810 { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
2811 { &hf_rrlp_frameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber },
2812 { &hf_rrlp_timeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot },
2813 { &hf_rrlp_bitNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber },
2814 { &hf_rrlp_frameDrift , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_FrameDrift },
2815 { NULL, 0, 0, NULL }
2818 static int
2819 dissect_rrlp_GANSSTOD_GSMTimeAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2820 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2821 ett_rrlp_GANSSTOD_GSMTimeAssociation, GANSSTOD_GSMTimeAssociation_sequence);
2823 return offset;
2827 static const per_sequence_t GANSSReferenceTime_sequence[] = {
2828 { &hf_rrlp_ganssRefTimeInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefTimeInfo },
2829 { &hf_rrlp_ganssTOD_GSMTimeAssociation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTOD_GSMTimeAssociation },
2830 { NULL, 0, 0, NULL }
2833 static int
2834 dissect_rrlp_GANSSReferenceTime(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_rrlp_GANSSReferenceTime, GANSSReferenceTime_sequence);
2838 return offset;
2842 static const per_sequence_t GANSSRefLocation_sequence[] = {
2843 { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
2844 { NULL, 0, 0, NULL }
2847 static int
2848 dissect_rrlp_GANSSRefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2850 ett_rrlp_GANSSRefLocation, GANSSRefLocation_sequence);
2852 return offset;
2857 static int
2858 dissect_rrlp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2859 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2860 0U, 4095U, NULL, false);
2862 return offset;
2866 static const per_sequence_t GANSSIonosphereModel_sequence[] = {
2867 { &hf_rrlp_ai0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
2868 { &hf_rrlp_ai1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
2869 { &hf_rrlp_ai2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
2870 { NULL, 0, 0, NULL }
2873 static int
2874 dissect_rrlp_GANSSIonosphereModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2875 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2876 ett_rrlp_GANSSIonosphereModel, GANSSIonosphereModel_sequence);
2878 return offset;
2882 static const per_sequence_t GANSSIonoStormFlags_sequence[] = {
2883 { &hf_rrlp_ionoStormFlag1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2884 { &hf_rrlp_ionoStormFlag2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2885 { &hf_rrlp_ionoStormFlag3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2886 { &hf_rrlp_ionoStormFlag4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2887 { &hf_rrlp_ionoStormFlag5 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2888 { NULL, 0, 0, NULL }
2891 static int
2892 dissect_rrlp_GANSSIonoStormFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2893 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2894 ett_rrlp_GANSSIonoStormFlags, GANSSIonoStormFlags_sequence);
2896 return offset;
2900 static const per_sequence_t GANSSIonosphericModel_sequence[] = {
2901 { &hf_rrlp_ganssIonoModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSIonosphereModel },
2902 { &hf_rrlp_ganssIonoStormFlags, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonoStormFlags },
2903 { NULL, 0, 0, NULL }
2906 static int
2907 dissect_rrlp_GANSSIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2908 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2909 ett_rrlp_GANSSIonosphericModel, GANSSIonosphericModel_sequence);
2911 return offset;
2916 static int
2917 dissect_rrlp_BIT_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2918 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2919 2, 2, false, NULL, 0, NULL, NULL);
2921 return offset;
2925 static const per_sequence_t GANSSAddIonosphericModel_sequence[] = {
2926 { &hf_rrlp_dataID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_2 },
2927 { &hf_rrlp_ionoModel , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_IonosphericModel },
2928 { NULL, 0, 0, NULL }
2931 static int
2932 dissect_rrlp_GANSSAddIonosphericModel(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_rrlp_GANSSAddIonosphericModel, GANSSAddIonosphericModel_sequence);
2936 return offset;
2941 static int
2942 dissect_rrlp_INTEGER_M1048576_1048575(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2943 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2944 -1048576, 1048575U, NULL, false);
2946 return offset;
2951 static int
2952 dissect_rrlp_INTEGER_M16384_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2953 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2954 -16384, 16383U, NULL, false);
2956 return offset;
2961 static int
2962 dissect_rrlp_INTEGER_M1073741824_1073741823(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2963 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2964 -1073741824, 1073741823U, NULL, false);
2966 return offset;
2971 static int
2972 dissect_rrlp_INTEGER_M262144_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2973 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2974 -262144, 262143U, NULL, false);
2976 return offset;
2980 static const per_sequence_t GANSSEarthOrientParam_sequence[] = {
2981 { &hf_rrlp_teop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
2982 { &hf_rrlp_pmX , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
2983 { &hf_rrlp_pmXdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
2984 { &hf_rrlp_pmY , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
2985 { &hf_rrlp_pmYdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
2986 { &hf_rrlp_deltaUT1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1073741824_1073741823 },
2987 { &hf_rrlp_deltaUT1dot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M262144_262143 },
2988 { NULL, 0, 0, NULL }
2991 static int
2992 dissect_rrlp_GANSSEarthOrientParam(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2993 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2994 ett_rrlp_GANSSEarthOrientParam, GANSSEarthOrientParam_sequence);
2996 return offset;
3000 static const per_sequence_t GANSSReferenceTime_R10_Ext_sequence[] = {
3001 { &hf_rrlp_ganssDayCycleNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
3002 { NULL, 0, 0, NULL }
3005 static int
3006 dissect_rrlp_GANSSReferenceTime_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3007 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3008 ett_rrlp_GANSSReferenceTime_R10_Ext, GANSSReferenceTime_R10_Ext_sequence);
3010 return offset;
3014 static const per_sequence_t GANSSCommonAssistData_sequence[] = {
3015 { &hf_rrlp_ganssReferenceTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSReferenceTime },
3016 { &hf_rrlp_ganssRefLocation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefLocation },
3017 { &hf_rrlp_ganssIonosphericModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonosphericModel },
3018 { &hf_rrlp_ganssAddIonosphericModel, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAddIonosphericModel },
3019 { &hf_rrlp_ganssEarthOrientParam, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSEarthOrientParam },
3020 { &hf_rrlp_ganssReferenceTime_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSReferenceTime_R10_Ext },
3021 { NULL, 0, 0, NULL }
3024 static int
3025 dissect_rrlp_GANSSCommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3026 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3027 ett_rrlp_GANSSCommonAssistData, GANSSCommonAssistData_sequence);
3029 return offset;
3034 static int
3035 dissect_rrlp_TA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3036 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3037 INT32_MIN, 2147483647U, NULL, false);
3039 return offset;
3044 static int
3045 dissect_rrlp_TA1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3046 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3047 -8388608, 8388607U, NULL, false);
3049 return offset;
3054 static int
3055 dissect_rrlp_TA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3056 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3057 -64, 63U, NULL, false);
3059 return offset;
3063 static const per_sequence_t GANSSTimeModelElement_sequence[] = {
3064 { &hf_rrlp_ganssTimeModelRefTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
3065 { &hf_rrlp_tA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TA0 },
3066 { &hf_rrlp_tA1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA1 },
3067 { &hf_rrlp_tA2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA2 },
3068 { &hf_rrlp_gnssTOID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
3069 { &hf_rrlp_weekNumber , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 },
3070 { NULL, 0, 0, NULL }
3073 static int
3074 dissect_rrlp_GANSSTimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3075 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3076 ett_rrlp_GANSSTimeModelElement, GANSSTimeModelElement_sequence);
3078 return offset;
3082 static const per_sequence_t SeqOfGANSSTimeModel_sequence_of[1] = {
3083 { &hf_rrlp_SeqOfGANSSTimeModel_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTimeModelElement },
3086 static int
3087 dissect_rrlp_SeqOfGANSSTimeModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3088 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3089 ett_rrlp_SeqOfGANSSTimeModel, SeqOfGANSSTimeModel_sequence_of,
3090 1, 7, false);
3092 return offset;
3097 static int
3098 dissect_rrlp_INTEGER_0_119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3099 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3100 0U, 119U, NULL, false);
3102 return offset;
3107 static int
3108 dissect_rrlp_GANSSSignalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3109 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3110 0U, 7U, NULL, false);
3112 return offset;
3117 static int
3118 dissect_rrlp_SVID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3119 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3120 0U, 63U, NULL, false);
3122 return offset;
3126 static const per_sequence_t DGANSSSgnElement_sequence[] = {
3127 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
3128 { &hf_rrlp_iod , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
3129 { &hf_rrlp_udre , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
3130 { &hf_rrlp_pseudoRangeCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2047_2047 },
3131 { &hf_rrlp_rangeRateCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
3132 { NULL, 0, 0, NULL }
3135 static int
3136 dissect_rrlp_DGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3137 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3138 ett_rrlp_DGANSSSgnElement, DGANSSSgnElement_sequence);
3140 return offset;
3144 static const per_sequence_t SeqOfDGANSSSgnElement_sequence_of[1] = {
3145 { &hf_rrlp_SeqOfDGANSSSgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSSgnElement },
3148 static int
3149 dissect_rrlp_SeqOfDGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3150 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3151 ett_rrlp_SeqOfDGANSSSgnElement, SeqOfDGANSSSgnElement_sequence_of,
3152 1, 16, false);
3154 return offset;
3158 static const per_sequence_t SgnTypeElement_sequence[] = {
3159 { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
3160 { &hf_rrlp_ganssStatusHealth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
3161 { &hf_rrlp_dganssSgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfDGANSSSgnElement },
3162 { NULL, 0, 0, NULL }
3165 static int
3166 dissect_rrlp_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3167 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3168 ett_rrlp_SgnTypeElement, SgnTypeElement_sequence);
3170 return offset;
3174 static const per_sequence_t SeqOfSgnTypeElement_sequence_of[1] = {
3175 { &hf_rrlp_SeqOfSgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SgnTypeElement },
3178 static int
3179 dissect_rrlp_SeqOfSgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3180 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3181 ett_rrlp_SeqOfSgnTypeElement, SeqOfSgnTypeElement_sequence_of,
3182 1, 3, false);
3184 return offset;
3188 static const per_sequence_t GANSSDiffCorrections_sequence[] = {
3189 { &hf_rrlp_dganssRefTime , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_119 },
3190 { &hf_rrlp_sgnTypeList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSgnTypeElement },
3191 { NULL, 0, 0, NULL }
3194 static int
3195 dissect_rrlp_GANSSDiffCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3196 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3197 ett_rrlp_GANSSDiffCorrections, GANSSDiffCorrections_sequence);
3199 return offset;
3204 static int
3205 dissect_rrlp_BIT_STRING_SIZE_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3206 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3207 5, 5, false, NULL, 0, NULL, NULL);
3209 return offset;
3214 static int
3215 dissect_rrlp_INTEGER_0_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3216 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3217 0U, 16383U, NULL, false);
3219 return offset;
3224 static int
3225 dissect_rrlp_INTEGER_M131072_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3226 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3227 -131072, 131071U, NULL, false);
3229 return offset;
3234 static int
3235 dissect_rrlp_INTEGER_M134217728_134217727(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3236 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3237 -134217728, 134217727U, NULL, false);
3239 return offset;
3244 static int
3245 dissect_rrlp_INTEGER_M512_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3246 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3247 -512, 511U, NULL, false);
3249 return offset;
3253 static const per_sequence_t StandardClockModelElement_sequence[] = {
3254 { &hf_rrlp_stanClockToc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16383 },
3255 { &hf_rrlp_stanClockAF2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
3256 { &hf_rrlp_stanClockAF1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
3257 { &hf_rrlp_stanClockAF0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M134217728_134217727 },
3258 { &hf_rrlp_stanClockTgd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M512_511 },
3259 { &hf_rrlp_stanModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
3260 { NULL, 0, 0, NULL }
3263 static int
3264 dissect_rrlp_StandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3265 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3266 ett_rrlp_StandardClockModelElement, StandardClockModelElement_sequence);
3268 return offset;
3272 static const per_sequence_t SeqOfStandardClockModelElement_sequence_of[1] = {
3273 { &hf_rrlp_SeqOfStandardClockModelElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_StandardClockModelElement },
3276 static int
3277 dissect_rrlp_SeqOfStandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3278 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3279 ett_rrlp_SeqOfStandardClockModelElement, SeqOfStandardClockModelElement_sequence_of,
3280 1, 2, false);
3282 return offset;
3286 static const per_sequence_t NAVclockModel_sequence[] = {
3287 { &hf_rrlp_navToc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
3288 { &hf_rrlp_navaf2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
3289 { &hf_rrlp_navaf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3290 { &hf_rrlp_navaf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
3291 { &hf_rrlp_navTgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
3292 { NULL, 0, 0, NULL }
3295 static int
3296 dissect_rrlp_NAVclockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3297 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3298 ett_rrlp_NAVclockModel, NAVclockModel_sequence);
3300 return offset;
3305 static int
3306 dissect_rrlp_INTEGER_0_2015(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3307 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3308 0U, 2015U, NULL, false);
3310 return offset;
3315 static int
3316 dissect_rrlp_INTEGER_M16_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3317 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3318 -16, 15U, NULL, false);
3320 return offset;
3325 static int
3326 dissect_rrlp_INTEGER_M524288_524287(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3327 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3328 -524288, 524287U, NULL, false);
3330 return offset;
3335 static int
3336 dissect_rrlp_INTEGER_M33554432_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3337 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3338 -33554432, 33554431U, NULL, false);
3340 return offset;
3345 static int
3346 dissect_rrlp_INTEGER_M4096_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3347 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3348 -4096, 4095U, NULL, false);
3350 return offset;
3354 static const per_sequence_t CNAVclockModel_sequence[] = {
3355 { &hf_rrlp_cnavToc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2015 },
3356 { &hf_rrlp_cnavTop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2015 },
3357 { &hf_rrlp_cnavURA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
3358 { &hf_rrlp_cnavURA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
3359 { &hf_rrlp_cnavURA2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
3360 { &hf_rrlp_cnavAf2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
3361 { &hf_rrlp_cnavAf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M524288_524287 },
3362 { &hf_rrlp_cnavAf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M33554432_33554431 },
3363 { &hf_rrlp_cnavTgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4096_4095 },
3364 { &hf_rrlp_cnavISCl1cp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
3365 { &hf_rrlp_cnavISCl1cd , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
3366 { &hf_rrlp_cnavISCl1ca , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
3367 { &hf_rrlp_cnavISCl2c , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
3368 { &hf_rrlp_cnavISCl5i5 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
3369 { &hf_rrlp_cnavISCl5q5 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
3370 { NULL, 0, 0, NULL }
3373 static int
3374 dissect_rrlp_CNAVclockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3375 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3376 ett_rrlp_CNAVclockModel, CNAVclockModel_sequence);
3378 return offset;
3382 static const per_sequence_t GLONASSclockModel_sequence[] = {
3383 { &hf_rrlp_gloTau , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
3384 { &hf_rrlp_gloGamma , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
3385 { &hf_rrlp_gloDeltaTau , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M16_15 },
3386 { NULL, 0, 0, NULL }
3389 static int
3390 dissect_rrlp_GLONASSclockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3391 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3392 ett_rrlp_GLONASSclockModel, GLONASSclockModel_sequence);
3394 return offset;
3399 static int
3400 dissect_rrlp_INTEGER_0_5399(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3401 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3402 0U, 5399U, NULL, false);
3404 return offset;
3408 static const per_sequence_t SBASclockModel_sequence[] = {
3409 { &hf_rrlp_sbasTo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_5399 },
3410 { &hf_rrlp_sbasAgfo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
3411 { &hf_rrlp_sbasAgf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
3412 { NULL, 0, 0, NULL }
3415 static int
3416 dissect_rrlp_SBASclockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3417 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3418 ett_rrlp_SBASclockModel, SBASclockModel_sequence);
3420 return offset;
3424 static const value_string rrlp_GANSSClockModel_vals[] = {
3425 { 0, "standardClockModelList" },
3426 { 1, "navClockModel" },
3427 { 2, "cnavClockModel" },
3428 { 3, "glonassClockModel" },
3429 { 4, "sbasClockModel" },
3430 { 0, NULL }
3433 static const per_choice_t GANSSClockModel_choice[] = {
3434 { 0, &hf_rrlp_standardClockModelList, ASN1_EXTENSION_ROOT , dissect_rrlp_SeqOfStandardClockModelElement },
3435 { 1, &hf_rrlp_navClockModel , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NAVclockModel },
3436 { 2, &hf_rrlp_cnavClockModel , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_CNAVclockModel },
3437 { 3, &hf_rrlp_glonassClockModel, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_GLONASSclockModel },
3438 { 4, &hf_rrlp_sbasClockModel , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_SBASclockModel },
3439 { 0, NULL, 0, NULL }
3442 static int
3443 dissect_rrlp_GANSSClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3444 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3445 ett_rrlp_GANSSClockModel, GANSSClockModel_choice,
3446 NULL);
3448 return offset;
3452 static const per_sequence_t NavModel_KeplerianSet_sequence[] = {
3453 { &hf_rrlp_keplerToe , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16383 },
3454 { &hf_rrlp_keplerW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3455 { &hf_rrlp_keplerDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3456 { &hf_rrlp_keplerM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3457 { &hf_rrlp_keplerOmegaDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3458 { &hf_rrlp_keplerE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
3459 { &hf_rrlp_keplerIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
3460 { &hf_rrlp_keplerAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
3461 { &hf_rrlp_keplerI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3462 { &hf_rrlp_keplerOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3463 { &hf_rrlp_keplerCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3464 { &hf_rrlp_keplerCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3465 { &hf_rrlp_keplerCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3466 { &hf_rrlp_keplerCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3467 { &hf_rrlp_keplerCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3468 { &hf_rrlp_keplerCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3469 { NULL, 0, 0, NULL }
3472 static int
3473 dissect_rrlp_NavModel_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3474 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3475 ett_rrlp_NavModel_KeplerianSet, NavModel_KeplerianSet_sequence);
3477 return offset;
3481 static const per_sequence_t NavModel_NAVKeplerianSet_sequence[] = {
3482 { &hf_rrlp_navURA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
3483 { &hf_rrlp_navFitFlag , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
3484 { &hf_rrlp_navToe , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
3485 { &hf_rrlp_navOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3486 { &hf_rrlp_navDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3487 { &hf_rrlp_navM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3488 { &hf_rrlp_navOmegaADot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3489 { &hf_rrlp_navE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
3490 { &hf_rrlp_navIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
3491 { &hf_rrlp_navAPowerHalf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
3492 { &hf_rrlp_navI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3493 { &hf_rrlp_navOmegaA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
3494 { &hf_rrlp_navCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3495 { &hf_rrlp_navCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3496 { &hf_rrlp_navCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3497 { &hf_rrlp_navCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3498 { &hf_rrlp_navCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3499 { &hf_rrlp_navCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3500 { NULL, 0, 0, NULL }
3503 static int
3504 dissect_rrlp_NavModel_NAVKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3505 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3506 ett_rrlp_NavModel_NAVKeplerianSet, NavModel_NAVKeplerianSet_sequence);
3508 return offset;
3513 static int
3514 dissect_rrlp_INTEGER_M16777216_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3515 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3516 -16777216, 16777215U, NULL, false);
3518 return offset;
3523 static int
3524 dissect_rrlp_INTEGER_M65536_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3525 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3526 -65536, 65535U, NULL, false);
3528 return offset;
3533 static int
3534 dissect_rrlp_INTEGER_M4194304_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3535 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3536 -4194304, 4194303U, NULL, false);
3538 return offset;
3543 static int
3544 dissect_rrlp_INTEGER_M4294967296_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3545 offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
3546 INT64_C(-4294967296), 4294967295U, NULL, false);
3548 return offset;
3553 static int
3554 dissect_rrlp_INTEGER_0_8589934591(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3555 offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
3556 0U, UINT64_C(8589934591), NULL, false);
3558 return offset;
3562 static const per_sequence_t NavModel_CNAVKeplerianSet_sequence[] = {
3563 { &hf_rrlp_cnavTop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2015 },
3564 { &hf_rrlp_cnavURAindex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
3565 { &hf_rrlp_cnavDeltaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M33554432_33554431 },
3566 { &hf_rrlp_cnavAdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16777216_16777215 },
3567 { &hf_rrlp_cnavDeltaNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
3568 { &hf_rrlp_cnavDeltaNoDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4194304_4194303 },
3569 { &hf_rrlp_cnavMo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4294967296_4294967295 },
3570 { &hf_rrlp_cnavE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8589934591 },
3571 { &hf_rrlp_cnavOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4294967296_4294967295 },
3572 { &hf_rrlp_cnavOMEGA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4294967296_4294967295 },
3573 { &hf_rrlp_cnavDeltaOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
3574 { &hf_rrlp_cnavIo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4294967296_4294967295 },
3575 { &hf_rrlp_cnavIoDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
3576 { &hf_rrlp_cnavCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3577 { &hf_rrlp_cnavCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
3578 { &hf_rrlp_cnavCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3579 { &hf_rrlp_cnavCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3580 { &hf_rrlp_cnavCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
3581 { &hf_rrlp_cnavCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
3582 { NULL, 0, 0, NULL }
3585 static int
3586 dissect_rrlp_NavModel_CNAVKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3587 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3588 ett_rrlp_NavModel_CNAVKeplerianSet, NavModel_CNAVKeplerianSet_sequence);
3590 return offset;
3595 static int
3596 dissect_rrlp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3597 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
3599 return offset;
3604 static int
3605 dissect_rrlp_INTEGER_M67108864_67108863(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3606 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3607 -67108864, 67108863U, NULL, false);
3609 return offset;
3613 static const per_sequence_t NavModel_GLONASSecef_sequence[] = {
3614 { &hf_rrlp_gloEn , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
3615 { &hf_rrlp_gloP1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_2 },
3616 { &hf_rrlp_gloP2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
3617 { &hf_rrlp_gloM , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
3618 { &hf_rrlp_gloX , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M67108864_67108863 },
3619 { &hf_rrlp_gloXdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3620 { &hf_rrlp_gloXdotdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
3621 { &hf_rrlp_gloY , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M67108864_67108863 },
3622 { &hf_rrlp_gloYdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3623 { &hf_rrlp_gloYdotdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
3624 { &hf_rrlp_gloZ , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M67108864_67108863 },
3625 { &hf_rrlp_gloZdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
3626 { &hf_rrlp_gloZdotdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
3627 { NULL, 0, 0, NULL }
3630 static int
3631 dissect_rrlp_NavModel_GLONASSecef(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3632 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3633 ett_rrlp_NavModel_GLONASSecef, NavModel_GLONASSecef_sequence);
3635 return offset;
3640 static int
3641 dissect_rrlp_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3642 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3643 4, 4, false, NULL, 0, NULL, NULL);
3645 return offset;
3650 static int
3651 dissect_rrlp_INTEGER_M536870912_536870911(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3652 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3653 -536870912, 536870911U, NULL, false);
3655 return offset;
3659 static const per_sequence_t NavModel_SBASecef_sequence[] = {
3660 { &hf_rrlp_sbasTo , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_5399 },
3661 { &hf_rrlp_sbasAccuracy , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_4 },
3662 { &hf_rrlp_sbasXg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M536870912_536870911 },
3663 { &hf_rrlp_sbasYg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M536870912_536870911 },
3664 { &hf_rrlp_sbasZg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16777216_16777215 },
3665 { &hf_rrlp_sbasXgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
3666 { &hf_rrlp_sbasYgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
3667 { &hf_rrlp_sbasZgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
3668 { &hf_rrlp_sbasXgDotDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
3669 { &hf_rrlp_sbagYgDotDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
3670 { &hf_rrlp_sbasZgDotDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
3671 { NULL, 0, 0, NULL }
3674 static int
3675 dissect_rrlp_NavModel_SBASecef(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3676 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3677 ett_rrlp_NavModel_SBASecef, NavModel_SBASecef_sequence);
3679 return offset;
3683 static const value_string rrlp_GANSSOrbitModel_vals[] = {
3684 { 0, "keplerianSet" },
3685 { 1, "navKeplerianSet" },
3686 { 2, "cnavKeplerianSet" },
3687 { 3, "glonassECEF" },
3688 { 4, "sbasECEF" },
3689 { 0, NULL }
3692 static const per_choice_t GANSSOrbitModel_choice[] = {
3693 { 0, &hf_rrlp_keplerianSet , ASN1_EXTENSION_ROOT , dissect_rrlp_NavModel_KeplerianSet },
3694 { 1, &hf_rrlp_navKeplerianSet, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_NAVKeplerianSet },
3695 { 2, &hf_rrlp_cnavKeplerianSet, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_CNAVKeplerianSet },
3696 { 3, &hf_rrlp_glonassECEF , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_GLONASSecef },
3697 { 4, &hf_rrlp_sbasECEF , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_SBASecef },
3698 { 0, NULL, 0, NULL }
3701 static int
3702 dissect_rrlp_GANSSOrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3703 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3704 ett_rrlp_GANSSOrbitModel, GANSSOrbitModel_choice,
3705 NULL);
3707 return offset;
3712 static int
3713 dissect_rrlp_BIT_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3714 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3715 1, 1, false, NULL, 0, NULL, NULL);
3717 return offset;
3721 static const per_sequence_t GANSSSatelliteElement_sequence[] = {
3722 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
3723 { &hf_rrlp_svHealth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_5 },
3724 { &hf_rrlp_iod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
3725 { &hf_rrlp_ganssClockModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSClockModel },
3726 { &hf_rrlp_ganssOrbitModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSOrbitModel },
3727 { &hf_rrlp_svHealthMSB , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_BIT_STRING_SIZE_1 },
3728 { &hf_rrlp_iodMSB , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
3729 { NULL, 0, 0, NULL }
3732 static int
3733 dissect_rrlp_GANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3734 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3735 ett_rrlp_GANSSSatelliteElement, GANSSSatelliteElement_sequence);
3737 return offset;
3741 static const per_sequence_t SeqOfGANSSSatelliteElement_sequence_of[1] = {
3742 { &hf_rrlp_SeqOfGANSSSatelliteElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSatelliteElement },
3745 static int
3746 dissect_rrlp_SeqOfGANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3747 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3748 ett_rrlp_SeqOfGANSSSatelliteElement, SeqOfGANSSSatelliteElement_sequence_of,
3749 1, 32, false);
3751 return offset;
3755 static const per_sequence_t GANSSNavModel_sequence[] = {
3756 { &hf_rrlp_nonBroadcastIndFlag, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
3757 { &hf_rrlp_ganssSatelliteList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSSatelliteElement },
3758 { NULL, 0, 0, NULL }
3761 static int
3762 dissect_rrlp_GANSSNavModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3763 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3764 ett_rrlp_GANSSNavModel, GANSSNavModel_sequence);
3766 return offset;
3770 static int * const GANSSSignals_bits[] = {
3771 &hf_rrlp_GANSSSignals_signal1,
3772 &hf_rrlp_GANSSSignals_signal2,
3773 &hf_rrlp_GANSSSignals_signal3,
3774 &hf_rrlp_GANSSSignals_signal4,
3775 &hf_rrlp_GANSSSignals_signal5,
3776 &hf_rrlp_GANSSSignals_signal6,
3777 &hf_rrlp_GANSSSignals_signal7,
3778 &hf_rrlp_GANSSSignals_signal8,
3779 NULL
3782 static int
3783 dissect_rrlp_GANSSSignals(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3784 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3785 1, 8, false, GANSSSignals_bits, 8, NULL, NULL);
3787 return offset;
3791 static const per_sequence_t BadSignalElement_sequence[] = {
3792 { &hf_rrlp_badSVID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
3793 { &hf_rrlp_badSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSSignals },
3794 { NULL, 0, 0, NULL }
3797 static int
3798 dissect_rrlp_BadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3799 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3800 ett_rrlp_BadSignalElement, BadSignalElement_sequence);
3802 return offset;
3806 static const per_sequence_t SeqOfBadSignalElement_sequence_of[1] = {
3807 { &hf_rrlp_SeqOfBadSignalElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BadSignalElement },
3810 static int
3811 dissect_rrlp_SeqOfBadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3812 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3813 ett_rrlp_SeqOfBadSignalElement, SeqOfBadSignalElement_sequence_of,
3814 1, 16, false);
3816 return offset;
3820 static const per_sequence_t GANSSRealTimeIntegrity_sequence[] = {
3821 { &hf_rrlp_ganssBadSignalList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfBadSignalElement },
3822 { NULL, 0, 0, NULL }
3825 static int
3826 dissect_rrlp_GANSSRealTimeIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3827 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3828 ett_rrlp_GANSSRealTimeIntegrity, GANSSRealTimeIntegrity_sequence);
3830 return offset;
3835 static int
3836 dissect_rrlp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3837 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3838 0U, 59U, NULL, false);
3840 return offset;
3845 static int
3846 dissect_rrlp_GANSSDataBit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3847 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3848 0U, 1U, NULL, false);
3850 return offset;
3854 static const per_sequence_t SeqOf_GANSSDataBits_sequence_of[1] = {
3855 { &hf_rrlp_SeqOf_GANSSDataBits_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDataBit },
3858 static int
3859 dissect_rrlp_SeqOf_GANSSDataBits(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_sequence_of(tvb, offset, actx, tree, hf_index,
3861 ett_rrlp_SeqOf_GANSSDataBits, SeqOf_GANSSDataBits_sequence_of,
3862 1, 1024, false);
3864 return offset;
3868 static const per_sequence_t GANSSDataBitsSgnElement_sequence[] = {
3869 { &hf_rrlp_ganssSignalType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
3870 { &hf_rrlp_ganssDataBits , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOf_GANSSDataBits },
3871 { NULL, 0, 0, NULL }
3874 static int
3875 dissect_rrlp_GANSSDataBitsSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3876 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3877 ett_rrlp_GANSSDataBitsSgnElement, GANSSDataBitsSgnElement_sequence);
3879 return offset;
3883 static const per_sequence_t Seq_OfGANSSDataBitsSgn_sequence_of[1] = {
3884 { &hf_rrlp_Seq_OfGANSSDataBitsSgn_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDataBitsSgnElement },
3887 static int
3888 dissect_rrlp_Seq_OfGANSSDataBitsSgn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3889 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3890 ett_rrlp_Seq_OfGANSSDataBitsSgn, Seq_OfGANSSDataBitsSgn_sequence_of,
3891 1, 8, false);
3893 return offset;
3897 static const per_sequence_t GanssDataBitsElement_sequence[] = {
3898 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
3899 { &hf_rrlp_ganssDataBitsSgnList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Seq_OfGANSSDataBitsSgn },
3900 { NULL, 0, 0, NULL }
3903 static int
3904 dissect_rrlp_GanssDataBitsElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3905 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3906 ett_rrlp_GanssDataBitsElement, GanssDataBitsElement_sequence);
3908 return offset;
3912 static const per_sequence_t SeqOfGanssDataBitsElement_sequence_of[1] = {
3913 { &hf_rrlp_SeqOfGanssDataBitsElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GanssDataBitsElement },
3916 static int
3917 dissect_rrlp_SeqOfGanssDataBitsElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3918 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3919 ett_rrlp_SeqOfGanssDataBitsElement, SeqOfGanssDataBitsElement_sequence_of,
3920 1, 32, false);
3922 return offset;
3926 static const per_sequence_t GANSSDataBitAssist_sequence[] = {
3927 { &hf_rrlp_ganssTOD_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_59 },
3928 { &hf_rrlp_ganssDataBitsSatList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGanssDataBitsElement },
3929 { NULL, 0, 0, NULL }
3932 static int
3933 dissect_rrlp_GANSSDataBitAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3934 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3935 ett_rrlp_GANSSDataBitAssist, GANSSDataBitAssist_sequence);
3937 return offset;
3942 static int
3943 dissect_rrlp_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3944 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3945 0U, 4U, NULL, false);
3947 return offset;
3951 static const per_sequence_t AdditionalDopplerFields_sequence[] = {
3952 { &hf_rrlp_doppler1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
3953 { &hf_rrlp_dopplerUncertainty_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4 },
3954 { NULL, 0, 0, NULL }
3957 static int
3958 dissect_rrlp_AdditionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3959 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3960 ett_rrlp_AdditionalDopplerFields, AdditionalDopplerFields_sequence);
3962 return offset;
3967 static int
3968 dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3969 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3970 0U, 127U, NULL, false);
3972 return offset;
3976 static const per_sequence_t GANSSRefMeasurementElement_sequence[] = {
3977 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
3978 { &hf_rrlp_doppler0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
3979 { &hf_rrlp_additionalDoppler, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AdditionalDopplerFields },
3980 { &hf_rrlp_codePhase , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 },
3981 { &hf_rrlp_intCodePhase_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_127 },
3982 { &hf_rrlp_codePhaseSearchWindow_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
3983 { &hf_rrlp_additionalAngle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AddionalAngleFields },
3984 { NULL, 0, 0, NULL }
3987 static int
3988 dissect_rrlp_GANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3989 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3990 ett_rrlp_GANSSRefMeasurementElement, GANSSRefMeasurementElement_sequence);
3992 return offset;
3996 static const per_sequence_t SeqOfGANSSRefMeasurementElement_sequence_of[1] = {
3997 { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefMeasurementElement },
4000 static int
4001 dissect_rrlp_SeqOfGANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4002 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4003 ett_rrlp_SeqOfGANSSRefMeasurementElement, SeqOfGANSSRefMeasurementElement_sequence_of,
4004 1, 16, false);
4006 return offset;
4010 static const per_sequence_t GANSSRefMeasurementAssist_sequence[] = {
4011 { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
4012 { &hf_rrlp_ganssRefMeasAssistList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSRefMeasurementElement },
4013 { NULL, 0, 0, NULL }
4016 static int
4017 dissect_rrlp_GANSSRefMeasurementAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4018 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4019 ett_rrlp_GANSSRefMeasurementAssist, GANSSRefMeasurementAssist_sequence);
4021 return offset;
4026 static int
4027 dissect_rrlp_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4028 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4029 0U, 2047U, NULL, false);
4031 return offset;
4035 static const per_sequence_t Almanac_KeplerianSet_sequence[] = {
4036 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4037 { &hf_rrlp_kepAlmanacE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
4038 { &hf_rrlp_kepAlmanacDeltaI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4039 { &hf_rrlp_kepAlmanacOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4040 { &hf_rrlp_kepSVHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
4041 { &hf_rrlp_kepAlmanacAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
4042 { &hf_rrlp_kepAlmanacOmega0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4043 { &hf_rrlp_kepAlmanacW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4044 { &hf_rrlp_kepAlmanacM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4045 { &hf_rrlp_kepAlmanacAF0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
4046 { &hf_rrlp_kepAlmanacAF1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4047 { NULL, 0, 0, NULL }
4050 static int
4051 dissect_rrlp_Almanac_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4052 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4053 ett_rrlp_Almanac_KeplerianSet, Almanac_KeplerianSet_sequence);
4055 return offset;
4059 static const per_sequence_t Almanac_NAVKeplerianSet_sequence[] = {
4060 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4061 { &hf_rrlp_navAlmE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
4062 { &hf_rrlp_navAlmDeltaI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4063 { &hf_rrlp_navAlmOMEGADOT , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4064 { &hf_rrlp_navAlmSVHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4065 { &hf_rrlp_navAlmSqrtA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
4066 { &hf_rrlp_navAlmOMEGAo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
4067 { &hf_rrlp_navAlmOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
4068 { &hf_rrlp_navAlmMo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
4069 { &hf_rrlp_navAlmaf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4070 { &hf_rrlp_navAlmaf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4071 { NULL, 0, 0, NULL }
4074 static int
4075 dissect_rrlp_Almanac_NAVKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4076 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4077 ett_rrlp_Almanac_NAVKeplerianSet, Almanac_NAVKeplerianSet_sequence);
4079 return offset;
4084 static int
4085 dissect_rrlp_INTEGER_M64_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4086 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4087 -64, 63U, NULL, false);
4089 return offset;
4093 static const per_sequence_t Almanac_ReducedKeplerianSet_sequence[] = {
4094 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4095 { &hf_rrlp_redAlmDeltaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4096 { &hf_rrlp_redAlmOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
4097 { &hf_rrlp_redAlmPhi0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
4098 { &hf_rrlp_redAlmL1Health , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4099 { &hf_rrlp_redAlmL2Health , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4100 { &hf_rrlp_redAlmL5Health , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4101 { NULL, 0, 0, NULL }
4104 static int
4105 dissect_rrlp_Almanac_ReducedKeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4106 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4107 ett_rrlp_Almanac_ReducedKeplerianSet, Almanac_ReducedKeplerianSet_sequence);
4109 return offset;
4114 static int
4115 dissect_rrlp_INTEGER_0_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4116 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4117 0U, 131071U, NULL, false);
4119 return offset;
4123 static const per_sequence_t Almanac_MidiAlmanacSet_sequence[] = {
4124 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4125 { &hf_rrlp_midiAlmE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
4126 { &hf_rrlp_midiAlmDeltaI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4127 { &hf_rrlp_midiAlmOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4128 { &hf_rrlp_midiAlmSqrtA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_131071 },
4129 { &hf_rrlp_midiAlmOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4130 { &hf_rrlp_midiAlmOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4131 { &hf_rrlp_midiAlmMo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4132 { &hf_rrlp_midiAlmaf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
4133 { &hf_rrlp_midiAlmaf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
4134 { &hf_rrlp_midiAlmL1Health, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4135 { &hf_rrlp_midiAlmL2Health, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4136 { &hf_rrlp_midiAlmL5Health, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4137 { NULL, 0, 0, NULL }
4140 static int
4141 dissect_rrlp_Almanac_MidiAlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4142 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4143 ett_rrlp_Almanac_MidiAlmanacSet, Almanac_MidiAlmanacSet_sequence);
4145 return offset;
4150 static int
4151 dissect_rrlp_INTEGER_1_1461(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4152 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4153 1U, 1461U, NULL, false);
4155 return offset;
4160 static int
4161 dissect_rrlp_INTEGER_1_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4162 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4163 1U, 24U, NULL, false);
4165 return offset;
4170 static int
4171 dissect_rrlp_INTEGER_0_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4172 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4173 0U, 2097151U, NULL, false);
4175 return offset;
4180 static int
4181 dissect_rrlp_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4182 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4183 0U, 32767U, NULL, false);
4185 return offset;
4189 static const per_sequence_t Almanac_GlonassAlmanacSet_sequence[] = {
4190 { &hf_rrlp_gloAlmNA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_1461 },
4191 { &hf_rrlp_gloAlmnA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_24 },
4192 { &hf_rrlp_gloAlmHA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
4193 { &hf_rrlp_gloAlmLambdaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
4194 { &hf_rrlp_gloAlmtlambdaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2097151 },
4195 { &hf_rrlp_gloAlmDeltaIa , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
4196 { &hf_rrlp_gloAlmDeltaTA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
4197 { &hf_rrlp_gloAlmDeltaTdotA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
4198 { &hf_rrlp_gloAlmEpsilonA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_32767 },
4199 { &hf_rrlp_gloAlmOmegaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4200 { &hf_rrlp_gloAlmTauA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
4201 { &hf_rrlp_gloAlmCA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
4202 { &hf_rrlp_gloAlmMA , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_BIT_STRING_SIZE_2 },
4203 { NULL, 0, 0, NULL }
4206 static int
4207 dissect_rrlp_Almanac_GlonassAlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4208 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4209 ett_rrlp_Almanac_GlonassAlmanacSet, Almanac_GlonassAlmanacSet_sequence);
4211 return offset;
4216 static int
4217 dissect_rrlp_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4218 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4219 8, 8, false, NULL, 0, NULL, NULL);
4221 return offset;
4226 static int
4227 dissect_rrlp_INTEGER_M256_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4228 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4229 -256, 255U, NULL, false);
4231 return offset;
4236 static int
4237 dissect_rrlp_INTEGER_M4_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4238 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4239 -4, 3U, NULL, false);
4241 return offset;
4246 static int
4247 dissect_rrlp_INTEGER_M8_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4248 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4249 -8, 7U, NULL, false);
4251 return offset;
4255 static const per_sequence_t Almanac_ECEFsbasAlmanacSet_sequence[] = {
4256 { &hf_rrlp_sbasAlmDataID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
4257 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4258 { &hf_rrlp_sbasAlmHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_8 },
4259 { &hf_rrlp_sbasAlmXg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
4260 { &hf_rrlp_sbasAlmYg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
4261 { &hf_rrlp_sbasAlmZg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M256_255 },
4262 { &hf_rrlp_sbasAlmXgdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4_3 },
4263 { &hf_rrlp_sbasAlmYgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4_3 },
4264 { &hf_rrlp_sbasAlmZgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8_7 },
4265 { &hf_rrlp_sbasAlmTo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
4266 { NULL, 0, 0, NULL }
4269 static int
4270 dissect_rrlp_Almanac_ECEFsbasAlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4271 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4272 ett_rrlp_Almanac_ECEFsbasAlmanacSet, Almanac_ECEFsbasAlmanacSet_sequence);
4274 return offset;
4278 static const value_string rrlp_GANSSAlmanacElement_vals[] = {
4279 { 0, "keplerianAlmanacSet" },
4280 { 1, "keplerianNAVAlmanac" },
4281 { 2, "keplerianReducedAlmanac" },
4282 { 3, "keplerianMidiAlmanac" },
4283 { 4, "keplerianGLONASS" },
4284 { 5, "ecefSBASAlmanac" },
4285 { 0, NULL }
4288 static const per_choice_t GANSSAlmanacElement_choice[] = {
4289 { 0, &hf_rrlp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT , dissect_rrlp_Almanac_KeplerianSet },
4290 { 1, &hf_rrlp_keplerianNAVAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_NAVKeplerianSet },
4291 { 2, &hf_rrlp_keplerianReducedAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_ReducedKeplerianSet },
4292 { 3, &hf_rrlp_keplerianMidiAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_MidiAlmanacSet },
4293 { 4, &hf_rrlp_keplerianGLONASS, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_GlonassAlmanacSet },
4294 { 5, &hf_rrlp_ecefSBASAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_ECEFsbasAlmanacSet },
4295 { 0, NULL, 0, NULL }
4298 static int
4299 dissect_rrlp_GANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4300 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4301 ett_rrlp_GANSSAlmanacElement, GANSSAlmanacElement_choice,
4302 NULL);
4304 return offset;
4308 static const per_sequence_t SeqOfGANSSAlmanacElement_sequence_of[1] = {
4309 { &hf_rrlp_SeqOfGANSSAlmanacElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAlmanacElement },
4312 static int
4313 dissect_rrlp_SeqOfGANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4314 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4315 ett_rrlp_SeqOfGANSSAlmanacElement, SeqOfGANSSAlmanacElement_sequence_of,
4316 1, 36, false);
4318 return offset;
4322 static const per_sequence_t GANSSAlmanacModel_sequence[] = {
4323 { &hf_rrlp_weekNumber_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4324 { &hf_rrlp_toa , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_255 },
4325 { &hf_rrlp_ioda , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
4326 { &hf_rrlp_ganssAlmanacList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSAlmanacElement },
4327 { NULL, 0, 0, NULL }
4330 static int
4331 dissect_rrlp_GANSSAlmanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4332 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4333 ett_rrlp_GANSSAlmanacModel, GANSSAlmanacModel_sequence);
4335 return offset;
4339 static const per_sequence_t GANSSUTCModel_sequence[] = {
4340 { &hf_rrlp_ganssUtcA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
4341 { &hf_rrlp_ganssUtcA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4342 { &hf_rrlp_ganssUtcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4343 { &hf_rrlp_ganssUtcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4344 { &hf_rrlp_ganssUtcDeltaTls, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4345 { &hf_rrlp_ganssUtcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4346 { &hf_rrlp_ganssUtcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4347 { &hf_rrlp_ganssUtcDeltaTlsf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4348 { NULL, 0, 0, NULL }
4351 static int
4352 dissect_rrlp_GANSSUTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4353 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4354 ett_rrlp_GANSSUTCModel, GANSSUTCModel_sequence);
4356 return offset;
4360 static const per_sequence_t GANSSEphemerisExtensionTime_sequence[] = {
4361 { &hf_rrlp_ganssEphExtDay , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8191 },
4362 { &hf_rrlp_ganssEphExtTOD , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD },
4363 { NULL, 0, 0, NULL }
4366 static int
4367 dissect_rrlp_GANSSEphemerisExtensionTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4368 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4369 ett_rrlp_GANSSEphemerisExtensionTime, GANSSEphemerisExtensionTime_sequence);
4371 return offset;
4376 static int
4377 dissect_rrlp_INTEGER_1_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4378 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4379 1U, 8U, NULL, false);
4381 return offset;
4386 static int
4387 dissect_rrlp_INTEGER_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4388 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4389 1U, 512U, NULL, false);
4391 return offset;
4395 static const per_sequence_t GANSSEphemerisExtensionHeader_sequence[] = {
4396 { &hf_rrlp_timeAtEstimation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisExtensionTime },
4397 { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_8 },
4398 { &hf_rrlp_ephemerisExtensionDuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_512 },
4399 { NULL, 0, 0, NULL }
4402 static int
4403 dissect_rrlp_GANSSEphemerisExtensionHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4404 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4405 ett_rrlp_GANSSEphemerisExtensionHeader, GANSSEphemerisExtensionHeader_sequence);
4407 return offset;
4411 static const per_sequence_t ReferenceNavModel_sequence[] = {
4412 { &hf_rrlp_keplerToe_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
4413 { &hf_rrlp_keplerW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4414 { &hf_rrlp_keplerDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4415 { &hf_rrlp_keplerM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4416 { &hf_rrlp_keplerOmegaDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
4417 { &hf_rrlp_keplerE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
4418 { &hf_rrlp_keplerIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
4419 { &hf_rrlp_keplerAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
4420 { &hf_rrlp_keplerI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4421 { &hf_rrlp_keplerOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4422 { &hf_rrlp_keplerCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4423 { &hf_rrlp_keplerCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4424 { &hf_rrlp_keplerCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4425 { &hf_rrlp_keplerCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4426 { &hf_rrlp_keplerCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4427 { &hf_rrlp_keplerCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4428 { NULL, 0, 0, NULL }
4431 static int
4432 dissect_rrlp_ReferenceNavModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4433 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4434 ett_rrlp_ReferenceNavModel, ReferenceNavModel_sequence);
4436 return offset;
4440 static const per_sequence_t GANSSReferenceOrbit_sequence[] = {
4441 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4442 { &hf_rrlp_ganssOrbitModel_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceNavModel },
4443 { &hf_rrlp_ganssClockModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSClockModel },
4444 { NULL, 0, 0, NULL }
4447 static int
4448 dissect_rrlp_GANSSReferenceOrbit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4449 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4450 ett_rrlp_GANSSReferenceOrbit, GANSSReferenceOrbit_sequence);
4452 return offset;
4456 static const per_sequence_t SeqOfGANSSRefOrbit_sequence_of[1] = {
4457 { &hf_rrlp_SeqOfGANSSRefOrbit_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSReferenceOrbit },
4460 static int
4461 dissect_rrlp_SeqOfGANSSRefOrbit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4462 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4463 ett_rrlp_SeqOfGANSSRefOrbit, SeqOfGANSSRefOrbit_sequence_of,
4464 1, 32, false);
4466 return offset;
4471 static int
4472 dissect_rrlp_INTEGER_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4473 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4474 1U, 32U, NULL, false);
4476 return offset;
4481 static int
4482 dissect_rrlp_INTEGER_1_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4483 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4484 1U, 16U, NULL, false);
4486 return offset;
4491 static int
4492 dissect_rrlp_INTEGER_1_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4493 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4494 1U, 14U, NULL, false);
4496 return offset;
4501 static int
4502 dissect_rrlp_INTEGER_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4503 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4504 1U, 10U, NULL, false);
4506 return offset;
4510 static const per_sequence_t GANSSEphemerisDeltaBitSizes_sequence[] = {
4511 { &hf_rrlp_bitsize_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
4512 { &hf_rrlp_bitsize_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4513 { &hf_rrlp_bitsize_delta_m0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
4514 { &hf_rrlp_bitsize_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_24 },
4515 { &hf_rrlp_bitsize_delta_e, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
4516 { &hf_rrlp_bitsize_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_14 },
4517 { &hf_rrlp_bitsize_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
4518 { &hf_rrlp_bitsize_delta_i0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
4519 { &hf_rrlp_bitsize_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
4520 { &hf_rrlp_bitsize_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4521 { &hf_rrlp_bitsize_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4522 { &hf_rrlp_bitsize_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4523 { &hf_rrlp_bitsize_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4524 { &hf_rrlp_bitsize_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4525 { &hf_rrlp_bitsize_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
4526 { &hf_rrlp_bitsize_delta_tgd1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_10 },
4527 { &hf_rrlp_bitsize_delta_tgd2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_10 },
4528 { NULL, 0, 0, NULL }
4531 static int
4532 dissect_rrlp_GANSSEphemerisDeltaBitSizes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4533 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4534 ett_rrlp_GANSSEphemerisDeltaBitSizes, GANSSEphemerisDeltaBitSizes_sequence);
4536 return offset;
4540 static const per_sequence_t GANSSEphemerisDeltaScales_sequence[] = {
4541 { &hf_rrlp_scale_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4542 { &hf_rrlp_scale_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4543 { &hf_rrlp_scale_delta_m0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4544 { &hf_rrlp_scale_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4545 { &hf_rrlp_scale_delta_e , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4546 { &hf_rrlp_scale_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4547 { &hf_rrlp_scale_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4548 { &hf_rrlp_scale_delta_i0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4549 { &hf_rrlp_scale_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4550 { &hf_rrlp_scale_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4551 { &hf_rrlp_scale_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4552 { &hf_rrlp_scale_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4553 { &hf_rrlp_scale_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4554 { &hf_rrlp_scale_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4555 { &hf_rrlp_scale_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4556 { &hf_rrlp_scale_delta_tgd1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4557 { &hf_rrlp_scale_delta_tgd2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
4558 { NULL, 0, 0, NULL }
4561 static int
4562 dissect_rrlp_GANSSEphemerisDeltaScales(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4563 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4564 ett_rrlp_GANSSEphemerisDeltaScales, GANSSEphemerisDeltaScales_sequence);
4566 return offset;
4570 static const per_sequence_t GANSSDeltaEpochHeader_sequence[] = {
4571 { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_1_8 },
4572 { &hf_rrlp_ephemerisDeltaSizes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisDeltaBitSizes },
4573 { &hf_rrlp_ephemerisDeltaScales, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisDeltaScales },
4574 { NULL, 0, 0, NULL }
4577 static int
4578 dissect_rrlp_GANSSDeltaEpochHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4579 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4580 ett_rrlp_GANSSDeltaEpochHeader, GANSSDeltaEpochHeader_sequence);
4582 return offset;
4587 static int
4588 dissect_rrlp_OCTET_STRING_SIZE_1_49(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4589 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4590 1, 49, false, NULL);
4592 return offset;
4596 static const per_sequence_t GANSSDeltaElementList_sequence_of[1] = {
4597 { &hf_rrlp_GANSSDeltaElementList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OCTET_STRING_SIZE_1_49 },
4600 static int
4601 dissect_rrlp_GANSSDeltaElementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4602 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4603 ett_rrlp_GANSSDeltaElementList, GANSSDeltaElementList_sequence_of,
4604 1, 32, false);
4606 return offset;
4610 static const per_sequence_t GANSSEphemerisDeltaEpoch_sequence[] = {
4611 { &hf_rrlp_ganssDeltaEpochHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDeltaEpochHeader },
4612 { &hf_rrlp_ganssDeltaElementList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDeltaElementList },
4613 { NULL, 0, 0, NULL }
4616 static int
4617 dissect_rrlp_GANSSEphemerisDeltaEpoch(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4618 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4619 ett_rrlp_GANSSEphemerisDeltaEpoch, GANSSEphemerisDeltaEpoch_sequence);
4621 return offset;
4625 static const per_sequence_t GANSSEphemerisDeltaMatrix_sequence_of[1] = {
4626 { &hf_rrlp_GANSSEphemerisDeltaMatrix_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisDeltaEpoch },
4629 static int
4630 dissect_rrlp_GANSSEphemerisDeltaMatrix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4631 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4632 ett_rrlp_GANSSEphemerisDeltaMatrix, GANSSEphemerisDeltaMatrix_sequence_of,
4633 1, 128, false);
4635 return offset;
4639 static const per_sequence_t GANSSEphemerisExtension_sequence[] = {
4640 { &hf_rrlp_ganssEphemerisHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisExtensionHeader },
4641 { &hf_rrlp_ganssReferenceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSRefOrbit },
4642 { &hf_rrlp_ganssephemerisDeltasMatrix, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisDeltaMatrix },
4643 { NULL, 0, 0, NULL }
4646 static int
4647 dissect_rrlp_GANSSEphemerisExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4648 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4649 ett_rrlp_GANSSEphemerisExtension, GANSSEphemerisExtension_sequence);
4651 return offset;
4656 static int
4657 dissect_rrlp_BIT_STRING_SIZE_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4658 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4659 64, 64, false, NULL, 0, NULL, NULL);
4661 return offset;
4665 static const per_sequence_t GANSSSatEventsInfo_sequence[] = {
4666 { &hf_rrlp_eventOccured , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_64 },
4667 { &hf_rrlp_futureEventNoted, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_64 },
4668 { NULL, 0, 0, NULL }
4671 static int
4672 dissect_rrlp_GANSSSatEventsInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4673 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4674 ett_rrlp_GANSSSatEventsInfo, GANSSSatEventsInfo_sequence);
4676 return offset;
4680 static const per_sequence_t GANSSEphemerisExtensionCheck_sequence[] = {
4681 { &hf_rrlp_ganssBeginTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisExtensionTime },
4682 { &hf_rrlp_ganssEndTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisExtensionTime },
4683 { &hf_rrlp_ganssSatEventsInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSatEventsInfo },
4684 { NULL, 0, 0, NULL }
4687 static int
4688 dissect_rrlp_GANSSEphemerisExtensionCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4689 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4690 ett_rrlp_GANSSEphemerisExtensionCheck, GANSSEphemerisExtensionCheck_sequence);
4692 return offset;
4696 static const per_sequence_t UTCmodelSet2_sequence[] = {
4697 { &hf_rrlp_utcA0_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
4698 { &hf_rrlp_utcA1_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4096_4095 },
4699 { &hf_rrlp_utcA2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
4700 { &hf_rrlp_utcDeltaTls , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4701 { &hf_rrlp_utcTot_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
4702 { &hf_rrlp_utcWNot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8191 },
4703 { &hf_rrlp_utcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4704 { &hf_rrlp_utcDN_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_4 },
4705 { &hf_rrlp_utcDeltaTlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4706 { NULL, 0, 0, NULL }
4709 static int
4710 dissect_rrlp_UTCmodelSet2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4711 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4712 ett_rrlp_UTCmodelSet2, UTCmodelSet2_sequence);
4714 return offset;
4718 static const per_sequence_t UTCmodelSet3_sequence[] = {
4719 { &hf_rrlp_nA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_1461 },
4720 { &hf_rrlp_tauC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4721 { &hf_rrlp_b1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M1024_1023 },
4722 { &hf_rrlp_b2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M512_511 },
4723 { &hf_rrlp_kp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_BIT_STRING_SIZE_2 },
4724 { NULL, 0, 0, NULL }
4727 static int
4728 dissect_rrlp_UTCmodelSet3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4729 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4730 ett_rrlp_UTCmodelSet3, UTCmodelSet3_sequence);
4732 return offset;
4736 static const per_sequence_t UTCmodelSet4_sequence[] = {
4737 { &hf_rrlp_utcA1wnt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
4738 { &hf_rrlp_utcA0wnt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
4739 { &hf_rrlp_utcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4740 { &hf_rrlp_utcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4741 { &hf_rrlp_utcDeltaTls , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4742 { &hf_rrlp_utcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
4743 { &hf_rrlp_utcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4744 { &hf_rrlp_utcDeltaTlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4745 { &hf_rrlp_utcStandardID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
4746 { NULL, 0, 0, NULL }
4749 static int
4750 dissect_rrlp_UTCmodelSet4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4751 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4752 ett_rrlp_UTCmodelSet4, UTCmodelSet4_sequence);
4754 return offset;
4758 static const value_string rrlp_GANSSAddUTCModel_vals[] = {
4759 { 0, "utcModel2" },
4760 { 1, "utcModel3" },
4761 { 2, "utcModel4" },
4762 { 0, NULL }
4765 static const per_choice_t GANSSAddUTCModel_choice[] = {
4766 { 0, &hf_rrlp_utcModel2 , ASN1_EXTENSION_ROOT , dissect_rrlp_UTCmodelSet2 },
4767 { 1, &hf_rrlp_utcModel3 , ASN1_EXTENSION_ROOT , dissect_rrlp_UTCmodelSet3 },
4768 { 2, &hf_rrlp_utcModel4 , ASN1_EXTENSION_ROOT , dissect_rrlp_UTCmodelSet4 },
4769 { 0, NULL, 0, NULL }
4772 static int
4773 dissect_rrlp_GANSSAddUTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4774 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4775 ett_rrlp_GANSSAddUTCModel, GANSSAddUTCModel_choice,
4776 NULL);
4778 return offset;
4782 static const per_sequence_t GANSS_ID1_element_sequence[] = {
4783 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4784 { &hf_rrlp_signalsAvailable, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignals },
4785 { NULL, 0, 0, NULL }
4788 static int
4789 dissect_rrlp_GANSS_ID1_element(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4790 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4791 ett_rrlp_GANSS_ID1_element, GANSS_ID1_element_sequence);
4793 return offset;
4797 static const per_sequence_t GANSS_ID1_sequence_of[1] = {
4798 { &hf_rrlp_GANSS_ID1_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ID1_element },
4801 static int
4802 dissect_rrlp_GANSS_ID1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4803 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4804 ett_rrlp_GANSS_ID1, GANSS_ID1_sequence_of,
4805 1, 64, false);
4807 return offset;
4812 static int
4813 dissect_rrlp_INTEGER_M7_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4814 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4815 -7, 13U, NULL, false);
4817 return offset;
4821 static const per_sequence_t GANSS_ID3_element_sequence[] = {
4822 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4823 { &hf_rrlp_signalsAvailable, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignals },
4824 { &hf_rrlp_channelNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_13 },
4825 { NULL, 0, 0, NULL }
4828 static int
4829 dissect_rrlp_GANSS_ID3_element(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4830 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4831 ett_rrlp_GANSS_ID3_element, GANSS_ID3_element_sequence);
4833 return offset;
4837 static const per_sequence_t GANSS_ID3_sequence_of[1] = {
4838 { &hf_rrlp_GANSS_ID3_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ID3_element },
4841 static int
4842 dissect_rrlp_GANSS_ID3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4843 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4844 ett_rrlp_GANSS_ID3, GANSS_ID3_sequence_of,
4845 1, 64, false);
4847 return offset;
4851 static const value_string rrlp_GANSSAuxiliaryInformation_vals[] = {
4852 { 0, "ganssID1" },
4853 { 1, "ganssID3" },
4854 { 0, NULL }
4857 static const per_choice_t GANSSAuxiliaryInformation_choice[] = {
4858 { 0, &hf_rrlp_ganssID1 , ASN1_EXTENSION_ROOT , dissect_rrlp_GANSS_ID1 },
4859 { 1, &hf_rrlp_ganssID3 , ASN1_EXTENSION_ROOT , dissect_rrlp_GANSS_ID3 },
4860 { 0, NULL, 0, NULL }
4863 static int
4864 dissect_rrlp_GANSSAuxiliaryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4865 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4866 ett_rrlp_GANSSAuxiliaryInformation, GANSSAuxiliaryInformation_choice,
4867 NULL);
4869 return offset;
4873 static const per_sequence_t DGANSSExtensionSgnElement_sequence[] = {
4874 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4875 { &hf_rrlp_udreGrowthRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
4876 { &hf_rrlp_udreValidityTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
4877 { NULL, 0, 0, NULL }
4880 static int
4881 dissect_rrlp_DGANSSExtensionSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4882 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4883 ett_rrlp_DGANSSExtensionSgnElement, DGANSSExtensionSgnElement_sequence);
4885 return offset;
4889 static const per_sequence_t SeqOfDGANSSExtensionSgnElement_sequence_of[1] = {
4890 { &hf_rrlp_SeqOfDGANSSExtensionSgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSExtensionSgnElement },
4893 static int
4894 dissect_rrlp_SeqOfDGANSSExtensionSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4895 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4896 ett_rrlp_SeqOfDGANSSExtensionSgnElement, SeqOfDGANSSExtensionSgnElement_sequence_of,
4897 1, 16, false);
4899 return offset;
4903 static const per_sequence_t DGANSSExtensionSgnTypeElement_sequence[] = {
4904 { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
4905 { &hf_rrlp_dganssExtensionSgnList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfDGANSSExtensionSgnElement },
4906 { NULL, 0, 0, NULL }
4909 static int
4910 dissect_rrlp_DGANSSExtensionSgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4911 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4912 ett_rrlp_DGANSSExtensionSgnTypeElement, DGANSSExtensionSgnTypeElement_sequence);
4914 return offset;
4918 static const per_sequence_t GANSSDiffCorrectionsValidityPeriod_sequence_of[1] = {
4919 { &hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSExtensionSgnTypeElement },
4922 static int
4923 dissect_rrlp_GANSSDiffCorrectionsValidityPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4924 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4925 ett_rrlp_GANSSDiffCorrectionsValidityPeriod, GANSSDiffCorrectionsValidityPeriod_sequence_of,
4926 1, 3, false);
4928 return offset;
4932 static const per_sequence_t GANSSTimeModelElement_R10_Ext_sequence[] = {
4933 { &hf_rrlp_gnssTOID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
4934 { &hf_rrlp_deltaT , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
4935 { NULL, 0, 0, NULL }
4938 static int
4939 dissect_rrlp_GANSSTimeModelElement_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4940 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4941 ett_rrlp_GANSSTimeModelElement_R10_Ext, GANSSTimeModelElement_R10_Ext_sequence);
4943 return offset;
4947 static const per_sequence_t SeqOfGANSSTimeModel_R10_Ext_sequence_of[1] = {
4948 { &hf_rrlp_SeqOfGANSSTimeModel_R10_Ext_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTimeModelElement_R10_Ext },
4951 static int
4952 dissect_rrlp_SeqOfGANSSTimeModel_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4953 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4954 ett_rrlp_SeqOfGANSSTimeModel_R10_Ext, SeqOfGANSSTimeModel_R10_Ext_sequence_of,
4955 1, 7, false);
4957 return offset;
4961 static const per_sequence_t GANSSRefMeasurement_R10_Ext_Element_sequence[] = {
4962 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
4963 { &hf_rrlp_azimuthLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
4964 { &hf_rrlp_elevationLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
4965 { NULL, 0, 0, NULL }
4968 static int
4969 dissect_rrlp_GANSSRefMeasurement_R10_Ext_Element(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4970 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4971 ett_rrlp_GANSSRefMeasurement_R10_Ext_Element, GANSSRefMeasurement_R10_Ext_Element_sequence);
4973 return offset;
4977 static const per_sequence_t GANSSRefMeasurementAssist_R10_Ext_sequence_of[1] = {
4978 { &hf_rrlp_GANSSRefMeasurementAssist_R10_Ext_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefMeasurement_R10_Ext_Element },
4981 static int
4982 dissect_rrlp_GANSSRefMeasurementAssist_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4983 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4984 ett_rrlp_GANSSRefMeasurementAssist_R10_Ext, GANSSRefMeasurementAssist_R10_Ext_sequence_of,
4985 1, 16, false);
4987 return offset;
4991 static const per_sequence_t GANSSAlmanacModel_R10_Ext_sequence[] = {
4992 { &hf_rrlp_completeAlmanacProvided, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
4993 { NULL, 0, 0, NULL }
4996 static int
4997 dissect_rrlp_GANSSAlmanacModel_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4998 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4999 ett_rrlp_GANSSAlmanacModel_R10_Ext, GANSSAlmanacModel_R10_Ext_sequence);
5001 return offset;
5005 static const per_sequence_t GANSSGenericAssistDataElement_sequence[] = {
5006 { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
5007 { &hf_rrlp_ganssTimeModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSTimeModel },
5008 { &hf_rrlp_ganssDiffCorrections, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDiffCorrections },
5009 { &hf_rrlp_ganssNavigationModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSNavModel },
5010 { &hf_rrlp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRealTimeIntegrity },
5011 { &hf_rrlp_ganssDataBitAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDataBitAssist },
5012 { &hf_rrlp_ganssRefMeasurementAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefMeasurementAssist },
5013 { &hf_rrlp_ganssAlmanacModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAlmanacModel },
5014 { &hf_rrlp_ganssUTCModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSUTCModel },
5015 { &hf_rrlp_ganssEphemerisExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisExtension },
5016 { &hf_rrlp_ganssEphemerisExtCheck, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisExtensionCheck },
5017 { &hf_rrlp_sbasID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
5018 { &hf_rrlp_ganssAddUTCModel, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAddUTCModel },
5019 { &hf_rrlp_ganssAuxiliaryInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAuxiliaryInformation },
5020 { &hf_rrlp_ganssDiffCorrectionsValidityPeriod, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSDiffCorrectionsValidityPeriod },
5021 { &hf_rrlp_ganssTimeModel_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSTimeModel_R10_Ext },
5022 { &hf_rrlp_ganssRefMeasurementAssist_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSRefMeasurementAssist_R10_Ext },
5023 { &hf_rrlp_ganssAlmanacModel_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAlmanacModel_R10_Ext },
5024 { NULL, 0, 0, NULL }
5027 static int
5028 dissect_rrlp_GANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5029 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5030 ett_rrlp_GANSSGenericAssistDataElement, GANSSGenericAssistDataElement_sequence);
5032 return offset;
5036 static const per_sequence_t SeqOfGANSSGenericAssistDataElement_sequence_of[1] = {
5037 { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSGenericAssistDataElement },
5040 static int
5041 dissect_rrlp_SeqOfGANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5042 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5043 ett_rrlp_SeqOfGANSSGenericAssistDataElement, SeqOfGANSSGenericAssistDataElement_sequence_of,
5044 1, 8, false);
5046 return offset;
5050 static const per_sequence_t GANSS_ControlHeader_sequence[] = {
5051 { &hf_rrlp_ganssCommonAssistData, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSCommonAssistData },
5052 { &hf_rrlp_ganssGenericAssistDataList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSGenericAssistDataElement },
5053 { NULL, 0, 0, NULL }
5056 static int
5057 dissect_rrlp_GANSS_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5058 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5059 ett_rrlp_GANSS_ControlHeader, GANSS_ControlHeader_sequence);
5061 return offset;
5065 static const per_sequence_t GANSS_AssistData_sequence[] = {
5066 { &hf_rrlp_ganss_controlHeader, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ControlHeader },
5067 { NULL, 0, 0, NULL }
5070 static int
5071 dissect_rrlp_GANSS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5072 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5073 ett_rrlp_GANSS_AssistData, GANSS_AssistData_sequence);
5075 return offset;
5080 static int
5081 dissect_rrlp_RequiredResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5082 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5083 1U, 128U, NULL, false);
5085 return offset;
5089 static const per_sequence_t GPSEphemerisExtensionTime_sequence[] = {
5090 { &hf_rrlp_gpsWeek , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSWeek },
5091 { &hf_rrlp_gpsTOW_02 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_604799 },
5092 { NULL, 0, 0, NULL }
5095 static int
5096 dissect_rrlp_GPSEphemerisExtensionTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5097 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5098 ett_rrlp_GPSEphemerisExtensionTime, GPSEphemerisExtensionTime_sequence);
5100 return offset;
5104 static const per_sequence_t GPSEphemerisExtensionHeader_sequence[] = {
5105 { &hf_rrlp_timeofEstimation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisExtensionTime },
5106 { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_8 },
5107 { &hf_rrlp_ephemerisExtensionDuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_512 },
5108 { NULL, 0, 0, NULL }
5111 static int
5112 dissect_rrlp_GPSEphemerisExtensionHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5113 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5114 ett_rrlp_GPSEphemerisExtensionHeader, GPSEphemerisExtensionHeader_sequence);
5116 return offset;
5120 static const per_sequence_t GPSClockModel_sequence[] = {
5121 { &hf_rrlp_af2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
5122 { &hf_rrlp_af1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
5123 { &hf_rrlp_af0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
5124 { &hf_rrlp_tgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
5125 { NULL, 0, 0, NULL }
5128 static int
5129 dissect_rrlp_GPSClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5130 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5131 ett_rrlp_GPSClockModel, GPSClockModel_sequence);
5133 return offset;
5137 static const per_sequence_t GPSReferenceOrbit_sequence[] = {
5138 { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
5139 { &hf_rrlp_gpsOrbitModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceNavModel },
5140 { &hf_rrlp_gpsClockModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSClockModel },
5141 { NULL, 0, 0, NULL }
5144 static int
5145 dissect_rrlp_GPSReferenceOrbit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5146 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5147 ett_rrlp_GPSReferenceOrbit, GPSReferenceOrbit_sequence);
5149 return offset;
5153 static const per_sequence_t SeqOfGPSRefOrbit_sequence_of[1] = {
5154 { &hf_rrlp_SeqOfGPSRefOrbit_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSReferenceOrbit },
5157 static int
5158 dissect_rrlp_SeqOfGPSRefOrbit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5159 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5160 ett_rrlp_SeqOfGPSRefOrbit, SeqOfGPSRefOrbit_sequence_of,
5161 1, 32, false);
5163 return offset;
5167 static const per_sequence_t GPSEphemerisDeltaBitSizes_sequence[] = {
5168 { &hf_rrlp_bitsize_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
5169 { &hf_rrlp_bitsize_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5170 { &hf_rrlp_bitsize_delta_m0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
5171 { &hf_rrlp_bitsize_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_24 },
5172 { &hf_rrlp_bitsize_delta_e, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
5173 { &hf_rrlp_bitsize_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_14 },
5174 { &hf_rrlp_bitsize_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
5175 { &hf_rrlp_bitsize_delta_i0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
5176 { &hf_rrlp_bitsize_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
5177 { &hf_rrlp_bitsize_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5178 { &hf_rrlp_bitsize_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5179 { &hf_rrlp_bitsize_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5180 { &hf_rrlp_bitsize_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5181 { &hf_rrlp_bitsize_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5182 { &hf_rrlp_bitsize_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
5183 { &hf_rrlp_bitsize_delta_tgd, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_10 },
5184 { NULL, 0, 0, NULL }
5187 static int
5188 dissect_rrlp_GPSEphemerisDeltaBitSizes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5189 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5190 ett_rrlp_GPSEphemerisDeltaBitSizes, GPSEphemerisDeltaBitSizes_sequence);
5192 return offset;
5196 static const per_sequence_t GPSEphemerisDeltaScales_sequence[] = {
5197 { &hf_rrlp_scale_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5198 { &hf_rrlp_scale_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5199 { &hf_rrlp_scale_delta_m0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5200 { &hf_rrlp_scale_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5201 { &hf_rrlp_scale_delta_e , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5202 { &hf_rrlp_scale_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5203 { &hf_rrlp_scale_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5204 { &hf_rrlp_scale_delta_i0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5205 { &hf_rrlp_scale_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5206 { &hf_rrlp_scale_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5207 { &hf_rrlp_scale_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5208 { &hf_rrlp_scale_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5209 { &hf_rrlp_scale_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5210 { &hf_rrlp_scale_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5211 { &hf_rrlp_scale_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5212 { &hf_rrlp_scale_delta_tgd, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
5213 { NULL, 0, 0, NULL }
5216 static int
5217 dissect_rrlp_GPSEphemerisDeltaScales(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5218 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5219 ett_rrlp_GPSEphemerisDeltaScales, GPSEphemerisDeltaScales_sequence);
5221 return offset;
5225 static const per_sequence_t GPSDeltaEpochHeader_sequence[] = {
5226 { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_1_8 },
5227 { &hf_rrlp_ephemerisDeltaSizes_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisDeltaBitSizes },
5228 { &hf_rrlp_ephemerisDeltaScales_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisDeltaScales },
5229 { NULL, 0, 0, NULL }
5232 static int
5233 dissect_rrlp_GPSDeltaEpochHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5234 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5235 ett_rrlp_GPSDeltaEpochHeader, GPSDeltaEpochHeader_sequence);
5237 return offset;
5242 static int
5243 dissect_rrlp_OCTET_STRING_SIZE_1_47(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5244 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5245 1, 47, false, NULL);
5247 return offset;
5251 static const per_sequence_t GPSDeltaElementList_sequence_of[1] = {
5252 { &hf_rrlp_GPSDeltaElementList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OCTET_STRING_SIZE_1_47 },
5255 static int
5256 dissect_rrlp_GPSDeltaElementList(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_rrlp_GPSDeltaElementList, GPSDeltaElementList_sequence_of,
5259 1, 32, false);
5261 return offset;
5265 static const per_sequence_t GPSEphemerisDeltaEpoch_sequence[] = {
5266 { &hf_rrlp_gpsDeltaEpochHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSDeltaEpochHeader },
5267 { &hf_rrlp_gpsDeltaElementList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSDeltaElementList },
5268 { NULL, 0, 0, NULL }
5271 static int
5272 dissect_rrlp_GPSEphemerisDeltaEpoch(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5273 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5274 ett_rrlp_GPSEphemerisDeltaEpoch, GPSEphemerisDeltaEpoch_sequence);
5276 return offset;
5280 static const per_sequence_t GPSEphemerisDeltaMatrix_sequence_of[1] = {
5281 { &hf_rrlp_GPSEphemerisDeltaMatrix_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisDeltaEpoch },
5284 static int
5285 dissect_rrlp_GPSEphemerisDeltaMatrix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5286 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5287 ett_rrlp_GPSEphemerisDeltaMatrix, GPSEphemerisDeltaMatrix_sequence_of,
5288 1, 128, false);
5290 return offset;
5294 static const per_sequence_t GPSEphemerisExtension_sequence[] = {
5295 { &hf_rrlp_gpsEphemerisHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisExtensionHeader },
5296 { &hf_rrlp_gpsReferenceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGPSRefOrbit },
5297 { &hf_rrlp_gpsephemerisDeltaMatrix, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisDeltaMatrix },
5298 { NULL, 0, 0, NULL }
5301 static int
5302 dissect_rrlp_GPSEphemerisExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5303 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5304 ett_rrlp_GPSEphemerisExtension, GPSEphemerisExtension_sequence);
5306 return offset;
5311 static int
5312 dissect_rrlp_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5313 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5314 32, 32, false, NULL, 0, NULL, NULL);
5316 return offset;
5320 static const per_sequence_t GPSSatEventsInfo_sequence[] = {
5321 { &hf_rrlp_eventOccured_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_32 },
5322 { &hf_rrlp_futureEventNoted_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_32 },
5323 { NULL, 0, 0, NULL }
5326 static int
5327 dissect_rrlp_GPSSatEventsInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5328 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5329 ett_rrlp_GPSSatEventsInfo, GPSSatEventsInfo_sequence);
5331 return offset;
5335 static const per_sequence_t GPSEphemerisExtensionCheck_sequence[] = {
5336 { &hf_rrlp_gpsBeginTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisExtensionTime },
5337 { &hf_rrlp_gpsEndTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisExtensionTime },
5338 { &hf_rrlp_gpsSatEventsInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSSatEventsInfo },
5339 { NULL, 0, 0, NULL }
5342 static int
5343 dissect_rrlp_GPSEphemerisExtensionCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5344 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5345 ett_rrlp_GPSEphemerisExtensionCheck, GPSEphemerisExtensionCheck_sequence);
5347 return offset;
5351 static const per_sequence_t DGPSExtensionSatElement_sequence[] = {
5352 { &hf_rrlp_satelliteID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
5353 { &hf_rrlp_udreGrowthRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
5354 { &hf_rrlp_udreValidityTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
5355 { NULL, 0, 0, NULL }
5358 static int
5359 dissect_rrlp_DGPSExtensionSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5360 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5361 ett_rrlp_DGPSExtensionSatElement, DGPSExtensionSatElement_sequence);
5363 return offset;
5367 static const per_sequence_t DGPSCorrectionsValidityPeriod_sequence_of[1] = {
5368 { &hf_rrlp_DGPSCorrectionsValidityPeriod_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGPSExtensionSatElement },
5371 static int
5372 dissect_rrlp_DGPSCorrectionsValidityPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5373 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5374 ett_rrlp_DGPSCorrectionsValidityPeriod, DGPSCorrectionsValidityPeriod_sequence_of,
5375 1, 16, false);
5377 return offset;
5381 static const per_sequence_t GPSReferenceTime_R10_Ext_sequence[] = {
5382 { &hf_rrlp_gpsWeekCycleNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
5383 { NULL, 0, 0, NULL }
5386 static int
5387 dissect_rrlp_GPSReferenceTime_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5388 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5389 ett_rrlp_GPSReferenceTime_R10_Ext, GPSReferenceTime_R10_Ext_sequence);
5391 return offset;
5395 static const per_sequence_t GPSAcquisAssist_R10_Ext_Element_sequence[] = {
5396 { &hf_rrlp_satelliteID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
5397 { &hf_rrlp_azimuthLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
5398 { &hf_rrlp_elevationLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
5399 { NULL, 0, 0, NULL }
5402 static int
5403 dissect_rrlp_GPSAcquisAssist_R10_Ext_Element(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5404 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5405 ett_rrlp_GPSAcquisAssist_R10_Ext_Element, GPSAcquisAssist_R10_Ext_Element_sequence);
5407 return offset;
5411 static const per_sequence_t GPSAcquisAssist_R10_Ext_sequence_of[1] = {
5412 { &hf_rrlp_GPSAcquisAssist_R10_Ext_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSAcquisAssist_R10_Ext_Element },
5415 static int
5416 dissect_rrlp_GPSAcquisAssist_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5417 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5418 ett_rrlp_GPSAcquisAssist_R10_Ext, GPSAcquisAssist_R10_Ext_sequence_of,
5419 1, 16, false);
5421 return offset;
5425 static const per_sequence_t GPSAlmanac_R10_Ext_sequence[] = {
5426 { &hf_rrlp_completeAlmanacProvided, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
5427 { NULL, 0, 0, NULL }
5430 static int
5431 dissect_rrlp_GPSAlmanac_R10_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5432 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5433 ett_rrlp_GPSAlmanac_R10_Ext, GPSAlmanac_R10_Ext_sequence);
5435 return offset;
5439 static const per_sequence_t Add_GPS_ControlHeader_sequence[] = {
5440 { &hf_rrlp_gpsEphemerisExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisExtension },
5441 { &hf_rrlp_gpsEphemerisExtensionCheck, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisExtensionCheck },
5442 { &hf_rrlp_dgpsCorrectionsValidityPeriod, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_DGPSCorrectionsValidityPeriod },
5443 { &hf_rrlp_gpsReferenceTime_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GPSReferenceTime_R10_Ext },
5444 { &hf_rrlp_gpsAcquisAssist_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GPSAcquisAssist_R10_Ext },
5445 { &hf_rrlp_gpsAlmanac_R10_Ext, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GPSAlmanac_R10_Ext },
5446 { NULL, 0, 0, NULL }
5449 static int
5450 dissect_rrlp_Add_GPS_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5451 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5452 ett_rrlp_Add_GPS_ControlHeader, Add_GPS_ControlHeader_sequence);
5454 return offset;
5458 static const per_sequence_t Add_GPS_AssistData_sequence[] = {
5459 { &hf_rrlp_add_GPS_controlHeader, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Add_GPS_ControlHeader },
5460 { NULL, 0, 0, NULL }
5463 static int
5464 dissect_rrlp_Add_GPS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5465 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5466 ett_rrlp_Add_GPS_AssistData, Add_GPS_AssistData_sequence);
5468 return offset;
5472 static const per_sequence_t Rel7_MsrPosition_Req_Extension_sequence[] = {
5473 { &hf_rrlp_velocityRequested, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
5474 { &hf_rrlp_ganssPositionMethod, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositioningMethod },
5475 { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData },
5476 { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
5477 { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
5478 { &hf_rrlp_requiredResponseTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_RequiredResponseTime },
5479 { &hf_rrlp_add_GPS_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Add_GPS_AssistData },
5480 { &hf_rrlp_ganssMultiFreqMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
5481 { NULL, 0, 0, NULL }
5484 static int
5485 dissect_rrlp_Rel7_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5486 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5487 ett_rrlp_Rel7_MsrPosition_Req_Extension, Rel7_MsrPosition_Req_Extension_sequence);
5489 return offset;
5493 static const per_sequence_t MsrPosition_Req_sequence[] = {
5494 { &hf_rrlp_positionInstruct, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionInstruct },
5495 { &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData },
5496 { &hf_rrlp_msrAssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData },
5497 { &hf_rrlp_systemInfoAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SystemInfoAssistData },
5498 { &hf_rrlp_gps_AssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPS_AssistData },
5499 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
5500 { &hf_rrlp_rel98_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_MsrPosition_Req_Extension },
5501 { &hf_rrlp_rel5_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_MsrPosition_Req_Extension },
5502 { &hf_rrlp_rel7_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_MsrPosition_Req_Extension },
5503 { NULL, 0, 0, NULL }
5506 static int
5507 dissect_rrlp_MsrPosition_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5508 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5509 ett_rrlp_MsrPosition_Req, MsrPosition_Req_sequence);
5511 return offset;
5516 static int
5517 dissect_rrlp_INTEGER_2_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5518 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5519 2U, 3U, NULL, false);
5521 return offset;
5526 static int
5527 dissect_rrlp_INTEGER_1_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5528 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5529 1U, 3U, NULL, false);
5531 return offset;
5535 static const value_string rrlp_ReferenceRelation_vals[] = {
5536 { 0, "secondBTSThirdSet" },
5537 { 1, "secondBTSSecondSet" },
5538 { 2, "firstBTSFirstSet" },
5539 { 0, NULL }
5543 static int
5544 dissect_rrlp_ReferenceRelation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5545 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5546 3, NULL, false, 0, NULL);
5548 return offset;
5552 static const per_sequence_t MultipleSets_sequence[] = {
5553 { &hf_rrlp_nbrOfSets , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_2_3 },
5554 { &hf_rrlp_nbrOfReferenceBTSs, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_3 },
5555 { &hf_rrlp_referenceRelation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceRelation },
5556 { NULL, 0, 0, NULL }
5559 static int
5560 dissect_rrlp_MultipleSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5561 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5562 ett_rrlp_MultipleSets, MultipleSets_sequence);
5564 return offset;
5568 static const per_sequence_t BSICAndCarrier_sequence[] = {
5569 { &hf_rrlp_carrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
5570 { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
5571 { NULL, 0, 0, NULL }
5574 static int
5575 dissect_rrlp_BSICAndCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5576 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5577 ett_rrlp_BSICAndCarrier, BSICAndCarrier_sequence);
5579 return offset;
5584 static int
5585 dissect_rrlp_CellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5586 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5587 0U, 65535U, NULL, false);
5589 return offset;
5594 static int
5595 dissect_rrlp_RequestIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5596 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5597 1U, 16U, NULL, false);
5599 return offset;
5604 static int
5605 dissect_rrlp_SystemInfoIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5606 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5607 1U, 32U, NULL, false);
5609 return offset;
5614 static int
5615 dissect_rrlp_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5616 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5617 0U, 65535U, NULL, false);
5619 return offset;
5623 static const per_sequence_t CellIDAndLAC_sequence[] = {
5624 { &hf_rrlp_referenceLAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_LAC },
5625 { &hf_rrlp_referenceCI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_CellID },
5626 { NULL, 0, 0, NULL }
5629 static int
5630 dissect_rrlp_CellIDAndLAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5631 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5632 ett_rrlp_CellIDAndLAC, CellIDAndLAC_sequence);
5634 return offset;
5638 static const value_string rrlp_ReferenceIdentityType_vals[] = {
5639 { 0, "bsicAndCarrier" },
5640 { 1, "ci" },
5641 { 2, "requestIndex" },
5642 { 3, "systemInfoIndex" },
5643 { 4, "ciAndLAC" },
5644 { 0, NULL }
5647 static const per_choice_t ReferenceIdentityType_choice[] = {
5648 { 0, &hf_rrlp_bsicAndCarrier , ASN1_NO_EXTENSIONS , dissect_rrlp_BSICAndCarrier },
5649 { 1, &hf_rrlp_ci , ASN1_NO_EXTENSIONS , dissect_rrlp_CellID },
5650 { 2, &hf_rrlp_requestIndex , ASN1_NO_EXTENSIONS , dissect_rrlp_RequestIndex },
5651 { 3, &hf_rrlp_systemInfoIndex, ASN1_NO_EXTENSIONS , dissect_rrlp_SystemInfoIndex },
5652 { 4, &hf_rrlp_ciAndLAC , ASN1_NO_EXTENSIONS , dissect_rrlp_CellIDAndLAC },
5653 { 0, NULL, 0, NULL }
5656 static int
5657 dissect_rrlp_ReferenceIdentityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5658 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5659 ett_rrlp_ReferenceIdentityType, ReferenceIdentityType_choice,
5660 NULL);
5662 return offset;
5666 static const per_sequence_t SeqOfReferenceIdentityType_sequence_of[1] = {
5667 { &hf_rrlp_SeqOfReferenceIdentityType_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceIdentityType },
5670 static int
5671 dissect_rrlp_SeqOfReferenceIdentityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5672 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5673 ett_rrlp_SeqOfReferenceIdentityType, SeqOfReferenceIdentityType_sequence_of,
5674 1, 3, false);
5676 return offset;
5680 static const per_sequence_t ReferenceIdentity_sequence[] = {
5681 { &hf_rrlp_refBTSList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfReferenceIdentityType },
5682 { NULL, 0, 0, NULL }
5685 static int
5686 dissect_rrlp_ReferenceIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5687 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5688 ett_rrlp_ReferenceIdentity, ReferenceIdentity_sequence);
5690 return offset;
5695 static int
5696 dissect_rrlp_INTEGER_0_42431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5697 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5698 0U, 42431U, NULL, false);
5700 return offset;
5705 static int
5706 dissect_rrlp_ModuloTimeSlot(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5707 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5708 0U, 3U, NULL, false);
5710 return offset;
5715 static int
5716 dissect_rrlp_RefQuality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5717 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5718 0U, 31U, NULL, false);
5720 return offset;
5725 static int
5726 dissect_rrlp_NumOfMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5727 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5728 0U, 7U, NULL, false);
5730 return offset;
5734 static const per_sequence_t TOA_MeasurementsOfRef_sequence[] = {
5735 { &hf_rrlp_refQuality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RefQuality },
5736 { &hf_rrlp_numOfMeasurements, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_NumOfMeasurements },
5737 { NULL, 0, 0, NULL }
5740 static int
5741 dissect_rrlp_TOA_MeasurementsOfRef(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5742 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5743 ett_rrlp_TOA_MeasurementsOfRef, TOA_MeasurementsOfRef_sequence);
5745 return offset;
5750 static int
5751 dissect_rrlp_StdResolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5752 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5753 0U, 3U, NULL, false);
5755 return offset;
5760 static int
5761 dissect_rrlp_INTEGER_0_960(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5762 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5763 0U, 960U, NULL, false);
5765 return offset;
5769 static const per_sequence_t MultiFrameCarrier_sequence[] = {
5770 { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
5771 { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
5772 { NULL, 0, 0, NULL }
5775 static int
5776 dissect_rrlp_MultiFrameCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5777 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5778 ett_rrlp_MultiFrameCarrier, MultiFrameCarrier_sequence);
5780 return offset;
5784 static const value_string rrlp_NeighborIdentity_vals[] = {
5785 { 0, "bsicAndCarrier" },
5786 { 1, "ci" },
5787 { 2, "multiFrameCarrier" },
5788 { 3, "requestIndex" },
5789 { 4, "systemInfoIndex" },
5790 { 5, "ciAndLAC" },
5791 { 0, NULL }
5794 static const per_choice_t NeighborIdentity_choice[] = {
5795 { 0, &hf_rrlp_bsicAndCarrier , ASN1_NO_EXTENSIONS , dissect_rrlp_BSICAndCarrier },
5796 { 1, &hf_rrlp_ci , ASN1_NO_EXTENSIONS , dissect_rrlp_CellID },
5797 { 2, &hf_rrlp_multiFrameCarrier, ASN1_NO_EXTENSIONS , dissect_rrlp_MultiFrameCarrier },
5798 { 3, &hf_rrlp_requestIndex , ASN1_NO_EXTENSIONS , dissect_rrlp_RequestIndex },
5799 { 4, &hf_rrlp_systemInfoIndex, ASN1_NO_EXTENSIONS , dissect_rrlp_SystemInfoIndex },
5800 { 5, &hf_rrlp_ciAndLAC , ASN1_NO_EXTENSIONS , dissect_rrlp_CellIDAndLAC },
5801 { 0, NULL, 0, NULL }
5804 static int
5805 dissect_rrlp_NeighborIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5806 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5807 ett_rrlp_NeighborIdentity, NeighborIdentity_choice,
5808 NULL);
5810 return offset;
5814 static const per_sequence_t EOTDQuality_sequence[] = {
5815 { &hf_rrlp_nbrOfMeasurements, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
5816 { &hf_rrlp_stdOfEOTD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
5817 { NULL, 0, 0, NULL }
5820 static int
5821 dissect_rrlp_EOTDQuality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5822 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5823 ett_rrlp_EOTDQuality, EOTDQuality_sequence);
5825 return offset;
5830 static int
5831 dissect_rrlp_OTDValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5832 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5833 0U, 39999U, NULL, false);
5835 return offset;
5839 static const per_sequence_t OTD_MeasurementWithID_sequence[] = {
5840 { &hf_rrlp_neighborIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_NeighborIdentity },
5841 { &hf_rrlp_nborTimeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ModuloTimeSlot },
5842 { &hf_rrlp_eotdQuality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_EOTDQuality },
5843 { &hf_rrlp_otdValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTDValue },
5844 { NULL, 0, 0, NULL }
5847 static int
5848 dissect_rrlp_OTD_MeasurementWithID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5849 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5850 ett_rrlp_OTD_MeasurementWithID, OTD_MeasurementWithID_sequence);
5852 return offset;
5857 static int
5858 dissect_rrlp_OTD_FirstSetMsrs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5859 offset = dissect_rrlp_OTD_MeasurementWithID(tvb, offset, actx, tree, hf_index);
5861 return offset;
5865 static const per_sequence_t SeqOfOTD_FirstSetMsrs_sequence_of[1] = {
5866 { &hf_rrlp_SeqOfOTD_FirstSetMsrs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTD_FirstSetMsrs },
5869 static int
5870 dissect_rrlp_SeqOfOTD_FirstSetMsrs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5871 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5872 ett_rrlp_SeqOfOTD_FirstSetMsrs, SeqOfOTD_FirstSetMsrs_sequence_of,
5873 1, 10, false);
5875 return offset;
5879 static const per_sequence_t OTD_MsrElementFirst_sequence[] = {
5880 { &hf_rrlp_refFrameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_42431 },
5881 { &hf_rrlp_referenceTimeSlot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ModuloTimeSlot },
5882 { &hf_rrlp_toaMeasurementsOfRef, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TOA_MeasurementsOfRef },
5883 { &hf_rrlp_stdResolution , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_StdResolution },
5884 { &hf_rrlp_taCorrection , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_960 },
5885 { &hf_rrlp_otd_FirstSetMsrs, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfOTD_FirstSetMsrs },
5886 { NULL, 0, 0, NULL }
5889 static int
5890 dissect_rrlp_OTD_MsrElementFirst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5891 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5892 ett_rrlp_OTD_MsrElementFirst, OTD_MsrElementFirst_sequence);
5894 return offset;
5898 static const per_sequence_t OTD_Measurement_sequence[] = {
5899 { &hf_rrlp_nborTimeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ModuloTimeSlot },
5900 { &hf_rrlp_eotdQuality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_EOTDQuality },
5901 { &hf_rrlp_otdValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTDValue },
5902 { NULL, 0, 0, NULL }
5905 static int
5906 dissect_rrlp_OTD_Measurement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5907 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5908 ett_rrlp_OTD_Measurement, OTD_Measurement_sequence);
5910 return offset;
5914 static const value_string rrlp_OTD_MsrsOfOtherSets_vals[] = {
5915 { 0, "identityNotPresent" },
5916 { 1, "identityPresent" },
5917 { 0, NULL }
5920 static const per_choice_t OTD_MsrsOfOtherSets_choice[] = {
5921 { 0, &hf_rrlp_identityNotPresent, ASN1_NO_EXTENSIONS , dissect_rrlp_OTD_Measurement },
5922 { 1, &hf_rrlp_identityPresent, ASN1_NO_EXTENSIONS , dissect_rrlp_OTD_MeasurementWithID },
5923 { 0, NULL, 0, NULL }
5926 static int
5927 dissect_rrlp_OTD_MsrsOfOtherSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5928 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5929 ett_rrlp_OTD_MsrsOfOtherSets, OTD_MsrsOfOtherSets_choice,
5930 NULL);
5932 return offset;
5936 static const per_sequence_t SeqOfOTD_MsrsOfOtherSets_sequence_of[1] = {
5937 { &hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTD_MsrsOfOtherSets },
5940 static int
5941 dissect_rrlp_SeqOfOTD_MsrsOfOtherSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5942 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5943 ett_rrlp_SeqOfOTD_MsrsOfOtherSets, SeqOfOTD_MsrsOfOtherSets_sequence_of,
5944 1, 10, false);
5946 return offset;
5950 static const per_sequence_t OTD_MsrElementRest_sequence[] = {
5951 { &hf_rrlp_refFrameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_42431 },
5952 { &hf_rrlp_referenceTimeSlot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ModuloTimeSlot },
5953 { &hf_rrlp_toaMeasurementsOfRef, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TOA_MeasurementsOfRef },
5954 { &hf_rrlp_stdResolution , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_StdResolution },
5955 { &hf_rrlp_taCorrection , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_960 },
5956 { &hf_rrlp_otd_MsrsOfOtherSets, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfOTD_MsrsOfOtherSets },
5957 { NULL, 0, 0, NULL }
5960 static int
5961 dissect_rrlp_OTD_MsrElementRest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5962 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5963 ett_rrlp_OTD_MsrElementRest, OTD_MsrElementRest_sequence);
5965 return offset;
5969 static const per_sequence_t SeqOfOTD_MsrElementRest_sequence_of[1] = {
5970 { &hf_rrlp_SeqOfOTD_MsrElementRest_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTD_MsrElementRest },
5973 static int
5974 dissect_rrlp_SeqOfOTD_MsrElementRest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5975 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5976 ett_rrlp_SeqOfOTD_MsrElementRest, SeqOfOTD_MsrElementRest_sequence_of,
5977 1, 2, false);
5979 return offset;
5983 static const per_sequence_t OTD_MeasureInfo_sequence[] = {
5984 { &hf_rrlp_otdMsrFirstSets, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTD_MsrElementFirst },
5985 { &hf_rrlp_otdMsrRestSets , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfOTD_MsrElementRest },
5986 { NULL, 0, 0, NULL }
5989 static int
5990 dissect_rrlp_OTD_MeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5991 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5992 ett_rrlp_OTD_MeasureInfo, OTD_MeasureInfo_sequence);
5994 return offset;
5999 static int
6000 dissect_rrlp_INTEGER_0_14399999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6001 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6002 0U, 14399999U, NULL, false);
6004 return offset;
6008 static const value_string rrlp_FixType_vals[] = {
6009 { 0, "twoDFix" },
6010 { 1, "threeDFix" },
6011 { 0, NULL }
6015 static int
6016 dissect_rrlp_FixType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6017 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6018 0U, 1U, NULL, false);
6020 return offset;
6024 static const per_sequence_t LocationInfo_sequence[] = {
6025 { &hf_rrlp_refFrame , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
6026 { &hf_rrlp_gpsTOW , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_14399999 },
6027 { &hf_rrlp_fixType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FixType },
6028 { &hf_rrlp_posEstimate , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
6029 { NULL, 0, 0, NULL }
6032 static int
6033 dissect_rrlp_LocationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6034 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6035 ett_rrlp_LocationInfo, LocationInfo_sequence);
6037 return offset;
6042 static int
6043 dissect_rrlp_GPSTOW24b(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6044 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6045 0U, 14399999U, NULL, false);
6047 return offset;
6052 static int
6053 dissect_rrlp_INTEGER_0_1024(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6054 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6055 0U, 1024U, NULL, false);
6057 return offset;
6061 static const value_string rrlp_MpathIndic_vals[] = {
6062 { 0, "notMeasured" },
6063 { 1, "low" },
6064 { 2, "medium" },
6065 { 3, "high" },
6066 { 0, NULL }
6070 static int
6071 dissect_rrlp_MpathIndic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6072 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6073 4, NULL, false, 0, NULL);
6075 return offset;
6079 static const per_sequence_t GPS_MsrElement_sequence[] = {
6080 { &hf_rrlp_satelliteID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
6081 { &hf_rrlp_cNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
6082 { &hf_rrlp_doppler , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
6083 { &hf_rrlp_wholeChips , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 },
6084 { &hf_rrlp_fracChips , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1024 },
6085 { &hf_rrlp_mpathIndic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MpathIndic },
6086 { &hf_rrlp_pseuRangeRMSErr, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
6087 { NULL, 0, 0, NULL }
6090 static int
6091 dissect_rrlp_GPS_MsrElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6092 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6093 ett_rrlp_GPS_MsrElement, GPS_MsrElement_sequence);
6095 return offset;
6099 static const per_sequence_t SeqOfGPS_MsrElement_sequence_of[1] = {
6100 { &hf_rrlp_SeqOfGPS_MsrElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPS_MsrElement },
6103 static int
6104 dissect_rrlp_SeqOfGPS_MsrElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6105 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6106 ett_rrlp_SeqOfGPS_MsrElement, SeqOfGPS_MsrElement_sequence_of,
6107 1, 16, false);
6109 return offset;
6113 static const per_sequence_t GPS_MsrSetElement_sequence[] = {
6114 { &hf_rrlp_refFrame , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_65535 },
6115 { &hf_rrlp_gpsTOW_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOW24b },
6116 { &hf_rrlp_gps_msrList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGPS_MsrElement },
6117 { NULL, 0, 0, NULL }
6120 static int
6121 dissect_rrlp_GPS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6122 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6123 ett_rrlp_GPS_MsrSetElement, GPS_MsrSetElement_sequence);
6125 return offset;
6129 static const per_sequence_t SeqOfGPS_MsrSetElement_sequence_of[1] = {
6130 { &hf_rrlp_SeqOfGPS_MsrSetElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPS_MsrSetElement },
6133 static int
6134 dissect_rrlp_SeqOfGPS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6135 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6136 ett_rrlp_SeqOfGPS_MsrSetElement, SeqOfGPS_MsrSetElement_sequence_of,
6137 1, 3, false);
6139 return offset;
6143 static const per_sequence_t GPS_MeasureInfo_sequence[] = {
6144 { &hf_rrlp_gpsMsrSetList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGPS_MsrSetElement },
6145 { NULL, 0, 0, NULL }
6148 static int
6149 dissect_rrlp_GPS_MeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6150 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6151 ett_rrlp_GPS_MeasureInfo, GPS_MeasureInfo_sequence);
6153 return offset;
6157 static const value_string rrlp_LocErrorReason_vals[] = {
6158 { 0, "unDefined" },
6159 { 1, "notEnoughBTSs" },
6160 { 2, "notEnoughSats" },
6161 { 3, "eotdLocCalAssDataMissing" },
6162 { 4, "eotdAssDataMissing" },
6163 { 5, "gpsLocCalAssDataMissing" },
6164 { 6, "gpsAssDataMissing" },
6165 { 7, "methodNotSupported" },
6166 { 8, "notProcessed" },
6167 { 9, "refBTSForGPSNotServingBTS" },
6168 { 10, "refBTSForEOTDNotServingBTS" },
6169 { 11, "notEnoughGANSSSats" },
6170 { 12, "ganssAssDataMissing" },
6171 { 13, "refBTSForGANSSNotServingBTS" },
6172 { 0, NULL }
6176 static int
6177 dissect_rrlp_LocErrorReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6178 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6179 11, NULL, true, 3, NULL);
6181 return offset;
6186 static int
6187 dissect_rrlp_GPSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6188 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6189 1, maxGPSAssistanceData, false, NULL);
6191 return offset;
6196 static int
6197 dissect_rrlp_GANSSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6198 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
6199 1, maxGANSSAssistanceData, false, NULL);
6201 return offset;
6205 static const per_sequence_t AdditionalAssistanceData_sequence[] = {
6206 { &hf_rrlp_gpsAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistanceData },
6207 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
6208 { &hf_rrlp_ganssAssistanceData, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceData },
6209 { NULL, 0, 0, NULL }
6212 static int
6213 dissect_rrlp_AdditionalAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6214 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6215 ett_rrlp_AdditionalAssistanceData, AdditionalAssistanceData_sequence);
6217 return offset;
6221 static const per_sequence_t LocationError_sequence[] = {
6222 { &hf_rrlp_locErrorReason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_LocErrorReason },
6223 { &hf_rrlp_additionalAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AdditionalAssistanceData },
6224 { NULL, 0, 0, NULL }
6227 static int
6228 dissect_rrlp_LocationError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6229 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6230 ett_rrlp_LocationError, LocationError_sequence);
6232 return offset;
6236 static const per_sequence_t SeqOfOTD_FirstSetMsrs_R98_Ext_sequence_of[1] = {
6237 { &hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTD_FirstSetMsrs },
6240 static int
6241 dissect_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6242 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6243 ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext, SeqOfOTD_FirstSetMsrs_R98_Ext_sequence_of,
6244 1, 5, false);
6246 return offset;
6250 static const per_sequence_t OTD_MsrElementFirst_R98_Ext_sequence[] = {
6251 { &hf_rrlp_otd_FirstSetMsrs_R98_Ext, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext },
6252 { NULL, 0, 0, NULL }
6255 static int
6256 dissect_rrlp_OTD_MsrElementFirst_R98_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6257 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6258 ett_rrlp_OTD_MsrElementFirst_R98_Ext, OTD_MsrElementFirst_R98_Ext_sequence);
6260 return offset;
6264 static const per_sequence_t OTD_MeasureInfo_R98_Ext_sequence[] = {
6265 { &hf_rrlp_otdMsrFirstSets_R98_Ext, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OTD_MsrElementFirst_R98_Ext },
6266 { NULL, 0, 0, NULL }
6269 static int
6270 dissect_rrlp_OTD_MeasureInfo_R98_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6271 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6272 ett_rrlp_OTD_MeasureInfo_R98_Ext, OTD_MeasureInfo_R98_Ext_sequence);
6274 return offset;
6278 static const per_sequence_t T_rel_98_Ext_MeasureInfo_sequence[] = {
6279 { &hf_rrlp_otd_MeasureInfo_R98_Ext, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_OTD_MeasureInfo_R98_Ext },
6280 { NULL, 0, 0, NULL }
6283 static int
6284 dissect_rrlp_T_rel_98_Ext_MeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6285 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6286 ett_rrlp_T_rel_98_Ext_MeasureInfo, T_rel_98_Ext_MeasureInfo_sequence);
6288 return offset;
6293 static int
6294 dissect_rrlp_INTEGER_0_9999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6295 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6296 0U, 9999U, NULL, false);
6298 return offset;
6302 static const per_sequence_t GPSTimeAssistanceMeasurements_sequence[] = {
6303 { &hf_rrlp_referenceFrameMSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
6304 { &hf_rrlp_gpsTowSubms , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_9999 },
6305 { &hf_rrlp_deltaTow , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
6306 { &hf_rrlp_gpsReferenceTimeUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GPSReferenceTimeUncertainty },
6307 { NULL, 0, 0, NULL }
6310 static int
6311 dissect_rrlp_GPSTimeAssistanceMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6312 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6313 ett_rrlp_GPSTimeAssistanceMeasurements, GPSTimeAssistanceMeasurements_sequence);
6315 return offset;
6319 static const per_sequence_t Rel_98_MsrPosition_Rsp_Extension_sequence[] = {
6320 { &hf_rrlp_rel_98_Ext_MeasureInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_T_rel_98_Ext_MeasureInfo },
6321 { &hf_rrlp_timeAssistanceMeasurements, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GPSTimeAssistanceMeasurements },
6322 { NULL, 0, 0, NULL }
6325 static int
6326 dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6327 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6328 ett_rrlp_Rel_98_MsrPosition_Rsp_Extension, Rel_98_MsrPosition_Rsp_Extension_sequence);
6330 return offset;
6335 static int
6336 dissect_rrlp_OTD_MeasureInfo_5_Ext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6337 offset = dissect_rrlp_SeqOfOTD_MsrElementRest(tvb, offset, actx, tree, hf_index);
6339 return offset;
6343 static const value_string rrlp_UlPseudoSegInd_vals[] = {
6344 { 0, "firstOfMany" },
6345 { 1, "secondOfMany" },
6346 { 0, NULL }
6350 static int
6351 dissect_rrlp_UlPseudoSegInd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6352 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6353 2, NULL, false, 0, NULL);
6355 return offset;
6359 static const per_sequence_t Rel_5_MsrPosition_Rsp_Extension_sequence[] = {
6360 { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Extended_reference },
6361 { &hf_rrlp_otd_MeasureInfo_5_Ext, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_OTD_MeasureInfo_5_Ext },
6362 { &hf_rrlp_ulPseudoSegInd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_UlPseudoSegInd },
6363 { NULL, 0, 0, NULL }
6366 static int
6367 dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6368 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6369 ett_rrlp_Rel_5_MsrPosition_Rsp_Extension, Rel_5_MsrPosition_Rsp_Extension_sequence);
6371 return offset;
6375 static const per_sequence_t ReferenceFrame_sequence[] = {
6376 { &hf_rrlp_referenceFN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
6377 { &hf_rrlp_referenceFNMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
6378 { NULL, 0, 0, NULL }
6381 static int
6382 dissect_rrlp_ReferenceFrame(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6383 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6384 ett_rrlp_ReferenceFrame, ReferenceFrame_sequence);
6386 return offset;
6391 static int
6392 dissect_rrlp_GANSSTODm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6393 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6394 0U, 3599999U, NULL, false);
6396 return offset;
6401 static int
6402 dissect_rrlp_INTEGER_0_16384(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6403 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6404 0U, 16384U, NULL, false);
6406 return offset;
6410 static int * const PositionData_bits[] = {
6411 &hf_rrlp_PositionData_e_otd,
6412 &hf_rrlp_PositionData_gps,
6413 &hf_rrlp_PositionData_galileo,
6414 &hf_rrlp_PositionData_sbas,
6415 &hf_rrlp_PositionData_modernizedGPS,
6416 &hf_rrlp_PositionData_qzss,
6417 &hf_rrlp_PositionData_glonass,
6418 NULL
6421 static int
6422 dissect_rrlp_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6423 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6424 3, 16, false, PositionData_bits, 7, NULL, NULL);
6426 return offset;
6430 static const per_sequence_t GANSSLocationInfo_sequence[] = {
6431 { &hf_rrlp_referenceFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame },
6432 { &hf_rrlp_ganssTODm , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm },
6433 { &hf_rrlp_ganssTODFrac , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_16384 },
6434 { &hf_rrlp_ganssTODUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
6435 { &hf_rrlp_ganssTimeID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
6436 { &hf_rrlp_fixType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_FixType },
6437 { &hf_rrlp_posData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionData },
6438 { &hf_rrlp_stationaryIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
6439 { &hf_rrlp_posEstimate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
6440 { NULL, 0, 0, NULL }
6443 static int
6444 dissect_rrlp_GANSSLocationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6445 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6446 ett_rrlp_GANSSLocationInfo, GANSSLocationInfo_sequence);
6448 return offset;
6453 static int
6454 dissect_rrlp_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6455 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6456 0U, 33554431U, NULL, false);
6458 return offset;
6462 static const per_sequence_t GANSS_SgnElement_sequence[] = {
6463 { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
6464 { &hf_rrlp_cNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
6465 { &hf_rrlp_mpathDet , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MpathIndic },
6466 { &hf_rrlp_carrierQualityInd, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
6467 { &hf_rrlp_codePhase_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2097151 },
6468 { &hf_rrlp_integerCodePhase, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
6469 { &hf_rrlp_codePhaseRMSError, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
6470 { &hf_rrlp_doppler , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M32768_32767 },
6471 { &hf_rrlp_adr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_33554431 },
6472 { NULL, 0, 0, NULL }
6475 static int
6476 dissect_rrlp_GANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6477 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6478 ett_rrlp_GANSS_SgnElement, GANSS_SgnElement_sequence);
6480 return offset;
6484 static const per_sequence_t SeqOfGANSS_SgnElement_sequence_of[1] = {
6485 { &hf_rrlp_SeqOfGANSS_SgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnElement },
6488 static int
6489 dissect_rrlp_SeqOfGANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6490 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6491 ett_rrlp_SeqOfGANSS_SgnElement, SeqOfGANSS_SgnElement_sequence_of,
6492 1, 16, false);
6494 return offset;
6498 static const per_sequence_t GANSS_SgnTypeElement_sequence[] = {
6499 { &hf_rrlp_ganssSignalID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
6500 { &hf_rrlp_ganssCodePhaseAmbiguity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
6501 { &hf_rrlp_ganss_SgnList , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnElement },
6502 { NULL, 0, 0, NULL }
6505 static int
6506 dissect_rrlp_GANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6507 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6508 ett_rrlp_GANSS_SgnTypeElement, GANSS_SgnTypeElement_sequence);
6510 return offset;
6514 static const per_sequence_t SeqOfGANSS_SgnTypeElement_sequence_of[1] = {
6515 { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnTypeElement },
6518 static int
6519 dissect_rrlp_SeqOfGANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6520 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6521 ett_rrlp_SeqOfGANSS_SgnTypeElement, SeqOfGANSS_SgnTypeElement_sequence_of,
6522 1, 8, false);
6524 return offset;
6528 static const per_sequence_t GANSS_MsrElement_sequence[] = {
6529 { &hf_rrlp_ganssID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
6530 { &hf_rrlp_ganss_SgnTypeList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnTypeElement },
6531 { NULL, 0, 0, NULL }
6534 static int
6535 dissect_rrlp_GANSS_MsrElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6536 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6537 ett_rrlp_GANSS_MsrElement, GANSS_MsrElement_sequence);
6539 return offset;
6543 static const per_sequence_t SeqOfGANSS_MsrElement_sequence_of[1] = {
6544 { &hf_rrlp_SeqOfGANSS_MsrElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_MsrElement },
6547 static int
6548 dissect_rrlp_SeqOfGANSS_MsrElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6549 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6550 ett_rrlp_SeqOfGANSS_MsrElement, SeqOfGANSS_MsrElement_sequence_of,
6551 1, 8, false);
6553 return offset;
6557 static const per_sequence_t GANSS_MsrSetElement_sequence[] = {
6558 { &hf_rrlp_referenceFrame , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame },
6559 { &hf_rrlp_ganssTODm , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm },
6560 { &hf_rrlp_deltaGANSSTOD , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
6561 { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
6562 { &hf_rrlp_ganss_MsrElementList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_MsrElement },
6563 { NULL, 0, 0, NULL }
6566 static int
6567 dissect_rrlp_GANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6568 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6569 ett_rrlp_GANSS_MsrSetElement, GANSS_MsrSetElement_sequence);
6571 return offset;
6575 static const per_sequence_t SeqOfGANSS_MsrSetElement_sequence_of[1] = {
6576 { &hf_rrlp_SeqOfGANSS_MsrSetElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_MsrSetElement },
6579 static int
6580 dissect_rrlp_SeqOfGANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6581 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6582 ett_rrlp_SeqOfGANSS_MsrSetElement, SeqOfGANSS_MsrSetElement_sequence_of,
6583 1, 3, false);
6585 return offset;
6589 static const per_sequence_t GANSSMeasureInfo_sequence[] = {
6590 { &hf_rrlp_ganssMsrSetList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_MsrSetElement },
6591 { NULL, 0, 0, NULL }
6594 static int
6595 dissect_rrlp_GANSSMeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6596 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6597 ett_rrlp_GANSSMeasureInfo, GANSSMeasureInfo_sequence);
6599 return offset;
6603 static const per_sequence_t Rel_7_MsrPosition_Rsp_Extension_sequence[] = {
6604 { &hf_rrlp_velEstimate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_VelocityEstimate },
6605 { &hf_rrlp_ganssLocationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSLocationInfo },
6606 { &hf_rrlp_ganssMeasureInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSMeasureInfo },
6607 { NULL, 0, 0, NULL }
6610 static int
6611 dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6612 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6613 ett_rrlp_Rel_7_MsrPosition_Rsp_Extension, Rel_7_MsrPosition_Rsp_Extension_sequence);
6615 return offset;
6619 static const per_sequence_t MsrPosition_Rsp_sequence[] = {
6620 { &hf_rrlp_multipleSets , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MultipleSets },
6621 { &hf_rrlp_referenceIdentity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceIdentity },
6622 { &hf_rrlp_otd_MeasureInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_OTD_MeasureInfo },
6623 { &hf_rrlp_locationInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_LocationInfo },
6624 { &hf_rrlp_gps_MeasureInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPS_MeasureInfo },
6625 { &hf_rrlp_locationError , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_LocationError },
6626 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
6627 { &hf_rrlp_rel_98_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension },
6628 { &hf_rrlp_rel_5_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension },
6629 { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension },
6630 { NULL, 0, 0, NULL }
6633 static int
6634 dissect_rrlp_MsrPosition_Rsp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6635 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6636 ett_rrlp_MsrPosition_Rsp, MsrPosition_Rsp_sequence);
6638 return offset;
6642 static const value_string rrlp_MoreAssDataToBeSent_vals[] = {
6643 { 0, "noMoreMessages" },
6644 { 1, "moreMessagesOnTheWay" },
6645 { 0, NULL }
6649 static int
6650 dissect_rrlp_MoreAssDataToBeSent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6651 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6652 2, NULL, false, 0, NULL);
6654 return offset;
6658 static const per_sequence_t Rel98_AssistanceData_Extension_sequence[] = {
6659 { &hf_rrlp_rel98_Ext_ExpOTD, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Rel98_Ext_ExpOTD },
6660 { &hf_rrlp_gpsTimeAssistanceMeasurementRequest, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL },
6661 { &hf_rrlp_gpsReferenceTimeUncertainty, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GPSReferenceTimeUncertainty },
6662 { NULL, 0, 0, NULL }
6665 static int
6666 dissect_rrlp_Rel98_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6667 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6668 ett_rrlp_Rel98_AssistanceData_Extension, Rel98_AssistanceData_Extension_sequence);
6670 return offset;
6674 static const per_sequence_t Rel5_AssistanceData_Extension_sequence[] = {
6675 { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
6676 { NULL, 0, 0, NULL }
6679 static int
6680 dissect_rrlp_Rel5_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6681 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6682 ett_rrlp_Rel5_AssistanceData_Extension, Rel5_AssistanceData_Extension_sequence);
6684 return offset;
6688 static const per_sequence_t Rel7_AssistanceData_Extension_sequence[] = {
6689 { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData },
6690 { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
6691 { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
6692 { &hf_rrlp_add_GPS_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Add_GPS_AssistData },
6693 { NULL, 0, 0, NULL }
6696 static int
6697 dissect_rrlp_Rel7_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6698 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6699 ett_rrlp_Rel7_AssistanceData_Extension, Rel7_AssistanceData_Extension_sequence);
6701 return offset;
6705 static const per_sequence_t AssistanceData_sequence[] = {
6706 { &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData },
6707 { &hf_rrlp_msrAssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData },
6708 { &hf_rrlp_systemInfoAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SystemInfoAssistData },
6709 { &hf_rrlp_gps_AssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPS_AssistData },
6710 { &hf_rrlp_moreAssDataToBeSent, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MoreAssDataToBeSent },
6711 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
6712 { &hf_rrlp_rel98_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_AssistanceData_Extension },
6713 { &hf_rrlp_rel5_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_AssistanceData_Extension },
6714 { &hf_rrlp_rel7_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_AssistanceData_Extension },
6715 { NULL, 0, 0, NULL }
6718 static int
6719 dissect_rrlp_AssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6720 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6721 ett_rrlp_AssistanceData, AssistanceData_sequence);
6723 return offset;
6727 static const value_string rrlp_ErrorCodes_vals[] = {
6728 { 0, "unDefined" },
6729 { 1, "missingComponet" },
6730 { 2, "incorrectData" },
6731 { 3, "missingIEorComponentElement" },
6732 { 4, "messageTooShort" },
6733 { 5, "unknowReferenceNumber" },
6734 { 0, NULL }
6738 static int
6739 dissect_rrlp_ErrorCodes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6740 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6741 6, NULL, true, 0, NULL);
6743 return offset;
6747 static const per_sequence_t Rel_5_ProtocolError_Extension_sequence[] = {
6748 { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Extended_reference },
6749 { NULL, 0, 0, NULL }
6752 static int
6753 dissect_rrlp_Rel_5_ProtocolError_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6754 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6755 ett_rrlp_Rel_5_ProtocolError_Extension, Rel_5_ProtocolError_Extension_sequence);
6757 return offset;
6761 static const per_sequence_t ProtocolError_sequence[] = {
6762 { &hf_rrlp_errorCause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_ErrorCodes },
6763 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
6764 { &hf_rrlp_rel_5_ProtocolError_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_5_ProtocolError_Extension },
6765 { NULL, 0, 0, NULL }
6768 static int
6769 dissect_rrlp_ProtocolError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6770 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6771 ett_rrlp_ProtocolError, ProtocolError_sequence);
6773 return offset;
6777 static int * const GANSSPositioningMethodTypes_bits[] = {
6778 &hf_rrlp_GANSSPositioningMethodTypes_msAssisted,
6779 &hf_rrlp_GANSSPositioningMethodTypes_msBased,
6780 &hf_rrlp_GANSSPositioningMethodTypes_standalone,
6781 NULL
6784 static int
6785 dissect_rrlp_GANSSPositioningMethodTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6786 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6787 1, 8, false, GANSSPositioningMethodTypes_bits, 3, NULL, NULL);
6789 return offset;
6793 static int * const SBASID_bits[] = {
6794 &hf_rrlp_SBASID_waas,
6795 &hf_rrlp_SBASID_egnos,
6796 &hf_rrlp_SBASID_masas,
6797 &hf_rrlp_SBASID_gagan,
6798 NULL
6801 static int
6802 dissect_rrlp_SBASID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6803 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6804 1, 8, false, SBASID_bits, 4, NULL, NULL);
6806 return offset;
6810 static const per_sequence_t GANSSPositionMethod_sequence[] = {
6811 { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
6812 { &hf_rrlp_gANSSPositioningMethodTypes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositioningMethodTypes },
6813 { &hf_rrlp_gANSSSignals , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignals },
6814 { &hf_rrlp_sbasID_01 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_SBASID },
6815 { NULL, 0, 0, NULL }
6818 static int
6819 dissect_rrlp_GANSSPositionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6820 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6821 ett_rrlp_GANSSPositionMethod, GANSSPositionMethod_sequence);
6823 return offset;
6827 static const per_sequence_t GANSSPositionMethods_sequence_of[1] = {
6828 { &hf_rrlp_GANSSPositionMethods_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSPositionMethod },
6831 static int
6832 dissect_rrlp_GANSSPositionMethods(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6833 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6834 ett_rrlp_GANSSPositionMethods, GANSSPositionMethods_sequence_of,
6835 1, 16, false);
6837 return offset;
6841 static const per_sequence_t PosCapability_Req_sequence[] = {
6842 { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
6843 { &hf_rrlp_gANSSPositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositionMethods },
6844 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
6845 { NULL, 0, 0, NULL }
6848 static int
6849 dissect_rrlp_PosCapability_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6850 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6851 ett_rrlp_PosCapability_Req, PosCapability_Req_sequence);
6853 return offset;
6857 static int * const NonGANSSPositionMethods_bits[] = {
6858 &hf_rrlp_NonGANSSPositionMethods_msAssistedEOTD,
6859 &hf_rrlp_NonGANSSPositionMethods_msBasedEOTD,
6860 &hf_rrlp_NonGANSSPositionMethods_msAssistedGPS,
6861 &hf_rrlp_NonGANSSPositionMethods_msBasedGPS,
6862 &hf_rrlp_NonGANSSPositionMethods_standaloneGPS,
6863 NULL
6866 static int
6867 dissect_rrlp_NonGANSSPositionMethods(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6868 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6869 1, 16, false, NonGANSSPositionMethods_bits, 5, NULL, NULL);
6871 return offset;
6875 static int * const MultipleMeasurementSets_bits[] = {
6876 &hf_rrlp_MultipleMeasurementSets_eotd,
6877 &hf_rrlp_MultipleMeasurementSets_gps,
6878 &hf_rrlp_MultipleMeasurementSets_ganss,
6879 NULL
6882 static int
6883 dissect_rrlp_MultipleMeasurementSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6884 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6885 1, 8, false, MultipleMeasurementSets_bits, 3, NULL, NULL);
6887 return offset;
6891 static const per_sequence_t PosCapabilities_sequence[] = {
6892 { &hf_rrlp_nonGANSSpositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NonGANSSPositionMethods },
6893 { &hf_rrlp_gANSSPositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositionMethods },
6894 { &hf_rrlp_multipleMeasurementSets, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MultipleMeasurementSets },
6895 { NULL, 0, 0, NULL }
6898 static int
6899 dissect_rrlp_PosCapabilities(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_rrlp_PosCapabilities, PosCapabilities_sequence);
6903 return offset;
6907 static int * const GPSAssistance_bits[] = {
6908 &hf_rrlp_GPSAssistance_almanac,
6909 &hf_rrlp_GPSAssistance_uTCmodel,
6910 &hf_rrlp_GPSAssistance_ionosphericModel,
6911 &hf_rrlp_GPSAssistance_navigationmodel,
6912 &hf_rrlp_GPSAssistance_dGPScorrections,
6913 &hf_rrlp_GPSAssistance_referenceLocation,
6914 &hf_rrlp_GPSAssistance_referenceTime,
6915 &hf_rrlp_GPSAssistance_acquisitionAssistance,
6916 &hf_rrlp_GPSAssistance_realTimeIntegrity,
6917 &hf_rrlp_GPSAssistance_ephemerisExtension,
6918 &hf_rrlp_GPSAssistance_ephemerisExtensionCheck,
6919 NULL
6922 static int
6923 dissect_rrlp_GPSAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6924 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6925 1, 16, false, GPSAssistance_bits, 11, NULL, NULL);
6927 return offset;
6931 static int * const CommonGANSSAssistance_bits[] = {
6932 &hf_rrlp_CommonGANSSAssistance_referenceTime,
6933 &hf_rrlp_CommonGANSSAssistance_referenceLocation,
6934 &hf_rrlp_CommonGANSSAssistance_spare_bit2,
6935 &hf_rrlp_CommonGANSSAssistance_ionosphericModel,
6936 &hf_rrlp_CommonGANSSAssistance_addIonosphericModel,
6937 &hf_rrlp_CommonGANSSAssistance_earthOrientationParam,
6938 NULL
6941 static int
6942 dissect_rrlp_CommonGANSSAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6943 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6944 1, 8, false, CommonGANSSAssistance_bits, 6, NULL, NULL);
6946 return offset;
6950 static int * const GANSSAssistance_bits[] = {
6951 &hf_rrlp_GANSSAssistance_realTimeIntegrity,
6952 &hf_rrlp_GANSSAssistance_differentialCorrections,
6953 &hf_rrlp_GANSSAssistance_almanac,
6954 &hf_rrlp_GANSSAssistance_referenceMeasurementInformation,
6955 &hf_rrlp_GANSSAssistance_navigationModel,
6956 &hf_rrlp_GANSSAssistance_timeModelGNSS_UTC,
6957 &hf_rrlp_GANSSAssistance_timeModelGNSS_GNSS,
6958 &hf_rrlp_GANSSAssistance_databitassistance,
6959 &hf_rrlp_GANSSAssistance_ephemerisExtension,
6960 &hf_rrlp_GANSSAssistance_ephemerisExtensionCheck,
6961 &hf_rrlp_GANSSAssistance_addUTCmodel,
6962 &hf_rrlp_GANSSAssistance_auxiliaryInformation,
6963 NULL
6966 static int
6967 dissect_rrlp_GANSSAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6968 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6969 1, 16, false, GANSSAssistance_bits, 12, NULL, NULL);
6971 return offset;
6975 static const per_sequence_t GANSSAssistanceForOneGANSS_sequence[] = {
6976 { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
6977 { &hf_rrlp_gANSSAssistance, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAssistance },
6978 { NULL, 0, 0, NULL }
6981 static int
6982 dissect_rrlp_GANSSAssistanceForOneGANSS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6983 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6984 ett_rrlp_GANSSAssistanceForOneGANSS, GANSSAssistanceForOneGANSS_sequence);
6986 return offset;
6990 static const per_sequence_t SpecificGANSSAssistance_sequence_of[1] = {
6991 { &hf_rrlp_SpecificGANSSAssistance_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAssistanceForOneGANSS },
6994 static int
6995 dissect_rrlp_SpecificGANSSAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6996 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6997 ett_rrlp_SpecificGANSSAssistance, SpecificGANSSAssistance_sequence_of,
6998 1, 16, false);
7000 return offset;
7004 static const per_sequence_t GANSSAssistanceSet_sequence[] = {
7005 { &hf_rrlp_commonGANSSAssistance, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_CommonGANSSAssistance },
7006 { &hf_rrlp_specificGANSSAssistance, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SpecificGANSSAssistance },
7007 { NULL, 0, 0, NULL }
7010 static int
7011 dissect_rrlp_GANSSAssistanceSet(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_rrlp_GANSSAssistanceSet, GANSSAssistanceSet_sequence);
7015 return offset;
7019 static int * const GANSSModelID_bits[] = {
7020 &hf_rrlp_GANSSModelID_model1,
7021 &hf_rrlp_GANSSModelID_model2,
7022 &hf_rrlp_GANSSModelID_model3,
7023 &hf_rrlp_GANSSModelID_model4,
7024 &hf_rrlp_GANSSModelID_model5,
7025 &hf_rrlp_GANSSModelID_model6,
7026 &hf_rrlp_GANSSModelID_model7,
7027 &hf_rrlp_GANSSModelID_model8,
7028 NULL
7031 static int
7032 dissect_rrlp_GANSSModelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7033 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7034 1, 8, false, GANSSModelID_bits, 8, NULL, NULL);
7036 return offset;
7040 static const per_sequence_t GANSSAdditionalAssistanceChoicesForOneGANSS_sequence[] = {
7041 { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
7042 { &hf_rrlp_ganssClockModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
7043 { &hf_rrlp_gannsOrbitModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
7044 { &hf_rrlp_ganssAlmanacModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
7045 { &hf_rrlp_ganssAdditionalUTCModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
7046 { NULL, 0, 0, NULL }
7049 static int
7050 dissect_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7051 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7052 ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS, GANSSAdditionalAssistanceChoicesForOneGANSS_sequence);
7054 return offset;
7058 static const per_sequence_t GANSSAdditionalAssistanceChoices_sequence_of[1] = {
7059 { &hf_rrlp_GANSSAdditionalAssistanceChoices_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS },
7062 static int
7063 dissect_rrlp_GANSSAdditionalAssistanceChoices(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7064 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7065 ett_rrlp_GANSSAdditionalAssistanceChoices, GANSSAdditionalAssistanceChoices_sequence_of,
7066 1, 16, false);
7068 return offset;
7072 static const per_sequence_t AssistanceSupported_sequence[] = {
7073 { &hf_rrlp_gpsAssistance , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistance },
7074 { &hf_rrlp_gANSSAssistanceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceSet },
7075 { &hf_rrlp_gANSSAdditionalAssistanceChoices, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAdditionalAssistanceChoices },
7076 { NULL, 0, 0, NULL }
7079 static int
7080 dissect_rrlp_AssistanceSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7081 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7082 ett_rrlp_AssistanceSupported, AssistanceSupported_sequence);
7084 return offset;
7088 static const per_sequence_t AssistanceNeeded_sequence[] = {
7089 { &hf_rrlp_gpsAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistanceData },
7090 { &hf_rrlp_ganssAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceData },
7091 { NULL, 0, 0, NULL }
7094 static int
7095 dissect_rrlp_AssistanceNeeded(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7096 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7097 ett_rrlp_AssistanceNeeded, AssistanceNeeded_sequence);
7099 return offset;
7103 static const per_sequence_t PosCapability_Rsp_sequence[] = {
7104 { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
7105 { &hf_rrlp_posCapabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PosCapabilities },
7106 { &hf_rrlp_assistanceSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AssistanceSupported },
7107 { &hf_rrlp_assistanceNeeded, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AssistanceNeeded },
7108 { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
7109 { NULL, 0, 0, NULL }
7112 static int
7113 dissect_rrlp_PosCapability_Rsp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7114 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7115 ett_rrlp_PosCapability_Rsp, PosCapability_Rsp_sequence);
7117 return offset;
7121 static const value_string rrlp_RRLP_Component_vals[] = {
7122 { 0, "msrPositionReq" },
7123 { 1, "msrPositionRsp" },
7124 { 2, "assistanceData" },
7125 { 3, "assistanceDataAck" },
7126 { 4, "protocolError" },
7127 { 5, "posCapabilityReq" },
7128 { 6, "posCapabilityRsp" },
7129 { 0, NULL }
7132 static const per_choice_t RRLP_Component_choice[] = {
7133 { 0, &hf_rrlp_msrPositionReq , ASN1_EXTENSION_ROOT , dissect_rrlp_MsrPosition_Req },
7134 { 1, &hf_rrlp_msrPositionRsp , ASN1_EXTENSION_ROOT , dissect_rrlp_MsrPosition_Rsp },
7135 { 2, &hf_rrlp_assistanceData , ASN1_EXTENSION_ROOT , dissect_rrlp_AssistanceData },
7136 { 3, &hf_rrlp_assistanceDataAck, ASN1_EXTENSION_ROOT , dissect_rrlp_NULL },
7137 { 4, &hf_rrlp_protocolError , ASN1_EXTENSION_ROOT , dissect_rrlp_ProtocolError },
7138 { 5, &hf_rrlp_posCapabilityReq, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_PosCapability_Req },
7139 { 6, &hf_rrlp_posCapabilityRsp, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_PosCapability_Rsp },
7140 { 0, NULL, 0, NULL }
7143 static int
7144 dissect_rrlp_RRLP_Component(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7145 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7146 ett_rrlp_RRLP_Component, RRLP_Component_choice,
7147 NULL);
7149 return offset;
7153 static const per_sequence_t PDU_sequence[] = {
7154 { &hf_rrlp_referenceNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
7155 { &hf_rrlp_component , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RRLP_Component },
7156 { NULL, 0, 0, NULL }
7159 static int
7160 dissect_rrlp_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7162 proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, ENC_NA);
7164 col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "RRLP");
7165 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7166 ett_rrlp_PDU, PDU_sequence);
7168 return offset;
7171 /*--- PDUs ---*/
7173 static int dissect_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7174 int offset = 0;
7175 asn1_ctx_t asn1_ctx;
7176 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, pinfo);
7177 offset = dissect_rrlp_PDU(tvb, offset, &asn1_ctx, tree, hf_rrlp_PDU_PDU);
7178 offset += 7; offset >>= 3;
7179 return offset;
7184 /*--- proto_register_rrlp -------------------------------------------*/
7185 void proto_register_rrlp(void) {
7187 /* List of fields */
7188 static hf_register_info hf[] = {
7190 { &hf_rrlp_PDU_PDU,
7191 { "PDU", "rrlp.PDU_element",
7192 FT_NONE, BASE_NONE, NULL, 0,
7193 NULL, HFILL }},
7194 { &hf_rrlp_privateExtensionList,
7195 { "privateExtensionList", "rrlp.privateExtensionList",
7196 FT_UINT32, BASE_DEC, NULL, 0,
7197 NULL, HFILL }},
7198 { &hf_rrlp_pcs_Extensions,
7199 { "pcs-Extensions", "rrlp.pcs_Extensions_element",
7200 FT_NONE, BASE_NONE, NULL, 0,
7201 NULL, HFILL }},
7202 { &hf_rrlp_PrivateExtensionList_item,
7203 { "PrivateExtension", "rrlp.PrivateExtension_element",
7204 FT_NONE, BASE_NONE, NULL, 0,
7205 NULL, HFILL }},
7206 { &hf_rrlp_extId,
7207 { "extId", "rrlp.extId",
7208 FT_OID, BASE_NONE, NULL, 0,
7209 "OBJECT_IDENTIFIER", HFILL }},
7210 { &hf_rrlp_extType,
7211 { "extType", "rrlp.extType_element",
7212 FT_NONE, BASE_NONE, NULL, 0,
7213 NULL, HFILL }},
7214 { &hf_rrlp_referenceNumber,
7215 { "referenceNumber", "rrlp.referenceNumber",
7216 FT_UINT32, BASE_DEC, NULL, 0,
7217 "INTEGER_0_7", HFILL }},
7218 { &hf_rrlp_component,
7219 { "component", "rrlp.component",
7220 FT_UINT32, BASE_DEC, VALS(rrlp_RRLP_Component_vals), 0,
7221 "RRLP_Component", HFILL }},
7222 { &hf_rrlp_msrPositionReq,
7223 { "msrPositionReq", "rrlp.msrPositionReq_element",
7224 FT_NONE, BASE_NONE, NULL, 0,
7225 "MsrPosition_Req", HFILL }},
7226 { &hf_rrlp_msrPositionRsp,
7227 { "msrPositionRsp", "rrlp.msrPositionRsp_element",
7228 FT_NONE, BASE_NONE, NULL, 0,
7229 "MsrPosition_Rsp", HFILL }},
7230 { &hf_rrlp_assistanceData,
7231 { "assistanceData", "rrlp.assistanceData_element",
7232 FT_NONE, BASE_NONE, NULL, 0,
7233 NULL, HFILL }},
7234 { &hf_rrlp_assistanceDataAck,
7235 { "assistanceDataAck", "rrlp.assistanceDataAck_element",
7236 FT_NONE, BASE_NONE, NULL, 0,
7237 NULL, HFILL }},
7238 { &hf_rrlp_protocolError,
7239 { "protocolError", "rrlp.protocolError_element",
7240 FT_NONE, BASE_NONE, NULL, 0,
7241 NULL, HFILL }},
7242 { &hf_rrlp_posCapabilityReq,
7243 { "posCapabilityReq", "rrlp.posCapabilityReq_element",
7244 FT_NONE, BASE_NONE, NULL, 0,
7245 "PosCapability_Req", HFILL }},
7246 { &hf_rrlp_posCapabilityRsp,
7247 { "posCapabilityRsp", "rrlp.posCapabilityRsp_element",
7248 FT_NONE, BASE_NONE, NULL, 0,
7249 "PosCapability_Rsp", HFILL }},
7250 { &hf_rrlp_positionInstruct,
7251 { "positionInstruct", "rrlp.positionInstruct_element",
7252 FT_NONE, BASE_NONE, NULL, 0,
7253 NULL, HFILL }},
7254 { &hf_rrlp_referenceAssistData,
7255 { "referenceAssistData", "rrlp.referenceAssistData_element",
7256 FT_NONE, BASE_NONE, NULL, 0,
7257 NULL, HFILL }},
7258 { &hf_rrlp_msrAssistData,
7259 { "msrAssistData", "rrlp.msrAssistData_element",
7260 FT_NONE, BASE_NONE, NULL, 0,
7261 NULL, HFILL }},
7262 { &hf_rrlp_systemInfoAssistData,
7263 { "systemInfoAssistData", "rrlp.systemInfoAssistData_element",
7264 FT_NONE, BASE_NONE, NULL, 0,
7265 NULL, HFILL }},
7266 { &hf_rrlp_gps_AssistData,
7267 { "gps-AssistData", "rrlp.gps_AssistData_element",
7268 FT_NONE, BASE_NONE, NULL, 0,
7269 NULL, HFILL }},
7270 { &hf_rrlp_extensionContainer,
7271 { "extensionContainer", "rrlp.extensionContainer_element",
7272 FT_NONE, BASE_NONE, NULL, 0,
7273 NULL, HFILL }},
7274 { &hf_rrlp_rel98_MsrPosition_Req_extension,
7275 { "rel98-MsrPosition-Req-extension", "rrlp.rel98_MsrPosition_Req_extension_element",
7276 FT_NONE, BASE_NONE, NULL, 0,
7277 NULL, HFILL }},
7278 { &hf_rrlp_rel5_MsrPosition_Req_extension,
7279 { "rel5-MsrPosition-Req-extension", "rrlp.rel5_MsrPosition_Req_extension_element",
7280 FT_NONE, BASE_NONE, NULL, 0,
7281 NULL, HFILL }},
7282 { &hf_rrlp_rel7_MsrPosition_Req_extension,
7283 { "rel7-MsrPosition-Req-extension", "rrlp.rel7_MsrPosition_Req_extension_element",
7284 FT_NONE, BASE_NONE, NULL, 0,
7285 NULL, HFILL }},
7286 { &hf_rrlp_multipleSets,
7287 { "multipleSets", "rrlp.multipleSets_element",
7288 FT_NONE, BASE_NONE, NULL, 0,
7289 NULL, HFILL }},
7290 { &hf_rrlp_referenceIdentity,
7291 { "referenceIdentity", "rrlp.referenceIdentity_element",
7292 FT_NONE, BASE_NONE, NULL, 0,
7293 NULL, HFILL }},
7294 { &hf_rrlp_otd_MeasureInfo,
7295 { "otd-MeasureInfo", "rrlp.otd_MeasureInfo_element",
7296 FT_NONE, BASE_NONE, NULL, 0,
7297 NULL, HFILL }},
7298 { &hf_rrlp_locationInfo,
7299 { "locationInfo", "rrlp.locationInfo_element",
7300 FT_NONE, BASE_NONE, NULL, 0,
7301 NULL, HFILL }},
7302 { &hf_rrlp_gps_MeasureInfo,
7303 { "gps-MeasureInfo", "rrlp.gps_MeasureInfo_element",
7304 FT_NONE, BASE_NONE, NULL, 0,
7305 NULL, HFILL }},
7306 { &hf_rrlp_locationError,
7307 { "locationError", "rrlp.locationError_element",
7308 FT_NONE, BASE_NONE, NULL, 0,
7309 NULL, HFILL }},
7310 { &hf_rrlp_rel_98_MsrPosition_Rsp_Extension,
7311 { "rel-98-MsrPosition-Rsp-Extension", "rrlp.rel_98_MsrPosition_Rsp_Extension_element",
7312 FT_NONE, BASE_NONE, NULL, 0,
7313 NULL, HFILL }},
7314 { &hf_rrlp_rel_5_MsrPosition_Rsp_Extension,
7315 { "rel-5-MsrPosition-Rsp-Extension", "rrlp.rel_5_MsrPosition_Rsp_Extension_element",
7316 FT_NONE, BASE_NONE, NULL, 0,
7317 NULL, HFILL }},
7318 { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension,
7319 { "rel-7-MsrPosition-Rsp-Extension", "rrlp.rel_7_MsrPosition_Rsp_Extension_element",
7320 FT_NONE, BASE_NONE, NULL, 0,
7321 NULL, HFILL }},
7322 { &hf_rrlp_moreAssDataToBeSent,
7323 { "moreAssDataToBeSent", "rrlp.moreAssDataToBeSent",
7324 FT_UINT32, BASE_DEC, VALS(rrlp_MoreAssDataToBeSent_vals), 0,
7325 NULL, HFILL }},
7326 { &hf_rrlp_rel98_AssistanceData_Extension,
7327 { "rel98-AssistanceData-Extension", "rrlp.rel98_AssistanceData_Extension_element",
7328 FT_NONE, BASE_NONE, NULL, 0,
7329 NULL, HFILL }},
7330 { &hf_rrlp_rel5_AssistanceData_Extension,
7331 { "rel5-AssistanceData-Extension", "rrlp.rel5_AssistanceData_Extension_element",
7332 FT_NONE, BASE_NONE, NULL, 0,
7333 NULL, HFILL }},
7334 { &hf_rrlp_rel7_AssistanceData_Extension,
7335 { "rel7-AssistanceData-Extension", "rrlp.rel7_AssistanceData_Extension_element",
7336 FT_NONE, BASE_NONE, NULL, 0,
7337 NULL, HFILL }},
7338 { &hf_rrlp_errorCause,
7339 { "errorCause", "rrlp.errorCause",
7340 FT_UINT32, BASE_DEC, VALS(rrlp_ErrorCodes_vals), 0,
7341 "ErrorCodes", HFILL }},
7342 { &hf_rrlp_rel_5_ProtocolError_Extension,
7343 { "rel-5-ProtocolError-Extension", "rrlp.rel_5_ProtocolError_Extension_element",
7344 FT_NONE, BASE_NONE, NULL, 0,
7345 NULL, HFILL }},
7346 { &hf_rrlp_extended_reference,
7347 { "extended-reference", "rrlp.extended_reference_element",
7348 FT_NONE, BASE_NONE, NULL, 0,
7349 NULL, HFILL }},
7350 { &hf_rrlp_gANSSPositionMethods,
7351 { "gANSSPositionMethods", "rrlp.gANSSPositionMethods",
7352 FT_UINT32, BASE_DEC, NULL, 0,
7353 NULL, HFILL }},
7354 { &hf_rrlp_posCapabilities,
7355 { "posCapabilities", "rrlp.posCapabilities_element",
7356 FT_NONE, BASE_NONE, NULL, 0,
7357 NULL, HFILL }},
7358 { &hf_rrlp_assistanceSupported,
7359 { "assistanceSupported", "rrlp.assistanceSupported_element",
7360 FT_NONE, BASE_NONE, NULL, 0,
7361 NULL, HFILL }},
7362 { &hf_rrlp_assistanceNeeded,
7363 { "assistanceNeeded", "rrlp.assistanceNeeded_element",
7364 FT_NONE, BASE_NONE, NULL, 0,
7365 NULL, HFILL }},
7366 { &hf_rrlp_methodType,
7367 { "methodType", "rrlp.methodType",
7368 FT_UINT32, BASE_DEC, VALS(rrlp_MethodType_vals), 0,
7369 NULL, HFILL }},
7370 { &hf_rrlp_positionMethod,
7371 { "positionMethod", "rrlp.positionMethod",
7372 FT_UINT32, BASE_DEC, VALS(rrlp_PositionMethod_vals), 0,
7373 NULL, HFILL }},
7374 { &hf_rrlp_measureResponseTime,
7375 { "measureResponseTime", "rrlp.measureResponseTime",
7376 FT_UINT32, BASE_DEC, NULL, 0,
7377 NULL, HFILL }},
7378 { &hf_rrlp_useMultipleSets,
7379 { "useMultipleSets", "rrlp.useMultipleSets",
7380 FT_UINT32, BASE_DEC, VALS(rrlp_UseMultipleSets_vals), 0,
7381 NULL, HFILL }},
7382 { &hf_rrlp_environmentCharacter,
7383 { "environmentCharacter", "rrlp.environmentCharacter",
7384 FT_UINT32, BASE_DEC, VALS(rrlp_EnvironmentCharacter_vals), 0,
7385 NULL, HFILL }},
7386 { &hf_rrlp_msAssisted,
7387 { "msAssisted", "rrlp.msAssisted_element",
7388 FT_NONE, BASE_NONE, NULL, 0,
7389 "AccuracyOpt", HFILL }},
7390 { &hf_rrlp_msBased,
7391 { "msBased", "rrlp.msBased",
7392 FT_UINT32, BASE_DEC, NULL, 0,
7393 "Accuracy", HFILL }},
7394 { &hf_rrlp_msBasedPref,
7395 { "msBasedPref", "rrlp.msBasedPref",
7396 FT_UINT32, BASE_DEC, NULL, 0,
7397 "Accuracy", HFILL }},
7398 { &hf_rrlp_msAssistedPref,
7399 { "msAssistedPref", "rrlp.msAssistedPref",
7400 FT_UINT32, BASE_DEC, NULL, 0,
7401 "Accuracy", HFILL }},
7402 { &hf_rrlp_accuracy,
7403 { "accuracy", "rrlp.accuracy",
7404 FT_UINT32, BASE_DEC, NULL, 0,
7405 NULL, HFILL }},
7406 { &hf_rrlp_bcchCarrier,
7407 { "bcchCarrier", "rrlp.bcchCarrier",
7408 FT_UINT32, BASE_DEC, NULL, 0,
7409 NULL, HFILL }},
7410 { &hf_rrlp_bsic,
7411 { "bsic", "rrlp.bsic",
7412 FT_UINT32, BASE_DEC, NULL, 0,
7413 NULL, HFILL }},
7414 { &hf_rrlp_timeSlotScheme,
7415 { "timeSlotScheme", "rrlp.timeSlotScheme",
7416 FT_UINT32, BASE_DEC, VALS(rrlp_TimeSlotScheme_vals), 0,
7417 NULL, HFILL }},
7418 { &hf_rrlp_btsPosition,
7419 { "btsPosition", "rrlp.btsPosition",
7420 FT_BYTES, BASE_NONE, NULL, 0,
7421 NULL, HFILL }},
7422 { &hf_rrlp_msrAssistList,
7423 { "msrAssistList", "rrlp.msrAssistList",
7424 FT_UINT32, BASE_DEC, NULL, 0,
7425 "SeqOfMsrAssistBTS", HFILL }},
7426 { &hf_rrlp_SeqOfMsrAssistBTS_item,
7427 { "MsrAssistBTS", "rrlp.MsrAssistBTS_element",
7428 FT_NONE, BASE_NONE, NULL, 0,
7429 NULL, HFILL }},
7430 { &hf_rrlp_multiFrameOffset,
7431 { "multiFrameOffset", "rrlp.multiFrameOffset",
7432 FT_UINT32, BASE_DEC, NULL, 0,
7433 NULL, HFILL }},
7434 { &hf_rrlp_roughRTD,
7435 { "roughRTD", "rrlp.roughRTD",
7436 FT_UINT32, BASE_DEC, NULL, 0,
7437 NULL, HFILL }},
7438 { &hf_rrlp_calcAssistanceBTS,
7439 { "calcAssistanceBTS", "rrlp.calcAssistanceBTS_element",
7440 FT_NONE, BASE_NONE, NULL, 0,
7441 NULL, HFILL }},
7442 { &hf_rrlp_systemInfoAssistList,
7443 { "systemInfoAssistList", "rrlp.systemInfoAssistList",
7444 FT_UINT32, BASE_DEC, NULL, 0,
7445 "SeqOfSystemInfoAssistBTS", HFILL }},
7446 { &hf_rrlp_SeqOfSystemInfoAssistBTS_item,
7447 { "SystemInfoAssistBTS", "rrlp.SystemInfoAssistBTS",
7448 FT_UINT32, BASE_DEC, VALS(rrlp_SystemInfoAssistBTS_vals), 0,
7449 NULL, HFILL }},
7450 { &hf_rrlp_notPresent,
7451 { "notPresent", "rrlp.notPresent_element",
7452 FT_NONE, BASE_NONE, NULL, 0,
7453 NULL, HFILL }},
7454 { &hf_rrlp_present,
7455 { "present", "rrlp.present_element",
7456 FT_NONE, BASE_NONE, NULL, 0,
7457 "AssistBTSData", HFILL }},
7458 { &hf_rrlp_fineRTD,
7459 { "fineRTD", "rrlp.fineRTD",
7460 FT_UINT32, BASE_DEC, NULL, 0,
7461 NULL, HFILL }},
7462 { &hf_rrlp_referenceWGS84,
7463 { "referenceWGS84", "rrlp.referenceWGS84_element",
7464 FT_NONE, BASE_NONE, NULL, 0,
7465 NULL, HFILL }},
7466 { &hf_rrlp_relativeNorth,
7467 { "relativeNorth", "rrlp.relativeNorth",
7468 FT_INT32, BASE_DEC, NULL, 0,
7469 "RelDistance", HFILL }},
7470 { &hf_rrlp_relativeEast,
7471 { "relativeEast", "rrlp.relativeEast",
7472 FT_INT32, BASE_DEC, NULL, 0,
7473 "RelDistance", HFILL }},
7474 { &hf_rrlp_relativeAlt,
7475 { "relativeAlt", "rrlp.relativeAlt",
7476 FT_INT32, BASE_DEC, NULL, 0,
7477 NULL, HFILL }},
7478 { &hf_rrlp_nbrOfSets,
7479 { "nbrOfSets", "rrlp.nbrOfSets",
7480 FT_UINT32, BASE_DEC, NULL, 0,
7481 "INTEGER_2_3", HFILL }},
7482 { &hf_rrlp_nbrOfReferenceBTSs,
7483 { "nbrOfReferenceBTSs", "rrlp.nbrOfReferenceBTSs",
7484 FT_UINT32, BASE_DEC, NULL, 0,
7485 "INTEGER_1_3", HFILL }},
7486 { &hf_rrlp_referenceRelation,
7487 { "referenceRelation", "rrlp.referenceRelation",
7488 FT_UINT32, BASE_DEC, VALS(rrlp_ReferenceRelation_vals), 0,
7489 NULL, HFILL }},
7490 { &hf_rrlp_refBTSList,
7491 { "refBTSList", "rrlp.refBTSList",
7492 FT_UINT32, BASE_DEC, NULL, 0,
7493 "SeqOfReferenceIdentityType", HFILL }},
7494 { &hf_rrlp_SeqOfReferenceIdentityType_item,
7495 { "ReferenceIdentityType", "rrlp.ReferenceIdentityType",
7496 FT_UINT32, BASE_DEC, VALS(rrlp_ReferenceIdentityType_vals), 0,
7497 NULL, HFILL }},
7498 { &hf_rrlp_bsicAndCarrier,
7499 { "bsicAndCarrier", "rrlp.bsicAndCarrier_element",
7500 FT_NONE, BASE_NONE, NULL, 0,
7501 NULL, HFILL }},
7502 { &hf_rrlp_ci,
7503 { "ci", "rrlp.ci",
7504 FT_UINT32, BASE_DEC, NULL, 0,
7505 "CellID", HFILL }},
7506 { &hf_rrlp_requestIndex,
7507 { "requestIndex", "rrlp.requestIndex",
7508 FT_UINT32, BASE_DEC, NULL, 0,
7509 NULL, HFILL }},
7510 { &hf_rrlp_systemInfoIndex,
7511 { "systemInfoIndex", "rrlp.systemInfoIndex",
7512 FT_UINT32, BASE_DEC, NULL, 0,
7513 NULL, HFILL }},
7514 { &hf_rrlp_ciAndLAC,
7515 { "ciAndLAC", "rrlp.ciAndLAC_element",
7516 FT_NONE, BASE_NONE, NULL, 0,
7517 "CellIDAndLAC", HFILL }},
7518 { &hf_rrlp_carrier,
7519 { "carrier", "rrlp.carrier",
7520 FT_UINT32, BASE_DEC, NULL, 0,
7521 "BCCHCarrier", HFILL }},
7522 { &hf_rrlp_referenceLAC,
7523 { "referenceLAC", "rrlp.referenceLAC",
7524 FT_UINT32, BASE_DEC, NULL, 0,
7525 "LAC", HFILL }},
7526 { &hf_rrlp_referenceCI,
7527 { "referenceCI", "rrlp.referenceCI",
7528 FT_UINT32, BASE_DEC, NULL, 0,
7529 "CellID", HFILL }},
7530 { &hf_rrlp_otdMsrFirstSets,
7531 { "otdMsrFirstSets", "rrlp.otdMsrFirstSets_element",
7532 FT_NONE, BASE_NONE, NULL, 0,
7533 "OTD_MsrElementFirst", HFILL }},
7534 { &hf_rrlp_otdMsrRestSets,
7535 { "otdMsrRestSets", "rrlp.otdMsrRestSets",
7536 FT_UINT32, BASE_DEC, NULL, 0,
7537 "SeqOfOTD_MsrElementRest", HFILL }},
7538 { &hf_rrlp_SeqOfOTD_MsrElementRest_item,
7539 { "OTD-MsrElementRest", "rrlp.OTD_MsrElementRest_element",
7540 FT_NONE, BASE_NONE, NULL, 0,
7541 NULL, HFILL }},
7542 { &hf_rrlp_refFrameNumber,
7543 { "refFrameNumber", "rrlp.refFrameNumber",
7544 FT_UINT32, BASE_DEC, NULL, 0,
7545 "INTEGER_0_42431", HFILL }},
7546 { &hf_rrlp_referenceTimeSlot,
7547 { "referenceTimeSlot", "rrlp.referenceTimeSlot",
7548 FT_UINT32, BASE_DEC, NULL, 0,
7549 "ModuloTimeSlot", HFILL }},
7550 { &hf_rrlp_toaMeasurementsOfRef,
7551 { "toaMeasurementsOfRef", "rrlp.toaMeasurementsOfRef_element",
7552 FT_NONE, BASE_NONE, NULL, 0,
7553 "TOA_MeasurementsOfRef", HFILL }},
7554 { &hf_rrlp_stdResolution,
7555 { "stdResolution", "rrlp.stdResolution",
7556 FT_UINT32, BASE_DEC, NULL, 0,
7557 NULL, HFILL }},
7558 { &hf_rrlp_taCorrection,
7559 { "taCorrection", "rrlp.taCorrection",
7560 FT_UINT32, BASE_DEC, NULL, 0,
7561 "INTEGER_0_960", HFILL }},
7562 { &hf_rrlp_otd_FirstSetMsrs,
7563 { "otd-FirstSetMsrs", "rrlp.otd_FirstSetMsrs",
7564 FT_UINT32, BASE_DEC, NULL, 0,
7565 "SeqOfOTD_FirstSetMsrs", HFILL }},
7566 { &hf_rrlp_SeqOfOTD_FirstSetMsrs_item,
7567 { "OTD-FirstSetMsrs", "rrlp.OTD_FirstSetMsrs_element",
7568 FT_NONE, BASE_NONE, NULL, 0,
7569 NULL, HFILL }},
7570 { &hf_rrlp_otd_MsrsOfOtherSets,
7571 { "otd-MsrsOfOtherSets", "rrlp.otd_MsrsOfOtherSets",
7572 FT_UINT32, BASE_DEC, NULL, 0,
7573 "SeqOfOTD_MsrsOfOtherSets", HFILL }},
7574 { &hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item,
7575 { "OTD-MsrsOfOtherSets", "rrlp.OTD_MsrsOfOtherSets",
7576 FT_UINT32, BASE_DEC, VALS(rrlp_OTD_MsrsOfOtherSets_vals), 0,
7577 NULL, HFILL }},
7578 { &hf_rrlp_refQuality,
7579 { "refQuality", "rrlp.refQuality",
7580 FT_UINT32, BASE_DEC, NULL, 0,
7581 NULL, HFILL }},
7582 { &hf_rrlp_numOfMeasurements,
7583 { "numOfMeasurements", "rrlp.numOfMeasurements",
7584 FT_UINT32, BASE_DEC, NULL, 0,
7585 NULL, HFILL }},
7586 { &hf_rrlp_identityNotPresent,
7587 { "identityNotPresent", "rrlp.identityNotPresent_element",
7588 FT_NONE, BASE_NONE, NULL, 0,
7589 "OTD_Measurement", HFILL }},
7590 { &hf_rrlp_identityPresent,
7591 { "identityPresent", "rrlp.identityPresent_element",
7592 FT_NONE, BASE_NONE, NULL, 0,
7593 "OTD_MeasurementWithID", HFILL }},
7594 { &hf_rrlp_nborTimeSlot,
7595 { "nborTimeSlot", "rrlp.nborTimeSlot",
7596 FT_UINT32, BASE_DEC, NULL, 0,
7597 "ModuloTimeSlot", HFILL }},
7598 { &hf_rrlp_eotdQuality,
7599 { "eotdQuality", "rrlp.eotdQuality_element",
7600 FT_NONE, BASE_NONE, NULL, 0,
7601 NULL, HFILL }},
7602 { &hf_rrlp_otdValue,
7603 { "otdValue", "rrlp.otdValue",
7604 FT_UINT32, BASE_DEC, NULL, 0,
7605 NULL, HFILL }},
7606 { &hf_rrlp_neighborIdentity,
7607 { "neighborIdentity", "rrlp.neighborIdentity",
7608 FT_UINT32, BASE_DEC, VALS(rrlp_NeighborIdentity_vals), 0,
7609 NULL, HFILL }},
7610 { &hf_rrlp_nbrOfMeasurements,
7611 { "nbrOfMeasurements", "rrlp.nbrOfMeasurements",
7612 FT_UINT32, BASE_DEC, NULL, 0,
7613 "INTEGER_0_7", HFILL }},
7614 { &hf_rrlp_stdOfEOTD,
7615 { "stdOfEOTD", "rrlp.stdOfEOTD",
7616 FT_UINT32, BASE_DEC, NULL, 0,
7617 "INTEGER_0_31", HFILL }},
7618 { &hf_rrlp_multiFrameCarrier,
7619 { "multiFrameCarrier", "rrlp.multiFrameCarrier_element",
7620 FT_NONE, BASE_NONE, NULL, 0,
7621 NULL, HFILL }},
7622 { &hf_rrlp_refFrame,
7623 { "refFrame", "rrlp.refFrame",
7624 FT_UINT32, BASE_DEC, NULL, 0,
7625 "INTEGER_0_65535", HFILL }},
7626 { &hf_rrlp_gpsTOW,
7627 { "gpsTOW", "rrlp.gpsTOW",
7628 FT_UINT32, BASE_DEC, NULL, 0,
7629 "INTEGER_0_14399999", HFILL }},
7630 { &hf_rrlp_fixType,
7631 { "fixType", "rrlp.fixType",
7632 FT_UINT32, BASE_DEC, VALS(rrlp_FixType_vals), 0,
7633 NULL, HFILL }},
7634 { &hf_rrlp_posEstimate,
7635 { "posEstimate", "rrlp.posEstimate",
7636 FT_BYTES, BASE_NONE, NULL, 0,
7637 "Ext_GeographicalInformation", HFILL }},
7638 { &hf_rrlp_gpsMsrSetList,
7639 { "gpsMsrSetList", "rrlp.gpsMsrSetList",
7640 FT_UINT32, BASE_DEC, NULL, 0,
7641 "SeqOfGPS_MsrSetElement", HFILL }},
7642 { &hf_rrlp_SeqOfGPS_MsrSetElement_item,
7643 { "GPS-MsrSetElement", "rrlp.GPS_MsrSetElement_element",
7644 FT_NONE, BASE_NONE, NULL, 0,
7645 NULL, HFILL }},
7646 { &hf_rrlp_gpsTOW_01,
7647 { "gpsTOW", "rrlp.gpsTOW",
7648 FT_UINT32, BASE_DEC, NULL, 0,
7649 "GPSTOW24b", HFILL }},
7650 { &hf_rrlp_gps_msrList,
7651 { "gps-msrList", "rrlp.gps_msrList",
7652 FT_UINT32, BASE_DEC, NULL, 0,
7653 "SeqOfGPS_MsrElement", HFILL }},
7654 { &hf_rrlp_SeqOfGPS_MsrElement_item,
7655 { "GPS-MsrElement", "rrlp.GPS_MsrElement_element",
7656 FT_NONE, BASE_NONE, NULL, 0,
7657 NULL, HFILL }},
7658 { &hf_rrlp_satelliteID,
7659 { "satelliteID", "rrlp.satelliteID",
7660 FT_UINT32, BASE_DEC, NULL, 0,
7661 NULL, HFILL }},
7662 { &hf_rrlp_cNo,
7663 { "cNo", "rrlp.cNo",
7664 FT_UINT32, BASE_DEC, NULL, 0,
7665 "INTEGER_0_63", HFILL }},
7666 { &hf_rrlp_doppler,
7667 { "doppler", "rrlp.doppler",
7668 FT_INT32, BASE_DEC, NULL, 0,
7669 "INTEGER_M32768_32767", HFILL }},
7670 { &hf_rrlp_wholeChips,
7671 { "wholeChips", "rrlp.wholeChips",
7672 FT_UINT32, BASE_DEC, NULL, 0,
7673 "INTEGER_0_1022", HFILL }},
7674 { &hf_rrlp_fracChips,
7675 { "fracChips", "rrlp.fracChips",
7676 FT_UINT32, BASE_DEC, NULL, 0,
7677 "INTEGER_0_1024", HFILL }},
7678 { &hf_rrlp_mpathIndic,
7679 { "mpathIndic", "rrlp.mpathIndic",
7680 FT_UINT32, BASE_DEC, VALS(rrlp_MpathIndic_vals), 0,
7681 NULL, HFILL }},
7682 { &hf_rrlp_pseuRangeRMSErr,
7683 { "pseuRangeRMSErr", "rrlp.pseuRangeRMSErr",
7684 FT_UINT32, BASE_DEC, NULL, 0,
7685 "INTEGER_0_63", HFILL }},
7686 { &hf_rrlp_locErrorReason,
7687 { "locErrorReason", "rrlp.locErrorReason",
7688 FT_UINT32, BASE_DEC, VALS(rrlp_LocErrorReason_vals), 0,
7689 NULL, HFILL }},
7690 { &hf_rrlp_additionalAssistanceData,
7691 { "additionalAssistanceData", "rrlp.additionalAssistanceData_element",
7692 FT_NONE, BASE_NONE, NULL, 0,
7693 NULL, HFILL }},
7694 { &hf_rrlp_gpsAssistanceData,
7695 { "gpsAssistanceData", "rrlp.gpsAssistanceData",
7696 FT_BYTES, BASE_NONE, NULL, 0,
7697 NULL, HFILL }},
7698 { &hf_rrlp_ganssAssistanceData,
7699 { "ganssAssistanceData", "rrlp.ganssAssistanceData",
7700 FT_BYTES, BASE_NONE, NULL, 0,
7701 NULL, HFILL }},
7702 { &hf_rrlp_controlHeader,
7703 { "controlHeader", "rrlp.controlHeader_element",
7704 FT_NONE, BASE_NONE, NULL, 0,
7705 NULL, HFILL }},
7706 { &hf_rrlp_referenceTime,
7707 { "referenceTime", "rrlp.referenceTime_element",
7708 FT_NONE, BASE_NONE, NULL, 0,
7709 NULL, HFILL }},
7710 { &hf_rrlp_refLocation,
7711 { "refLocation", "rrlp.refLocation_element",
7712 FT_NONE, BASE_NONE, NULL, 0,
7713 NULL, HFILL }},
7714 { &hf_rrlp_dgpsCorrections,
7715 { "dgpsCorrections", "rrlp.dgpsCorrections_element",
7716 FT_NONE, BASE_NONE, NULL, 0,
7717 NULL, HFILL }},
7718 { &hf_rrlp_navigationModel,
7719 { "navigationModel", "rrlp.navigationModel_element",
7720 FT_NONE, BASE_NONE, NULL, 0,
7721 NULL, HFILL }},
7722 { &hf_rrlp_ionosphericModel,
7723 { "ionosphericModel", "rrlp.ionosphericModel_element",
7724 FT_NONE, BASE_NONE, NULL, 0,
7725 NULL, HFILL }},
7726 { &hf_rrlp_utcModel,
7727 { "utcModel", "rrlp.utcModel_element",
7728 FT_NONE, BASE_NONE, NULL, 0,
7729 NULL, HFILL }},
7730 { &hf_rrlp_almanac,
7731 { "almanac", "rrlp.almanac_element",
7732 FT_NONE, BASE_NONE, NULL, 0,
7733 NULL, HFILL }},
7734 { &hf_rrlp_acquisAssist,
7735 { "acquisAssist", "rrlp.acquisAssist_element",
7736 FT_NONE, BASE_NONE, NULL, 0,
7737 NULL, HFILL }},
7738 { &hf_rrlp_realTimeIntegrity,
7739 { "realTimeIntegrity", "rrlp.realTimeIntegrity",
7740 FT_UINT32, BASE_DEC, NULL, 0,
7741 "SeqOf_BadSatelliteSet", HFILL }},
7742 { &hf_rrlp_gpsTime,
7743 { "gpsTime", "rrlp.gpsTime_element",
7744 FT_NONE, BASE_NONE, NULL, 0,
7745 NULL, HFILL }},
7746 { &hf_rrlp_gsmTime,
7747 { "gsmTime", "rrlp.gsmTime_element",
7748 FT_NONE, BASE_NONE, NULL, 0,
7749 NULL, HFILL }},
7750 { &hf_rrlp_gpsTowAssist,
7751 { "gpsTowAssist", "rrlp.gpsTowAssist",
7752 FT_UINT32, BASE_DEC, NULL, 0,
7753 NULL, HFILL }},
7754 { &hf_rrlp_gpsTOW23b,
7755 { "gpsTOW23b", "rrlp.gpsTOW23b",
7756 FT_UINT32, BASE_DEC, NULL, 0,
7757 NULL, HFILL }},
7758 { &hf_rrlp_gpsWeek,
7759 { "gpsWeek", "rrlp.gpsWeek",
7760 FT_UINT32, BASE_DEC, NULL, 0,
7761 NULL, HFILL }},
7762 { &hf_rrlp_GPSTOWAssist_item,
7763 { "GPSTOWAssistElement", "rrlp.GPSTOWAssistElement_element",
7764 FT_NONE, BASE_NONE, NULL, 0,
7765 NULL, HFILL }},
7766 { &hf_rrlp_tlmWord,
7767 { "tlmWord", "rrlp.tlmWord",
7768 FT_UINT32, BASE_DEC, NULL, 0,
7769 NULL, HFILL }},
7770 { &hf_rrlp_antiSpoof,
7771 { "antiSpoof", "rrlp.antiSpoof",
7772 FT_UINT32, BASE_DEC, NULL, 0,
7773 "AntiSpoofFlag", HFILL }},
7774 { &hf_rrlp_alert,
7775 { "alert", "rrlp.alert",
7776 FT_UINT32, BASE_DEC, NULL, 0,
7777 "AlertFlag", HFILL }},
7778 { &hf_rrlp_tlmRsvdBits,
7779 { "tlmRsvdBits", "rrlp.tlmRsvdBits",
7780 FT_UINT32, BASE_DEC, NULL, 0,
7781 "TLMReservedBits", HFILL }},
7782 { &hf_rrlp_frameNumber,
7783 { "frameNumber", "rrlp.frameNumber",
7784 FT_UINT32, BASE_DEC, NULL, 0,
7785 NULL, HFILL }},
7786 { &hf_rrlp_timeSlot,
7787 { "timeSlot", "rrlp.timeSlot",
7788 FT_UINT32, BASE_DEC, NULL, 0,
7789 NULL, HFILL }},
7790 { &hf_rrlp_bitNumber,
7791 { "bitNumber", "rrlp.bitNumber",
7792 FT_UINT32, BASE_DEC, NULL, 0,
7793 NULL, HFILL }},
7794 { &hf_rrlp_threeDLocation,
7795 { "threeDLocation", "rrlp.threeDLocation",
7796 FT_BYTES, BASE_NONE, NULL, 0,
7797 "Ext_GeographicalInformation", HFILL }},
7798 { &hf_rrlp_gpsTOW_02,
7799 { "gpsTOW", "rrlp.gpsTOW",
7800 FT_UINT32, BASE_DEC, NULL, 0,
7801 "INTEGER_0_604799", HFILL }},
7802 { &hf_rrlp_status,
7803 { "status", "rrlp.status",
7804 FT_UINT32, BASE_DEC, NULL, 0,
7805 "INTEGER_0_7", HFILL }},
7806 { &hf_rrlp_satList,
7807 { "satList", "rrlp.satList",
7808 FT_UINT32, BASE_DEC, NULL, 0,
7809 "SeqOfSatElement", HFILL }},
7810 { &hf_rrlp_SeqOfSatElement_item,
7811 { "SatElement", "rrlp.SatElement_element",
7812 FT_NONE, BASE_NONE, NULL, 0,
7813 NULL, HFILL }},
7814 { &hf_rrlp_iode,
7815 { "iode", "rrlp.iode",
7816 FT_UINT32, BASE_DEC, NULL, 0,
7817 "INTEGER_0_239", HFILL }},
7818 { &hf_rrlp_udre,
7819 { "udre", "rrlp.udre",
7820 FT_UINT32, BASE_DEC, NULL, 0,
7821 "INTEGER_0_3", HFILL }},
7822 { &hf_rrlp_pseudoRangeCor,
7823 { "pseudoRangeCor", "rrlp.pseudoRangeCor",
7824 FT_INT32, BASE_DEC, NULL, 0,
7825 "INTEGER_M2047_2047", HFILL }},
7826 { &hf_rrlp_rangeRateCor,
7827 { "rangeRateCor", "rrlp.rangeRateCor",
7828 FT_INT32, BASE_DEC, NULL, 0,
7829 "INTEGER_M127_127", HFILL }},
7830 { &hf_rrlp_deltaPseudoRangeCor2,
7831 { "deltaPseudoRangeCor2", "rrlp.deltaPseudoRangeCor2",
7832 FT_INT32, BASE_DEC, NULL, 0,
7833 "INTEGER_M127_127", HFILL }},
7834 { &hf_rrlp_deltaRangeRateCor2,
7835 { "deltaRangeRateCor2", "rrlp.deltaRangeRateCor2",
7836 FT_INT32, BASE_DEC, NULL, 0,
7837 "INTEGER_M7_7", HFILL }},
7838 { &hf_rrlp_deltaPseudoRangeCor3,
7839 { "deltaPseudoRangeCor3", "rrlp.deltaPseudoRangeCor3",
7840 FT_INT32, BASE_DEC, NULL, 0,
7841 "INTEGER_M127_127", HFILL }},
7842 { &hf_rrlp_deltaRangeRateCor3,
7843 { "deltaRangeRateCor3", "rrlp.deltaRangeRateCor3",
7844 FT_INT32, BASE_DEC, NULL, 0,
7845 "INTEGER_M7_7", HFILL }},
7846 { &hf_rrlp_navModelList,
7847 { "navModelList", "rrlp.navModelList",
7848 FT_UINT32, BASE_DEC, NULL, 0,
7849 "SeqOfNavModelElement", HFILL }},
7850 { &hf_rrlp_SeqOfNavModelElement_item,
7851 { "NavModelElement", "rrlp.NavModelElement_element",
7852 FT_NONE, BASE_NONE, NULL, 0,
7853 NULL, HFILL }},
7854 { &hf_rrlp_satStatus,
7855 { "satStatus", "rrlp.satStatus",
7856 FT_UINT32, BASE_DEC, VALS(rrlp_SatStatus_vals), 0,
7857 NULL, HFILL }},
7858 { &hf_rrlp_newSatelliteAndModelUC,
7859 { "newSatelliteAndModelUC", "rrlp.newSatelliteAndModelUC_element",
7860 FT_NONE, BASE_NONE, NULL, 0,
7861 "UncompressedEphemeris", HFILL }},
7862 { &hf_rrlp_oldSatelliteAndModel,
7863 { "oldSatelliteAndModel", "rrlp.oldSatelliteAndModel_element",
7864 FT_NONE, BASE_NONE, NULL, 0,
7865 NULL, HFILL }},
7866 { &hf_rrlp_newNaviModelUC,
7867 { "newNaviModelUC", "rrlp.newNaviModelUC_element",
7868 FT_NONE, BASE_NONE, NULL, 0,
7869 "UncompressedEphemeris", HFILL }},
7870 { &hf_rrlp_ephemCodeOnL2,
7871 { "ephemCodeOnL2", "rrlp.ephemCodeOnL2",
7872 FT_UINT32, BASE_DEC, NULL, 0,
7873 "INTEGER_0_3", HFILL }},
7874 { &hf_rrlp_ephemURA,
7875 { "ephemURA", "rrlp.ephemURA",
7876 FT_UINT32, BASE_DEC, NULL, 0,
7877 "INTEGER_0_15", HFILL }},
7878 { &hf_rrlp_ephemSVhealth,
7879 { "ephemSVhealth", "rrlp.ephemSVhealth",
7880 FT_UINT32, BASE_DEC, NULL, 0,
7881 "INTEGER_0_63", HFILL }},
7882 { &hf_rrlp_ephemIODC,
7883 { "ephemIODC", "rrlp.ephemIODC",
7884 FT_UINT32, BASE_DEC, NULL, 0,
7885 "INTEGER_0_1023", HFILL }},
7886 { &hf_rrlp_ephemL2Pflag,
7887 { "ephemL2Pflag", "rrlp.ephemL2Pflag",
7888 FT_UINT32, BASE_DEC, NULL, 0,
7889 "INTEGER_0_1", HFILL }},
7890 { &hf_rrlp_ephemSF1Rsvd,
7891 { "ephemSF1Rsvd", "rrlp.ephemSF1Rsvd_element",
7892 FT_NONE, BASE_NONE, NULL, 0,
7893 "EphemerisSubframe1Reserved", HFILL }},
7894 { &hf_rrlp_ephemTgd,
7895 { "ephemTgd", "rrlp.ephemTgd",
7896 FT_INT32, BASE_DEC, NULL, 0,
7897 "INTEGER_M128_127", HFILL }},
7898 { &hf_rrlp_ephemToc,
7899 { "ephemToc", "rrlp.ephemToc",
7900 FT_UINT32, BASE_DEC, NULL, 0,
7901 "INTEGER_0_37799", HFILL }},
7902 { &hf_rrlp_ephemAF2,
7903 { "ephemAF2", "rrlp.ephemAF2",
7904 FT_INT32, BASE_DEC, NULL, 0,
7905 "INTEGER_M128_127", HFILL }},
7906 { &hf_rrlp_ephemAF1,
7907 { "ephemAF1", "rrlp.ephemAF1",
7908 FT_INT32, BASE_DEC, NULL, 0,
7909 "INTEGER_M32768_32767", HFILL }},
7910 { &hf_rrlp_ephemAF0,
7911 { "ephemAF0", "rrlp.ephemAF0",
7912 FT_INT32, BASE_DEC, NULL, 0,
7913 "INTEGER_M2097152_2097151", HFILL }},
7914 { &hf_rrlp_ephemCrs,
7915 { "ephemCrs", "rrlp.ephemCrs",
7916 FT_INT32, BASE_DEC, NULL, 0,
7917 "INTEGER_M32768_32767", HFILL }},
7918 { &hf_rrlp_ephemDeltaN,
7919 { "ephemDeltaN", "rrlp.ephemDeltaN",
7920 FT_INT32, BASE_DEC, NULL, 0,
7921 "INTEGER_M32768_32767", HFILL }},
7922 { &hf_rrlp_ephemM0,
7923 { "ephemM0", "rrlp.ephemM0",
7924 FT_INT32, BASE_DEC, NULL, 0,
7925 "INTEGER_M2147483648_2147483647", HFILL }},
7926 { &hf_rrlp_ephemCuc,
7927 { "ephemCuc", "rrlp.ephemCuc",
7928 FT_INT32, BASE_DEC, NULL, 0,
7929 "INTEGER_M32768_32767", HFILL }},
7930 { &hf_rrlp_ephemE,
7931 { "ephemE", "rrlp.ephemE",
7932 FT_UINT32, BASE_DEC, NULL, 0,
7933 "INTEGER_0_4294967295", HFILL }},
7934 { &hf_rrlp_ephemCus,
7935 { "ephemCus", "rrlp.ephemCus",
7936 FT_INT32, BASE_DEC, NULL, 0,
7937 "INTEGER_M32768_32767", HFILL }},
7938 { &hf_rrlp_ephemAPowerHalf,
7939 { "ephemAPowerHalf", "rrlp.ephemAPowerHalf",
7940 FT_UINT32, BASE_DEC, NULL, 0,
7941 "INTEGER_0_4294967295", HFILL }},
7942 { &hf_rrlp_ephemToe,
7943 { "ephemToe", "rrlp.ephemToe",
7944 FT_UINT32, BASE_DEC, NULL, 0,
7945 "INTEGER_0_37799", HFILL }},
7946 { &hf_rrlp_ephemFitFlag,
7947 { "ephemFitFlag", "rrlp.ephemFitFlag",
7948 FT_UINT32, BASE_DEC, NULL, 0,
7949 "INTEGER_0_1", HFILL }},
7950 { &hf_rrlp_ephemAODA,
7951 { "ephemAODA", "rrlp.ephemAODA",
7952 FT_UINT32, BASE_DEC, NULL, 0,
7953 "INTEGER_0_31", HFILL }},
7954 { &hf_rrlp_ephemCic,
7955 { "ephemCic", "rrlp.ephemCic",
7956 FT_INT32, BASE_DEC, NULL, 0,
7957 "INTEGER_M32768_32767", HFILL }},
7958 { &hf_rrlp_ephemOmegaA0,
7959 { "ephemOmegaA0", "rrlp.ephemOmegaA0",
7960 FT_INT32, BASE_DEC, NULL, 0,
7961 "INTEGER_M2147483648_2147483647", HFILL }},
7962 { &hf_rrlp_ephemCis,
7963 { "ephemCis", "rrlp.ephemCis",
7964 FT_INT32, BASE_DEC, NULL, 0,
7965 "INTEGER_M32768_32767", HFILL }},
7966 { &hf_rrlp_ephemI0,
7967 { "ephemI0", "rrlp.ephemI0",
7968 FT_INT32, BASE_DEC, NULL, 0,
7969 "INTEGER_M2147483648_2147483647", HFILL }},
7970 { &hf_rrlp_ephemCrc,
7971 { "ephemCrc", "rrlp.ephemCrc",
7972 FT_INT32, BASE_DEC, NULL, 0,
7973 "INTEGER_M32768_32767", HFILL }},
7974 { &hf_rrlp_ephemW,
7975 { "ephemW", "rrlp.ephemW",
7976 FT_INT32, BASE_DEC, NULL, 0,
7977 "INTEGER_M2147483648_2147483647", HFILL }},
7978 { &hf_rrlp_ephemOmegaADot,
7979 { "ephemOmegaADot", "rrlp.ephemOmegaADot",
7980 FT_INT32, BASE_DEC, NULL, 0,
7981 "INTEGER_M8388608_8388607", HFILL }},
7982 { &hf_rrlp_ephemIDot,
7983 { "ephemIDot", "rrlp.ephemIDot",
7984 FT_INT32, BASE_DEC, NULL, 0,
7985 "INTEGER_M8192_8191", HFILL }},
7986 { &hf_rrlp_reserved1,
7987 { "reserved1", "rrlp.reserved1",
7988 FT_UINT32, BASE_DEC, NULL, 0,
7989 "INTEGER_0_8388607", HFILL }},
7990 { &hf_rrlp_reserved2,
7991 { "reserved2", "rrlp.reserved2",
7992 FT_UINT32, BASE_DEC, NULL, 0,
7993 "INTEGER_0_16777215", HFILL }},
7994 { &hf_rrlp_reserved3,
7995 { "reserved3", "rrlp.reserved3",
7996 FT_UINT32, BASE_DEC, NULL, 0,
7997 "INTEGER_0_16777215", HFILL }},
7998 { &hf_rrlp_reserved4,
7999 { "reserved4", "rrlp.reserved4",
8000 FT_UINT32, BASE_DEC, NULL, 0,
8001 "INTEGER_0_65535", HFILL }},
8002 { &hf_rrlp_alfa0,
8003 { "alfa0", "rrlp.alfa0",
8004 FT_INT32, BASE_DEC, NULL, 0,
8005 "INTEGER_M128_127", HFILL }},
8006 { &hf_rrlp_alfa1,
8007 { "alfa1", "rrlp.alfa1",
8008 FT_INT32, BASE_DEC, NULL, 0,
8009 "INTEGER_M128_127", HFILL }},
8010 { &hf_rrlp_alfa2,
8011 { "alfa2", "rrlp.alfa2",
8012 FT_INT32, BASE_DEC, NULL, 0,
8013 "INTEGER_M128_127", HFILL }},
8014 { &hf_rrlp_alfa3,
8015 { "alfa3", "rrlp.alfa3",
8016 FT_INT32, BASE_DEC, NULL, 0,
8017 "INTEGER_M128_127", HFILL }},
8018 { &hf_rrlp_beta0,
8019 { "beta0", "rrlp.beta0",
8020 FT_INT32, BASE_DEC, NULL, 0,
8021 "INTEGER_M128_127", HFILL }},
8022 { &hf_rrlp_beta1,
8023 { "beta1", "rrlp.beta1",
8024 FT_INT32, BASE_DEC, NULL, 0,
8025 "INTEGER_M128_127", HFILL }},
8026 { &hf_rrlp_beta2,
8027 { "beta2", "rrlp.beta2",
8028 FT_INT32, BASE_DEC, NULL, 0,
8029 "INTEGER_M128_127", HFILL }},
8030 { &hf_rrlp_beta3,
8031 { "beta3", "rrlp.beta3",
8032 FT_INT32, BASE_DEC, NULL, 0,
8033 "INTEGER_M128_127", HFILL }},
8034 { &hf_rrlp_utcA1,
8035 { "utcA1", "rrlp.utcA1",
8036 FT_INT32, BASE_DEC, NULL, 0,
8037 "INTEGER_M8388608_8388607", HFILL }},
8038 { &hf_rrlp_utcA0,
8039 { "utcA0", "rrlp.utcA0",
8040 FT_INT32, BASE_DEC, NULL, 0,
8041 "INTEGER_M2147483648_2147483647", HFILL }},
8042 { &hf_rrlp_utcTot,
8043 { "utcTot", "rrlp.utcTot",
8044 FT_UINT32, BASE_DEC, NULL, 0,
8045 "INTEGER_0_255", HFILL }},
8046 { &hf_rrlp_utcWNt,
8047 { "utcWNt", "rrlp.utcWNt",
8048 FT_UINT32, BASE_DEC, NULL, 0,
8049 "INTEGER_0_255", HFILL }},
8050 { &hf_rrlp_utcDeltaTls,
8051 { "utcDeltaTls", "rrlp.utcDeltaTls",
8052 FT_INT32, BASE_DEC, NULL, 0,
8053 "INTEGER_M128_127", HFILL }},
8054 { &hf_rrlp_utcWNlsf,
8055 { "utcWNlsf", "rrlp.utcWNlsf",
8056 FT_UINT32, BASE_DEC, NULL, 0,
8057 "INTEGER_0_255", HFILL }},
8058 { &hf_rrlp_utcDN,
8059 { "utcDN", "rrlp.utcDN",
8060 FT_INT32, BASE_DEC, NULL, 0,
8061 "INTEGER_M128_127", HFILL }},
8062 { &hf_rrlp_utcDeltaTlsf,
8063 { "utcDeltaTlsf", "rrlp.utcDeltaTlsf",
8064 FT_INT32, BASE_DEC, NULL, 0,
8065 "INTEGER_M128_127", HFILL }},
8066 { &hf_rrlp_alamanacWNa,
8067 { "alamanacWNa", "rrlp.alamanacWNa",
8068 FT_UINT32, BASE_DEC, NULL, 0,
8069 "INTEGER_0_255", HFILL }},
8070 { &hf_rrlp_almanacList,
8071 { "almanacList", "rrlp.almanacList",
8072 FT_UINT32, BASE_DEC, NULL, 0,
8073 "SeqOfAlmanacElement", HFILL }},
8074 { &hf_rrlp_SeqOfAlmanacElement_item,
8075 { "AlmanacElement", "rrlp.AlmanacElement_element",
8076 FT_NONE, BASE_NONE, NULL, 0,
8077 NULL, HFILL }},
8078 { &hf_rrlp_almanacE,
8079 { "almanacE", "rrlp.almanacE",
8080 FT_UINT32, BASE_DEC, NULL, 0,
8081 "INTEGER_0_65535", HFILL }},
8082 { &hf_rrlp_alamanacToa,
8083 { "alamanacToa", "rrlp.alamanacToa",
8084 FT_UINT32, BASE_DEC, NULL, 0,
8085 "INTEGER_0_255", HFILL }},
8086 { &hf_rrlp_almanacKsii,
8087 { "almanacKsii", "rrlp.almanacKsii",
8088 FT_INT32, BASE_DEC, NULL, 0,
8089 "INTEGER_M32768_32767", HFILL }},
8090 { &hf_rrlp_almanacOmegaDot,
8091 { "almanacOmegaDot", "rrlp.almanacOmegaDot",
8092 FT_INT32, BASE_DEC, NULL, 0,
8093 "INTEGER_M32768_32767", HFILL }},
8094 { &hf_rrlp_almanacSVhealth,
8095 { "almanacSVhealth", "rrlp.almanacSVhealth",
8096 FT_UINT32, BASE_DEC, NULL, 0,
8097 "INTEGER_0_255", HFILL }},
8098 { &hf_rrlp_almanacAPowerHalf,
8099 { "almanacAPowerHalf", "rrlp.almanacAPowerHalf",
8100 FT_UINT32, BASE_DEC, NULL, 0,
8101 "INTEGER_0_16777215", HFILL }},
8102 { &hf_rrlp_almanacOmega0,
8103 { "almanacOmega0", "rrlp.almanacOmega0",
8104 FT_INT32, BASE_DEC, NULL, 0,
8105 "INTEGER_M8388608_8388607", HFILL }},
8106 { &hf_rrlp_almanacW,
8107 { "almanacW", "rrlp.almanacW",
8108 FT_INT32, BASE_DEC, NULL, 0,
8109 "INTEGER_M8388608_8388607", HFILL }},
8110 { &hf_rrlp_almanacM0,
8111 { "almanacM0", "rrlp.almanacM0",
8112 FT_INT32, BASE_DEC, NULL, 0,
8113 "INTEGER_M8388608_8388607", HFILL }},
8114 { &hf_rrlp_almanacAF0,
8115 { "almanacAF0", "rrlp.almanacAF0",
8116 FT_INT32, BASE_DEC, NULL, 0,
8117 "INTEGER_M1024_1023", HFILL }},
8118 { &hf_rrlp_almanacAF1,
8119 { "almanacAF1", "rrlp.almanacAF1",
8120 FT_INT32, BASE_DEC, NULL, 0,
8121 "INTEGER_M1024_1023", HFILL }},
8122 { &hf_rrlp_timeRelation,
8123 { "timeRelation", "rrlp.timeRelation_element",
8124 FT_NONE, BASE_NONE, NULL, 0,
8125 NULL, HFILL }},
8126 { &hf_rrlp_acquisList,
8127 { "acquisList", "rrlp.acquisList",
8128 FT_UINT32, BASE_DEC, NULL, 0,
8129 "SeqOfAcquisElement", HFILL }},
8130 { &hf_rrlp_SeqOfAcquisElement_item,
8131 { "AcquisElement", "rrlp.AcquisElement_element",
8132 FT_NONE, BASE_NONE, NULL, 0,
8133 NULL, HFILL }},
8134 { &hf_rrlp_gpsTOW_03,
8135 { "gpsTOW", "rrlp.gpsTOW",
8136 FT_UINT32, BASE_DEC, NULL, 0,
8137 "GPSTOW23b", HFILL }},
8138 { &hf_rrlp_svid,
8139 { "svid", "rrlp.svid",
8140 FT_UINT32, BASE_DEC, NULL, 0,
8141 "SatelliteID", HFILL }},
8142 { &hf_rrlp_doppler0,
8143 { "doppler0", "rrlp.doppler0",
8144 FT_INT32, BASE_DEC, NULL, 0,
8145 "INTEGER_M2048_2047", HFILL }},
8146 { &hf_rrlp_addionalDoppler,
8147 { "addionalDoppler", "rrlp.addionalDoppler_element",
8148 FT_NONE, BASE_NONE, NULL, 0,
8149 "AddionalDopplerFields", HFILL }},
8150 { &hf_rrlp_codePhase,
8151 { "codePhase", "rrlp.codePhase",
8152 FT_UINT32, BASE_DEC, NULL, 0,
8153 "INTEGER_0_1022", HFILL }},
8154 { &hf_rrlp_intCodePhase,
8155 { "intCodePhase", "rrlp.intCodePhase",
8156 FT_UINT32, BASE_DEC, NULL, 0,
8157 "INTEGER_0_19", HFILL }},
8158 { &hf_rrlp_gpsBitNumber,
8159 { "gpsBitNumber", "rrlp.gpsBitNumber",
8160 FT_UINT32, BASE_DEC, NULL, 0,
8161 "INTEGER_0_3", HFILL }},
8162 { &hf_rrlp_codePhaseSearchWindow,
8163 { "codePhaseSearchWindow", "rrlp.codePhaseSearchWindow",
8164 FT_UINT32, BASE_DEC, NULL, 0,
8165 "INTEGER_0_15", HFILL }},
8166 { &hf_rrlp_addionalAngle,
8167 { "addionalAngle", "rrlp.addionalAngle_element",
8168 FT_NONE, BASE_NONE, NULL, 0,
8169 "AddionalAngleFields", HFILL }},
8170 { &hf_rrlp_doppler1,
8171 { "doppler1", "rrlp.doppler1",
8172 FT_UINT32, BASE_DEC, NULL, 0,
8173 "INTEGER_0_63", HFILL }},
8174 { &hf_rrlp_dopplerUncertainty,
8175 { "dopplerUncertainty", "rrlp.dopplerUncertainty",
8176 FT_UINT32, BASE_DEC, NULL, 0,
8177 "INTEGER_0_7", HFILL }},
8178 { &hf_rrlp_azimuth,
8179 { "azimuth", "rrlp.azimuth",
8180 FT_UINT32, BASE_DEC, NULL, 0,
8181 "INTEGER_0_31", HFILL }},
8182 { &hf_rrlp_elevation,
8183 { "elevation", "rrlp.elevation",
8184 FT_UINT32, BASE_DEC, NULL, 0,
8185 "INTEGER_0_7", HFILL }},
8186 { &hf_rrlp_SeqOf_BadSatelliteSet_item,
8187 { "SatelliteID", "rrlp.SatelliteID",
8188 FT_UINT32, BASE_DEC, NULL, 0,
8189 NULL, HFILL }},
8190 { &hf_rrlp_rel98_Ext_ExpOTD,
8191 { "rel98-Ext-ExpOTD", "rrlp.rel98_Ext_ExpOTD_element",
8192 FT_NONE, BASE_NONE, NULL, 0,
8193 NULL, HFILL }},
8194 { &hf_rrlp_gpsTimeAssistanceMeasurementRequest,
8195 { "gpsTimeAssistanceMeasurementRequest", "rrlp.gpsTimeAssistanceMeasurementRequest_element",
8196 FT_NONE, BASE_NONE, NULL, 0,
8197 NULL, HFILL }},
8198 { &hf_rrlp_gpsReferenceTimeUncertainty,
8199 { "gpsReferenceTimeUncertainty", "rrlp.gpsReferenceTimeUncertainty",
8200 FT_UINT32, BASE_DEC, NULL, 0,
8201 NULL, HFILL }},
8202 { &hf_rrlp_msrAssistData_R98_ExpOTD,
8203 { "msrAssistData-R98-ExpOTD", "rrlp.msrAssistData_R98_ExpOTD_element",
8204 FT_NONE, BASE_NONE, NULL, 0,
8205 NULL, HFILL }},
8206 { &hf_rrlp_systemInfoAssistData_R98_ExpOTD,
8207 { "systemInfoAssistData-R98-ExpOTD", "rrlp.systemInfoAssistData_R98_ExpOTD_element",
8208 FT_NONE, BASE_NONE, NULL, 0,
8209 NULL, HFILL }},
8210 { &hf_rrlp_msrAssistList_R98_ExpOTD,
8211 { "msrAssistList-R98-ExpOTD", "rrlp.msrAssistList_R98_ExpOTD",
8212 FT_UINT32, BASE_DEC, NULL, 0,
8213 "SeqOfMsrAssistBTS_R98_ExpOTD", HFILL }},
8214 { &hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item,
8215 { "MsrAssistBTS-R98-ExpOTD", "rrlp.MsrAssistBTS_R98_ExpOTD_element",
8216 FT_NONE, BASE_NONE, NULL, 0,
8217 NULL, HFILL }},
8218 { &hf_rrlp_expectedOTD,
8219 { "expectedOTD", "rrlp.expectedOTD",
8220 FT_UINT32, BASE_DEC, NULL, 0,
8221 NULL, HFILL }},
8222 { &hf_rrlp_expOTDUncertainty,
8223 { "expOTDUncertainty", "rrlp.expOTDUncertainty",
8224 FT_UINT32, BASE_DEC, NULL, 0,
8225 NULL, HFILL }},
8226 { &hf_rrlp_systemInfoAssistListR98_ExpOTD,
8227 { "systemInfoAssistListR98-ExpOTD", "rrlp.systemInfoAssistListR98_ExpOTD",
8228 FT_UINT32, BASE_DEC, NULL, 0,
8229 "SeqOfSystemInfoAssistBTS_R98_ExpOTD", HFILL }},
8230 { &hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item,
8231 { "SystemInfoAssistBTS-R98-ExpOTD", "rrlp.SystemInfoAssistBTS_R98_ExpOTD",
8232 FT_UINT32, BASE_DEC, VALS(rrlp_SystemInfoAssistBTS_R98_ExpOTD_vals), 0,
8233 NULL, HFILL }},
8234 { &hf_rrlp_present_01,
8235 { "present", "rrlp.present_element",
8236 FT_NONE, BASE_NONE, NULL, 0,
8237 "AssistBTSData_R98_ExpOTD", HFILL }},
8238 { &hf_rrlp_expOTDuncertainty,
8239 { "expOTDuncertainty", "rrlp.expOTDuncertainty",
8240 FT_UINT32, BASE_DEC, NULL, 0,
8241 NULL, HFILL }},
8242 { &hf_rrlp_referenceFrameMSB,
8243 { "referenceFrameMSB", "rrlp.referenceFrameMSB",
8244 FT_UINT32, BASE_DEC, NULL, 0,
8245 "INTEGER_0_63", HFILL }},
8246 { &hf_rrlp_gpsTowSubms,
8247 { "gpsTowSubms", "rrlp.gpsTowSubms",
8248 FT_UINT32, BASE_DEC, NULL, 0,
8249 "INTEGER_0_9999", HFILL }},
8250 { &hf_rrlp_deltaTow,
8251 { "deltaTow", "rrlp.deltaTow",
8252 FT_UINT32, BASE_DEC, NULL, 0,
8253 "INTEGER_0_127", HFILL }},
8254 { &hf_rrlp_rel_98_Ext_MeasureInfo,
8255 { "rel-98-Ext-MeasureInfo", "rrlp.rel_98_Ext_MeasureInfo_element",
8256 FT_NONE, BASE_NONE, NULL, 0,
8257 "T_rel_98_Ext_MeasureInfo", HFILL }},
8258 { &hf_rrlp_otd_MeasureInfo_R98_Ext,
8259 { "otd-MeasureInfo-R98-Ext", "rrlp.otd_MeasureInfo_R98_Ext_element",
8260 FT_NONE, BASE_NONE, NULL, 0,
8261 NULL, HFILL }},
8262 { &hf_rrlp_timeAssistanceMeasurements,
8263 { "timeAssistanceMeasurements", "rrlp.timeAssistanceMeasurements_element",
8264 FT_NONE, BASE_NONE, NULL, 0,
8265 "GPSTimeAssistanceMeasurements", HFILL }},
8266 { &hf_rrlp_otdMsrFirstSets_R98_Ext,
8267 { "otdMsrFirstSets-R98-Ext", "rrlp.otdMsrFirstSets_R98_Ext_element",
8268 FT_NONE, BASE_NONE, NULL, 0,
8269 "OTD_MsrElementFirst_R98_Ext", HFILL }},
8270 { &hf_rrlp_otd_FirstSetMsrs_R98_Ext,
8271 { "otd-FirstSetMsrs-R98-Ext", "rrlp.otd_FirstSetMsrs_R98_Ext",
8272 FT_UINT32, BASE_DEC, NULL, 0,
8273 "SeqOfOTD_FirstSetMsrs_R98_Ext", HFILL }},
8274 { &hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item,
8275 { "OTD-FirstSetMsrs", "rrlp.OTD_FirstSetMsrs_element",
8276 FT_NONE, BASE_NONE, NULL, 0,
8277 NULL, HFILL }},
8278 { &hf_rrlp_otd_MeasureInfo_5_Ext,
8279 { "otd-MeasureInfo-5-Ext", "rrlp.otd_MeasureInfo_5_Ext",
8280 FT_UINT32, BASE_DEC, NULL, 0,
8281 NULL, HFILL }},
8282 { &hf_rrlp_ulPseudoSegInd,
8283 { "ulPseudoSegInd", "rrlp.ulPseudoSegInd",
8284 FT_UINT32, BASE_DEC, VALS(rrlp_UlPseudoSegInd_vals), 0,
8285 NULL, HFILL }},
8286 { &hf_rrlp_smlc_code,
8287 { "smlc-code", "rrlp.smlc_code",
8288 FT_UINT32, BASE_DEC, NULL, 0,
8289 "INTEGER_0_63", HFILL }},
8290 { &hf_rrlp_transaction_ID,
8291 { "transaction-ID", "rrlp.transaction_ID",
8292 FT_UINT32, BASE_DEC, NULL, 0,
8293 "INTEGER_0_262143", HFILL }},
8294 { &hf_rrlp_velocityRequested,
8295 { "velocityRequested", "rrlp.velocityRequested_element",
8296 FT_NONE, BASE_NONE, NULL, 0,
8297 NULL, HFILL }},
8298 { &hf_rrlp_ganssPositionMethod,
8299 { "ganssPositionMethod", "rrlp.ganssPositionMethod",
8300 FT_BYTES, BASE_NONE, NULL, 0,
8301 "GANSSPositioningMethod", HFILL }},
8302 { &hf_rrlp_ganss_AssistData,
8303 { "ganss-AssistData", "rrlp.ganss_AssistData_element",
8304 FT_NONE, BASE_NONE, NULL, 0,
8305 NULL, HFILL }},
8306 { &hf_rrlp_ganssCarrierPhaseMeasurementRequest,
8307 { "ganssCarrierPhaseMeasurementRequest", "rrlp.ganssCarrierPhaseMeasurementRequest_element",
8308 FT_NONE, BASE_NONE, NULL, 0,
8309 NULL, HFILL }},
8310 { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest,
8311 { "ganssTODGSMTimeAssociationMeasurementRequest", "rrlp.ganssTODGSMTimeAssociationMeasurementRequest_element",
8312 FT_NONE, BASE_NONE, NULL, 0,
8313 NULL, HFILL }},
8314 { &hf_rrlp_requiredResponseTime,
8315 { "requiredResponseTime", "rrlp.requiredResponseTime",
8316 FT_UINT32, BASE_DEC, NULL, 0,
8317 NULL, HFILL }},
8318 { &hf_rrlp_add_GPS_AssistData,
8319 { "add-GPS-AssistData", "rrlp.add_GPS_AssistData_element",
8320 FT_NONE, BASE_NONE, NULL, 0,
8321 NULL, HFILL }},
8322 { &hf_rrlp_ganssMultiFreqMeasurementRequest,
8323 { "ganssMultiFreqMeasurementRequest", "rrlp.ganssMultiFreqMeasurementRequest_element",
8324 FT_NONE, BASE_NONE, NULL, 0,
8325 NULL, HFILL }},
8326 { &hf_rrlp_ganss_controlHeader,
8327 { "ganss-controlHeader", "rrlp.ganss_controlHeader_element",
8328 FT_NONE, BASE_NONE, NULL, 0,
8329 NULL, HFILL }},
8330 { &hf_rrlp_ganssCommonAssistData,
8331 { "ganssCommonAssistData", "rrlp.ganssCommonAssistData_element",
8332 FT_NONE, BASE_NONE, NULL, 0,
8333 NULL, HFILL }},
8334 { &hf_rrlp_ganssGenericAssistDataList,
8335 { "ganssGenericAssistDataList", "rrlp.ganssGenericAssistDataList",
8336 FT_UINT32, BASE_DEC, NULL, 0,
8337 "SeqOfGANSSGenericAssistDataElement", HFILL }},
8338 { &hf_rrlp_ganssReferenceTime,
8339 { "ganssReferenceTime", "rrlp.ganssReferenceTime_element",
8340 FT_NONE, BASE_NONE, NULL, 0,
8341 NULL, HFILL }},
8342 { &hf_rrlp_ganssRefLocation,
8343 { "ganssRefLocation", "rrlp.ganssRefLocation_element",
8344 FT_NONE, BASE_NONE, NULL, 0,
8345 NULL, HFILL }},
8346 { &hf_rrlp_ganssIonosphericModel,
8347 { "ganssIonosphericModel", "rrlp.ganssIonosphericModel_element",
8348 FT_NONE, BASE_NONE, NULL, 0,
8349 NULL, HFILL }},
8350 { &hf_rrlp_ganssAddIonosphericModel,
8351 { "ganssAddIonosphericModel", "rrlp.ganssAddIonosphericModel_element",
8352 FT_NONE, BASE_NONE, NULL, 0,
8353 NULL, HFILL }},
8354 { &hf_rrlp_ganssEarthOrientParam,
8355 { "ganssEarthOrientParam", "rrlp.ganssEarthOrientParam_element",
8356 FT_NONE, BASE_NONE, NULL, 0,
8357 NULL, HFILL }},
8358 { &hf_rrlp_ganssReferenceTime_R10_Ext,
8359 { "ganssReferenceTime-R10-Ext", "rrlp.ganssReferenceTime_R10_Ext_element",
8360 FT_NONE, BASE_NONE, NULL, 0,
8361 NULL, HFILL }},
8362 { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item,
8363 { "GANSSGenericAssistDataElement", "rrlp.GANSSGenericAssistDataElement_element",
8364 FT_NONE, BASE_NONE, NULL, 0,
8365 NULL, HFILL }},
8366 { &hf_rrlp_ganssID,
8367 { "ganssID", "rrlp.ganssID",
8368 FT_UINT32, BASE_DEC, NULL, 0,
8369 "INTEGER_0_7", HFILL }},
8370 { &hf_rrlp_ganssTimeModel,
8371 { "ganssTimeModel", "rrlp.ganssTimeModel",
8372 FT_UINT32, BASE_DEC, NULL, 0,
8373 "SeqOfGANSSTimeModel", HFILL }},
8374 { &hf_rrlp_ganssDiffCorrections,
8375 { "ganssDiffCorrections", "rrlp.ganssDiffCorrections_element",
8376 FT_NONE, BASE_NONE, NULL, 0,
8377 NULL, HFILL }},
8378 { &hf_rrlp_ganssNavigationModel,
8379 { "ganssNavigationModel", "rrlp.ganssNavigationModel_element",
8380 FT_NONE, BASE_NONE, NULL, 0,
8381 "GANSSNavModel", HFILL }},
8382 { &hf_rrlp_ganssRealTimeIntegrity,
8383 { "ganssRealTimeIntegrity", "rrlp.ganssRealTimeIntegrity_element",
8384 FT_NONE, BASE_NONE, NULL, 0,
8385 NULL, HFILL }},
8386 { &hf_rrlp_ganssDataBitAssist,
8387 { "ganssDataBitAssist", "rrlp.ganssDataBitAssist_element",
8388 FT_NONE, BASE_NONE, NULL, 0,
8389 NULL, HFILL }},
8390 { &hf_rrlp_ganssRefMeasurementAssist,
8391 { "ganssRefMeasurementAssist", "rrlp.ganssRefMeasurementAssist_element",
8392 FT_NONE, BASE_NONE, NULL, 0,
8393 NULL, HFILL }},
8394 { &hf_rrlp_ganssAlmanacModel,
8395 { "ganssAlmanacModel", "rrlp.ganssAlmanacModel_element",
8396 FT_NONE, BASE_NONE, NULL, 0,
8397 NULL, HFILL }},
8398 { &hf_rrlp_ganssUTCModel,
8399 { "ganssUTCModel", "rrlp.ganssUTCModel_element",
8400 FT_NONE, BASE_NONE, NULL, 0,
8401 NULL, HFILL }},
8402 { &hf_rrlp_ganssEphemerisExtension,
8403 { "ganssEphemerisExtension", "rrlp.ganssEphemerisExtension_element",
8404 FT_NONE, BASE_NONE, NULL, 0,
8405 NULL, HFILL }},
8406 { &hf_rrlp_ganssEphemerisExtCheck,
8407 { "ganssEphemerisExtCheck", "rrlp.ganssEphemerisExtCheck_element",
8408 FT_NONE, BASE_NONE, NULL, 0,
8409 "GANSSEphemerisExtensionCheck", HFILL }},
8410 { &hf_rrlp_sbasID,
8411 { "sbasID", "rrlp.sbasID",
8412 FT_UINT32, BASE_DEC, NULL, 0,
8413 "INTEGER_0_7", HFILL }},
8414 { &hf_rrlp_ganssAddUTCModel,
8415 { "ganssAddUTCModel", "rrlp.ganssAddUTCModel",
8416 FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAddUTCModel_vals), 0,
8417 NULL, HFILL }},
8418 { &hf_rrlp_ganssAuxiliaryInfo,
8419 { "ganssAuxiliaryInfo", "rrlp.ganssAuxiliaryInfo",
8420 FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAuxiliaryInformation_vals), 0,
8421 "GANSSAuxiliaryInformation", HFILL }},
8422 { &hf_rrlp_ganssDiffCorrectionsValidityPeriod,
8423 { "ganssDiffCorrectionsValidityPeriod", "rrlp.ganssDiffCorrectionsValidityPeriod",
8424 FT_UINT32, BASE_DEC, NULL, 0,
8425 NULL, HFILL }},
8426 { &hf_rrlp_ganssTimeModel_R10_Ext,
8427 { "ganssTimeModel-R10-Ext", "rrlp.ganssTimeModel_R10_Ext",
8428 FT_UINT32, BASE_DEC, NULL, 0,
8429 "SeqOfGANSSTimeModel_R10_Ext", HFILL }},
8430 { &hf_rrlp_ganssRefMeasurementAssist_R10_Ext,
8431 { "ganssRefMeasurementAssist-R10-Ext", "rrlp.ganssRefMeasurementAssist_R10_Ext",
8432 FT_UINT32, BASE_DEC, NULL, 0,
8433 NULL, HFILL }},
8434 { &hf_rrlp_ganssAlmanacModel_R10_Ext,
8435 { "ganssAlmanacModel-R10-Ext", "rrlp.ganssAlmanacModel_R10_Ext_element",
8436 FT_NONE, BASE_NONE, NULL, 0,
8437 NULL, HFILL }},
8438 { &hf_rrlp_ganssRefTimeInfo,
8439 { "ganssRefTimeInfo", "rrlp.ganssRefTimeInfo_element",
8440 FT_NONE, BASE_NONE, NULL, 0,
8441 NULL, HFILL }},
8442 { &hf_rrlp_ganssTOD_GSMTimeAssociation,
8443 { "ganssTOD-GSMTimeAssociation", "rrlp.ganssTOD_GSMTimeAssociation_element",
8444 FT_NONE, BASE_NONE, NULL, 0,
8445 NULL, HFILL }},
8446 { &hf_rrlp_ganssDay,
8447 { "ganssDay", "rrlp.ganssDay",
8448 FT_UINT32, BASE_DEC, NULL, 0,
8449 "INTEGER_0_8191", HFILL }},
8450 { &hf_rrlp_ganssTOD,
8451 { "ganssTOD", "rrlp.ganssTOD",
8452 FT_UINT32, BASE_DEC, NULL, 0,
8453 NULL, HFILL }},
8454 { &hf_rrlp_ganssTODUncertainty,
8455 { "ganssTODUncertainty", "rrlp.ganssTODUncertainty",
8456 FT_UINT32, BASE_DEC, NULL, 0,
8457 NULL, HFILL }},
8458 { &hf_rrlp_ganssTimeID,
8459 { "ganssTimeID", "rrlp.ganssTimeID",
8460 FT_UINT32, BASE_DEC, NULL, 0,
8461 "INTEGER_0_7", HFILL }},
8462 { &hf_rrlp_ganssDayCycleNumber,
8463 { "ganssDayCycleNumber", "rrlp.ganssDayCycleNumber",
8464 FT_UINT32, BASE_DEC, NULL, 0,
8465 "INTEGER_0_7", HFILL }},
8466 { &hf_rrlp_frameDrift,
8467 { "frameDrift", "rrlp.frameDrift",
8468 FT_INT32, BASE_DEC, NULL, 0,
8469 NULL, HFILL }},
8470 { &hf_rrlp_ganssIonoModel,
8471 { "ganssIonoModel", "rrlp.ganssIonoModel_element",
8472 FT_NONE, BASE_NONE, NULL, 0,
8473 "GANSSIonosphereModel", HFILL }},
8474 { &hf_rrlp_ganssIonoStormFlags,
8475 { "ganssIonoStormFlags", "rrlp.ganssIonoStormFlags_element",
8476 FT_NONE, BASE_NONE, NULL, 0,
8477 NULL, HFILL }},
8478 { &hf_rrlp_ai0,
8479 { "ai0", "rrlp.ai0",
8480 FT_UINT32, BASE_DEC, NULL, 0,
8481 "INTEGER_0_4095", HFILL }},
8482 { &hf_rrlp_ai1,
8483 { "ai1", "rrlp.ai1",
8484 FT_UINT32, BASE_DEC, NULL, 0,
8485 "INTEGER_0_4095", HFILL }},
8486 { &hf_rrlp_ai2,
8487 { "ai2", "rrlp.ai2",
8488 FT_UINT32, BASE_DEC, NULL, 0,
8489 "INTEGER_0_4095", HFILL }},
8490 { &hf_rrlp_ionoStormFlag1,
8491 { "ionoStormFlag1", "rrlp.ionoStormFlag1",
8492 FT_UINT32, BASE_DEC, NULL, 0,
8493 "INTEGER_0_1", HFILL }},
8494 { &hf_rrlp_ionoStormFlag2,
8495 { "ionoStormFlag2", "rrlp.ionoStormFlag2",
8496 FT_UINT32, BASE_DEC, NULL, 0,
8497 "INTEGER_0_1", HFILL }},
8498 { &hf_rrlp_ionoStormFlag3,
8499 { "ionoStormFlag3", "rrlp.ionoStormFlag3",
8500 FT_UINT32, BASE_DEC, NULL, 0,
8501 "INTEGER_0_1", HFILL }},
8502 { &hf_rrlp_ionoStormFlag4,
8503 { "ionoStormFlag4", "rrlp.ionoStormFlag4",
8504 FT_UINT32, BASE_DEC, NULL, 0,
8505 "INTEGER_0_1", HFILL }},
8506 { &hf_rrlp_ionoStormFlag5,
8507 { "ionoStormFlag5", "rrlp.ionoStormFlag5",
8508 FT_UINT32, BASE_DEC, NULL, 0,
8509 "INTEGER_0_1", HFILL }},
8510 { &hf_rrlp_dataID,
8511 { "dataID", "rrlp.dataID",
8512 FT_BYTES, BASE_NONE, NULL, 0,
8513 "BIT_STRING_SIZE_2", HFILL }},
8514 { &hf_rrlp_ionoModel,
8515 { "ionoModel", "rrlp.ionoModel_element",
8516 FT_NONE, BASE_NONE, NULL, 0,
8517 "IonosphericModel", HFILL }},
8518 { &hf_rrlp_teop,
8519 { "teop", "rrlp.teop",
8520 FT_UINT32, BASE_DEC, NULL, 0,
8521 "INTEGER_0_65535", HFILL }},
8522 { &hf_rrlp_pmX,
8523 { "pmX", "rrlp.pmX",
8524 FT_INT32, BASE_DEC, NULL, 0,
8525 "INTEGER_M1048576_1048575", HFILL }},
8526 { &hf_rrlp_pmXdot,
8527 { "pmXdot", "rrlp.pmXdot",
8528 FT_INT32, BASE_DEC, NULL, 0,
8529 "INTEGER_M16384_16383", HFILL }},
8530 { &hf_rrlp_pmY,
8531 { "pmY", "rrlp.pmY",
8532 FT_INT32, BASE_DEC, NULL, 0,
8533 "INTEGER_M1048576_1048575", HFILL }},
8534 { &hf_rrlp_pmYdot,
8535 { "pmYdot", "rrlp.pmYdot",
8536 FT_INT32, BASE_DEC, NULL, 0,
8537 "INTEGER_M16384_16383", HFILL }},
8538 { &hf_rrlp_deltaUT1,
8539 { "deltaUT1", "rrlp.deltaUT1",
8540 FT_INT32, BASE_DEC, NULL, 0,
8541 "INTEGER_M1073741824_1073741823", HFILL }},
8542 { &hf_rrlp_deltaUT1dot,
8543 { "deltaUT1dot", "rrlp.deltaUT1dot",
8544 FT_INT32, BASE_DEC, NULL, 0,
8545 "INTEGER_M262144_262143", HFILL }},
8546 { &hf_rrlp_SeqOfGANSSTimeModel_item,
8547 { "GANSSTimeModelElement", "rrlp.GANSSTimeModelElement_element",
8548 FT_NONE, BASE_NONE, NULL, 0,
8549 NULL, HFILL }},
8550 { &hf_rrlp_ganssTimeModelRefTime,
8551 { "ganssTimeModelRefTime", "rrlp.ganssTimeModelRefTime",
8552 FT_UINT32, BASE_DEC, NULL, 0,
8553 "INTEGER_0_65535", HFILL }},
8554 { &hf_rrlp_tA0,
8555 { "tA0", "rrlp.tA0",
8556 FT_INT32, BASE_DEC, NULL, 0,
8557 NULL, HFILL }},
8558 { &hf_rrlp_tA1,
8559 { "tA1", "rrlp.tA1",
8560 FT_INT32, BASE_DEC, NULL, 0,
8561 NULL, HFILL }},
8562 { &hf_rrlp_tA2,
8563 { "tA2", "rrlp.tA2",
8564 FT_INT32, BASE_DEC, NULL, 0,
8565 NULL, HFILL }},
8566 { &hf_rrlp_gnssTOID,
8567 { "gnssTOID", "rrlp.gnssTOID",
8568 FT_UINT32, BASE_DEC, NULL, 0,
8569 "INTEGER_0_7", HFILL }},
8570 { &hf_rrlp_weekNumber,
8571 { "weekNumber", "rrlp.weekNumber",
8572 FT_UINT32, BASE_DEC, NULL, 0,
8573 "INTEGER_0_8191", HFILL }},
8574 { &hf_rrlp_SeqOfGANSSTimeModel_R10_Ext_item,
8575 { "GANSSTimeModelElement-R10-Ext", "rrlp.GANSSTimeModelElement_R10_Ext_element",
8576 FT_NONE, BASE_NONE, NULL, 0,
8577 NULL, HFILL }},
8578 { &hf_rrlp_deltaT,
8579 { "deltaT", "rrlp.deltaT",
8580 FT_INT32, BASE_DEC, NULL, 0,
8581 "INTEGER_M128_127", HFILL }},
8582 { &hf_rrlp_dganssRefTime,
8583 { "dganssRefTime", "rrlp.dganssRefTime",
8584 FT_UINT32, BASE_DEC, NULL, 0,
8585 "INTEGER_0_119", HFILL }},
8586 { &hf_rrlp_sgnTypeList,
8587 { "sgnTypeList", "rrlp.sgnTypeList",
8588 FT_UINT32, BASE_DEC, NULL, 0,
8589 "SeqOfSgnTypeElement", HFILL }},
8590 { &hf_rrlp_SeqOfSgnTypeElement_item,
8591 { "SgnTypeElement", "rrlp.SgnTypeElement_element",
8592 FT_NONE, BASE_NONE, NULL, 0,
8593 NULL, HFILL }},
8594 { &hf_rrlp_ganssSignalID,
8595 { "ganssSignalID", "rrlp.ganssSignalID",
8596 FT_UINT32, BASE_DEC, NULL, 0,
8597 NULL, HFILL }},
8598 { &hf_rrlp_ganssStatusHealth,
8599 { "ganssStatusHealth", "rrlp.ganssStatusHealth",
8600 FT_UINT32, BASE_DEC, NULL, 0,
8601 "INTEGER_0_7", HFILL }},
8602 { &hf_rrlp_dganssSgnList,
8603 { "dganssSgnList", "rrlp.dganssSgnList",
8604 FT_UINT32, BASE_DEC, NULL, 0,
8605 "SeqOfDGANSSSgnElement", HFILL }},
8606 { &hf_rrlp_SeqOfDGANSSSgnElement_item,
8607 { "DGANSSSgnElement", "rrlp.DGANSSSgnElement_element",
8608 FT_NONE, BASE_NONE, NULL, 0,
8609 NULL, HFILL }},
8610 { &hf_rrlp_svID,
8611 { "svID", "rrlp.svID",
8612 FT_UINT32, BASE_DEC, NULL, 0,
8613 NULL, HFILL }},
8614 { &hf_rrlp_iod,
8615 { "iod", "rrlp.iod",
8616 FT_UINT32, BASE_DEC, NULL, 0,
8617 "INTEGER_0_1023", HFILL }},
8618 { &hf_rrlp_nonBroadcastIndFlag,
8619 { "nonBroadcastIndFlag", "rrlp.nonBroadcastIndFlag",
8620 FT_UINT32, BASE_DEC, NULL, 0,
8621 "INTEGER_0_1", HFILL }},
8622 { &hf_rrlp_ganssSatelliteList,
8623 { "ganssSatelliteList", "rrlp.ganssSatelliteList",
8624 FT_UINT32, BASE_DEC, NULL, 0,
8625 "SeqOfGANSSSatelliteElement", HFILL }},
8626 { &hf_rrlp_SeqOfGANSSSatelliteElement_item,
8627 { "GANSSSatelliteElement", "rrlp.GANSSSatelliteElement_element",
8628 FT_NONE, BASE_NONE, NULL, 0,
8629 NULL, HFILL }},
8630 { &hf_rrlp_svHealth,
8631 { "svHealth", "rrlp.svHealth",
8632 FT_BYTES, BASE_NONE, NULL, 0,
8633 "BIT_STRING_SIZE_5", HFILL }},
8634 { &hf_rrlp_ganssClockModel,
8635 { "ganssClockModel", "rrlp.ganssClockModel",
8636 FT_UINT32, BASE_DEC, VALS(rrlp_GANSSClockModel_vals), 0,
8637 NULL, HFILL }},
8638 { &hf_rrlp_ganssOrbitModel,
8639 { "ganssOrbitModel", "rrlp.ganssOrbitModel",
8640 FT_UINT32, BASE_DEC, VALS(rrlp_GANSSOrbitModel_vals), 0,
8641 NULL, HFILL }},
8642 { &hf_rrlp_svHealthMSB,
8643 { "svHealthMSB", "rrlp.svHealthMSB",
8644 FT_BYTES, BASE_NONE, NULL, 0,
8645 "BIT_STRING_SIZE_1", HFILL }},
8646 { &hf_rrlp_iodMSB,
8647 { "iodMSB", "rrlp.iodMSB",
8648 FT_UINT32, BASE_DEC, NULL, 0,
8649 "INTEGER_0_1", HFILL }},
8650 { &hf_rrlp_keplerianSet,
8651 { "keplerianSet", "rrlp.keplerianSet_element",
8652 FT_NONE, BASE_NONE, NULL, 0,
8653 "NavModel_KeplerianSet", HFILL }},
8654 { &hf_rrlp_navKeplerianSet,
8655 { "navKeplerianSet", "rrlp.navKeplerianSet_element",
8656 FT_NONE, BASE_NONE, NULL, 0,
8657 "NavModel_NAVKeplerianSet", HFILL }},
8658 { &hf_rrlp_cnavKeplerianSet,
8659 { "cnavKeplerianSet", "rrlp.cnavKeplerianSet_element",
8660 FT_NONE, BASE_NONE, NULL, 0,
8661 "NavModel_CNAVKeplerianSet", HFILL }},
8662 { &hf_rrlp_glonassECEF,
8663 { "glonassECEF", "rrlp.glonassECEF_element",
8664 FT_NONE, BASE_NONE, NULL, 0,
8665 "NavModel_GLONASSecef", HFILL }},
8666 { &hf_rrlp_sbasECEF,
8667 { "sbasECEF", "rrlp.sbasECEF_element",
8668 FT_NONE, BASE_NONE, NULL, 0,
8669 "NavModel_SBASecef", HFILL }},
8670 { &hf_rrlp_keplerToe,
8671 { "keplerToe", "rrlp.keplerToe",
8672 FT_UINT32, BASE_DEC, NULL, 0,
8673 "INTEGER_0_16383", HFILL }},
8674 { &hf_rrlp_keplerW,
8675 { "keplerW", "rrlp.keplerW",
8676 FT_INT32, BASE_DEC, NULL, 0,
8677 "INTEGER_M2147483648_2147483647", HFILL }},
8678 { &hf_rrlp_keplerDeltaN,
8679 { "keplerDeltaN", "rrlp.keplerDeltaN",
8680 FT_INT32, BASE_DEC, NULL, 0,
8681 "INTEGER_M32768_32767", HFILL }},
8682 { &hf_rrlp_keplerM0,
8683 { "keplerM0", "rrlp.keplerM0",
8684 FT_INT32, BASE_DEC, NULL, 0,
8685 "INTEGER_M2147483648_2147483647", HFILL }},
8686 { &hf_rrlp_keplerOmegaDot,
8687 { "keplerOmegaDot", "rrlp.keplerOmegaDot",
8688 FT_INT32, BASE_DEC, NULL, 0,
8689 "INTEGER_M8388608_8388607", HFILL }},
8690 { &hf_rrlp_keplerE,
8691 { "keplerE", "rrlp.keplerE",
8692 FT_UINT32, BASE_DEC, NULL, 0,
8693 "INTEGER_0_4294967295", HFILL }},
8694 { &hf_rrlp_keplerIDot,
8695 { "keplerIDot", "rrlp.keplerIDot",
8696 FT_INT32, BASE_DEC, NULL, 0,
8697 "INTEGER_M8192_8191", HFILL }},
8698 { &hf_rrlp_keplerAPowerHalf,
8699 { "keplerAPowerHalf", "rrlp.keplerAPowerHalf",
8700 FT_UINT32, BASE_DEC, NULL, 0,
8701 "INTEGER_0_4294967295", HFILL }},
8702 { &hf_rrlp_keplerI0,
8703 { "keplerI0", "rrlp.keplerI0",
8704 FT_INT32, BASE_DEC, NULL, 0,
8705 "INTEGER_M2147483648_2147483647", HFILL }},
8706 { &hf_rrlp_keplerOmega0,
8707 { "keplerOmega0", "rrlp.keplerOmega0",
8708 FT_INT32, BASE_DEC, NULL, 0,
8709 "INTEGER_M2147483648_2147483647", HFILL }},
8710 { &hf_rrlp_keplerCrs,
8711 { "keplerCrs", "rrlp.keplerCrs",
8712 FT_INT32, BASE_DEC, NULL, 0,
8713 "INTEGER_M32768_32767", HFILL }},
8714 { &hf_rrlp_keplerCis,
8715 { "keplerCis", "rrlp.keplerCis",
8716 FT_INT32, BASE_DEC, NULL, 0,
8717 "INTEGER_M32768_32767", HFILL }},
8718 { &hf_rrlp_keplerCus,
8719 { "keplerCus", "rrlp.keplerCus",
8720 FT_INT32, BASE_DEC, NULL, 0,
8721 "INTEGER_M32768_32767", HFILL }},
8722 { &hf_rrlp_keplerCrc,
8723 { "keplerCrc", "rrlp.keplerCrc",
8724 FT_INT32, BASE_DEC, NULL, 0,
8725 "INTEGER_M32768_32767", HFILL }},
8726 { &hf_rrlp_keplerCic,
8727 { "keplerCic", "rrlp.keplerCic",
8728 FT_INT32, BASE_DEC, NULL, 0,
8729 "INTEGER_M32768_32767", HFILL }},
8730 { &hf_rrlp_keplerCuc,
8731 { "keplerCuc", "rrlp.keplerCuc",
8732 FT_INT32, BASE_DEC, NULL, 0,
8733 "INTEGER_M32768_32767", HFILL }},
8734 { &hf_rrlp_navURA,
8735 { "navURA", "rrlp.navURA",
8736 FT_UINT32, BASE_DEC, NULL, 0,
8737 "INTEGER_0_15", HFILL }},
8738 { &hf_rrlp_navFitFlag,
8739 { "navFitFlag", "rrlp.navFitFlag",
8740 FT_UINT32, BASE_DEC, NULL, 0,
8741 "INTEGER_0_1", HFILL }},
8742 { &hf_rrlp_navToe,
8743 { "navToe", "rrlp.navToe",
8744 FT_UINT32, BASE_DEC, NULL, 0,
8745 "INTEGER_0_37799", HFILL }},
8746 { &hf_rrlp_navOmega,
8747 { "navOmega", "rrlp.navOmega",
8748 FT_INT32, BASE_DEC, NULL, 0,
8749 "INTEGER_M2147483648_2147483647", HFILL }},
8750 { &hf_rrlp_navDeltaN,
8751 { "navDeltaN", "rrlp.navDeltaN",
8752 FT_INT32, BASE_DEC, NULL, 0,
8753 "INTEGER_M32768_32767", HFILL }},
8754 { &hf_rrlp_navM0,
8755 { "navM0", "rrlp.navM0",
8756 FT_INT32, BASE_DEC, NULL, 0,
8757 "INTEGER_M2147483648_2147483647", HFILL }},
8758 { &hf_rrlp_navOmegaADot,
8759 { "navOmegaADot", "rrlp.navOmegaADot",
8760 FT_INT32, BASE_DEC, NULL, 0,
8761 "INTEGER_M8388608_8388607", HFILL }},
8762 { &hf_rrlp_navE,
8763 { "navE", "rrlp.navE",
8764 FT_UINT32, BASE_DEC, NULL, 0,
8765 "INTEGER_0_4294967295", HFILL }},
8766 { &hf_rrlp_navIDot,
8767 { "navIDot", "rrlp.navIDot",
8768 FT_INT32, BASE_DEC, NULL, 0,
8769 "INTEGER_M8192_8191", HFILL }},
8770 { &hf_rrlp_navAPowerHalf,
8771 { "navAPowerHalf", "rrlp.navAPowerHalf",
8772 FT_UINT32, BASE_DEC, NULL, 0,
8773 "INTEGER_0_4294967295", HFILL }},
8774 { &hf_rrlp_navI0,
8775 { "navI0", "rrlp.navI0",
8776 FT_INT32, BASE_DEC, NULL, 0,
8777 "INTEGER_M2147483648_2147483647", HFILL }},
8778 { &hf_rrlp_navOmegaA0,
8779 { "navOmegaA0", "rrlp.navOmegaA0",
8780 FT_INT32, BASE_DEC, NULL, 0,
8781 "INTEGER_M2147483648_2147483647", HFILL }},
8782 { &hf_rrlp_navCrs,
8783 { "navCrs", "rrlp.navCrs",
8784 FT_INT32, BASE_DEC, NULL, 0,
8785 "INTEGER_M32768_32767", HFILL }},
8786 { &hf_rrlp_navCis,
8787 { "navCis", "rrlp.navCis",
8788 FT_INT32, BASE_DEC, NULL, 0,
8789 "INTEGER_M32768_32767", HFILL }},
8790 { &hf_rrlp_navCus,
8791 { "navCus", "rrlp.navCus",
8792 FT_INT32, BASE_DEC, NULL, 0,
8793 "INTEGER_M32768_32767", HFILL }},
8794 { &hf_rrlp_navCrc,
8795 { "navCrc", "rrlp.navCrc",
8796 FT_INT32, BASE_DEC, NULL, 0,
8797 "INTEGER_M32768_32767", HFILL }},
8798 { &hf_rrlp_navCic,
8799 { "navCic", "rrlp.navCic",
8800 FT_INT32, BASE_DEC, NULL, 0,
8801 "INTEGER_M32768_32767", HFILL }},
8802 { &hf_rrlp_navCuc,
8803 { "navCuc", "rrlp.navCuc",
8804 FT_INT32, BASE_DEC, NULL, 0,
8805 "INTEGER_M32768_32767", HFILL }},
8806 { &hf_rrlp_cnavTop,
8807 { "cnavTop", "rrlp.cnavTop",
8808 FT_UINT32, BASE_DEC, NULL, 0,
8809 "INTEGER_0_2015", HFILL }},
8810 { &hf_rrlp_cnavURAindex,
8811 { "cnavURAindex", "rrlp.cnavURAindex",
8812 FT_INT32, BASE_DEC, NULL, 0,
8813 "INTEGER_M16_15", HFILL }},
8814 { &hf_rrlp_cnavDeltaA,
8815 { "cnavDeltaA", "rrlp.cnavDeltaA",
8816 FT_INT32, BASE_DEC, NULL, 0,
8817 "INTEGER_M33554432_33554431", HFILL }},
8818 { &hf_rrlp_cnavAdot,
8819 { "cnavAdot", "rrlp.cnavAdot",
8820 FT_INT32, BASE_DEC, NULL, 0,
8821 "INTEGER_M16777216_16777215", HFILL }},
8822 { &hf_rrlp_cnavDeltaNo,
8823 { "cnavDeltaNo", "rrlp.cnavDeltaNo",
8824 FT_INT32, BASE_DEC, NULL, 0,
8825 "INTEGER_M65536_65535", HFILL }},
8826 { &hf_rrlp_cnavDeltaNoDot,
8827 { "cnavDeltaNoDot", "rrlp.cnavDeltaNoDot",
8828 FT_INT32, BASE_DEC, NULL, 0,
8829 "INTEGER_M4194304_4194303", HFILL }},
8830 { &hf_rrlp_cnavMo,
8831 { "cnavMo", "rrlp.cnavMo",
8832 FT_INT64, BASE_DEC, NULL, 0,
8833 "INTEGER_M4294967296_4294967295", HFILL }},
8834 { &hf_rrlp_cnavE,
8835 { "cnavE", "rrlp.cnavE",
8836 FT_UINT64, BASE_DEC, NULL, 0,
8837 "INTEGER_0_8589934591", HFILL }},
8838 { &hf_rrlp_cnavOmega,
8839 { "cnavOmega", "rrlp.cnavOmega",
8840 FT_INT64, BASE_DEC, NULL, 0,
8841 "INTEGER_M4294967296_4294967295", HFILL }},
8842 { &hf_rrlp_cnavOMEGA0,
8843 { "cnavOMEGA0", "rrlp.cnavOMEGA0",
8844 FT_INT64, BASE_DEC, NULL, 0,
8845 "INTEGER_M4294967296_4294967295", HFILL }},
8846 { &hf_rrlp_cnavDeltaOmegaDot,
8847 { "cnavDeltaOmegaDot", "rrlp.cnavDeltaOmegaDot",
8848 FT_INT32, BASE_DEC, NULL, 0,
8849 "INTEGER_M65536_65535", HFILL }},
8850 { &hf_rrlp_cnavIo,
8851 { "cnavIo", "rrlp.cnavIo",
8852 FT_INT64, BASE_DEC, NULL, 0,
8853 "INTEGER_M4294967296_4294967295", HFILL }},
8854 { &hf_rrlp_cnavIoDot,
8855 { "cnavIoDot", "rrlp.cnavIoDot",
8856 FT_INT32, BASE_DEC, NULL, 0,
8857 "INTEGER_M16384_16383", HFILL }},
8858 { &hf_rrlp_cnavCis,
8859 { "cnavCis", "rrlp.cnavCis",
8860 FT_INT32, BASE_DEC, NULL, 0,
8861 "INTEGER_M32768_32767", HFILL }},
8862 { &hf_rrlp_cnavCic,
8863 { "cnavCic", "rrlp.cnavCic",
8864 FT_INT32, BASE_DEC, NULL, 0,
8865 "INTEGER_M32768_32767", HFILL }},
8866 { &hf_rrlp_cnavCrs,
8867 { "cnavCrs", "rrlp.cnavCrs",
8868 FT_INT32, BASE_DEC, NULL, 0,
8869 "INTEGER_M8388608_8388607", HFILL }},
8870 { &hf_rrlp_cnavCrc,
8871 { "cnavCrc", "rrlp.cnavCrc",
8872 FT_INT32, BASE_DEC, NULL, 0,
8873 "INTEGER_M8388608_8388607", HFILL }},
8874 { &hf_rrlp_cnavCus,
8875 { "cnavCus", "rrlp.cnavCus",
8876 FT_INT32, BASE_DEC, NULL, 0,
8877 "INTEGER_M1048576_1048575", HFILL }},
8878 { &hf_rrlp_cnavCuc,
8879 { "cnavCuc", "rrlp.cnavCuc",
8880 FT_INT32, BASE_DEC, NULL, 0,
8881 "INTEGER_M1048576_1048575", HFILL }},
8882 { &hf_rrlp_gloEn,
8883 { "gloEn", "rrlp.gloEn",
8884 FT_UINT32, BASE_DEC, NULL, 0,
8885 "INTEGER_0_31", HFILL }},
8886 { &hf_rrlp_gloP1,
8887 { "gloP1", "rrlp.gloP1",
8888 FT_BYTES, BASE_NONE, NULL, 0,
8889 "BIT_STRING_SIZE_2", HFILL }},
8890 { &hf_rrlp_gloP2,
8891 { "gloP2", "rrlp.gloP2",
8892 FT_BOOLEAN, BASE_NONE, NULL, 0,
8893 "BOOLEAN", HFILL }},
8894 { &hf_rrlp_gloM,
8895 { "gloM", "rrlp.gloM",
8896 FT_UINT32, BASE_DEC, NULL, 0,
8897 "INTEGER_0_3", HFILL }},
8898 { &hf_rrlp_gloX,
8899 { "gloX", "rrlp.gloX",
8900 FT_INT32, BASE_DEC, NULL, 0,
8901 "INTEGER_M67108864_67108863", HFILL }},
8902 { &hf_rrlp_gloXdot,
8903 { "gloXdot", "rrlp.gloXdot",
8904 FT_INT32, BASE_DEC, NULL, 0,
8905 "INTEGER_M8388608_8388607", HFILL }},
8906 { &hf_rrlp_gloXdotdot,
8907 { "gloXdotdot", "rrlp.gloXdotdot",
8908 FT_INT32, BASE_DEC, NULL, 0,
8909 "INTEGER_M16_15", HFILL }},
8910 { &hf_rrlp_gloY,
8911 { "gloY", "rrlp.gloY",
8912 FT_INT32, BASE_DEC, NULL, 0,
8913 "INTEGER_M67108864_67108863", HFILL }},
8914 { &hf_rrlp_gloYdot,
8915 { "gloYdot", "rrlp.gloYdot",
8916 FT_INT32, BASE_DEC, NULL, 0,
8917 "INTEGER_M8388608_8388607", HFILL }},
8918 { &hf_rrlp_gloYdotdot,
8919 { "gloYdotdot", "rrlp.gloYdotdot",
8920 FT_INT32, BASE_DEC, NULL, 0,
8921 "INTEGER_M16_15", HFILL }},
8922 { &hf_rrlp_gloZ,
8923 { "gloZ", "rrlp.gloZ",
8924 FT_INT32, BASE_DEC, NULL, 0,
8925 "INTEGER_M67108864_67108863", HFILL }},
8926 { &hf_rrlp_gloZdot,
8927 { "gloZdot", "rrlp.gloZdot",
8928 FT_INT32, BASE_DEC, NULL, 0,
8929 "INTEGER_M8388608_8388607", HFILL }},
8930 { &hf_rrlp_gloZdotdot,
8931 { "gloZdotdot", "rrlp.gloZdotdot",
8932 FT_INT32, BASE_DEC, NULL, 0,
8933 "INTEGER_M16_15", HFILL }},
8934 { &hf_rrlp_sbasTo,
8935 { "sbasTo", "rrlp.sbasTo",
8936 FT_UINT32, BASE_DEC, NULL, 0,
8937 "INTEGER_0_5399", HFILL }},
8938 { &hf_rrlp_sbasAccuracy,
8939 { "sbasAccuracy", "rrlp.sbasAccuracy",
8940 FT_BYTES, BASE_NONE, NULL, 0,
8941 "BIT_STRING_SIZE_4", HFILL }},
8942 { &hf_rrlp_sbasXg,
8943 { "sbasXg", "rrlp.sbasXg",
8944 FT_INT32, BASE_DEC, NULL, 0,
8945 "INTEGER_M536870912_536870911", HFILL }},
8946 { &hf_rrlp_sbasYg,
8947 { "sbasYg", "rrlp.sbasYg",
8948 FT_INT32, BASE_DEC, NULL, 0,
8949 "INTEGER_M536870912_536870911", HFILL }},
8950 { &hf_rrlp_sbasZg,
8951 { "sbasZg", "rrlp.sbasZg",
8952 FT_INT32, BASE_DEC, NULL, 0,
8953 "INTEGER_M16777216_16777215", HFILL }},
8954 { &hf_rrlp_sbasXgDot,
8955 { "sbasXgDot", "rrlp.sbasXgDot",
8956 FT_INT32, BASE_DEC, NULL, 0,
8957 "INTEGER_M65536_65535", HFILL }},
8958 { &hf_rrlp_sbasYgDot,
8959 { "sbasYgDot", "rrlp.sbasYgDot",
8960 FT_INT32, BASE_DEC, NULL, 0,
8961 "INTEGER_M65536_65535", HFILL }},
8962 { &hf_rrlp_sbasZgDot,
8963 { "sbasZgDot", "rrlp.sbasZgDot",
8964 FT_INT32, BASE_DEC, NULL, 0,
8965 "INTEGER_M131072_131071", HFILL }},
8966 { &hf_rrlp_sbasXgDotDot,
8967 { "sbasXgDotDot", "rrlp.sbasXgDotDot",
8968 FT_INT32, BASE_DEC, NULL, 0,
8969 "INTEGER_M512_511", HFILL }},
8970 { &hf_rrlp_sbagYgDotDot,
8971 { "sbagYgDotDot", "rrlp.sbagYgDotDot",
8972 FT_INT32, BASE_DEC, NULL, 0,
8973 "INTEGER_M512_511", HFILL }},
8974 { &hf_rrlp_sbasZgDotDot,
8975 { "sbasZgDotDot", "rrlp.sbasZgDotDot",
8976 FT_INT32, BASE_DEC, NULL, 0,
8977 "INTEGER_M512_511", HFILL }},
8978 { &hf_rrlp_standardClockModelList,
8979 { "standardClockModelList", "rrlp.standardClockModelList",
8980 FT_UINT32, BASE_DEC, NULL, 0,
8981 "SeqOfStandardClockModelElement", HFILL }},
8982 { &hf_rrlp_navClockModel,
8983 { "navClockModel", "rrlp.navClockModel_element",
8984 FT_NONE, BASE_NONE, NULL, 0,
8985 NULL, HFILL }},
8986 { &hf_rrlp_cnavClockModel,
8987 { "cnavClockModel", "rrlp.cnavClockModel_element",
8988 FT_NONE, BASE_NONE, NULL, 0,
8989 NULL, HFILL }},
8990 { &hf_rrlp_glonassClockModel,
8991 { "glonassClockModel", "rrlp.glonassClockModel_element",
8992 FT_NONE, BASE_NONE, NULL, 0,
8993 NULL, HFILL }},
8994 { &hf_rrlp_sbasClockModel,
8995 { "sbasClockModel", "rrlp.sbasClockModel_element",
8996 FT_NONE, BASE_NONE, NULL, 0,
8997 NULL, HFILL }},
8998 { &hf_rrlp_SeqOfStandardClockModelElement_item,
8999 { "StandardClockModelElement", "rrlp.StandardClockModelElement_element",
9000 FT_NONE, BASE_NONE, NULL, 0,
9001 NULL, HFILL }},
9002 { &hf_rrlp_stanClockToc,
9003 { "stanClockToc", "rrlp.stanClockToc",
9004 FT_UINT32, BASE_DEC, NULL, 0,
9005 "INTEGER_0_16383", HFILL }},
9006 { &hf_rrlp_stanClockAF2,
9007 { "stanClockAF2", "rrlp.stanClockAF2",
9008 FT_INT32, BASE_DEC, NULL, 0,
9009 "INTEGER_M2048_2047", HFILL }},
9010 { &hf_rrlp_stanClockAF1,
9011 { "stanClockAF1", "rrlp.stanClockAF1",
9012 FT_INT32, BASE_DEC, NULL, 0,
9013 "INTEGER_M131072_131071", HFILL }},
9014 { &hf_rrlp_stanClockAF0,
9015 { "stanClockAF0", "rrlp.stanClockAF0",
9016 FT_INT32, BASE_DEC, NULL, 0,
9017 "INTEGER_M134217728_134217727", HFILL }},
9018 { &hf_rrlp_stanClockTgd,
9019 { "stanClockTgd", "rrlp.stanClockTgd",
9020 FT_INT32, BASE_DEC, NULL, 0,
9021 "INTEGER_M512_511", HFILL }},
9022 { &hf_rrlp_stanModelID,
9023 { "stanModelID", "rrlp.stanModelID",
9024 FT_UINT32, BASE_DEC, NULL, 0,
9025 "INTEGER_0_1", HFILL }},
9026 { &hf_rrlp_navToc,
9027 { "navToc", "rrlp.navToc",
9028 FT_UINT32, BASE_DEC, NULL, 0,
9029 "INTEGER_0_37799", HFILL }},
9030 { &hf_rrlp_navaf2,
9031 { "navaf2", "rrlp.navaf2",
9032 FT_INT32, BASE_DEC, NULL, 0,
9033 "INTEGER_M128_127", HFILL }},
9034 { &hf_rrlp_navaf1,
9035 { "navaf1", "rrlp.navaf1",
9036 FT_INT32, BASE_DEC, NULL, 0,
9037 "INTEGER_M32768_32767", HFILL }},
9038 { &hf_rrlp_navaf0,
9039 { "navaf0", "rrlp.navaf0",
9040 FT_INT32, BASE_DEC, NULL, 0,
9041 "INTEGER_M2097152_2097151", HFILL }},
9042 { &hf_rrlp_navTgd,
9043 { "navTgd", "rrlp.navTgd",
9044 FT_INT32, BASE_DEC, NULL, 0,
9045 "INTEGER_M128_127", HFILL }},
9046 { &hf_rrlp_cnavToc,
9047 { "cnavToc", "rrlp.cnavToc",
9048 FT_UINT32, BASE_DEC, NULL, 0,
9049 "INTEGER_0_2015", HFILL }},
9050 { &hf_rrlp_cnavURA0,
9051 { "cnavURA0", "rrlp.cnavURA0",
9052 FT_INT32, BASE_DEC, NULL, 0,
9053 "INTEGER_M16_15", HFILL }},
9054 { &hf_rrlp_cnavURA1,
9055 { "cnavURA1", "rrlp.cnavURA1",
9056 FT_UINT32, BASE_DEC, NULL, 0,
9057 "INTEGER_0_7", HFILL }},
9058 { &hf_rrlp_cnavURA2,
9059 { "cnavURA2", "rrlp.cnavURA2",
9060 FT_UINT32, BASE_DEC, NULL, 0,
9061 "INTEGER_0_7", HFILL }},
9062 { &hf_rrlp_cnavAf2,
9063 { "cnavAf2", "rrlp.cnavAf2",
9064 FT_INT32, BASE_DEC, NULL, 0,
9065 "INTEGER_M512_511", HFILL }},
9066 { &hf_rrlp_cnavAf1,
9067 { "cnavAf1", "rrlp.cnavAf1",
9068 FT_INT32, BASE_DEC, NULL, 0,
9069 "INTEGER_M524288_524287", HFILL }},
9070 { &hf_rrlp_cnavAf0,
9071 { "cnavAf0", "rrlp.cnavAf0",
9072 FT_INT32, BASE_DEC, NULL, 0,
9073 "INTEGER_M33554432_33554431", HFILL }},
9074 { &hf_rrlp_cnavTgd,
9075 { "cnavTgd", "rrlp.cnavTgd",
9076 FT_INT32, BASE_DEC, NULL, 0,
9077 "INTEGER_M4096_4095", HFILL }},
9078 { &hf_rrlp_cnavISCl1cp,
9079 { "cnavISCl1cp", "rrlp.cnavISCl1cp",
9080 FT_INT32, BASE_DEC, NULL, 0,
9081 "INTEGER_M4096_4095", HFILL }},
9082 { &hf_rrlp_cnavISCl1cd,
9083 { "cnavISCl1cd", "rrlp.cnavISCl1cd",
9084 FT_INT32, BASE_DEC, NULL, 0,
9085 "INTEGER_M4096_4095", HFILL }},
9086 { &hf_rrlp_cnavISCl1ca,
9087 { "cnavISCl1ca", "rrlp.cnavISCl1ca",
9088 FT_INT32, BASE_DEC, NULL, 0,
9089 "INTEGER_M4096_4095", HFILL }},
9090 { &hf_rrlp_cnavISCl2c,
9091 { "cnavISCl2c", "rrlp.cnavISCl2c",
9092 FT_INT32, BASE_DEC, NULL, 0,
9093 "INTEGER_M4096_4095", HFILL }},
9094 { &hf_rrlp_cnavISCl5i5,
9095 { "cnavISCl5i5", "rrlp.cnavISCl5i5",
9096 FT_INT32, BASE_DEC, NULL, 0,
9097 "INTEGER_M4096_4095", HFILL }},
9098 { &hf_rrlp_cnavISCl5q5,
9099 { "cnavISCl5q5", "rrlp.cnavISCl5q5",
9100 FT_INT32, BASE_DEC, NULL, 0,
9101 "INTEGER_M4096_4095", HFILL }},
9102 { &hf_rrlp_gloTau,
9103 { "gloTau", "rrlp.gloTau",
9104 FT_INT32, BASE_DEC, NULL, 0,
9105 "INTEGER_M2097152_2097151", HFILL }},
9106 { &hf_rrlp_gloGamma,
9107 { "gloGamma", "rrlp.gloGamma",
9108 FT_INT32, BASE_DEC, NULL, 0,
9109 "INTEGER_M1024_1023", HFILL }},
9110 { &hf_rrlp_gloDeltaTau,
9111 { "gloDeltaTau", "rrlp.gloDeltaTau",
9112 FT_INT32, BASE_DEC, NULL, 0,
9113 "INTEGER_M16_15", HFILL }},
9114 { &hf_rrlp_sbasAgfo,
9115 { "sbasAgfo", "rrlp.sbasAgfo",
9116 FT_INT32, BASE_DEC, NULL, 0,
9117 "INTEGER_M2048_2047", HFILL }},
9118 { &hf_rrlp_sbasAgf1,
9119 { "sbasAgf1", "rrlp.sbasAgf1",
9120 FT_INT32, BASE_DEC, NULL, 0,
9121 "INTEGER_M128_127", HFILL }},
9122 { &hf_rrlp_ganssBadSignalList,
9123 { "ganssBadSignalList", "rrlp.ganssBadSignalList",
9124 FT_UINT32, BASE_DEC, NULL, 0,
9125 "SeqOfBadSignalElement", HFILL }},
9126 { &hf_rrlp_SeqOfBadSignalElement_item,
9127 { "BadSignalElement", "rrlp.BadSignalElement_element",
9128 FT_NONE, BASE_NONE, NULL, 0,
9129 NULL, HFILL }},
9130 { &hf_rrlp_badSVID,
9131 { "badSVID", "rrlp.badSVID",
9132 FT_UINT32, BASE_DEC, NULL, 0,
9133 "SVID", HFILL }},
9134 { &hf_rrlp_badSignalID,
9135 { "badSignalID", "rrlp.badSignalID",
9136 FT_BYTES, BASE_NONE, NULL, 0,
9137 "GANSSSignals", HFILL }},
9138 { &hf_rrlp_ganssTOD_01,
9139 { "ganssTOD", "rrlp.ganssTOD",
9140 FT_UINT32, BASE_DEC, NULL, 0,
9141 "INTEGER_0_59", HFILL }},
9142 { &hf_rrlp_ganssDataBitsSatList,
9143 { "ganssDataBitsSatList", "rrlp.ganssDataBitsSatList",
9144 FT_UINT32, BASE_DEC, NULL, 0,
9145 "SeqOfGanssDataBitsElement", HFILL }},
9146 { &hf_rrlp_SeqOfGanssDataBitsElement_item,
9147 { "GanssDataBitsElement", "rrlp.GanssDataBitsElement_element",
9148 FT_NONE, BASE_NONE, NULL, 0,
9149 NULL, HFILL }},
9150 { &hf_rrlp_ganssDataBitsSgnList,
9151 { "ganssDataBitsSgnList", "rrlp.ganssDataBitsSgnList",
9152 FT_UINT32, BASE_DEC, NULL, 0,
9153 "Seq_OfGANSSDataBitsSgn", HFILL }},
9154 { &hf_rrlp_Seq_OfGANSSDataBitsSgn_item,
9155 { "GANSSDataBitsSgnElement", "rrlp.GANSSDataBitsSgnElement_element",
9156 FT_NONE, BASE_NONE, NULL, 0,
9157 NULL, HFILL }},
9158 { &hf_rrlp_ganssSignalType,
9159 { "ganssSignalType", "rrlp.ganssSignalType",
9160 FT_UINT32, BASE_DEC, NULL, 0,
9161 "GANSSSignalID", HFILL }},
9162 { &hf_rrlp_ganssDataBits,
9163 { "ganssDataBits", "rrlp.ganssDataBits",
9164 FT_UINT32, BASE_DEC, NULL, 0,
9165 "SeqOf_GANSSDataBits", HFILL }},
9166 { &hf_rrlp_SeqOf_GANSSDataBits_item,
9167 { "GANSSDataBit", "rrlp.GANSSDataBit",
9168 FT_UINT32, BASE_DEC, NULL, 0,
9169 NULL, HFILL }},
9170 { &hf_rrlp_ganssRefMeasAssistList,
9171 { "ganssRefMeasAssistList", "rrlp.ganssRefMeasAssistList",
9172 FT_UINT32, BASE_DEC, NULL, 0,
9173 "SeqOfGANSSRefMeasurementElement", HFILL }},
9174 { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item,
9175 { "GANSSRefMeasurementElement", "rrlp.GANSSRefMeasurementElement_element",
9176 FT_NONE, BASE_NONE, NULL, 0,
9177 NULL, HFILL }},
9178 { &hf_rrlp_additionalDoppler,
9179 { "additionalDoppler", "rrlp.additionalDoppler_element",
9180 FT_NONE, BASE_NONE, NULL, 0,
9181 "AdditionalDopplerFields", HFILL }},
9182 { &hf_rrlp_intCodePhase_01,
9183 { "intCodePhase", "rrlp.intCodePhase",
9184 FT_UINT32, BASE_DEC, NULL, 0,
9185 "INTEGER_0_127", HFILL }},
9186 { &hf_rrlp_codePhaseSearchWindow_01,
9187 { "codePhaseSearchWindow", "rrlp.codePhaseSearchWindow",
9188 FT_UINT32, BASE_DEC, NULL, 0,
9189 "INTEGER_0_31", HFILL }},
9190 { &hf_rrlp_additionalAngle,
9191 { "additionalAngle", "rrlp.additionalAngle_element",
9192 FT_NONE, BASE_NONE, NULL, 0,
9193 "AddionalAngleFields", HFILL }},
9194 { &hf_rrlp_dopplerUncertainty_01,
9195 { "dopplerUncertainty", "rrlp.dopplerUncertainty",
9196 FT_UINT32, BASE_DEC, NULL, 0,
9197 "INTEGER_0_4", HFILL }},
9198 { &hf_rrlp_GANSSRefMeasurementAssist_R10_Ext_item,
9199 { "GANSSRefMeasurement-R10-Ext-Element", "rrlp.GANSSRefMeasurement_R10_Ext_Element_element",
9200 FT_NONE, BASE_NONE, NULL, 0,
9201 NULL, HFILL }},
9202 { &hf_rrlp_azimuthLSB,
9203 { "azimuthLSB", "rrlp.azimuthLSB",
9204 FT_UINT32, BASE_DEC, NULL, 0,
9205 "INTEGER_0_15", HFILL }},
9206 { &hf_rrlp_elevationLSB,
9207 { "elevationLSB", "rrlp.elevationLSB",
9208 FT_UINT32, BASE_DEC, NULL, 0,
9209 "INTEGER_0_15", HFILL }},
9210 { &hf_rrlp_weekNumber_01,
9211 { "weekNumber", "rrlp.weekNumber",
9212 FT_UINT32, BASE_DEC, NULL, 0,
9213 "INTEGER_0_255", HFILL }},
9214 { &hf_rrlp_toa,
9215 { "toa", "rrlp.toa",
9216 FT_UINT32, BASE_DEC, NULL, 0,
9217 "INTEGER_0_255", HFILL }},
9218 { &hf_rrlp_ioda,
9219 { "ioda", "rrlp.ioda",
9220 FT_UINT32, BASE_DEC, NULL, 0,
9221 "INTEGER_0_3", HFILL }},
9222 { &hf_rrlp_ganssAlmanacList,
9223 { "ganssAlmanacList", "rrlp.ganssAlmanacList",
9224 FT_UINT32, BASE_DEC, NULL, 0,
9225 "SeqOfGANSSAlmanacElement", HFILL }},
9226 { &hf_rrlp_SeqOfGANSSAlmanacElement_item,
9227 { "GANSSAlmanacElement", "rrlp.GANSSAlmanacElement",
9228 FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAlmanacElement_vals), 0,
9229 NULL, HFILL }},
9230 { &hf_rrlp_keplerianAlmanacSet,
9231 { "keplerianAlmanacSet", "rrlp.keplerianAlmanacSet_element",
9232 FT_NONE, BASE_NONE, NULL, 0,
9233 "Almanac_KeplerianSet", HFILL }},
9234 { &hf_rrlp_keplerianNAVAlmanac,
9235 { "keplerianNAVAlmanac", "rrlp.keplerianNAVAlmanac_element",
9236 FT_NONE, BASE_NONE, NULL, 0,
9237 "Almanac_NAVKeplerianSet", HFILL }},
9238 { &hf_rrlp_keplerianReducedAlmanac,
9239 { "keplerianReducedAlmanac", "rrlp.keplerianReducedAlmanac_element",
9240 FT_NONE, BASE_NONE, NULL, 0,
9241 "Almanac_ReducedKeplerianSet", HFILL }},
9242 { &hf_rrlp_keplerianMidiAlmanac,
9243 { "keplerianMidiAlmanac", "rrlp.keplerianMidiAlmanac_element",
9244 FT_NONE, BASE_NONE, NULL, 0,
9245 "Almanac_MidiAlmanacSet", HFILL }},
9246 { &hf_rrlp_keplerianGLONASS,
9247 { "keplerianGLONASS", "rrlp.keplerianGLONASS_element",
9248 FT_NONE, BASE_NONE, NULL, 0,
9249 "Almanac_GlonassAlmanacSet", HFILL }},
9250 { &hf_rrlp_ecefSBASAlmanac,
9251 { "ecefSBASAlmanac", "rrlp.ecefSBASAlmanac_element",
9252 FT_NONE, BASE_NONE, NULL, 0,
9253 "Almanac_ECEFsbasAlmanacSet", HFILL }},
9254 { &hf_rrlp_kepAlmanacE,
9255 { "kepAlmanacE", "rrlp.kepAlmanacE",
9256 FT_UINT32, BASE_DEC, NULL, 0,
9257 "INTEGER_0_2047", HFILL }},
9258 { &hf_rrlp_kepAlmanacDeltaI,
9259 { "kepAlmanacDeltaI", "rrlp.kepAlmanacDeltaI",
9260 FT_INT32, BASE_DEC, NULL, 0,
9261 "INTEGER_M1024_1023", HFILL }},
9262 { &hf_rrlp_kepAlmanacOmegaDot,
9263 { "kepAlmanacOmegaDot", "rrlp.kepAlmanacOmegaDot",
9264 FT_INT32, BASE_DEC, NULL, 0,
9265 "INTEGER_M1024_1023", HFILL }},
9266 { &hf_rrlp_kepSVHealth,
9267 { "kepSVHealth", "rrlp.kepSVHealth",
9268 FT_UINT32, BASE_DEC, NULL, 0,
9269 "INTEGER_0_15", HFILL }},
9270 { &hf_rrlp_kepAlmanacAPowerHalf,
9271 { "kepAlmanacAPowerHalf", "rrlp.kepAlmanacAPowerHalf",
9272 FT_INT32, BASE_DEC, NULL, 0,
9273 "INTEGER_M65536_65535", HFILL }},
9274 { &hf_rrlp_kepAlmanacOmega0,
9275 { "kepAlmanacOmega0", "rrlp.kepAlmanacOmega0",
9276 FT_INT32, BASE_DEC, NULL, 0,
9277 "INTEGER_M32768_32767", HFILL }},
9278 { &hf_rrlp_kepAlmanacW,
9279 { "kepAlmanacW", "rrlp.kepAlmanacW",
9280 FT_INT32, BASE_DEC, NULL, 0,
9281 "INTEGER_M32768_32767", HFILL }},
9282 { &hf_rrlp_kepAlmanacM0,
9283 { "kepAlmanacM0", "rrlp.kepAlmanacM0",
9284 FT_INT32, BASE_DEC, NULL, 0,
9285 "INTEGER_M32768_32767", HFILL }},
9286 { &hf_rrlp_kepAlmanacAF0,
9287 { "kepAlmanacAF0", "rrlp.kepAlmanacAF0",
9288 FT_INT32, BASE_DEC, NULL, 0,
9289 "INTEGER_M8192_8191", HFILL }},
9290 { &hf_rrlp_kepAlmanacAF1,
9291 { "kepAlmanacAF1", "rrlp.kepAlmanacAF1",
9292 FT_INT32, BASE_DEC, NULL, 0,
9293 "INTEGER_M1024_1023", HFILL }},
9294 { &hf_rrlp_navAlmE,
9295 { "navAlmE", "rrlp.navAlmE",
9296 FT_UINT32, BASE_DEC, NULL, 0,
9297 "INTEGER_0_65535", HFILL }},
9298 { &hf_rrlp_navAlmDeltaI,
9299 { "navAlmDeltaI", "rrlp.navAlmDeltaI",
9300 FT_INT32, BASE_DEC, NULL, 0,
9301 "INTEGER_M32768_32767", HFILL }},
9302 { &hf_rrlp_navAlmOMEGADOT,
9303 { "navAlmOMEGADOT", "rrlp.navAlmOMEGADOT",
9304 FT_INT32, BASE_DEC, NULL, 0,
9305 "INTEGER_M32768_32767", HFILL }},
9306 { &hf_rrlp_navAlmSVHealth,
9307 { "navAlmSVHealth", "rrlp.navAlmSVHealth",
9308 FT_UINT32, BASE_DEC, NULL, 0,
9309 "INTEGER_0_255", HFILL }},
9310 { &hf_rrlp_navAlmSqrtA,
9311 { "navAlmSqrtA", "rrlp.navAlmSqrtA",
9312 FT_UINT32, BASE_DEC, NULL, 0,
9313 "INTEGER_0_16777215", HFILL }},
9314 { &hf_rrlp_navAlmOMEGAo,
9315 { "navAlmOMEGAo", "rrlp.navAlmOMEGAo",
9316 FT_INT32, BASE_DEC, NULL, 0,
9317 "INTEGER_M8388608_8388607", HFILL }},
9318 { &hf_rrlp_navAlmOmega,
9319 { "navAlmOmega", "rrlp.navAlmOmega",
9320 FT_INT32, BASE_DEC, NULL, 0,
9321 "INTEGER_M8388608_8388607", HFILL }},
9322 { &hf_rrlp_navAlmMo,
9323 { "navAlmMo", "rrlp.navAlmMo",
9324 FT_INT32, BASE_DEC, NULL, 0,
9325 "INTEGER_M8388608_8388607", HFILL }},
9326 { &hf_rrlp_navAlmaf0,
9327 { "navAlmaf0", "rrlp.navAlmaf0",
9328 FT_INT32, BASE_DEC, NULL, 0,
9329 "INTEGER_M1024_1023", HFILL }},
9330 { &hf_rrlp_navAlmaf1,
9331 { "navAlmaf1", "rrlp.navAlmaf1",
9332 FT_INT32, BASE_DEC, NULL, 0,
9333 "INTEGER_M1024_1023", HFILL }},
9334 { &hf_rrlp_redAlmDeltaA,
9335 { "redAlmDeltaA", "rrlp.redAlmDeltaA",
9336 FT_INT32, BASE_DEC, NULL, 0,
9337 "INTEGER_M128_127", HFILL }},
9338 { &hf_rrlp_redAlmOmega0,
9339 { "redAlmOmega0", "rrlp.redAlmOmega0",
9340 FT_INT32, BASE_DEC, NULL, 0,
9341 "INTEGER_M64_63", HFILL }},
9342 { &hf_rrlp_redAlmPhi0,
9343 { "redAlmPhi0", "rrlp.redAlmPhi0",
9344 FT_INT32, BASE_DEC, NULL, 0,
9345 "INTEGER_M64_63", HFILL }},
9346 { &hf_rrlp_redAlmL1Health,
9347 { "redAlmL1Health", "rrlp.redAlmL1Health",
9348 FT_BOOLEAN, BASE_NONE, NULL, 0,
9349 "BOOLEAN", HFILL }},
9350 { &hf_rrlp_redAlmL2Health,
9351 { "redAlmL2Health", "rrlp.redAlmL2Health",
9352 FT_BOOLEAN, BASE_NONE, NULL, 0,
9353 "BOOLEAN", HFILL }},
9354 { &hf_rrlp_redAlmL5Health,
9355 { "redAlmL5Health", "rrlp.redAlmL5Health",
9356 FT_BOOLEAN, BASE_NONE, NULL, 0,
9357 "BOOLEAN", HFILL }},
9358 { &hf_rrlp_midiAlmE,
9359 { "midiAlmE", "rrlp.midiAlmE",
9360 FT_UINT32, BASE_DEC, NULL, 0,
9361 "INTEGER_0_2047", HFILL }},
9362 { &hf_rrlp_midiAlmDeltaI,
9363 { "midiAlmDeltaI", "rrlp.midiAlmDeltaI",
9364 FT_INT32, BASE_DEC, NULL, 0,
9365 "INTEGER_M1024_1023", HFILL }},
9366 { &hf_rrlp_midiAlmOmegaDot,
9367 { "midiAlmOmegaDot", "rrlp.midiAlmOmegaDot",
9368 FT_INT32, BASE_DEC, NULL, 0,
9369 "INTEGER_M1024_1023", HFILL }},
9370 { &hf_rrlp_midiAlmSqrtA,
9371 { "midiAlmSqrtA", "rrlp.midiAlmSqrtA",
9372 FT_UINT32, BASE_DEC, NULL, 0,
9373 "INTEGER_0_131071", HFILL }},
9374 { &hf_rrlp_midiAlmOmega0,
9375 { "midiAlmOmega0", "rrlp.midiAlmOmega0",
9376 FT_INT32, BASE_DEC, NULL, 0,
9377 "INTEGER_M32768_32767", HFILL }},
9378 { &hf_rrlp_midiAlmOmega,
9379 { "midiAlmOmega", "rrlp.midiAlmOmega",
9380 FT_INT32, BASE_DEC, NULL, 0,
9381 "INTEGER_M32768_32767", HFILL }},
9382 { &hf_rrlp_midiAlmMo,
9383 { "midiAlmMo", "rrlp.midiAlmMo",
9384 FT_INT32, BASE_DEC, NULL, 0,
9385 "INTEGER_M32768_32767", HFILL }},
9386 { &hf_rrlp_midiAlmaf0,
9387 { "midiAlmaf0", "rrlp.midiAlmaf0",
9388 FT_INT32, BASE_DEC, NULL, 0,
9389 "INTEGER_M1024_1023", HFILL }},
9390 { &hf_rrlp_midiAlmaf1,
9391 { "midiAlmaf1", "rrlp.midiAlmaf1",
9392 FT_INT32, BASE_DEC, NULL, 0,
9393 "INTEGER_M512_511", HFILL }},
9394 { &hf_rrlp_midiAlmL1Health,
9395 { "midiAlmL1Health", "rrlp.midiAlmL1Health",
9396 FT_BOOLEAN, BASE_NONE, NULL, 0,
9397 "BOOLEAN", HFILL }},
9398 { &hf_rrlp_midiAlmL2Health,
9399 { "midiAlmL2Health", "rrlp.midiAlmL2Health",
9400 FT_BOOLEAN, BASE_NONE, NULL, 0,
9401 "BOOLEAN", HFILL }},
9402 { &hf_rrlp_midiAlmL5Health,
9403 { "midiAlmL5Health", "rrlp.midiAlmL5Health",
9404 FT_BOOLEAN, BASE_NONE, NULL, 0,
9405 "BOOLEAN", HFILL }},
9406 { &hf_rrlp_gloAlmNA,
9407 { "gloAlmNA", "rrlp.gloAlmNA",
9408 FT_UINT32, BASE_DEC, NULL, 0,
9409 "INTEGER_1_1461", HFILL }},
9410 { &hf_rrlp_gloAlmnA,
9411 { "gloAlmnA", "rrlp.gloAlmnA",
9412 FT_UINT32, BASE_DEC, NULL, 0,
9413 "INTEGER_1_24", HFILL }},
9414 { &hf_rrlp_gloAlmHA,
9415 { "gloAlmHA", "rrlp.gloAlmHA",
9416 FT_UINT32, BASE_DEC, NULL, 0,
9417 "INTEGER_0_31", HFILL }},
9418 { &hf_rrlp_gloAlmLambdaA,
9419 { "gloAlmLambdaA", "rrlp.gloAlmLambdaA",
9420 FT_INT32, BASE_DEC, NULL, 0,
9421 "INTEGER_M1048576_1048575", HFILL }},
9422 { &hf_rrlp_gloAlmtlambdaA,
9423 { "gloAlmtlambdaA", "rrlp.gloAlmtlambdaA",
9424 FT_UINT32, BASE_DEC, NULL, 0,
9425 "INTEGER_0_2097151", HFILL }},
9426 { &hf_rrlp_gloAlmDeltaIa,
9427 { "gloAlmDeltaIa", "rrlp.gloAlmDeltaIa",
9428 FT_INT32, BASE_DEC, NULL, 0,
9429 "INTEGER_M131072_131071", HFILL }},
9430 { &hf_rrlp_gloAlmDeltaTA,
9431 { "gloAlmDeltaTA", "rrlp.gloAlmDeltaTA",
9432 FT_INT32, BASE_DEC, NULL, 0,
9433 "INTEGER_M2097152_2097151", HFILL }},
9434 { &hf_rrlp_gloAlmDeltaTdotA,
9435 { "gloAlmDeltaTdotA", "rrlp.gloAlmDeltaTdotA",
9436 FT_INT32, BASE_DEC, NULL, 0,
9437 "INTEGER_M64_63", HFILL }},
9438 { &hf_rrlp_gloAlmEpsilonA,
9439 { "gloAlmEpsilonA", "rrlp.gloAlmEpsilonA",
9440 FT_UINT32, BASE_DEC, NULL, 0,
9441 "INTEGER_0_32767", HFILL }},
9442 { &hf_rrlp_gloAlmOmegaA,
9443 { "gloAlmOmegaA", "rrlp.gloAlmOmegaA",
9444 FT_INT32, BASE_DEC, NULL, 0,
9445 "INTEGER_M32768_32767", HFILL }},
9446 { &hf_rrlp_gloAlmTauA,
9447 { "gloAlmTauA", "rrlp.gloAlmTauA",
9448 FT_INT32, BASE_DEC, NULL, 0,
9449 "INTEGER_M512_511", HFILL }},
9450 { &hf_rrlp_gloAlmCA,
9451 { "gloAlmCA", "rrlp.gloAlmCA",
9452 FT_UINT32, BASE_DEC, NULL, 0,
9453 "INTEGER_0_1", HFILL }},
9454 { &hf_rrlp_gloAlmMA,
9455 { "gloAlmMA", "rrlp.gloAlmMA",
9456 FT_BYTES, BASE_NONE, NULL, 0,
9457 "BIT_STRING_SIZE_2", HFILL }},
9458 { &hf_rrlp_sbasAlmDataID,
9459 { "sbasAlmDataID", "rrlp.sbasAlmDataID",
9460 FT_UINT32, BASE_DEC, NULL, 0,
9461 "INTEGER_0_3", HFILL }},
9462 { &hf_rrlp_sbasAlmHealth,
9463 { "sbasAlmHealth", "rrlp.sbasAlmHealth",
9464 FT_BYTES, BASE_NONE, NULL, 0,
9465 "BIT_STRING_SIZE_8", HFILL }},
9466 { &hf_rrlp_sbasAlmXg,
9467 { "sbasAlmXg", "rrlp.sbasAlmXg",
9468 FT_INT32, BASE_DEC, NULL, 0,
9469 "INTEGER_M16384_16383", HFILL }},
9470 { &hf_rrlp_sbasAlmYg,
9471 { "sbasAlmYg", "rrlp.sbasAlmYg",
9472 FT_INT32, BASE_DEC, NULL, 0,
9473 "INTEGER_M16384_16383", HFILL }},
9474 { &hf_rrlp_sbasAlmZg,
9475 { "sbasAlmZg", "rrlp.sbasAlmZg",
9476 FT_INT32, BASE_DEC, NULL, 0,
9477 "INTEGER_M256_255", HFILL }},
9478 { &hf_rrlp_sbasAlmXgdot,
9479 { "sbasAlmXgdot", "rrlp.sbasAlmXgdot",
9480 FT_INT32, BASE_DEC, NULL, 0,
9481 "INTEGER_M4_3", HFILL }},
9482 { &hf_rrlp_sbasAlmYgDot,
9483 { "sbasAlmYgDot", "rrlp.sbasAlmYgDot",
9484 FT_INT32, BASE_DEC, NULL, 0,
9485 "INTEGER_M4_3", HFILL }},
9486 { &hf_rrlp_sbasAlmZgDot,
9487 { "sbasAlmZgDot", "rrlp.sbasAlmZgDot",
9488 FT_INT32, BASE_DEC, NULL, 0,
9489 "INTEGER_M8_7", HFILL }},
9490 { &hf_rrlp_sbasAlmTo,
9491 { "sbasAlmTo", "rrlp.sbasAlmTo",
9492 FT_UINT32, BASE_DEC, NULL, 0,
9493 "INTEGER_0_2047", HFILL }},
9494 { &hf_rrlp_completeAlmanacProvided,
9495 { "completeAlmanacProvided", "rrlp.completeAlmanacProvided",
9496 FT_BOOLEAN, BASE_NONE, NULL, 0,
9497 "BOOLEAN", HFILL }},
9498 { &hf_rrlp_ganssUtcA1,
9499 { "ganssUtcA1", "rrlp.ganssUtcA1",
9500 FT_INT32, BASE_DEC, NULL, 0,
9501 "INTEGER_M8388608_8388607", HFILL }},
9502 { &hf_rrlp_ganssUtcA0,
9503 { "ganssUtcA0", "rrlp.ganssUtcA0",
9504 FT_INT32, BASE_DEC, NULL, 0,
9505 "INTEGER_M2147483648_2147483647", HFILL }},
9506 { &hf_rrlp_ganssUtcTot,
9507 { "ganssUtcTot", "rrlp.ganssUtcTot",
9508 FT_UINT32, BASE_DEC, NULL, 0,
9509 "INTEGER_0_255", HFILL }},
9510 { &hf_rrlp_ganssUtcWNt,
9511 { "ganssUtcWNt", "rrlp.ganssUtcWNt",
9512 FT_UINT32, BASE_DEC, NULL, 0,
9513 "INTEGER_0_255", HFILL }},
9514 { &hf_rrlp_ganssUtcDeltaTls,
9515 { "ganssUtcDeltaTls", "rrlp.ganssUtcDeltaTls",
9516 FT_INT32, BASE_DEC, NULL, 0,
9517 "INTEGER_M128_127", HFILL }},
9518 { &hf_rrlp_ganssUtcWNlsf,
9519 { "ganssUtcWNlsf", "rrlp.ganssUtcWNlsf",
9520 FT_UINT32, BASE_DEC, NULL, 0,
9521 "INTEGER_0_255", HFILL }},
9522 { &hf_rrlp_ganssUtcDN,
9523 { "ganssUtcDN", "rrlp.ganssUtcDN",
9524 FT_INT32, BASE_DEC, NULL, 0,
9525 "INTEGER_M128_127", HFILL }},
9526 { &hf_rrlp_ganssUtcDeltaTlsf,
9527 { "ganssUtcDeltaTlsf", "rrlp.ganssUtcDeltaTlsf",
9528 FT_INT32, BASE_DEC, NULL, 0,
9529 "INTEGER_M128_127", HFILL }},
9530 { &hf_rrlp_ganssEphemerisHeader,
9531 { "ganssEphemerisHeader", "rrlp.ganssEphemerisHeader_element",
9532 FT_NONE, BASE_NONE, NULL, 0,
9533 "GANSSEphemerisExtensionHeader", HFILL }},
9534 { &hf_rrlp_ganssReferenceSet,
9535 { "ganssReferenceSet", "rrlp.ganssReferenceSet",
9536 FT_UINT32, BASE_DEC, NULL, 0,
9537 "SeqOfGANSSRefOrbit", HFILL }},
9538 { &hf_rrlp_ganssephemerisDeltasMatrix,
9539 { "ganssephemerisDeltasMatrix", "rrlp.ganssephemerisDeltasMatrix",
9540 FT_UINT32, BASE_DEC, NULL, 0,
9541 "GANSSEphemerisDeltaMatrix", HFILL }},
9542 { &hf_rrlp_timeAtEstimation,
9543 { "timeAtEstimation", "rrlp.timeAtEstimation_element",
9544 FT_NONE, BASE_NONE, NULL, 0,
9545 "GANSSEphemerisExtensionTime", HFILL }},
9546 { &hf_rrlp_validityPeriod,
9547 { "validityPeriod", "rrlp.validityPeriod",
9548 FT_UINT32, BASE_DEC, NULL, 0,
9549 "INTEGER_1_8", HFILL }},
9550 { &hf_rrlp_ephemerisExtensionDuration,
9551 { "ephemerisExtensionDuration", "rrlp.ephemerisExtensionDuration",
9552 FT_UINT32, BASE_DEC, NULL, 0,
9553 "INTEGER_1_512", HFILL }},
9554 { &hf_rrlp_ganssEphExtDay,
9555 { "ganssEphExtDay", "rrlp.ganssEphExtDay",
9556 FT_UINT32, BASE_DEC, NULL, 0,
9557 "INTEGER_0_8191", HFILL }},
9558 { &hf_rrlp_ganssEphExtTOD,
9559 { "ganssEphExtTOD", "rrlp.ganssEphExtTOD",
9560 FT_UINT32, BASE_DEC, NULL, 0,
9561 "GANSSTOD", HFILL }},
9562 { &hf_rrlp_keplerToe_01,
9563 { "keplerToe", "rrlp.keplerToe",
9564 FT_UINT32, BASE_DEC, NULL, 0,
9565 "INTEGER_0_37799", HFILL }},
9566 { &hf_rrlp_SeqOfGANSSRefOrbit_item,
9567 { "GANSSReferenceOrbit", "rrlp.GANSSReferenceOrbit_element",
9568 FT_NONE, BASE_NONE, NULL, 0,
9569 NULL, HFILL }},
9570 { &hf_rrlp_ganssOrbitModel_01,
9571 { "ganssOrbitModel", "rrlp.ganssOrbitModel_element",
9572 FT_NONE, BASE_NONE, NULL, 0,
9573 "ReferenceNavModel", HFILL }},
9574 { &hf_rrlp_GANSSEphemerisDeltaMatrix_item,
9575 { "GANSSEphemerisDeltaEpoch", "rrlp.GANSSEphemerisDeltaEpoch_element",
9576 FT_NONE, BASE_NONE, NULL, 0,
9577 NULL, HFILL }},
9578 { &hf_rrlp_ganssDeltaEpochHeader,
9579 { "ganssDeltaEpochHeader", "rrlp.ganssDeltaEpochHeader_element",
9580 FT_NONE, BASE_NONE, NULL, 0,
9581 NULL, HFILL }},
9582 { &hf_rrlp_ganssDeltaElementList,
9583 { "ganssDeltaElementList", "rrlp.ganssDeltaElementList",
9584 FT_UINT32, BASE_DEC, NULL, 0,
9585 NULL, HFILL }},
9586 { &hf_rrlp_ephemerisDeltaSizes,
9587 { "ephemerisDeltaSizes", "rrlp.ephemerisDeltaSizes_element",
9588 FT_NONE, BASE_NONE, NULL, 0,
9589 "GANSSEphemerisDeltaBitSizes", HFILL }},
9590 { &hf_rrlp_ephemerisDeltaScales,
9591 { "ephemerisDeltaScales", "rrlp.ephemerisDeltaScales_element",
9592 FT_NONE, BASE_NONE, NULL, 0,
9593 "GANSSEphemerisDeltaScales", HFILL }},
9594 { &hf_rrlp_GANSSDeltaElementList_item,
9595 { "GANSSDeltaElementList item", "rrlp.GANSSDeltaElementList_item",
9596 FT_BYTES, BASE_NONE, NULL, 0,
9597 "OCTET_STRING_SIZE_1_49", HFILL }},
9598 { &hf_rrlp_bitsize_delta_omega,
9599 { "bitsize-delta-omega", "rrlp.bitsize_delta_omega",
9600 FT_UINT32, BASE_DEC, NULL, 0,
9601 "INTEGER_1_32", HFILL }},
9602 { &hf_rrlp_bitsize_delta_deltaN,
9603 { "bitsize-delta-deltaN", "rrlp.bitsize_delta_deltaN",
9604 FT_UINT32, BASE_DEC, NULL, 0,
9605 "INTEGER_1_16", HFILL }},
9606 { &hf_rrlp_bitsize_delta_m0,
9607 { "bitsize-delta-m0", "rrlp.bitsize_delta_m0",
9608 FT_UINT32, BASE_DEC, NULL, 0,
9609 "INTEGER_1_32", HFILL }},
9610 { &hf_rrlp_bitsize_delta_omegadot,
9611 { "bitsize-delta-omegadot", "rrlp.bitsize_delta_omegadot",
9612 FT_UINT32, BASE_DEC, NULL, 0,
9613 "INTEGER_1_24", HFILL }},
9614 { &hf_rrlp_bitsize_delta_e,
9615 { "bitsize-delta-e", "rrlp.bitsize_delta_e",
9616 FT_UINT32, BASE_DEC, NULL, 0,
9617 "INTEGER_1_32", HFILL }},
9618 { &hf_rrlp_bitsize_delta_idot,
9619 { "bitsize-delta-idot", "rrlp.bitsize_delta_idot",
9620 FT_UINT32, BASE_DEC, NULL, 0,
9621 "INTEGER_1_14", HFILL }},
9622 { &hf_rrlp_bitsize_delta_sqrtA,
9623 { "bitsize-delta-sqrtA", "rrlp.bitsize_delta_sqrtA",
9624 FT_UINT32, BASE_DEC, NULL, 0,
9625 "INTEGER_1_32", HFILL }},
9626 { &hf_rrlp_bitsize_delta_i0,
9627 { "bitsize-delta-i0", "rrlp.bitsize_delta_i0",
9628 FT_UINT32, BASE_DEC, NULL, 0,
9629 "INTEGER_1_32", HFILL }},
9630 { &hf_rrlp_bitsize_delta_omega0,
9631 { "bitsize-delta-omega0", "rrlp.bitsize_delta_omega0",
9632 FT_UINT32, BASE_DEC, NULL, 0,
9633 "INTEGER_1_32", HFILL }},
9634 { &hf_rrlp_bitsize_delta_crs,
9635 { "bitsize-delta-crs", "rrlp.bitsize_delta_crs",
9636 FT_UINT32, BASE_DEC, NULL, 0,
9637 "INTEGER_1_16", HFILL }},
9638 { &hf_rrlp_bitsize_delta_cis,
9639 { "bitsize-delta-cis", "rrlp.bitsize_delta_cis",
9640 FT_UINT32, BASE_DEC, NULL, 0,
9641 "INTEGER_1_16", HFILL }},
9642 { &hf_rrlp_bitsize_delta_cus,
9643 { "bitsize-delta-cus", "rrlp.bitsize_delta_cus",
9644 FT_UINT32, BASE_DEC, NULL, 0,
9645 "INTEGER_1_16", HFILL }},
9646 { &hf_rrlp_bitsize_delta_crc,
9647 { "bitsize-delta-crc", "rrlp.bitsize_delta_crc",
9648 FT_UINT32, BASE_DEC, NULL, 0,
9649 "INTEGER_1_16", HFILL }},
9650 { &hf_rrlp_bitsize_delta_cic,
9651 { "bitsize-delta-cic", "rrlp.bitsize_delta_cic",
9652 FT_UINT32, BASE_DEC, NULL, 0,
9653 "INTEGER_1_16", HFILL }},
9654 { &hf_rrlp_bitsize_delta_cuc,
9655 { "bitsize-delta-cuc", "rrlp.bitsize_delta_cuc",
9656 FT_UINT32, BASE_DEC, NULL, 0,
9657 "INTEGER_1_16", HFILL }},
9658 { &hf_rrlp_bitsize_delta_tgd1,
9659 { "bitsize-delta-tgd1", "rrlp.bitsize_delta_tgd1",
9660 FT_UINT32, BASE_DEC, NULL, 0,
9661 "INTEGER_1_10", HFILL }},
9662 { &hf_rrlp_bitsize_delta_tgd2,
9663 { "bitsize-delta-tgd2", "rrlp.bitsize_delta_tgd2",
9664 FT_UINT32, BASE_DEC, NULL, 0,
9665 "INTEGER_1_10", HFILL }},
9666 { &hf_rrlp_scale_delta_omega,
9667 { "scale-delta-omega", "rrlp.scale_delta_omega",
9668 FT_INT32, BASE_DEC, NULL, 0,
9669 "INTEGER_M16_15", HFILL }},
9670 { &hf_rrlp_scale_delta_deltaN,
9671 { "scale-delta-deltaN", "rrlp.scale_delta_deltaN",
9672 FT_INT32, BASE_DEC, NULL, 0,
9673 "INTEGER_M16_15", HFILL }},
9674 { &hf_rrlp_scale_delta_m0,
9675 { "scale-delta-m0", "rrlp.scale_delta_m0",
9676 FT_INT32, BASE_DEC, NULL, 0,
9677 "INTEGER_M16_15", HFILL }},
9678 { &hf_rrlp_scale_delta_omegadot,
9679 { "scale-delta-omegadot", "rrlp.scale_delta_omegadot",
9680 FT_INT32, BASE_DEC, NULL, 0,
9681 "INTEGER_M16_15", HFILL }},
9682 { &hf_rrlp_scale_delta_e,
9683 { "scale-delta-e", "rrlp.scale_delta_e",
9684 FT_INT32, BASE_DEC, NULL, 0,
9685 "INTEGER_M16_15", HFILL }},
9686 { &hf_rrlp_scale_delta_idot,
9687 { "scale-delta-idot", "rrlp.scale_delta_idot",
9688 FT_INT32, BASE_DEC, NULL, 0,
9689 "INTEGER_M16_15", HFILL }},
9690 { &hf_rrlp_scale_delta_sqrtA,
9691 { "scale-delta-sqrtA", "rrlp.scale_delta_sqrtA",
9692 FT_INT32, BASE_DEC, NULL, 0,
9693 "INTEGER_M16_15", HFILL }},
9694 { &hf_rrlp_scale_delta_i0,
9695 { "scale-delta-i0", "rrlp.scale_delta_i0",
9696 FT_INT32, BASE_DEC, NULL, 0,
9697 "INTEGER_M16_15", HFILL }},
9698 { &hf_rrlp_scale_delta_omega0,
9699 { "scale-delta-omega0", "rrlp.scale_delta_omega0",
9700 FT_INT32, BASE_DEC, NULL, 0,
9701 "INTEGER_M16_15", HFILL }},
9702 { &hf_rrlp_scale_delta_crs,
9703 { "scale-delta-crs", "rrlp.scale_delta_crs",
9704 FT_INT32, BASE_DEC, NULL, 0,
9705 "INTEGER_M16_15", HFILL }},
9706 { &hf_rrlp_scale_delta_cis,
9707 { "scale-delta-cis", "rrlp.scale_delta_cis",
9708 FT_INT32, BASE_DEC, NULL, 0,
9709 "INTEGER_M16_15", HFILL }},
9710 { &hf_rrlp_scale_delta_cus,
9711 { "scale-delta-cus", "rrlp.scale_delta_cus",
9712 FT_INT32, BASE_DEC, NULL, 0,
9713 "INTEGER_M16_15", HFILL }},
9714 { &hf_rrlp_scale_delta_crc,
9715 { "scale-delta-crc", "rrlp.scale_delta_crc",
9716 FT_INT32, BASE_DEC, NULL, 0,
9717 "INTEGER_M16_15", HFILL }},
9718 { &hf_rrlp_scale_delta_cic,
9719 { "scale-delta-cic", "rrlp.scale_delta_cic",
9720 FT_INT32, BASE_DEC, NULL, 0,
9721 "INTEGER_M16_15", HFILL }},
9722 { &hf_rrlp_scale_delta_cuc,
9723 { "scale-delta-cuc", "rrlp.scale_delta_cuc",
9724 FT_INT32, BASE_DEC, NULL, 0,
9725 "INTEGER_M16_15", HFILL }},
9726 { &hf_rrlp_scale_delta_tgd1,
9727 { "scale-delta-tgd1", "rrlp.scale_delta_tgd1",
9728 FT_INT32, BASE_DEC, NULL, 0,
9729 "INTEGER_M16_15", HFILL }},
9730 { &hf_rrlp_scale_delta_tgd2,
9731 { "scale-delta-tgd2", "rrlp.scale_delta_tgd2",
9732 FT_INT32, BASE_DEC, NULL, 0,
9733 "INTEGER_M16_15", HFILL }},
9734 { &hf_rrlp_ganssBeginTime,
9735 { "ganssBeginTime", "rrlp.ganssBeginTime_element",
9736 FT_NONE, BASE_NONE, NULL, 0,
9737 "GANSSEphemerisExtensionTime", HFILL }},
9738 { &hf_rrlp_ganssEndTime,
9739 { "ganssEndTime", "rrlp.ganssEndTime_element",
9740 FT_NONE, BASE_NONE, NULL, 0,
9741 "GANSSEphemerisExtensionTime", HFILL }},
9742 { &hf_rrlp_ganssSatEventsInfo,
9743 { "ganssSatEventsInfo", "rrlp.ganssSatEventsInfo_element",
9744 FT_NONE, BASE_NONE, NULL, 0,
9745 NULL, HFILL }},
9746 { &hf_rrlp_eventOccured,
9747 { "eventOccured", "rrlp.eventOccured",
9748 FT_BYTES, BASE_NONE, NULL, 0,
9749 "BIT_STRING_SIZE_64", HFILL }},
9750 { &hf_rrlp_futureEventNoted,
9751 { "futureEventNoted", "rrlp.futureEventNoted",
9752 FT_BYTES, BASE_NONE, NULL, 0,
9753 "BIT_STRING_SIZE_64", HFILL }},
9754 { &hf_rrlp_utcModel2,
9755 { "utcModel2", "rrlp.utcModel2_element",
9756 FT_NONE, BASE_NONE, NULL, 0,
9757 "UTCmodelSet2", HFILL }},
9758 { &hf_rrlp_utcModel3,
9759 { "utcModel3", "rrlp.utcModel3_element",
9760 FT_NONE, BASE_NONE, NULL, 0,
9761 "UTCmodelSet3", HFILL }},
9762 { &hf_rrlp_utcModel4,
9763 { "utcModel4", "rrlp.utcModel4_element",
9764 FT_NONE, BASE_NONE, NULL, 0,
9765 "UTCmodelSet4", HFILL }},
9766 { &hf_rrlp_utcA0_01,
9767 { "utcA0", "rrlp.utcA0",
9768 FT_INT32, BASE_DEC, NULL, 0,
9769 "INTEGER_M32768_32767", HFILL }},
9770 { &hf_rrlp_utcA1_01,
9771 { "utcA1", "rrlp.utcA1",
9772 FT_INT32, BASE_DEC, NULL, 0,
9773 "INTEGER_M4096_4095", HFILL }},
9774 { &hf_rrlp_utcA2,
9775 { "utcA2", "rrlp.utcA2",
9776 FT_INT32, BASE_DEC, NULL, 0,
9777 "INTEGER_M64_63", HFILL }},
9778 { &hf_rrlp_utcTot_01,
9779 { "utcTot", "rrlp.utcTot",
9780 FT_UINT32, BASE_DEC, NULL, 0,
9781 "INTEGER_0_65535", HFILL }},
9782 { &hf_rrlp_utcWNot,
9783 { "utcWNot", "rrlp.utcWNot",
9784 FT_UINT32, BASE_DEC, NULL, 0,
9785 "INTEGER_0_8191", HFILL }},
9786 { &hf_rrlp_utcDN_01,
9787 { "utcDN", "rrlp.utcDN",
9788 FT_BYTES, BASE_NONE, NULL, 0,
9789 "BIT_STRING_SIZE_4", HFILL }},
9790 { &hf_rrlp_nA,
9791 { "nA", "rrlp.nA",
9792 FT_UINT32, BASE_DEC, NULL, 0,
9793 "INTEGER_1_1461", HFILL }},
9794 { &hf_rrlp_tauC,
9795 { "tauC", "rrlp.tauC",
9796 FT_INT32, BASE_DEC, NULL, 0,
9797 "INTEGER_M2147483648_2147483647", HFILL }},
9798 { &hf_rrlp_b1,
9799 { "b1", "rrlp.b1",
9800 FT_INT32, BASE_DEC, NULL, 0,
9801 "INTEGER_M1024_1023", HFILL }},
9802 { &hf_rrlp_b2,
9803 { "b2", "rrlp.b2",
9804 FT_INT32, BASE_DEC, NULL, 0,
9805 "INTEGER_M512_511", HFILL }},
9806 { &hf_rrlp_kp,
9807 { "kp", "rrlp.kp",
9808 FT_BYTES, BASE_NONE, NULL, 0,
9809 "BIT_STRING_SIZE_2", HFILL }},
9810 { &hf_rrlp_utcA1wnt,
9811 { "utcA1wnt", "rrlp.utcA1wnt",
9812 FT_INT32, BASE_DEC, NULL, 0,
9813 "INTEGER_M8388608_8388607", HFILL }},
9814 { &hf_rrlp_utcA0wnt,
9815 { "utcA0wnt", "rrlp.utcA0wnt",
9816 FT_INT32, BASE_DEC, NULL, 0,
9817 "INTEGER_M2147483648_2147483647", HFILL }},
9818 { &hf_rrlp_utcStandardID,
9819 { "utcStandardID", "rrlp.utcStandardID",
9820 FT_UINT32, BASE_DEC, NULL, 0,
9821 "INTEGER_0_7", HFILL }},
9822 { &hf_rrlp_ganssID1,
9823 { "ganssID1", "rrlp.ganssID1",
9824 FT_UINT32, BASE_DEC, NULL, 0,
9825 "GANSS_ID1", HFILL }},
9826 { &hf_rrlp_ganssID3,
9827 { "ganssID3", "rrlp.ganssID3",
9828 FT_UINT32, BASE_DEC, NULL, 0,
9829 "GANSS_ID3", HFILL }},
9830 { &hf_rrlp_GANSS_ID1_item,
9831 { "GANSS-ID1-element", "rrlp.GANSS_ID1_element_element",
9832 FT_NONE, BASE_NONE, NULL, 0,
9833 NULL, HFILL }},
9834 { &hf_rrlp_signalsAvailable,
9835 { "signalsAvailable", "rrlp.signalsAvailable",
9836 FT_BYTES, BASE_NONE, NULL, 0,
9837 "GANSSSignals", HFILL }},
9838 { &hf_rrlp_GANSS_ID3_item,
9839 { "GANSS-ID3-element", "rrlp.GANSS_ID3_element_element",
9840 FT_NONE, BASE_NONE, NULL, 0,
9841 NULL, HFILL }},
9842 { &hf_rrlp_channelNumber,
9843 { "channelNumber", "rrlp.channelNumber",
9844 FT_INT32, BASE_DEC, NULL, 0,
9845 "INTEGER_M7_13", HFILL }},
9846 { &hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item,
9847 { "DGANSSExtensionSgnTypeElement", "rrlp.DGANSSExtensionSgnTypeElement_element",
9848 FT_NONE, BASE_NONE, NULL, 0,
9849 NULL, HFILL }},
9850 { &hf_rrlp_dganssExtensionSgnList,
9851 { "dganssExtensionSgnList", "rrlp.dganssExtensionSgnList",
9852 FT_UINT32, BASE_DEC, NULL, 0,
9853 "SeqOfDGANSSExtensionSgnElement", HFILL }},
9854 { &hf_rrlp_SeqOfDGANSSExtensionSgnElement_item,
9855 { "DGANSSExtensionSgnElement", "rrlp.DGANSSExtensionSgnElement_element",
9856 FT_NONE, BASE_NONE, NULL, 0,
9857 NULL, HFILL }},
9858 { &hf_rrlp_udreGrowthRate,
9859 { "udreGrowthRate", "rrlp.udreGrowthRate",
9860 FT_UINT32, BASE_DEC, NULL, 0,
9861 "INTEGER_0_7", HFILL }},
9862 { &hf_rrlp_udreValidityTime,
9863 { "udreValidityTime", "rrlp.udreValidityTime",
9864 FT_UINT32, BASE_DEC, NULL, 0,
9865 "INTEGER_0_7", HFILL }},
9866 { &hf_rrlp_add_GPS_controlHeader,
9867 { "add-GPS-controlHeader", "rrlp.add_GPS_controlHeader_element",
9868 FT_NONE, BASE_NONE, NULL, 0,
9869 NULL, HFILL }},
9870 { &hf_rrlp_gpsEphemerisExtension,
9871 { "gpsEphemerisExtension", "rrlp.gpsEphemerisExtension_element",
9872 FT_NONE, BASE_NONE, NULL, 0,
9873 NULL, HFILL }},
9874 { &hf_rrlp_gpsEphemerisExtensionCheck,
9875 { "gpsEphemerisExtensionCheck", "rrlp.gpsEphemerisExtensionCheck_element",
9876 FT_NONE, BASE_NONE, NULL, 0,
9877 NULL, HFILL }},
9878 { &hf_rrlp_dgpsCorrectionsValidityPeriod,
9879 { "dgpsCorrectionsValidityPeriod", "rrlp.dgpsCorrectionsValidityPeriod",
9880 FT_UINT32, BASE_DEC, NULL, 0,
9881 NULL, HFILL }},
9882 { &hf_rrlp_gpsReferenceTime_R10_Ext,
9883 { "gpsReferenceTime-R10-Ext", "rrlp.gpsReferenceTime_R10_Ext_element",
9884 FT_NONE, BASE_NONE, NULL, 0,
9885 NULL, HFILL }},
9886 { &hf_rrlp_gpsAcquisAssist_R10_Ext,
9887 { "gpsAcquisAssist-R10-Ext", "rrlp.gpsAcquisAssist_R10_Ext",
9888 FT_UINT32, BASE_DEC, NULL, 0,
9889 NULL, HFILL }},
9890 { &hf_rrlp_gpsAlmanac_R10_Ext,
9891 { "gpsAlmanac-R10-Ext", "rrlp.gpsAlmanac_R10_Ext_element",
9892 FT_NONE, BASE_NONE, NULL, 0,
9893 NULL, HFILL }},
9894 { &hf_rrlp_af2,
9895 { "af2", "rrlp.af2",
9896 FT_INT32, BASE_DEC, NULL, 0,
9897 "INTEGER_M128_127", HFILL }},
9898 { &hf_rrlp_af1,
9899 { "af1", "rrlp.af1",
9900 FT_INT32, BASE_DEC, NULL, 0,
9901 "INTEGER_M32768_32767", HFILL }},
9902 { &hf_rrlp_af0,
9903 { "af0", "rrlp.af0",
9904 FT_INT32, BASE_DEC, NULL, 0,
9905 "INTEGER_M2097152_2097151", HFILL }},
9906 { &hf_rrlp_tgd,
9907 { "tgd", "rrlp.tgd",
9908 FT_INT32, BASE_DEC, NULL, 0,
9909 "INTEGER_M128_127", HFILL }},
9910 { &hf_rrlp_gpsEphemerisHeader,
9911 { "gpsEphemerisHeader", "rrlp.gpsEphemerisHeader_element",
9912 FT_NONE, BASE_NONE, NULL, 0,
9913 "GPSEphemerisExtensionHeader", HFILL }},
9914 { &hf_rrlp_gpsReferenceSet,
9915 { "gpsReferenceSet", "rrlp.gpsReferenceSet",
9916 FT_UINT32, BASE_DEC, NULL, 0,
9917 "SeqOfGPSRefOrbit", HFILL }},
9918 { &hf_rrlp_gpsephemerisDeltaMatrix,
9919 { "gpsephemerisDeltaMatrix", "rrlp.gpsephemerisDeltaMatrix",
9920 FT_UINT32, BASE_DEC, NULL, 0,
9921 NULL, HFILL }},
9922 { &hf_rrlp_timeofEstimation,
9923 { "timeofEstimation", "rrlp.timeofEstimation_element",
9924 FT_NONE, BASE_NONE, NULL, 0,
9925 "GPSEphemerisExtensionTime", HFILL }},
9926 { &hf_rrlp_SeqOfGPSRefOrbit_item,
9927 { "GPSReferenceOrbit", "rrlp.GPSReferenceOrbit_element",
9928 FT_NONE, BASE_NONE, NULL, 0,
9929 NULL, HFILL }},
9930 { &hf_rrlp_gpsOrbitModel,
9931 { "gpsOrbitModel", "rrlp.gpsOrbitModel_element",
9932 FT_NONE, BASE_NONE, NULL, 0,
9933 "ReferenceNavModel", HFILL }},
9934 { &hf_rrlp_gpsClockModel,
9935 { "gpsClockModel", "rrlp.gpsClockModel_element",
9936 FT_NONE, BASE_NONE, NULL, 0,
9937 NULL, HFILL }},
9938 { &hf_rrlp_GPSEphemerisDeltaMatrix_item,
9939 { "GPSEphemerisDeltaEpoch", "rrlp.GPSEphemerisDeltaEpoch_element",
9940 FT_NONE, BASE_NONE, NULL, 0,
9941 NULL, HFILL }},
9942 { &hf_rrlp_gpsDeltaEpochHeader,
9943 { "gpsDeltaEpochHeader", "rrlp.gpsDeltaEpochHeader_element",
9944 FT_NONE, BASE_NONE, NULL, 0,
9945 NULL, HFILL }},
9946 { &hf_rrlp_gpsDeltaElementList,
9947 { "gpsDeltaElementList", "rrlp.gpsDeltaElementList",
9948 FT_UINT32, BASE_DEC, NULL, 0,
9949 NULL, HFILL }},
9950 { &hf_rrlp_ephemerisDeltaSizes_01,
9951 { "ephemerisDeltaSizes", "rrlp.ephemerisDeltaSizes_element",
9952 FT_NONE, BASE_NONE, NULL, 0,
9953 "GPSEphemerisDeltaBitSizes", HFILL }},
9954 { &hf_rrlp_ephemerisDeltaScales_01,
9955 { "ephemerisDeltaScales", "rrlp.ephemerisDeltaScales_element",
9956 FT_NONE, BASE_NONE, NULL, 0,
9957 "GPSEphemerisDeltaScales", HFILL }},
9958 { &hf_rrlp_GPSDeltaElementList_item,
9959 { "GPSDeltaElementList item", "rrlp.GPSDeltaElementList_item",
9960 FT_BYTES, BASE_NONE, NULL, 0,
9961 "OCTET_STRING_SIZE_1_47", HFILL }},
9962 { &hf_rrlp_bitsize_delta_tgd,
9963 { "bitsize-delta-tgd", "rrlp.bitsize_delta_tgd",
9964 FT_UINT32, BASE_DEC, NULL, 0,
9965 "INTEGER_1_10", HFILL }},
9966 { &hf_rrlp_scale_delta_tgd,
9967 { "scale-delta-tgd", "rrlp.scale_delta_tgd",
9968 FT_INT32, BASE_DEC, NULL, 0,
9969 "INTEGER_M16_15", HFILL }},
9970 { &hf_rrlp_gpsBeginTime,
9971 { "gpsBeginTime", "rrlp.gpsBeginTime_element",
9972 FT_NONE, BASE_NONE, NULL, 0,
9973 "GPSEphemerisExtensionTime", HFILL }},
9974 { &hf_rrlp_gpsEndTime,
9975 { "gpsEndTime", "rrlp.gpsEndTime_element",
9976 FT_NONE, BASE_NONE, NULL, 0,
9977 "GPSEphemerisExtensionTime", HFILL }},
9978 { &hf_rrlp_gpsSatEventsInfo,
9979 { "gpsSatEventsInfo", "rrlp.gpsSatEventsInfo_element",
9980 FT_NONE, BASE_NONE, NULL, 0,
9981 NULL, HFILL }},
9982 { &hf_rrlp_eventOccured_01,
9983 { "eventOccured", "rrlp.eventOccured",
9984 FT_BYTES, BASE_NONE, NULL, 0,
9985 "BIT_STRING_SIZE_32", HFILL }},
9986 { &hf_rrlp_futureEventNoted_01,
9987 { "futureEventNoted", "rrlp.futureEventNoted",
9988 FT_BYTES, BASE_NONE, NULL, 0,
9989 "BIT_STRING_SIZE_32", HFILL }},
9990 { &hf_rrlp_DGPSCorrectionsValidityPeriod_item,
9991 { "DGPSExtensionSatElement", "rrlp.DGPSExtensionSatElement_element",
9992 FT_NONE, BASE_NONE, NULL, 0,
9993 NULL, HFILL }},
9994 { &hf_rrlp_gpsWeekCycleNumber,
9995 { "gpsWeekCycleNumber", "rrlp.gpsWeekCycleNumber",
9996 FT_UINT32, BASE_DEC, NULL, 0,
9997 "INTEGER_0_7", HFILL }},
9998 { &hf_rrlp_GPSAcquisAssist_R10_Ext_item,
9999 { "GPSAcquisAssist-R10-Ext-Element", "rrlp.GPSAcquisAssist_R10_Ext_Element_element",
10000 FT_NONE, BASE_NONE, NULL, 0,
10001 NULL, HFILL }},
10002 { &hf_rrlp_velEstimate,
10003 { "velEstimate", "rrlp.velEstimate",
10004 FT_BYTES, BASE_NONE, NULL, 0,
10005 "VelocityEstimate", HFILL }},
10006 { &hf_rrlp_ganssLocationInfo,
10007 { "ganssLocationInfo", "rrlp.ganssLocationInfo_element",
10008 FT_NONE, BASE_NONE, NULL, 0,
10009 NULL, HFILL }},
10010 { &hf_rrlp_ganssMeasureInfo,
10011 { "ganssMeasureInfo", "rrlp.ganssMeasureInfo_element",
10012 FT_NONE, BASE_NONE, NULL, 0,
10013 NULL, HFILL }},
10014 { &hf_rrlp_referenceFrame,
10015 { "referenceFrame", "rrlp.referenceFrame_element",
10016 FT_NONE, BASE_NONE, NULL, 0,
10017 NULL, HFILL }},
10018 { &hf_rrlp_ganssTODm,
10019 { "ganssTODm", "rrlp.ganssTODm",
10020 FT_UINT32, BASE_DEC, NULL, 0,
10021 NULL, HFILL }},
10022 { &hf_rrlp_ganssTODFrac,
10023 { "ganssTODFrac", "rrlp.ganssTODFrac",
10024 FT_UINT32, BASE_DEC, NULL, 0,
10025 "INTEGER_0_16384", HFILL }},
10026 { &hf_rrlp_posData,
10027 { "posData", "rrlp.posData",
10028 FT_BYTES, BASE_NONE, NULL, 0,
10029 "PositionData", HFILL }},
10030 { &hf_rrlp_stationaryIndication,
10031 { "stationaryIndication", "rrlp.stationaryIndication",
10032 FT_UINT32, BASE_DEC, NULL, 0,
10033 "INTEGER_0_1", HFILL }},
10034 { &hf_rrlp_referenceFN,
10035 { "referenceFN", "rrlp.referenceFN",
10036 FT_UINT32, BASE_DEC, NULL, 0,
10037 "INTEGER_0_65535", HFILL }},
10038 { &hf_rrlp_referenceFNMSB,
10039 { "referenceFNMSB", "rrlp.referenceFNMSB",
10040 FT_UINT32, BASE_DEC, NULL, 0,
10041 "INTEGER_0_63", HFILL }},
10042 { &hf_rrlp_ganssMsrSetList,
10043 { "ganssMsrSetList", "rrlp.ganssMsrSetList",
10044 FT_UINT32, BASE_DEC, NULL, 0,
10045 "SeqOfGANSS_MsrSetElement", HFILL }},
10046 { &hf_rrlp_SeqOfGANSS_MsrSetElement_item,
10047 { "GANSS-MsrSetElement", "rrlp.GANSS_MsrSetElement_element",
10048 FT_NONE, BASE_NONE, NULL, 0,
10049 NULL, HFILL }},
10050 { &hf_rrlp_deltaGANSSTOD,
10051 { "deltaGANSSTOD", "rrlp.deltaGANSSTOD",
10052 FT_UINT32, BASE_DEC, NULL, 0,
10053 "INTEGER_0_127", HFILL }},
10054 { &hf_rrlp_ganss_MsrElementList,
10055 { "ganss-MsrElementList", "rrlp.ganss_MsrElementList",
10056 FT_UINT32, BASE_DEC, NULL, 0,
10057 "SeqOfGANSS_MsrElement", HFILL }},
10058 { &hf_rrlp_SeqOfGANSS_MsrElement_item,
10059 { "GANSS-MsrElement", "rrlp.GANSS_MsrElement_element",
10060 FT_NONE, BASE_NONE, NULL, 0,
10061 NULL, HFILL }},
10062 { &hf_rrlp_ganss_SgnTypeList,
10063 { "ganss-SgnTypeList", "rrlp.ganss_SgnTypeList",
10064 FT_UINT32, BASE_DEC, NULL, 0,
10065 "SeqOfGANSS_SgnTypeElement", HFILL }},
10066 { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item,
10067 { "GANSS-SgnTypeElement", "rrlp.GANSS_SgnTypeElement_element",
10068 FT_NONE, BASE_NONE, NULL, 0,
10069 NULL, HFILL }},
10070 { &hf_rrlp_ganssCodePhaseAmbiguity,
10071 { "ganssCodePhaseAmbiguity", "rrlp.ganssCodePhaseAmbiguity",
10072 FT_UINT32, BASE_DEC, NULL, 0,
10073 "INTEGER_0_127", HFILL }},
10074 { &hf_rrlp_ganss_SgnList,
10075 { "ganss-SgnList", "rrlp.ganss_SgnList",
10076 FT_UINT32, BASE_DEC, NULL, 0,
10077 "SeqOfGANSS_SgnElement", HFILL }},
10078 { &hf_rrlp_SeqOfGANSS_SgnElement_item,
10079 { "GANSS-SgnElement", "rrlp.GANSS_SgnElement_element",
10080 FT_NONE, BASE_NONE, NULL, 0,
10081 NULL, HFILL }},
10082 { &hf_rrlp_mpathDet,
10083 { "mpathDet", "rrlp.mpathDet",
10084 FT_UINT32, BASE_DEC, VALS(rrlp_MpathIndic_vals), 0,
10085 "MpathIndic", HFILL }},
10086 { &hf_rrlp_carrierQualityInd,
10087 { "carrierQualityInd", "rrlp.carrierQualityInd",
10088 FT_UINT32, BASE_DEC, NULL, 0,
10089 "INTEGER_0_3", HFILL }},
10090 { &hf_rrlp_codePhase_01,
10091 { "codePhase", "rrlp.codePhase",
10092 FT_UINT32, BASE_DEC, NULL, 0,
10093 "INTEGER_0_2097151", HFILL }},
10094 { &hf_rrlp_integerCodePhase,
10095 { "integerCodePhase", "rrlp.integerCodePhase",
10096 FT_UINT32, BASE_DEC, NULL, 0,
10097 "INTEGER_0_127", HFILL }},
10098 { &hf_rrlp_codePhaseRMSError,
10099 { "codePhaseRMSError", "rrlp.codePhaseRMSError",
10100 FT_UINT32, BASE_DEC, NULL, 0,
10101 "INTEGER_0_63", HFILL }},
10102 { &hf_rrlp_adr,
10103 { "adr", "rrlp.adr",
10104 FT_UINT32, BASE_DEC, NULL, 0,
10105 "INTEGER_0_33554431", HFILL }},
10106 { &hf_rrlp_nonGANSSpositionMethods,
10107 { "nonGANSSpositionMethods", "rrlp.nonGANSSpositionMethods",
10108 FT_BYTES, BASE_NONE, NULL, 0,
10109 NULL, HFILL }},
10110 { &hf_rrlp_multipleMeasurementSets,
10111 { "multipleMeasurementSets", "rrlp.multipleMeasurementSets",
10112 FT_BYTES, BASE_NONE, NULL, 0,
10113 NULL, HFILL }},
10114 { &hf_rrlp_GANSSPositionMethods_item,
10115 { "GANSSPositionMethod", "rrlp.GANSSPositionMethod_element",
10116 FT_NONE, BASE_NONE, NULL, 0,
10117 NULL, HFILL }},
10118 { &hf_rrlp_gANSSPositioningMethodTypes,
10119 { "gANSSPositioningMethodTypes", "rrlp.gANSSPositioningMethodTypes",
10120 FT_BYTES, BASE_NONE, NULL, 0,
10121 NULL, HFILL }},
10122 { &hf_rrlp_gANSSSignals,
10123 { "gANSSSignals", "rrlp.gANSSSignals",
10124 FT_BYTES, BASE_NONE, NULL, 0,
10125 NULL, HFILL }},
10126 { &hf_rrlp_sbasID_01,
10127 { "sbasID", "rrlp.sbasID",
10128 FT_BYTES, BASE_NONE, NULL, 0,
10129 NULL, HFILL }},
10130 { &hf_rrlp_gpsAssistance,
10131 { "gpsAssistance", "rrlp.gpsAssistance",
10132 FT_BYTES, BASE_NONE, NULL, 0,
10133 NULL, HFILL }},
10134 { &hf_rrlp_gANSSAssistanceSet,
10135 { "gANSSAssistanceSet", "rrlp.gANSSAssistanceSet_element",
10136 FT_NONE, BASE_NONE, NULL, 0,
10137 NULL, HFILL }},
10138 { &hf_rrlp_gANSSAdditionalAssistanceChoices,
10139 { "gANSSAdditionalAssistanceChoices", "rrlp.gANSSAdditionalAssistanceChoices",
10140 FT_UINT32, BASE_DEC, NULL, 0,
10141 NULL, HFILL }},
10142 { &hf_rrlp_commonGANSSAssistance,
10143 { "commonGANSSAssistance", "rrlp.commonGANSSAssistance",
10144 FT_BYTES, BASE_NONE, NULL, 0,
10145 NULL, HFILL }},
10146 { &hf_rrlp_specificGANSSAssistance,
10147 { "specificGANSSAssistance", "rrlp.specificGANSSAssistance",
10148 FT_UINT32, BASE_DEC, NULL, 0,
10149 NULL, HFILL }},
10150 { &hf_rrlp_SpecificGANSSAssistance_item,
10151 { "GANSSAssistanceForOneGANSS", "rrlp.GANSSAssistanceForOneGANSS_element",
10152 FT_NONE, BASE_NONE, NULL, 0,
10153 NULL, HFILL }},
10154 { &hf_rrlp_gANSSAssistance,
10155 { "gANSSAssistance", "rrlp.gANSSAssistance",
10156 FT_BYTES, BASE_NONE, NULL, 0,
10157 NULL, HFILL }},
10158 { &hf_rrlp_GANSSAdditionalAssistanceChoices_item,
10159 { "GANSSAdditionalAssistanceChoicesForOneGANSS", "rrlp.GANSSAdditionalAssistanceChoicesForOneGANSS_element",
10160 FT_NONE, BASE_NONE, NULL, 0,
10161 NULL, HFILL }},
10162 { &hf_rrlp_ganssClockModelChoice,
10163 { "ganssClockModelChoice", "rrlp.ganssClockModelChoice",
10164 FT_BYTES, BASE_NONE, NULL, 0,
10165 "GANSSModelID", HFILL }},
10166 { &hf_rrlp_gannsOrbitModelChoice,
10167 { "gannsOrbitModelChoice", "rrlp.gannsOrbitModelChoice",
10168 FT_BYTES, BASE_NONE, NULL, 0,
10169 "GANSSModelID", HFILL }},
10170 { &hf_rrlp_ganssAlmanacModelChoice,
10171 { "ganssAlmanacModelChoice", "rrlp.ganssAlmanacModelChoice",
10172 FT_BYTES, BASE_NONE, NULL, 0,
10173 "GANSSModelID", HFILL }},
10174 { &hf_rrlp_ganssAdditionalUTCModelChoice,
10175 { "ganssAdditionalUTCModelChoice", "rrlp.ganssAdditionalUTCModelChoice",
10176 FT_BYTES, BASE_NONE, NULL, 0,
10177 "GANSSModelID", HFILL }},
10178 { &hf_rrlp_GANSSPositioningMethod_gps,
10179 { "gps", "rrlp.GANSSPositioningMethod.gps",
10180 FT_BOOLEAN, 8, NULL, 0x80,
10181 NULL, HFILL }},
10182 { &hf_rrlp_GANSSPositioningMethod_galileo,
10183 { "galileo", "rrlp.GANSSPositioningMethod.galileo",
10184 FT_BOOLEAN, 8, NULL, 0x40,
10185 NULL, HFILL }},
10186 { &hf_rrlp_GANSSPositioningMethod_sbas,
10187 { "sbas", "rrlp.GANSSPositioningMethod.sbas",
10188 FT_BOOLEAN, 8, NULL, 0x20,
10189 NULL, HFILL }},
10190 { &hf_rrlp_GANSSPositioningMethod_modernizedGPS,
10191 { "modernizedGPS", "rrlp.GANSSPositioningMethod.modernizedGPS",
10192 FT_BOOLEAN, 8, NULL, 0x10,
10193 NULL, HFILL }},
10194 { &hf_rrlp_GANSSPositioningMethod_qzss,
10195 { "qzss", "rrlp.GANSSPositioningMethod.qzss",
10196 FT_BOOLEAN, 8, NULL, 0x08,
10197 NULL, HFILL }},
10198 { &hf_rrlp_GANSSPositioningMethod_glonass,
10199 { "glonass", "rrlp.GANSSPositioningMethod.glonass",
10200 FT_BOOLEAN, 8, NULL, 0x04,
10201 NULL, HFILL }},
10202 { &hf_rrlp_PositionData_e_otd,
10203 { "e-otd", "rrlp.PositionData.e.otd",
10204 FT_BOOLEAN, 8, NULL, 0x80,
10205 NULL, HFILL }},
10206 { &hf_rrlp_PositionData_gps,
10207 { "gps", "rrlp.PositionData.gps",
10208 FT_BOOLEAN, 8, NULL, 0x40,
10209 NULL, HFILL }},
10210 { &hf_rrlp_PositionData_galileo,
10211 { "galileo", "rrlp.PositionData.galileo",
10212 FT_BOOLEAN, 8, NULL, 0x20,
10213 NULL, HFILL }},
10214 { &hf_rrlp_PositionData_sbas,
10215 { "sbas", "rrlp.PositionData.sbas",
10216 FT_BOOLEAN, 8, NULL, 0x10,
10217 NULL, HFILL }},
10218 { &hf_rrlp_PositionData_modernizedGPS,
10219 { "modernizedGPS", "rrlp.PositionData.modernizedGPS",
10220 FT_BOOLEAN, 8, NULL, 0x08,
10221 NULL, HFILL }},
10222 { &hf_rrlp_PositionData_qzss,
10223 { "qzss", "rrlp.PositionData.qzss",
10224 FT_BOOLEAN, 8, NULL, 0x04,
10225 NULL, HFILL }},
10226 { &hf_rrlp_PositionData_glonass,
10227 { "glonass", "rrlp.PositionData.glonass",
10228 FT_BOOLEAN, 8, NULL, 0x02,
10229 NULL, HFILL }},
10230 { &hf_rrlp_NonGANSSPositionMethods_msAssistedEOTD,
10231 { "msAssistedEOTD", "rrlp.NonGANSSPositionMethods.msAssistedEOTD",
10232 FT_BOOLEAN, 8, NULL, 0x80,
10233 NULL, HFILL }},
10234 { &hf_rrlp_NonGANSSPositionMethods_msBasedEOTD,
10235 { "msBasedEOTD", "rrlp.NonGANSSPositionMethods.msBasedEOTD",
10236 FT_BOOLEAN, 8, NULL, 0x40,
10237 NULL, HFILL }},
10238 { &hf_rrlp_NonGANSSPositionMethods_msAssistedGPS,
10239 { "msAssistedGPS", "rrlp.NonGANSSPositionMethods.msAssistedGPS",
10240 FT_BOOLEAN, 8, NULL, 0x20,
10241 NULL, HFILL }},
10242 { &hf_rrlp_NonGANSSPositionMethods_msBasedGPS,
10243 { "msBasedGPS", "rrlp.NonGANSSPositionMethods.msBasedGPS",
10244 FT_BOOLEAN, 8, NULL, 0x10,
10245 NULL, HFILL }},
10246 { &hf_rrlp_NonGANSSPositionMethods_standaloneGPS,
10247 { "standaloneGPS", "rrlp.NonGANSSPositionMethods.standaloneGPS",
10248 FT_BOOLEAN, 8, NULL, 0x08,
10249 NULL, HFILL }},
10250 { &hf_rrlp_GANSSPositioningMethodTypes_msAssisted,
10251 { "msAssisted", "rrlp.GANSSPositioningMethodTypes.msAssisted",
10252 FT_BOOLEAN, 8, NULL, 0x80,
10253 NULL, HFILL }},
10254 { &hf_rrlp_GANSSPositioningMethodTypes_msBased,
10255 { "msBased", "rrlp.GANSSPositioningMethodTypes.msBased",
10256 FT_BOOLEAN, 8, NULL, 0x40,
10257 NULL, HFILL }},
10258 { &hf_rrlp_GANSSPositioningMethodTypes_standalone,
10259 { "standalone", "rrlp.GANSSPositioningMethodTypes.standalone",
10260 FT_BOOLEAN, 8, NULL, 0x20,
10261 NULL, HFILL }},
10262 { &hf_rrlp_GANSSSignals_signal1,
10263 { "signal1", "rrlp.GANSSSignals.signal1",
10264 FT_BOOLEAN, 8, NULL, 0x80,
10265 NULL, HFILL }},
10266 { &hf_rrlp_GANSSSignals_signal2,
10267 { "signal2", "rrlp.GANSSSignals.signal2",
10268 FT_BOOLEAN, 8, NULL, 0x40,
10269 NULL, HFILL }},
10270 { &hf_rrlp_GANSSSignals_signal3,
10271 { "signal3", "rrlp.GANSSSignals.signal3",
10272 FT_BOOLEAN, 8, NULL, 0x20,
10273 NULL, HFILL }},
10274 { &hf_rrlp_GANSSSignals_signal4,
10275 { "signal4", "rrlp.GANSSSignals.signal4",
10276 FT_BOOLEAN, 8, NULL, 0x10,
10277 NULL, HFILL }},
10278 { &hf_rrlp_GANSSSignals_signal5,
10279 { "signal5", "rrlp.GANSSSignals.signal5",
10280 FT_BOOLEAN, 8, NULL, 0x08,
10281 NULL, HFILL }},
10282 { &hf_rrlp_GANSSSignals_signal6,
10283 { "signal6", "rrlp.GANSSSignals.signal6",
10284 FT_BOOLEAN, 8, NULL, 0x04,
10285 NULL, HFILL }},
10286 { &hf_rrlp_GANSSSignals_signal7,
10287 { "signal7", "rrlp.GANSSSignals.signal7",
10288 FT_BOOLEAN, 8, NULL, 0x02,
10289 NULL, HFILL }},
10290 { &hf_rrlp_GANSSSignals_signal8,
10291 { "signal8", "rrlp.GANSSSignals.signal8",
10292 FT_BOOLEAN, 8, NULL, 0x01,
10293 NULL, HFILL }},
10294 { &hf_rrlp_SBASID_waas,
10295 { "waas", "rrlp.SBASID.waas",
10296 FT_BOOLEAN, 8, NULL, 0x80,
10297 NULL, HFILL }},
10298 { &hf_rrlp_SBASID_egnos,
10299 { "egnos", "rrlp.SBASID.egnos",
10300 FT_BOOLEAN, 8, NULL, 0x40,
10301 NULL, HFILL }},
10302 { &hf_rrlp_SBASID_masas,
10303 { "masas", "rrlp.SBASID.masas",
10304 FT_BOOLEAN, 8, NULL, 0x20,
10305 NULL, HFILL }},
10306 { &hf_rrlp_SBASID_gagan,
10307 { "gagan", "rrlp.SBASID.gagan",
10308 FT_BOOLEAN, 8, NULL, 0x10,
10309 NULL, HFILL }},
10310 { &hf_rrlp_MultipleMeasurementSets_eotd,
10311 { "eotd", "rrlp.MultipleMeasurementSets.eotd",
10312 FT_BOOLEAN, 8, NULL, 0x80,
10313 NULL, HFILL }},
10314 { &hf_rrlp_MultipleMeasurementSets_gps,
10315 { "gps", "rrlp.MultipleMeasurementSets.gps",
10316 FT_BOOLEAN, 8, NULL, 0x40,
10317 NULL, HFILL }},
10318 { &hf_rrlp_MultipleMeasurementSets_ganss,
10319 { "ganss", "rrlp.MultipleMeasurementSets.ganss",
10320 FT_BOOLEAN, 8, NULL, 0x20,
10321 NULL, HFILL }},
10322 { &hf_rrlp_GPSAssistance_almanac,
10323 { "almanac", "rrlp.GPSAssistance.almanac",
10324 FT_BOOLEAN, 8, NULL, 0x80,
10325 NULL, HFILL }},
10326 { &hf_rrlp_GPSAssistance_uTCmodel,
10327 { "uTCmodel", "rrlp.GPSAssistance.uTCmodel",
10328 FT_BOOLEAN, 8, NULL, 0x40,
10329 NULL, HFILL }},
10330 { &hf_rrlp_GPSAssistance_ionosphericModel,
10331 { "ionosphericModel", "rrlp.GPSAssistance.ionosphericModel",
10332 FT_BOOLEAN, 8, NULL, 0x20,
10333 NULL, HFILL }},
10334 { &hf_rrlp_GPSAssistance_navigationmodel,
10335 { "navigationmodel", "rrlp.GPSAssistance.navigationmodel",
10336 FT_BOOLEAN, 8, NULL, 0x10,
10337 NULL, HFILL }},
10338 { &hf_rrlp_GPSAssistance_dGPScorrections,
10339 { "dGPScorrections", "rrlp.GPSAssistance.dGPScorrections",
10340 FT_BOOLEAN, 8, NULL, 0x08,
10341 NULL, HFILL }},
10342 { &hf_rrlp_GPSAssistance_referenceLocation,
10343 { "referenceLocation", "rrlp.GPSAssistance.referenceLocation",
10344 FT_BOOLEAN, 8, NULL, 0x04,
10345 NULL, HFILL }},
10346 { &hf_rrlp_GPSAssistance_referenceTime,
10347 { "referenceTime", "rrlp.GPSAssistance.referenceTime",
10348 FT_BOOLEAN, 8, NULL, 0x02,
10349 NULL, HFILL }},
10350 { &hf_rrlp_GPSAssistance_acquisitionAssistance,
10351 { "acquisitionAssistance", "rrlp.GPSAssistance.acquisitionAssistance",
10352 FT_BOOLEAN, 8, NULL, 0x01,
10353 NULL, HFILL }},
10354 { &hf_rrlp_GPSAssistance_realTimeIntegrity,
10355 { "realTimeIntegrity", "rrlp.GPSAssistance.realTimeIntegrity",
10356 FT_BOOLEAN, 8, NULL, 0x80,
10357 NULL, HFILL }},
10358 { &hf_rrlp_GPSAssistance_ephemerisExtension,
10359 { "ephemerisExtension", "rrlp.GPSAssistance.ephemerisExtension",
10360 FT_BOOLEAN, 8, NULL, 0x40,
10361 NULL, HFILL }},
10362 { &hf_rrlp_GPSAssistance_ephemerisExtensionCheck,
10363 { "ephemerisExtensionCheck", "rrlp.GPSAssistance.ephemerisExtensionCheck",
10364 FT_BOOLEAN, 8, NULL, 0x20,
10365 NULL, HFILL }},
10366 { &hf_rrlp_CommonGANSSAssistance_referenceTime,
10367 { "referenceTime", "rrlp.CommonGANSSAssistance.referenceTime",
10368 FT_BOOLEAN, 8, NULL, 0x80,
10369 NULL, HFILL }},
10370 { &hf_rrlp_CommonGANSSAssistance_referenceLocation,
10371 { "referenceLocation", "rrlp.CommonGANSSAssistance.referenceLocation",
10372 FT_BOOLEAN, 8, NULL, 0x40,
10373 NULL, HFILL }},
10374 { &hf_rrlp_CommonGANSSAssistance_spare_bit2,
10375 { "spare_bit2", "rrlp.CommonGANSSAssistance.spare.bit2",
10376 FT_BOOLEAN, 8, NULL, 0x20,
10377 NULL, HFILL }},
10378 { &hf_rrlp_CommonGANSSAssistance_ionosphericModel,
10379 { "ionosphericModel", "rrlp.CommonGANSSAssistance.ionosphericModel",
10380 FT_BOOLEAN, 8, NULL, 0x10,
10381 NULL, HFILL }},
10382 { &hf_rrlp_CommonGANSSAssistance_addIonosphericModel,
10383 { "addIonosphericModel", "rrlp.CommonGANSSAssistance.addIonosphericModel",
10384 FT_BOOLEAN, 8, NULL, 0x08,
10385 NULL, HFILL }},
10386 { &hf_rrlp_CommonGANSSAssistance_earthOrientationParam,
10387 { "earthOrientationParam", "rrlp.CommonGANSSAssistance.earthOrientationParam",
10388 FT_BOOLEAN, 8, NULL, 0x04,
10389 NULL, HFILL }},
10390 { &hf_rrlp_GANSSAssistance_realTimeIntegrity,
10391 { "realTimeIntegrity", "rrlp.GANSSAssistance.realTimeIntegrity",
10392 FT_BOOLEAN, 8, NULL, 0x80,
10393 NULL, HFILL }},
10394 { &hf_rrlp_GANSSAssistance_differentialCorrections,
10395 { "differentialCorrections", "rrlp.GANSSAssistance.differentialCorrections",
10396 FT_BOOLEAN, 8, NULL, 0x40,
10397 NULL, HFILL }},
10398 { &hf_rrlp_GANSSAssistance_almanac,
10399 { "almanac", "rrlp.GANSSAssistance.almanac",
10400 FT_BOOLEAN, 8, NULL, 0x20,
10401 NULL, HFILL }},
10402 { &hf_rrlp_GANSSAssistance_referenceMeasurementInformation,
10403 { "referenceMeasurementInformation", "rrlp.GANSSAssistance.referenceMeasurementInformation",
10404 FT_BOOLEAN, 8, NULL, 0x10,
10405 NULL, HFILL }},
10406 { &hf_rrlp_GANSSAssistance_navigationModel,
10407 { "navigationModel", "rrlp.GANSSAssistance.navigationModel",
10408 FT_BOOLEAN, 8, NULL, 0x08,
10409 NULL, HFILL }},
10410 { &hf_rrlp_GANSSAssistance_timeModelGNSS_UTC,
10411 { "timeModelGNSS-UTC", "rrlp.GANSSAssistance.timeModelGNSS.UTC",
10412 FT_BOOLEAN, 8, NULL, 0x04,
10413 NULL, HFILL }},
10414 { &hf_rrlp_GANSSAssistance_timeModelGNSS_GNSS,
10415 { "timeModelGNSS-GNSS", "rrlp.GANSSAssistance.timeModelGNSS.GNSS",
10416 FT_BOOLEAN, 8, NULL, 0x02,
10417 NULL, HFILL }},
10418 { &hf_rrlp_GANSSAssistance_databitassistance,
10419 { "databitassistance", "rrlp.GANSSAssistance.databitassistance",
10420 FT_BOOLEAN, 8, NULL, 0x01,
10421 NULL, HFILL }},
10422 { &hf_rrlp_GANSSAssistance_ephemerisExtension,
10423 { "ephemerisExtension", "rrlp.GANSSAssistance.ephemerisExtension",
10424 FT_BOOLEAN, 8, NULL, 0x80,
10425 NULL, HFILL }},
10426 { &hf_rrlp_GANSSAssistance_ephemerisExtensionCheck,
10427 { "ephemerisExtensionCheck", "rrlp.GANSSAssistance.ephemerisExtensionCheck",
10428 FT_BOOLEAN, 8, NULL, 0x40,
10429 NULL, HFILL }},
10430 { &hf_rrlp_GANSSAssistance_addUTCmodel,
10431 { "addUTCmodel", "rrlp.GANSSAssistance.addUTCmodel",
10432 FT_BOOLEAN, 8, NULL, 0x20,
10433 NULL, HFILL }},
10434 { &hf_rrlp_GANSSAssistance_auxiliaryInformation,
10435 { "auxiliaryInformation", "rrlp.GANSSAssistance.auxiliaryInformation",
10436 FT_BOOLEAN, 8, NULL, 0x10,
10437 NULL, HFILL }},
10438 { &hf_rrlp_GANSSModelID_model1,
10439 { "model1", "rrlp.GANSSModelID.model1",
10440 FT_BOOLEAN, 8, NULL, 0x80,
10441 NULL, HFILL }},
10442 { &hf_rrlp_GANSSModelID_model2,
10443 { "model2", "rrlp.GANSSModelID.model2",
10444 FT_BOOLEAN, 8, NULL, 0x40,
10445 NULL, HFILL }},
10446 { &hf_rrlp_GANSSModelID_model3,
10447 { "model3", "rrlp.GANSSModelID.model3",
10448 FT_BOOLEAN, 8, NULL, 0x20,
10449 NULL, HFILL }},
10450 { &hf_rrlp_GANSSModelID_model4,
10451 { "model4", "rrlp.GANSSModelID.model4",
10452 FT_BOOLEAN, 8, NULL, 0x10,
10453 NULL, HFILL }},
10454 { &hf_rrlp_GANSSModelID_model5,
10455 { "model5", "rrlp.GANSSModelID.model5",
10456 FT_BOOLEAN, 8, NULL, 0x08,
10457 NULL, HFILL }},
10458 { &hf_rrlp_GANSSModelID_model6,
10459 { "model6", "rrlp.GANSSModelID.model6",
10460 FT_BOOLEAN, 8, NULL, 0x04,
10461 NULL, HFILL }},
10462 { &hf_rrlp_GANSSModelID_model7,
10463 { "model7", "rrlp.GANSSModelID.model7",
10464 FT_BOOLEAN, 8, NULL, 0x02,
10465 NULL, HFILL }},
10466 { &hf_rrlp_GANSSModelID_model8,
10467 { "model8", "rrlp.GANSSModelID.model8",
10468 FT_BOOLEAN, 8, NULL, 0x01,
10469 NULL, HFILL }},
10472 /* List of subtrees */
10473 static int *ett[] = {
10474 &ett_rrlp,
10475 &ett_rrlp_ExtensionContainer,
10476 &ett_rrlp_PrivateExtensionList,
10477 &ett_rrlp_PrivateExtension,
10478 &ett_rrlp_PCS_Extensions,
10479 &ett_rrlp_PDU,
10480 &ett_rrlp_RRLP_Component,
10481 &ett_rrlp_MsrPosition_Req,
10482 &ett_rrlp_MsrPosition_Rsp,
10483 &ett_rrlp_AssistanceData,
10484 &ett_rrlp_ProtocolError,
10485 &ett_rrlp_PosCapability_Req,
10486 &ett_rrlp_PosCapability_Rsp,
10487 &ett_rrlp_PositionInstruct,
10488 &ett_rrlp_MethodType,
10489 &ett_rrlp_AccuracyOpt,
10490 &ett_rrlp_ReferenceAssistData,
10491 &ett_rrlp_MsrAssistData,
10492 &ett_rrlp_SeqOfMsrAssistBTS,
10493 &ett_rrlp_MsrAssistBTS,
10494 &ett_rrlp_SystemInfoAssistData,
10495 &ett_rrlp_SeqOfSystemInfoAssistBTS,
10496 &ett_rrlp_SystemInfoAssistBTS,
10497 &ett_rrlp_AssistBTSData,
10498 &ett_rrlp_CalcAssistanceBTS,
10499 &ett_rrlp_ReferenceWGS84,
10500 &ett_rrlp_MultipleSets,
10501 &ett_rrlp_ReferenceIdentity,
10502 &ett_rrlp_SeqOfReferenceIdentityType,
10503 &ett_rrlp_ReferenceIdentityType,
10504 &ett_rrlp_BSICAndCarrier,
10505 &ett_rrlp_CellIDAndLAC,
10506 &ett_rrlp_OTD_MeasureInfo,
10507 &ett_rrlp_SeqOfOTD_MsrElementRest,
10508 &ett_rrlp_OTD_MsrElementFirst,
10509 &ett_rrlp_SeqOfOTD_FirstSetMsrs,
10510 &ett_rrlp_OTD_MsrElementRest,
10511 &ett_rrlp_SeqOfOTD_MsrsOfOtherSets,
10512 &ett_rrlp_TOA_MeasurementsOfRef,
10513 &ett_rrlp_OTD_MsrsOfOtherSets,
10514 &ett_rrlp_OTD_Measurement,
10515 &ett_rrlp_OTD_MeasurementWithID,
10516 &ett_rrlp_EOTDQuality,
10517 &ett_rrlp_NeighborIdentity,
10518 &ett_rrlp_MultiFrameCarrier,
10519 &ett_rrlp_LocationInfo,
10520 &ett_rrlp_GPS_MeasureInfo,
10521 &ett_rrlp_SeqOfGPS_MsrSetElement,
10522 &ett_rrlp_GPS_MsrSetElement,
10523 &ett_rrlp_SeqOfGPS_MsrElement,
10524 &ett_rrlp_GPS_MsrElement,
10525 &ett_rrlp_LocationError,
10526 &ett_rrlp_AdditionalAssistanceData,
10527 &ett_rrlp_GPS_AssistData,
10528 &ett_rrlp_ControlHeader,
10529 &ett_rrlp_ReferenceTime,
10530 &ett_rrlp_GPSTime,
10531 &ett_rrlp_GPSTOWAssist,
10532 &ett_rrlp_GPSTOWAssistElement,
10533 &ett_rrlp_GSMTime,
10534 &ett_rrlp_RefLocation,
10535 &ett_rrlp_DGPSCorrections,
10536 &ett_rrlp_SeqOfSatElement,
10537 &ett_rrlp_SatElement,
10538 &ett_rrlp_NavigationModel,
10539 &ett_rrlp_SeqOfNavModelElement,
10540 &ett_rrlp_NavModelElement,
10541 &ett_rrlp_SatStatus,
10542 &ett_rrlp_UncompressedEphemeris,
10543 &ett_rrlp_EphemerisSubframe1Reserved,
10544 &ett_rrlp_IonosphericModel,
10545 &ett_rrlp_UTCModel,
10546 &ett_rrlp_Almanac,
10547 &ett_rrlp_SeqOfAlmanacElement,
10548 &ett_rrlp_AlmanacElement,
10549 &ett_rrlp_AcquisAssist,
10550 &ett_rrlp_SeqOfAcquisElement,
10551 &ett_rrlp_TimeRelation,
10552 &ett_rrlp_AcquisElement,
10553 &ett_rrlp_AddionalDopplerFields,
10554 &ett_rrlp_AddionalAngleFields,
10555 &ett_rrlp_SeqOf_BadSatelliteSet,
10556 &ett_rrlp_Rel98_MsrPosition_Req_Extension,
10557 &ett_rrlp_Rel98_AssistanceData_Extension,
10558 &ett_rrlp_Rel98_Ext_ExpOTD,
10559 &ett_rrlp_MsrAssistData_R98_ExpOTD,
10560 &ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD,
10561 &ett_rrlp_MsrAssistBTS_R98_ExpOTD,
10562 &ett_rrlp_SystemInfoAssistData_R98_ExpOTD,
10563 &ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD,
10564 &ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD,
10565 &ett_rrlp_AssistBTSData_R98_ExpOTD,
10566 &ett_rrlp_GPSTimeAssistanceMeasurements,
10567 &ett_rrlp_Rel_98_MsrPosition_Rsp_Extension,
10568 &ett_rrlp_T_rel_98_Ext_MeasureInfo,
10569 &ett_rrlp_OTD_MeasureInfo_R98_Ext,
10570 &ett_rrlp_OTD_MsrElementFirst_R98_Ext,
10571 &ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext,
10572 &ett_rrlp_Rel_5_MsrPosition_Rsp_Extension,
10573 &ett_rrlp_Extended_reference,
10574 &ett_rrlp_Rel5_MsrPosition_Req_Extension,
10575 &ett_rrlp_Rel5_AssistanceData_Extension,
10576 &ett_rrlp_Rel_5_ProtocolError_Extension,
10577 &ett_rrlp_Rel7_MsrPosition_Req_Extension,
10578 &ett_rrlp_GANSSPositioningMethod,
10579 &ett_rrlp_GANSS_AssistData,
10580 &ett_rrlp_GANSS_ControlHeader,
10581 &ett_rrlp_GANSSCommonAssistData,
10582 &ett_rrlp_SeqOfGANSSGenericAssistDataElement,
10583 &ett_rrlp_GANSSGenericAssistDataElement,
10584 &ett_rrlp_GANSSReferenceTime,
10585 &ett_rrlp_GANSSRefTimeInfo,
10586 &ett_rrlp_GANSSReferenceTime_R10_Ext,
10587 &ett_rrlp_GANSSTOD_GSMTimeAssociation,
10588 &ett_rrlp_GANSSRefLocation,
10589 &ett_rrlp_GANSSIonosphericModel,
10590 &ett_rrlp_GANSSIonosphereModel,
10591 &ett_rrlp_GANSSIonoStormFlags,
10592 &ett_rrlp_GANSSAddIonosphericModel,
10593 &ett_rrlp_GANSSEarthOrientParam,
10594 &ett_rrlp_SeqOfGANSSTimeModel,
10595 &ett_rrlp_GANSSTimeModelElement,
10596 &ett_rrlp_SeqOfGANSSTimeModel_R10_Ext,
10597 &ett_rrlp_GANSSTimeModelElement_R10_Ext,
10598 &ett_rrlp_GANSSDiffCorrections,
10599 &ett_rrlp_SeqOfSgnTypeElement,
10600 &ett_rrlp_SgnTypeElement,
10601 &ett_rrlp_SeqOfDGANSSSgnElement,
10602 &ett_rrlp_DGANSSSgnElement,
10603 &ett_rrlp_GANSSNavModel,
10604 &ett_rrlp_SeqOfGANSSSatelliteElement,
10605 &ett_rrlp_GANSSSatelliteElement,
10606 &ett_rrlp_GANSSOrbitModel,
10607 &ett_rrlp_NavModel_KeplerianSet,
10608 &ett_rrlp_NavModel_NAVKeplerianSet,
10609 &ett_rrlp_NavModel_CNAVKeplerianSet,
10610 &ett_rrlp_NavModel_GLONASSecef,
10611 &ett_rrlp_NavModel_SBASecef,
10612 &ett_rrlp_GANSSClockModel,
10613 &ett_rrlp_SeqOfStandardClockModelElement,
10614 &ett_rrlp_StandardClockModelElement,
10615 &ett_rrlp_NAVclockModel,
10616 &ett_rrlp_CNAVclockModel,
10617 &ett_rrlp_GLONASSclockModel,
10618 &ett_rrlp_SBASclockModel,
10619 &ett_rrlp_GANSSRealTimeIntegrity,
10620 &ett_rrlp_SeqOfBadSignalElement,
10621 &ett_rrlp_BadSignalElement,
10622 &ett_rrlp_GANSSDataBitAssist,
10623 &ett_rrlp_SeqOfGanssDataBitsElement,
10624 &ett_rrlp_GanssDataBitsElement,
10625 &ett_rrlp_Seq_OfGANSSDataBitsSgn,
10626 &ett_rrlp_GANSSDataBitsSgnElement,
10627 &ett_rrlp_SeqOf_GANSSDataBits,
10628 &ett_rrlp_GANSSRefMeasurementAssist,
10629 &ett_rrlp_SeqOfGANSSRefMeasurementElement,
10630 &ett_rrlp_GANSSRefMeasurementElement,
10631 &ett_rrlp_AdditionalDopplerFields,
10632 &ett_rrlp_GANSSRefMeasurementAssist_R10_Ext,
10633 &ett_rrlp_GANSSRefMeasurement_R10_Ext_Element,
10634 &ett_rrlp_GANSSAlmanacModel,
10635 &ett_rrlp_SeqOfGANSSAlmanacElement,
10636 &ett_rrlp_GANSSAlmanacElement,
10637 &ett_rrlp_Almanac_KeplerianSet,
10638 &ett_rrlp_Almanac_NAVKeplerianSet,
10639 &ett_rrlp_Almanac_ReducedKeplerianSet,
10640 &ett_rrlp_Almanac_MidiAlmanacSet,
10641 &ett_rrlp_Almanac_GlonassAlmanacSet,
10642 &ett_rrlp_Almanac_ECEFsbasAlmanacSet,
10643 &ett_rrlp_GANSSAlmanacModel_R10_Ext,
10644 &ett_rrlp_GANSSUTCModel,
10645 &ett_rrlp_GANSSEphemerisExtension,
10646 &ett_rrlp_GANSSEphemerisExtensionHeader,
10647 &ett_rrlp_GANSSEphemerisExtensionTime,
10648 &ett_rrlp_ReferenceNavModel,
10649 &ett_rrlp_SeqOfGANSSRefOrbit,
10650 &ett_rrlp_GANSSReferenceOrbit,
10651 &ett_rrlp_GANSSEphemerisDeltaMatrix,
10652 &ett_rrlp_GANSSEphemerisDeltaEpoch,
10653 &ett_rrlp_GANSSDeltaEpochHeader,
10654 &ett_rrlp_GANSSDeltaElementList,
10655 &ett_rrlp_GANSSEphemerisDeltaBitSizes,
10656 &ett_rrlp_GANSSEphemerisDeltaScales,
10657 &ett_rrlp_GANSSEphemerisExtensionCheck,
10658 &ett_rrlp_GANSSSatEventsInfo,
10659 &ett_rrlp_GANSSAddUTCModel,
10660 &ett_rrlp_UTCmodelSet2,
10661 &ett_rrlp_UTCmodelSet3,
10662 &ett_rrlp_UTCmodelSet4,
10663 &ett_rrlp_GANSSAuxiliaryInformation,
10664 &ett_rrlp_GANSS_ID1,
10665 &ett_rrlp_GANSS_ID1_element,
10666 &ett_rrlp_GANSS_ID3,
10667 &ett_rrlp_GANSS_ID3_element,
10668 &ett_rrlp_GANSSDiffCorrectionsValidityPeriod,
10669 &ett_rrlp_DGANSSExtensionSgnTypeElement,
10670 &ett_rrlp_SeqOfDGANSSExtensionSgnElement,
10671 &ett_rrlp_DGANSSExtensionSgnElement,
10672 &ett_rrlp_Add_GPS_AssistData,
10673 &ett_rrlp_Add_GPS_ControlHeader,
10674 &ett_rrlp_GPSClockModel,
10675 &ett_rrlp_GPSEphemerisExtension,
10676 &ett_rrlp_GPSEphemerisExtensionHeader,
10677 &ett_rrlp_GPSEphemerisExtensionTime,
10678 &ett_rrlp_SeqOfGPSRefOrbit,
10679 &ett_rrlp_GPSReferenceOrbit,
10680 &ett_rrlp_GPSEphemerisDeltaMatrix,
10681 &ett_rrlp_GPSEphemerisDeltaEpoch,
10682 &ett_rrlp_GPSDeltaEpochHeader,
10683 &ett_rrlp_GPSDeltaElementList,
10684 &ett_rrlp_GPSEphemerisDeltaBitSizes,
10685 &ett_rrlp_GPSEphemerisDeltaScales,
10686 &ett_rrlp_GPSEphemerisExtensionCheck,
10687 &ett_rrlp_GPSSatEventsInfo,
10688 &ett_rrlp_DGPSCorrectionsValidityPeriod,
10689 &ett_rrlp_DGPSExtensionSatElement,
10690 &ett_rrlp_GPSReferenceTime_R10_Ext,
10691 &ett_rrlp_GPSAcquisAssist_R10_Ext,
10692 &ett_rrlp_GPSAcquisAssist_R10_Ext_Element,
10693 &ett_rrlp_GPSAlmanac_R10_Ext,
10694 &ett_rrlp_Rel_7_MsrPosition_Rsp_Extension,
10695 &ett_rrlp_GANSSLocationInfo,
10696 &ett_rrlp_PositionData,
10697 &ett_rrlp_ReferenceFrame,
10698 &ett_rrlp_GANSSMeasureInfo,
10699 &ett_rrlp_SeqOfGANSS_MsrSetElement,
10700 &ett_rrlp_GANSS_MsrSetElement,
10701 &ett_rrlp_SeqOfGANSS_MsrElement,
10702 &ett_rrlp_GANSS_MsrElement,
10703 &ett_rrlp_SeqOfGANSS_SgnTypeElement,
10704 &ett_rrlp_GANSS_SgnTypeElement,
10705 &ett_rrlp_SeqOfGANSS_SgnElement,
10706 &ett_rrlp_GANSS_SgnElement,
10707 &ett_rrlp_Rel7_AssistanceData_Extension,
10708 &ett_rrlp_PosCapabilities,
10709 &ett_rrlp_NonGANSSPositionMethods,
10710 &ett_rrlp_GANSSPositionMethods,
10711 &ett_rrlp_GANSSPositionMethod,
10712 &ett_rrlp_GANSSPositioningMethodTypes,
10713 &ett_rrlp_GANSSSignals,
10714 &ett_rrlp_SBASID,
10715 &ett_rrlp_MultipleMeasurementSets,
10716 &ett_rrlp_AssistanceSupported,
10717 &ett_rrlp_GPSAssistance,
10718 &ett_rrlp_GANSSAssistanceSet,
10719 &ett_rrlp_CommonGANSSAssistance,
10720 &ett_rrlp_SpecificGANSSAssistance,
10721 &ett_rrlp_GANSSAssistanceForOneGANSS,
10722 &ett_rrlp_GANSSAssistance,
10723 &ett_rrlp_GANSSAdditionalAssistanceChoices,
10724 &ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS,
10725 &ett_rrlp_GANSSModelID,
10726 &ett_rrlp_AssistanceNeeded,
10730 /* Register protocol */
10731 proto_rrlp = proto_register_protocol(PNAME, PSNAME, PFNAME);
10732 register_dissector("rrlp", dissect_PDU_PDU, proto_rrlp);
10734 /* Register fields and subtrees */
10735 proto_register_field_array(proto_rrlp, hf, array_length(hf));
10736 proto_register_subtree_array(ett, array_length(ett));
10742 /*--- proto_reg_handoff_rrlp ---------------------------------------*/
10743 void
10744 proto_reg_handoff_rrlp(void)