1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2eth.py -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
6 /* Input file: packet-rrlp-template.c */
8 #line 1 "packet-rrlp-template.c"
10 * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
11 * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
33 * Ref 3GPP TS 44.031 version 6.8.0 Release 6
42 #include <epan/packet.h>
43 #include <epan/conversation.h>
48 #include "packet-rrlp.h"
50 #include "packet-ber.h"
51 #include "packet-per.h"
52 #include "packet-gsm_map.h"
54 #define PNAME "Radio Resource LCS Protocol (RRLP)"
58 static dissector_handle_t rrlp_handle=NULL;
61 /* Initialize the protocol and registered fields */
62 static int proto_rrlp = -1;
66 /*--- Included file: packet-rrlp-hf.c ---*/
67 #line 1 "packet-rrlp-hf.c"
68 static int hf_rrlp_PDU_PDU = -1; /* PDU */
69 static int hf_rrlp_referenceNumber = -1; /* INTEGER_0_7 */
70 static int hf_rrlp_component = -1; /* RRLP_Component */
71 static int hf_rrlp_msrPositionReq = -1; /* MsrPosition_Req */
72 static int hf_rrlp_msrPositionRsp = -1; /* MsrPosition_Rsp */
73 static int hf_rrlp_assistanceData = -1; /* AssistanceData */
74 static int hf_rrlp_assistanceDataAck = -1; /* NULL */
75 static int hf_rrlp_protocolError = -1; /* ProtocolError */
76 static int hf_rrlp_positionInstruct = -1; /* PositionInstruct */
77 static int hf_rrlp_referenceAssistData = -1; /* ReferenceAssistData */
78 static int hf_rrlp_msrAssistData = -1; /* MsrAssistData */
79 static int hf_rrlp_systemInfoAssistData = -1; /* SystemInfoAssistData */
80 static int hf_rrlp_gps_AssistData = -1; /* GPS_AssistData */
81 static int hf_rrlp_extensionContainer = -1; /* ExtensionContainer */
82 static int hf_rrlp_rel98_MsrPosition_Req_extension = -1; /* Rel98_MsrPosition_Req_Extension */
83 static int hf_rrlp_rel5_MsrPosition_Req_extension = -1; /* Rel5_MsrPosition_Req_Extension */
84 static int hf_rrlp_multipleSets = -1; /* MultipleSets */
85 static int hf_rrlp_referenceIdentity = -1; /* ReferenceIdentity */
86 static int hf_rrlp_otd_MeasureInfo = -1; /* OTD_MeasureInfo */
87 static int hf_rrlp_locationInfo = -1; /* LocationInfo */
88 static int hf_rrlp_gps_MeasureInfo = -1; /* GPS_MeasureInfo */
89 static int hf_rrlp_locationError = -1; /* LocationError */
90 static int hf_rrlp_rel_98_MsrPosition_Rsp_Extension = -1; /* Rel_98_MsrPosition_Rsp_Extension */
91 static int hf_rrlp_rel_5_MsrPosition_Rsp_Extension = -1; /* Rel_5_MsrPosition_Rsp_Extension */
92 static int hf_rrlp_moreAssDataToBeSent = -1; /* MoreAssDataToBeSent */
93 static int hf_rrlp_rel98_AssistanceData_Extension = -1; /* Rel98_AssistanceData_Extension */
94 static int hf_rrlp_rel5_AssistanceData_Extension = -1; /* Rel5_AssistanceData_Extension */
95 static int hf_rrlp_errorCause = -1; /* ErrorCodes */
96 static int hf_rrlp_rel_5_ProtocolError_Extension = -1; /* Rel_5_ProtocolError_Extension */
97 static int hf_rrlp_methodType = -1; /* MethodType */
98 static int hf_rrlp_positionMethod = -1; /* PositionMethod */
99 static int hf_rrlp_measureResponseTime = -1; /* MeasureResponseTime */
100 static int hf_rrlp_useMultipleSets = -1; /* UseMultipleSets */
101 static int hf_rrlp_environmentCharacter = -1; /* EnvironmentCharacter */
102 static int hf_rrlp_msAssisted = -1; /* AccuracyOpt */
103 static int hf_rrlp_msBased = -1; /* Accuracy */
104 static int hf_rrlp_msBasedPref = -1; /* Accuracy */
105 static int hf_rrlp_msAssistedPref = -1; /* Accuracy */
106 static int hf_rrlp_accuracy = -1; /* Accuracy */
107 static int hf_rrlp_bcchCarrier = -1; /* BCCHCarrier */
108 static int hf_rrlp_bsic = -1; /* BSIC */
109 static int hf_rrlp_timeSlotScheme = -1; /* TimeSlotScheme */
110 static int hf_rrlp_btsPosition = -1; /* BTSPosition */
111 static int hf_rrlp_msrAssistList = -1; /* SeqOfMsrAssistBTS */
112 static int hf_rrlp_SeqOfMsrAssistBTS_item = -1; /* MsrAssistBTS */
113 static int hf_rrlp_multiFrameOffset = -1; /* MultiFrameOffset */
114 static int hf_rrlp_roughRTD = -1; /* RoughRTD */
115 static int hf_rrlp_calcAssistanceBTS = -1; /* CalcAssistanceBTS */
116 static int hf_rrlp_systemInfoAssistList = -1; /* SeqOfSystemInfoAssistBTS */
117 static int hf_rrlp_SeqOfSystemInfoAssistBTS_item = -1; /* SystemInfoAssistBTS */
118 static int hf_rrlp_notPresent = -1; /* NULL */
119 static int hf_rrlp_present = -1; /* AssistBTSData */
120 static int hf_rrlp_fineRTD = -1; /* FineRTD */
121 static int hf_rrlp_referenceWGS84 = -1; /* ReferenceWGS84 */
122 static int hf_rrlp_relativeNorth = -1; /* RelDistance */
123 static int hf_rrlp_relativeEast = -1; /* RelDistance */
124 static int hf_rrlp_relativeAlt = -1; /* RelativeAlt */
125 static int hf_rrlp_nbrOfSets = -1; /* INTEGER_2_3 */
126 static int hf_rrlp_nbrOfReferenceBTSs = -1; /* INTEGER_1_3 */
127 static int hf_rrlp_referenceRelation = -1; /* ReferenceRelation */
128 static int hf_rrlp_refBTSList = -1; /* SeqOfReferenceIdentityType */
129 static int hf_rrlp_SeqOfReferenceIdentityType_item = -1; /* ReferenceIdentityType */
130 static int hf_rrlp_bsicAndCarrier = -1; /* BSICAndCarrier */
131 static int hf_rrlp_ci = -1; /* CellID */
132 static int hf_rrlp_requestIndex = -1; /* RequestIndex */
133 static int hf_rrlp_systemInfoIndex = -1; /* SystemInfoIndex */
134 static int hf_rrlp_ciAndLAC = -1; /* CellIDAndLAC */
135 static int hf_rrlp_carrier = -1; /* BCCHCarrier */
136 static int hf_rrlp_referenceLAC = -1; /* LAC */
137 static int hf_rrlp_referenceCI = -1; /* CellID */
138 static int hf_rrlp_otdMsrFirstSets = -1; /* OTD_MsrElementFirst */
139 static int hf_rrlp_otdMsrRestSets = -1; /* SeqOfOTD_MsrElementRest */
140 static int hf_rrlp_SeqOfOTD_MsrElementRest_item = -1; /* OTD_MsrElementRest */
141 static int hf_rrlp_refFrameNumber = -1; /* INTEGER_0_42431 */
142 static int hf_rrlp_referenceTimeSlot = -1; /* ModuloTimeSlot */
143 static int hf_rrlp_toaMeasurementsOfRef = -1; /* TOA_MeasurementsOfRef */
144 static int hf_rrlp_stdResolution = -1; /* StdResolution */
145 static int hf_rrlp_taCorrection = -1; /* INTEGER_0_960 */
146 static int hf_rrlp_otd_FirstSetMsrs = -1; /* SeqOfOTD_FirstSetMsrs */
147 static int hf_rrlp_SeqOfOTD_FirstSetMsrs_item = -1; /* OTD_FirstSetMsrs */
148 static int hf_rrlp_otd_MsrsOfOtherSets = -1; /* SeqOfOTD_MsrsOfOtherSets */
149 static int hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item = -1; /* OTD_MsrsOfOtherSets */
150 static int hf_rrlp_refQuality = -1; /* RefQuality */
151 static int hf_rrlp_numOfMeasurements = -1; /* NumOfMeasurements */
152 static int hf_rrlp_identityNotPresent = -1; /* OTD_Measurement */
153 static int hf_rrlp_identityPresent = -1; /* OTD_MeasurementWithID */
154 static int hf_rrlp_nborTimeSlot = -1; /* ModuloTimeSlot */
155 static int hf_rrlp_eotdQuality = -1; /* EOTDQuality */
156 static int hf_rrlp_otdValue = -1; /* OTDValue */
157 static int hf_rrlp_neighborIdentity = -1; /* NeighborIdentity */
158 static int hf_rrlp_nbrOfMeasurements = -1; /* INTEGER_0_7 */
159 static int hf_rrlp_stdOfEOTD = -1; /* INTEGER_0_31 */
160 static int hf_rrlp_multiFrameCarrier = -1; /* MultiFrameCarrier */
161 static int hf_rrlp_refFrame = -1; /* INTEGER_0_65535 */
162 static int hf_rrlp_gpsTOW = -1; /* INTEGER_0_14399999 */
163 static int hf_rrlp_fixType = -1; /* FixType */
164 static int hf_rrlp_posEstimate = -1; /* Ext_GeographicalInformation */
165 static int hf_rrlp_gpsMsrSetList = -1; /* SeqOfGPS_MsrSetElement */
166 static int hf_rrlp_SeqOfGPS_MsrSetElement_item = -1; /* GPS_MsrSetElement */
167 static int hf_rrlp_gpsTOW1 = -1; /* GPSTOW24b */
168 static int hf_rrlp_gps_msrList = -1; /* SeqOfGPS_MsrElement */
169 static int hf_rrlp_SeqOfGPS_MsrElement_item = -1; /* GPS_MsrElement */
170 static int hf_rrlp_satelliteID = -1; /* SatelliteID */
171 static int hf_rrlp_cNo = -1; /* INTEGER_0_63 */
172 static int hf_rrlp_doppler = -1; /* INTEGER_M32768_32767 */
173 static int hf_rrlp_wholeChips = -1; /* INTEGER_0_1022 */
174 static int hf_rrlp_fracChips = -1; /* INTEGER_0_1024 */
175 static int hf_rrlp_mpathIndic = -1; /* MpathIndic */
176 static int hf_rrlp_pseuRangeRMSErr = -1; /* INTEGER_0_63 */
177 static int hf_rrlp_locErrorReason = -1; /* LocErrorReason */
178 static int hf_rrlp_additionalAssistanceData = -1; /* AdditionalAssistanceData */
179 static int hf_rrlp_gpsAssistanceData = -1; /* GPSAssistanceData */
180 static int hf_rrlp_controlHeader = -1; /* ControlHeader */
181 static int hf_rrlp_referenceTime = -1; /* ReferenceTime */
182 static int hf_rrlp_refLocation = -1; /* RefLocation */
183 static int hf_rrlp_dgpsCorrections = -1; /* DGPSCorrections */
184 static int hf_rrlp_navigationModel = -1; /* NavigationModel */
185 static int hf_rrlp_ionosphericModel = -1; /* IonosphericModel */
186 static int hf_rrlp_utcModel = -1; /* UTCModel */
187 static int hf_rrlp_almanac = -1; /* Almanac */
188 static int hf_rrlp_acquisAssist = -1; /* AcquisAssist */
189 static int hf_rrlp_realTimeIntegrity = -1; /* SeqOf_BadSatelliteSet */
190 static int hf_rrlp_gpsTime = -1; /* GPSTime */
191 static int hf_rrlp_gsmTime = -1; /* GSMTime */
192 static int hf_rrlp_gpsTowAssist = -1; /* GPSTOWAssist */
193 static int hf_rrlp_gpsTOW23b = -1; /* GPSTOW23b */
194 static int hf_rrlp_gpsWeek = -1; /* GPSWeek */
195 static int hf_rrlp_GPSTOWAssist_item = -1; /* GPSTOWAssistElement */
196 static int hf_rrlp_tlmWord = -1; /* TLMWord */
197 static int hf_rrlp_antiSpoof = -1; /* AntiSpoofFlag */
198 static int hf_rrlp_alert = -1; /* AlertFlag */
199 static int hf_rrlp_tlmRsvdBits = -1; /* TLMReservedBits */
200 static int hf_rrlp_frameNumber = -1; /* FrameNumber */
201 static int hf_rrlp_timeSlot = -1; /* TimeSlot */
202 static int hf_rrlp_bitNumber = -1; /* BitNumber */
203 static int hf_rrlp_threeDLocation = -1; /* Ext_GeographicalInformation */
204 static int hf_rrlp_gpsTOW2 = -1; /* INTEGER_0_604799 */
205 static int hf_rrlp_status = -1; /* INTEGER_0_7 */
206 static int hf_rrlp_satList = -1; /* SeqOfSatElement */
207 static int hf_rrlp_SeqOfSatElement_item = -1; /* SatElement */
208 static int hf_rrlp_iode = -1; /* INTEGER_0_239 */
209 static int hf_rrlp_udre = -1; /* INTEGER_0_3 */
210 static int hf_rrlp_pseudoRangeCor = -1; /* INTEGER_M2047_2047 */
211 static int hf_rrlp_rangeRateCor = -1; /* INTEGER_M127_127 */
212 static int hf_rrlp_deltaPseudoRangeCor2 = -1; /* INTEGER_M127_127 */
213 static int hf_rrlp_deltaRangeRateCor2 = -1; /* INTEGER_M7_7 */
214 static int hf_rrlp_deltaPseudoRangeCor3 = -1; /* INTEGER_M127_127 */
215 static int hf_rrlp_deltaRangeRateCor3 = -1; /* INTEGER_M7_7 */
216 static int hf_rrlp_navModelList = -1; /* SeqOfNavModelElement */
217 static int hf_rrlp_SeqOfNavModelElement_item = -1; /* NavModelElement */
218 static int hf_rrlp_satStatus = -1; /* SatStatus */
219 static int hf_rrlp_newSatelliteAndModelUC = -1; /* UncompressedEphemeris */
220 static int hf_rrlp_oldSatelliteAndModel = -1; /* NULL */
221 static int hf_rrlp_newNaviModelUC = -1; /* UncompressedEphemeris */
222 static int hf_rrlp_ephemCodeOnL2 = -1; /* INTEGER_0_3 */
223 static int hf_rrlp_ephemURA = -1; /* INTEGER_0_15 */
224 static int hf_rrlp_ephemSVhealth = -1; /* INTEGER_0_63 */
225 static int hf_rrlp_ephemIODC = -1; /* INTEGER_0_1023 */
226 static int hf_rrlp_ephemL2Pflag = -1; /* INTEGER_0_1 */
227 static int hf_rrlp_ephemSF1Rsvd = -1; /* EphemerisSubframe1Reserved */
228 static int hf_rrlp_ephemTgd = -1; /* INTEGER_M128_127 */
229 static int hf_rrlp_ephemToc = -1; /* INTEGER_0_37799 */
230 static int hf_rrlp_ephemAF2 = -1; /* INTEGER_M128_127 */
231 static int hf_rrlp_ephemAF1 = -1; /* INTEGER_M32768_32767 */
232 static int hf_rrlp_ephemAF0 = -1; /* INTEGER_M2097152_2097151 */
233 static int hf_rrlp_ephemCrs = -1; /* INTEGER_M32768_32767 */
234 static int hf_rrlp_ephemDeltaN = -1; /* INTEGER_M32768_32767 */
235 static int hf_rrlp_ephemM0 = -1; /* INTEGER_M2147483648_2147483647 */
236 static int hf_rrlp_ephemCuc = -1; /* INTEGER_M32768_32767 */
237 static int hf_rrlp_ephemE = -1; /* INTEGER_0_4294967295 */
238 static int hf_rrlp_ephemCus = -1; /* INTEGER_M32768_32767 */
239 static int hf_rrlp_ephemAPowerHalf = -1; /* INTEGER_0_4294967295 */
240 static int hf_rrlp_ephemToe = -1; /* INTEGER_0_37799 */
241 static int hf_rrlp_ephemFitFlag = -1; /* INTEGER_0_1 */
242 static int hf_rrlp_ephemAODA = -1; /* INTEGER_0_31 */
243 static int hf_rrlp_ephemCic = -1; /* INTEGER_M32768_32767 */
244 static int hf_rrlp_ephemOmegaA0 = -1; /* INTEGER_M2147483648_2147483647 */
245 static int hf_rrlp_ephemCis = -1; /* INTEGER_M32768_32767 */
246 static int hf_rrlp_ephemI0 = -1; /* INTEGER_M2147483648_2147483647 */
247 static int hf_rrlp_ephemCrc = -1; /* INTEGER_M32768_32767 */
248 static int hf_rrlp_ephemW = -1; /* INTEGER_M2147483648_2147483647 */
249 static int hf_rrlp_ephemOmegaADot = -1; /* INTEGER_M8388608_8388607 */
250 static int hf_rrlp_ephemIDot = -1; /* INTEGER_M8192_8191 */
251 static int hf_rrlp_reserved1 = -1; /* INTEGER_0_8388607 */
252 static int hf_rrlp_reserved2 = -1; /* INTEGER_0_16777215 */
253 static int hf_rrlp_reserved3 = -1; /* INTEGER_0_16777215 */
254 static int hf_rrlp_reserved4 = -1; /* INTEGER_0_65535 */
255 static int hf_rrlp_alfa0 = -1; /* INTEGER_M128_127 */
256 static int hf_rrlp_alfa1 = -1; /* INTEGER_M128_127 */
257 static int hf_rrlp_alfa2 = -1; /* INTEGER_M128_127 */
258 static int hf_rrlp_alfa3 = -1; /* INTEGER_M128_127 */
259 static int hf_rrlp_beta0 = -1; /* INTEGER_M128_127 */
260 static int hf_rrlp_beta1 = -1; /* INTEGER_M128_127 */
261 static int hf_rrlp_beta2 = -1; /* INTEGER_M128_127 */
262 static int hf_rrlp_beta3 = -1; /* INTEGER_M128_127 */
263 static int hf_rrlp_utcA1 = -1; /* INTEGER_M8388608_8388607 */
264 static int hf_rrlp_utcA0 = -1; /* INTEGER_M2147483648_2147483647 */
265 static int hf_rrlp_utcTot = -1; /* INTEGER_0_255 */
266 static int hf_rrlp_utcWNt = -1; /* INTEGER_0_255 */
267 static int hf_rrlp_utcDeltaTls = -1; /* INTEGER_M128_127 */
268 static int hf_rrlp_utcWNlsf = -1; /* INTEGER_0_255 */
269 static int hf_rrlp_utcDN = -1; /* INTEGER_M128_127 */
270 static int hf_rrlp_utcDeltaTlsf = -1; /* INTEGER_M128_127 */
271 static int hf_rrlp_alamanacWNa = -1; /* INTEGER_0_255 */
272 static int hf_rrlp_almanacList = -1; /* SeqOfAlmanacElement */
273 static int hf_rrlp_SeqOfAlmanacElement_item = -1; /* AlmanacElement */
274 static int hf_rrlp_almanacE = -1; /* INTEGER_0_65535 */
275 static int hf_rrlp_alamanacToa = -1; /* INTEGER_0_255 */
276 static int hf_rrlp_almanacKsii = -1; /* INTEGER_M32768_32767 */
277 static int hf_rrlp_almanacOmegaDot = -1; /* INTEGER_M32768_32767 */
278 static int hf_rrlp_almanacSVhealth = -1; /* INTEGER_0_255 */
279 static int hf_rrlp_almanacAPowerHalf = -1; /* INTEGER_0_16777215 */
280 static int hf_rrlp_almanacOmega0 = -1; /* INTEGER_M8388608_8388607 */
281 static int hf_rrlp_almanacW = -1; /* INTEGER_M8388608_8388607 */
282 static int hf_rrlp_almanacM0 = -1; /* INTEGER_M8388608_8388607 */
283 static int hf_rrlp_almanacAF0 = -1; /* INTEGER_M1024_1023 */
284 static int hf_rrlp_almanacAF1 = -1; /* INTEGER_M1024_1023 */
285 static int hf_rrlp_timeRelation = -1; /* TimeRelation */
286 static int hf_rrlp_acquisList = -1; /* SeqOfAcquisElement */
287 static int hf_rrlp_SeqOfAcquisElement_item = -1; /* AcquisElement */
288 static int hf_rrlp_gpsTOW3 = -1; /* GPSTOW23b */
289 static int hf_rrlp_svid = -1; /* SatelliteID */
290 static int hf_rrlp_doppler0 = -1; /* INTEGER_M2048_2047 */
291 static int hf_rrlp_addionalDoppler = -1; /* AddionalDopplerFields */
292 static int hf_rrlp_codePhase = -1; /* INTEGER_0_1022 */
293 static int hf_rrlp_intCodePhase = -1; /* INTEGER_0_19 */
294 static int hf_rrlp_gpsBitNumber = -1; /* INTEGER_0_3 */
295 static int hf_rrlp_codePhaseSearchWindow = -1; /* INTEGER_0_15 */
296 static int hf_rrlp_addionalAngle = -1; /* AddionalAngleFields */
297 static int hf_rrlp_doppler1 = -1; /* INTEGER_0_63 */
298 static int hf_rrlp_dopplerUncertainty = -1; /* INTEGER_0_7 */
299 static int hf_rrlp_azimuth = -1; /* INTEGER_0_31 */
300 static int hf_rrlp_elevation = -1; /* INTEGER_0_7 */
301 static int hf_rrlp_SeqOf_BadSatelliteSet_item = -1; /* SatelliteID */
302 static int hf_rrlp_rel98_Ext_ExpOTD = -1; /* Rel98_Ext_ExpOTD */
303 static int hf_rrlp_gpsTimeAssistanceMeasurementRequest = -1; /* NULL */
304 static int hf_rrlp_gpsReferenceTimeUncertainty = -1; /* GPSReferenceTimeUncertainty */
305 static int hf_rrlp_msrAssistData_R98_ExpOTD = -1; /* MsrAssistData_R98_ExpOTD */
306 static int hf_rrlp_systemInfoAssistData_R98_ExpOTD = -1; /* SystemInfoAssistData_R98_ExpOTD */
307 static int hf_rrlp_msrAssistList_R98_ExpOTD = -1; /* SeqOfMsrAssistBTS_R98_ExpOTD */
308 static int hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item = -1; /* MsrAssistBTS_R98_ExpOTD */
309 static int hf_rrlp_expectedOTD = -1; /* ExpectedOTD */
310 static int hf_rrlp_expOTDUncertainty = -1; /* ExpOTDUncertainty */
311 static int hf_rrlp_systemInfoAssistListR98_ExpOTD = -1; /* SeqOfSystemInfoAssistBTS_R98_ExpOTD */
312 static int hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item = -1; /* SystemInfoAssistBTS_R98_ExpOTD */
313 static int hf_rrlp_present1 = -1; /* AssistBTSData_R98_ExpOTD */
314 static int hf_rrlp_expOTDuncertainty = -1; /* ExpOTDUncertainty */
315 static int hf_rrlp_referenceFrameMSB = -1; /* INTEGER_0_63 */
316 static int hf_rrlp_gpsTowSubms = -1; /* INTEGER_0_9999 */
317 static int hf_rrlp_deltaTow = -1; /* INTEGER_0_127 */
318 static int hf_rrlp_rel_98_Ext_MeasureInfo = -1; /* T_rel_98_Ext_MeasureInfo */
319 static int hf_rrlp_otd_MeasureInfo_R98_Ext = -1; /* OTD_MeasureInfo_R98_Ext */
320 static int hf_rrlp_timeAssistanceMeasurements = -1; /* GPSTimeAssistanceMeasurements */
321 static int hf_rrlp_otdMsrFirstSets_R98_Ext = -1; /* OTD_MsrElementFirst_R98_Ext */
322 static int hf_rrlp_otd_FirstSetMsrs_R98_Ext = -1; /* SeqOfOTD_FirstSetMsrs_R98_Ext */
323 static int hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item = -1; /* OTD_FirstSetMsrs */
324 static int hf_rrlp_extended_reference = -1; /* Extended_reference */
325 static int hf_rrlp_otd_MeasureInfo_5_Ext = -1; /* OTD_MeasureInfo_5_Ext */
326 static int hf_rrlp_ulPseudoSegInd = -1; /* UlPseudoSegInd */
327 static int hf_rrlp_smlc_code = -1; /* INTEGER_0_63 */
328 static int hf_rrlp_transaction_ID = -1; /* INTEGER_0_262143 */
330 /*--- End of included file: packet-rrlp-hf.c ---*/
331 #line 58 "packet-rrlp-template.c"
333 /* Initialize the subtree pointers */
334 static gint ett_rrlp = -1;
336 /*--- Included file: packet-rrlp-ett.c ---*/
337 #line 1 "packet-rrlp-ett.c"
338 static gint ett_rrlp_PDU = -1;
339 static gint ett_rrlp_RRLP_Component = -1;
340 static gint ett_rrlp_MsrPosition_Req = -1;
341 static gint ett_rrlp_MsrPosition_Rsp = -1;
342 static gint ett_rrlp_AssistanceData = -1;
343 static gint ett_rrlp_ProtocolError = -1;
344 static gint ett_rrlp_PositionInstruct = -1;
345 static gint ett_rrlp_MethodType = -1;
346 static gint ett_rrlp_AccuracyOpt = -1;
347 static gint ett_rrlp_ReferenceAssistData = -1;
348 static gint ett_rrlp_MsrAssistData = -1;
349 static gint ett_rrlp_SeqOfMsrAssistBTS = -1;
350 static gint ett_rrlp_MsrAssistBTS = -1;
351 static gint ett_rrlp_SystemInfoAssistData = -1;
352 static gint ett_rrlp_SeqOfSystemInfoAssistBTS = -1;
353 static gint ett_rrlp_SystemInfoAssistBTS = -1;
354 static gint ett_rrlp_AssistBTSData = -1;
355 static gint ett_rrlp_CalcAssistanceBTS = -1;
356 static gint ett_rrlp_ReferenceWGS84 = -1;
357 static gint ett_rrlp_MultipleSets = -1;
358 static gint ett_rrlp_ReferenceIdentity = -1;
359 static gint ett_rrlp_SeqOfReferenceIdentityType = -1;
360 static gint ett_rrlp_ReferenceIdentityType = -1;
361 static gint ett_rrlp_BSICAndCarrier = -1;
362 static gint ett_rrlp_CellIDAndLAC = -1;
363 static gint ett_rrlp_OTD_MeasureInfo = -1;
364 static gint ett_rrlp_SeqOfOTD_MsrElementRest = -1;
365 static gint ett_rrlp_OTD_MsrElementFirst = -1;
366 static gint ett_rrlp_SeqOfOTD_FirstSetMsrs = -1;
367 static gint ett_rrlp_OTD_MsrElementRest = -1;
368 static gint ett_rrlp_SeqOfOTD_MsrsOfOtherSets = -1;
369 static gint ett_rrlp_TOA_MeasurementsOfRef = -1;
370 static gint ett_rrlp_OTD_MsrsOfOtherSets = -1;
371 static gint ett_rrlp_OTD_Measurement = -1;
372 static gint ett_rrlp_OTD_MeasurementWithID = -1;
373 static gint ett_rrlp_EOTDQuality = -1;
374 static gint ett_rrlp_NeighborIdentity = -1;
375 static gint ett_rrlp_MultiFrameCarrier = -1;
376 static gint ett_rrlp_LocationInfo = -1;
377 static gint ett_rrlp_GPS_MeasureInfo = -1;
378 static gint ett_rrlp_SeqOfGPS_MsrSetElement = -1;
379 static gint ett_rrlp_GPS_MsrSetElement = -1;
380 static gint ett_rrlp_SeqOfGPS_MsrElement = -1;
381 static gint ett_rrlp_GPS_MsrElement = -1;
382 static gint ett_rrlp_LocationError = -1;
383 static gint ett_rrlp_AdditionalAssistanceData = -1;
384 static gint ett_rrlp_GPS_AssistData = -1;
385 static gint ett_rrlp_ControlHeader = -1;
386 static gint ett_rrlp_ReferenceTime = -1;
387 static gint ett_rrlp_GPSTime = -1;
388 static gint ett_rrlp_GPSTOWAssist = -1;
389 static gint ett_rrlp_GPSTOWAssistElement = -1;
390 static gint ett_rrlp_GSMTime = -1;
391 static gint ett_rrlp_RefLocation = -1;
392 static gint ett_rrlp_DGPSCorrections = -1;
393 static gint ett_rrlp_SeqOfSatElement = -1;
394 static gint ett_rrlp_SatElement = -1;
395 static gint ett_rrlp_NavigationModel = -1;
396 static gint ett_rrlp_SeqOfNavModelElement = -1;
397 static gint ett_rrlp_NavModelElement = -1;
398 static gint ett_rrlp_SatStatus = -1;
399 static gint ett_rrlp_UncompressedEphemeris = -1;
400 static gint ett_rrlp_EphemerisSubframe1Reserved = -1;
401 static gint ett_rrlp_IonosphericModel = -1;
402 static gint ett_rrlp_UTCModel = -1;
403 static gint ett_rrlp_Almanac = -1;
404 static gint ett_rrlp_SeqOfAlmanacElement = -1;
405 static gint ett_rrlp_AlmanacElement = -1;
406 static gint ett_rrlp_AcquisAssist = -1;
407 static gint ett_rrlp_SeqOfAcquisElement = -1;
408 static gint ett_rrlp_TimeRelation = -1;
409 static gint ett_rrlp_AcquisElement = -1;
410 static gint ett_rrlp_AddionalDopplerFields = -1;
411 static gint ett_rrlp_AddionalAngleFields = -1;
412 static gint ett_rrlp_SeqOf_BadSatelliteSet = -1;
413 static gint ett_rrlp_Rel98_MsrPosition_Req_Extension = -1;
414 static gint ett_rrlp_Rel98_AssistanceData_Extension = -1;
415 static gint ett_rrlp_Rel98_Ext_ExpOTD = -1;
416 static gint ett_rrlp_MsrAssistData_R98_ExpOTD = -1;
417 static gint ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD = -1;
418 static gint ett_rrlp_MsrAssistBTS_R98_ExpOTD = -1;
419 static gint ett_rrlp_SystemInfoAssistData_R98_ExpOTD = -1;
420 static gint ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD = -1;
421 static gint ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD = -1;
422 static gint ett_rrlp_AssistBTSData_R98_ExpOTD = -1;
423 static gint ett_rrlp_GPSTimeAssistanceMeasurements = -1;
424 static gint ett_rrlp_Rel_98_MsrPosition_Rsp_Extension = -1;
425 static gint ett_rrlp_T_rel_98_Ext_MeasureInfo = -1;
426 static gint ett_rrlp_OTD_MeasureInfo_R98_Ext = -1;
427 static gint ett_rrlp_OTD_MsrElementFirst_R98_Ext = -1;
428 static gint ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext = -1;
429 static gint ett_rrlp_Rel_5_MsrPosition_Rsp_Extension = -1;
430 static gint ett_rrlp_Extended_reference = -1;
431 static gint ett_rrlp_Rel5_MsrPosition_Req_Extension = -1;
432 static gint ett_rrlp_Rel5_AssistanceData_Extension = -1;
433 static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1;
435 /*--- End of included file: packet-rrlp-ett.c ---*/
436 #line 62 "packet-rrlp-template.c"
438 /* Include constants */
440 /*--- Included file: packet-rrlp-val.h ---*/
441 #line 1 "packet-rrlp-val.h"
442 #define maxGPSAssistanceData 40
444 /*--- End of included file: packet-rrlp-val.h ---*/
445 #line 65 "packet-rrlp-template.c"
449 /*--- Included file: packet-rrlp-fn.c ---*/
450 #line 1 "packet-rrlp-fn.c"
451 /*--- Fields for imported types ---*/
457 dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
460 tvbuff_t *parameter_tvb = NULL;
462 offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
463 1, 20, ¶meter_tvb);
467 dissect_geographical_description(parameter_tvb, pinfo, tree);
472 static int dissect_posEstimate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
473 return dissect_rrlp_Ext_GeographicalInformation(tvb, offset, pinfo, tree, hf_rrlp_posEstimate);
475 static int dissect_threeDLocation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
476 return dissect_rrlp_Ext_GeographicalInformation(tvb, offset, pinfo, tree, hf_rrlp_threeDLocation);
482 dissect_rrlp_ExtensionContainer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
483 offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
484 NO_BOUND, NO_BOUND, NULL);
488 static int dissect_extensionContainer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
489 return dissect_rrlp_ExtensionContainer(tvb, offset, pinfo, tree, hf_rrlp_extensionContainer);
495 dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
496 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
497 0U, 7U, NULL, NULL, FALSE);
501 static int dissect_referenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
502 return dissect_rrlp_INTEGER_0_7(tvb, offset, pinfo, tree, hf_rrlp_referenceNumber);
504 static int dissect_nbrOfMeasurements(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
505 return dissect_rrlp_INTEGER_0_7(tvb, offset, pinfo, tree, hf_rrlp_nbrOfMeasurements);
507 static int dissect_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
508 return dissect_rrlp_INTEGER_0_7(tvb, offset, pinfo, tree, hf_rrlp_status);
510 static int dissect_dopplerUncertainty(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
511 return dissect_rrlp_INTEGER_0_7(tvb, offset, pinfo, tree, hf_rrlp_dopplerUncertainty);
513 static int dissect_elevation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
514 return dissect_rrlp_INTEGER_0_7(tvb, offset, pinfo, tree, hf_rrlp_elevation);
520 dissect_rrlp_Accuracy(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
521 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
522 0U, 127U, NULL, NULL, FALSE);
526 static int dissect_msBased(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
527 return dissect_rrlp_Accuracy(tvb, offset, pinfo, tree, hf_rrlp_msBased);
529 static int dissect_msBasedPref(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
530 return dissect_rrlp_Accuracy(tvb, offset, pinfo, tree, hf_rrlp_msBasedPref);
532 static int dissect_msAssistedPref(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
533 return dissect_rrlp_Accuracy(tvb, offset, pinfo, tree, hf_rrlp_msAssistedPref);
535 static int dissect_accuracy(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
536 return dissect_rrlp_Accuracy(tvb, offset, pinfo, tree, hf_rrlp_accuracy);
540 static const per_sequence_t AccuracyOpt_sequence[] = {
541 { "accuracy" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_accuracy },
546 dissect_rrlp_AccuracyOpt(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
547 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
548 ett_rrlp_AccuracyOpt, AccuracyOpt_sequence);
552 static int dissect_msAssisted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
553 return dissect_rrlp_AccuracyOpt(tvb, offset, pinfo, tree, hf_rrlp_msAssisted);
557 static const value_string rrlp_MethodType_vals[] = {
560 { 2, "msBasedPref" },
561 { 3, "msAssistedPref" },
565 static const per_choice_t MethodType_choice[] = {
566 { 0, "msAssisted" , ASN1_NO_EXTENSIONS , dissect_msAssisted },
567 { 1, "msBased" , ASN1_NO_EXTENSIONS , dissect_msBased },
568 { 2, "msBasedPref" , ASN1_NO_EXTENSIONS , dissect_msBasedPref },
569 { 3, "msAssistedPref" , ASN1_NO_EXTENSIONS , dissect_msAssistedPref },
574 dissect_rrlp_MethodType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
575 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
576 ett_rrlp_MethodType, MethodType_choice,
581 static int dissect_methodType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
582 return dissect_rrlp_MethodType(tvb, offset, pinfo, tree, hf_rrlp_methodType);
586 static const value_string rrlp_PositionMethod_vals[] = {
595 dissect_rrlp_PositionMethod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
596 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
597 3, NULL, NULL, FALSE, 0, NULL);
601 static int dissect_positionMethod(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
602 return dissect_rrlp_PositionMethod(tvb, offset, pinfo, tree, hf_rrlp_positionMethod);
608 dissect_rrlp_MeasureResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
609 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
610 0U, 7U, NULL, NULL, FALSE);
614 static int dissect_measureResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
615 return dissect_rrlp_MeasureResponseTime(tvb, offset, pinfo, tree, hf_rrlp_measureResponseTime);
619 static const value_string rrlp_UseMultipleSets_vals[] = {
620 { 0, "multipleSets" },
627 dissect_rrlp_UseMultipleSets(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
628 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
629 2, NULL, NULL, FALSE, 0, NULL);
633 static int dissect_useMultipleSets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
634 return dissect_rrlp_UseMultipleSets(tvb, offset, pinfo, tree, hf_rrlp_useMultipleSets);
638 static const value_string rrlp_EnvironmentCharacter_vals[] = {
647 dissect_rrlp_EnvironmentCharacter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
648 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
649 3, NULL, NULL, TRUE, 0, NULL);
653 static int dissect_environmentCharacter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
654 return dissect_rrlp_EnvironmentCharacter(tvb, offset, pinfo, tree, hf_rrlp_environmentCharacter);
658 static const per_sequence_t PositionInstruct_sequence[] = {
659 { "methodType" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_methodType },
660 { "positionMethod" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_positionMethod },
661 { "measureResponseTime" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_measureResponseTime },
662 { "useMultipleSets" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_useMultipleSets },
663 { "environmentCharacter" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_environmentCharacter },
668 dissect_rrlp_PositionInstruct(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
669 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
670 ett_rrlp_PositionInstruct, PositionInstruct_sequence);
674 static int dissect_positionInstruct(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
675 return dissect_rrlp_PositionInstruct(tvb, offset, pinfo, tree, hf_rrlp_positionInstruct);
681 dissect_rrlp_BCCHCarrier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
682 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
683 0U, 1023U, NULL, NULL, FALSE);
687 static int dissect_bcchCarrier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
688 return dissect_rrlp_BCCHCarrier(tvb, offset, pinfo, tree, hf_rrlp_bcchCarrier);
690 static int dissect_carrier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
691 return dissect_rrlp_BCCHCarrier(tvb, offset, pinfo, tree, hf_rrlp_carrier);
697 dissect_rrlp_BSIC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
698 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
699 0U, 63U, NULL, NULL, FALSE);
703 static int dissect_bsic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
704 return dissect_rrlp_BSIC(tvb, offset, pinfo, tree, hf_rrlp_bsic);
708 static const value_string rrlp_TimeSlotScheme_vals[] = {
709 { 0, "equalLength" },
710 { 1, "variousLength" },
716 dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
717 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
718 2, NULL, NULL, FALSE, 0, NULL);
722 static int dissect_timeSlotScheme(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
723 return dissect_rrlp_TimeSlotScheme(tvb, offset, pinfo, tree, hf_rrlp_timeSlotScheme);
729 dissect_rrlp_BTSPosition(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
730 offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, pinfo, tree, hf_index);
734 static int dissect_btsPosition(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
735 return dissect_rrlp_BTSPosition(tvb, offset, pinfo, tree, hf_rrlp_btsPosition);
739 static const per_sequence_t ReferenceAssistData_sequence[] = {
740 { "bcchCarrier" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bcchCarrier },
741 { "bsic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bsic },
742 { "timeSlotScheme" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_timeSlotScheme },
743 { "btsPosition" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_btsPosition },
748 dissect_rrlp_ReferenceAssistData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
749 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
750 ett_rrlp_ReferenceAssistData, ReferenceAssistData_sequence);
754 static int dissect_referenceAssistData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
755 return dissect_rrlp_ReferenceAssistData(tvb, offset, pinfo, tree, hf_rrlp_referenceAssistData);
761 dissect_rrlp_MultiFrameOffset(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
762 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
763 0U, 51U, NULL, NULL, FALSE);
767 static int dissect_multiFrameOffset(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
768 return dissect_rrlp_MultiFrameOffset(tvb, offset, pinfo, tree, hf_rrlp_multiFrameOffset);
774 dissect_rrlp_RoughRTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
775 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
776 0U, 1250U, NULL, NULL, FALSE);
780 static int dissect_roughRTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
781 return dissect_rrlp_RoughRTD(tvb, offset, pinfo, tree, hf_rrlp_roughRTD);
787 dissect_rrlp_FineRTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
788 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
789 0U, 255U, NULL, NULL, FALSE);
793 static int dissect_fineRTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
794 return dissect_rrlp_FineRTD(tvb, offset, pinfo, tree, hf_rrlp_fineRTD);
800 dissect_rrlp_RelDistance(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
801 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
802 -200000, 200000U, NULL, NULL, FALSE);
806 static int dissect_relativeNorth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
807 return dissect_rrlp_RelDistance(tvb, offset, pinfo, tree, hf_rrlp_relativeNorth);
809 static int dissect_relativeEast(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
810 return dissect_rrlp_RelDistance(tvb, offset, pinfo, tree, hf_rrlp_relativeEast);
816 dissect_rrlp_RelativeAlt(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
817 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
818 -4000, 4000U, NULL, NULL, FALSE);
822 static int dissect_relativeAlt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
823 return dissect_rrlp_RelativeAlt(tvb, offset, pinfo, tree, hf_rrlp_relativeAlt);
827 static const per_sequence_t ReferenceWGS84_sequence[] = {
828 { "relativeNorth" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_relativeNorth },
829 { "relativeEast" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_relativeEast },
830 { "relativeAlt" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_relativeAlt },
835 dissect_rrlp_ReferenceWGS84(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
836 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
837 ett_rrlp_ReferenceWGS84, ReferenceWGS84_sequence);
841 static int dissect_referenceWGS84(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
842 return dissect_rrlp_ReferenceWGS84(tvb, offset, pinfo, tree, hf_rrlp_referenceWGS84);
846 static const per_sequence_t CalcAssistanceBTS_sequence[] = {
847 { "fineRTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_fineRTD },
848 { "referenceWGS84" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceWGS84 },
853 dissect_rrlp_CalcAssistanceBTS(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
854 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
855 ett_rrlp_CalcAssistanceBTS, CalcAssistanceBTS_sequence);
859 static int dissect_calcAssistanceBTS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
860 return dissect_rrlp_CalcAssistanceBTS(tvb, offset, pinfo, tree, hf_rrlp_calcAssistanceBTS);
864 static const per_sequence_t MsrAssistBTS_sequence[] = {
865 { "bcchCarrier" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bcchCarrier },
866 { "bsic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bsic },
867 { "multiFrameOffset" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_multiFrameOffset },
868 { "timeSlotScheme" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_timeSlotScheme },
869 { "roughRTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_roughRTD },
870 { "calcAssistanceBTS" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_calcAssistanceBTS },
875 dissect_rrlp_MsrAssistBTS(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
876 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
877 ett_rrlp_MsrAssistBTS, MsrAssistBTS_sequence);
881 static int dissect_SeqOfMsrAssistBTS_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
882 return dissect_rrlp_MsrAssistBTS(tvb, offset, pinfo, tree, hf_rrlp_SeqOfMsrAssistBTS_item);
886 static const per_sequence_t SeqOfMsrAssistBTS_sequence_of[1] = {
887 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfMsrAssistBTS_item },
891 dissect_rrlp_SeqOfMsrAssistBTS(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
892 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
893 ett_rrlp_SeqOfMsrAssistBTS, SeqOfMsrAssistBTS_sequence_of,
898 static int dissect_msrAssistList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
899 return dissect_rrlp_SeqOfMsrAssistBTS(tvb, offset, pinfo, tree, hf_rrlp_msrAssistList);
903 static const per_sequence_t MsrAssistData_sequence[] = {
904 { "msrAssistList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_msrAssistList },
909 dissect_rrlp_MsrAssistData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
910 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
911 ett_rrlp_MsrAssistData, MsrAssistData_sequence);
915 static int dissect_msrAssistData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
916 return dissect_rrlp_MsrAssistData(tvb, offset, pinfo, tree, hf_rrlp_msrAssistData);
922 dissect_rrlp_NULL(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
923 offset = dissect_per_null(tvb, offset, pinfo, tree, hf_index);
927 static int dissect_assistanceDataAck(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
928 return dissect_rrlp_NULL(tvb, offset, pinfo, tree, hf_rrlp_assistanceDataAck);
930 static int dissect_notPresent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
931 return dissect_rrlp_NULL(tvb, offset, pinfo, tree, hf_rrlp_notPresent);
933 static int dissect_oldSatelliteAndModel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
934 return dissect_rrlp_NULL(tvb, offset, pinfo, tree, hf_rrlp_oldSatelliteAndModel);
936 static int dissect_gpsTimeAssistanceMeasurementRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
937 return dissect_rrlp_NULL(tvb, offset, pinfo, tree, hf_rrlp_gpsTimeAssistanceMeasurementRequest);
941 static const per_sequence_t AssistBTSData_sequence[] = {
942 { "bsic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bsic },
943 { "multiFrameOffset" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_multiFrameOffset },
944 { "timeSlotScheme" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_timeSlotScheme },
945 { "roughRTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_roughRTD },
946 { "calcAssistanceBTS" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_calcAssistanceBTS },
951 dissect_rrlp_AssistBTSData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
952 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
953 ett_rrlp_AssistBTSData, AssistBTSData_sequence);
957 static int dissect_present(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
958 return dissect_rrlp_AssistBTSData(tvb, offset, pinfo, tree, hf_rrlp_present);
962 static const value_string rrlp_SystemInfoAssistBTS_vals[] = {
968 static const per_choice_t SystemInfoAssistBTS_choice[] = {
969 { 0, "notPresent" , ASN1_NO_EXTENSIONS , dissect_notPresent },
970 { 1, "present" , ASN1_NO_EXTENSIONS , dissect_present },
975 dissect_rrlp_SystemInfoAssistBTS(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
976 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
977 ett_rrlp_SystemInfoAssistBTS, SystemInfoAssistBTS_choice,
982 static int dissect_SeqOfSystemInfoAssistBTS_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
983 return dissect_rrlp_SystemInfoAssistBTS(tvb, offset, pinfo, tree, hf_rrlp_SeqOfSystemInfoAssistBTS_item);
987 static const per_sequence_t SeqOfSystemInfoAssistBTS_sequence_of[1] = {
988 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfSystemInfoAssistBTS_item },
992 dissect_rrlp_SeqOfSystemInfoAssistBTS(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
993 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
994 ett_rrlp_SeqOfSystemInfoAssistBTS, SeqOfSystemInfoAssistBTS_sequence_of,
999 static int dissect_systemInfoAssistList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1000 return dissect_rrlp_SeqOfSystemInfoAssistBTS(tvb, offset, pinfo, tree, hf_rrlp_systemInfoAssistList);
1004 static const per_sequence_t SystemInfoAssistData_sequence[] = {
1005 { "systemInfoAssistList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_systemInfoAssistList },
1006 { NULL, 0, 0, NULL }
1010 dissect_rrlp_SystemInfoAssistData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1011 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1012 ett_rrlp_SystemInfoAssistData, SystemInfoAssistData_sequence);
1016 static int dissect_systemInfoAssistData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1017 return dissect_rrlp_SystemInfoAssistData(tvb, offset, pinfo, tree, hf_rrlp_systemInfoAssistData);
1023 dissect_rrlp_GPSTOW23b(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1024 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1025 0U, 7559999U, NULL, NULL, FALSE);
1029 static int dissect_gpsTOW23b(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1030 return dissect_rrlp_GPSTOW23b(tvb, offset, pinfo, tree, hf_rrlp_gpsTOW23b);
1032 static int dissect_gpsTOW3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1033 return dissect_rrlp_GPSTOW23b(tvb, offset, pinfo, tree, hf_rrlp_gpsTOW3);
1039 dissect_rrlp_GPSWeek(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1040 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1041 0U, 1023U, NULL, NULL, FALSE);
1045 static int dissect_gpsWeek(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1046 return dissect_rrlp_GPSWeek(tvb, offset, pinfo, tree, hf_rrlp_gpsWeek);
1050 static const per_sequence_t GPSTime_sequence[] = {
1051 { "gpsTOW23b" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsTOW23b },
1052 { "gpsWeek" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsWeek },
1053 { NULL, 0, 0, NULL }
1057 dissect_rrlp_GPSTime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1058 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1059 ett_rrlp_GPSTime, GPSTime_sequence);
1063 static int dissect_gpsTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1064 return dissect_rrlp_GPSTime(tvb, offset, pinfo, tree, hf_rrlp_gpsTime);
1070 dissect_rrlp_FrameNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1071 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1072 0U, 2097151U, NULL, NULL, FALSE);
1076 static int dissect_frameNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1077 return dissect_rrlp_FrameNumber(tvb, offset, pinfo, tree, hf_rrlp_frameNumber);
1083 dissect_rrlp_TimeSlot(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1084 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1085 0U, 7U, NULL, NULL, FALSE);
1089 static int dissect_timeSlot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1090 return dissect_rrlp_TimeSlot(tvb, offset, pinfo, tree, hf_rrlp_timeSlot);
1096 dissect_rrlp_BitNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1097 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1098 0U, 156U, NULL, NULL, FALSE);
1102 static int dissect_bitNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1103 return dissect_rrlp_BitNumber(tvb, offset, pinfo, tree, hf_rrlp_bitNumber);
1107 static const per_sequence_t GSMTime_sequence[] = {
1108 { "bcchCarrier" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bcchCarrier },
1109 { "bsic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bsic },
1110 { "frameNumber" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_frameNumber },
1111 { "timeSlot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_timeSlot },
1112 { "bitNumber" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bitNumber },
1113 { NULL, 0, 0, NULL }
1117 dissect_rrlp_GSMTime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1118 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1119 ett_rrlp_GSMTime, GSMTime_sequence);
1123 static int dissect_gsmTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1124 return dissect_rrlp_GSMTime(tvb, offset, pinfo, tree, hf_rrlp_gsmTime);
1130 dissect_rrlp_SatelliteID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1131 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1132 0U, 63U, NULL, NULL, FALSE);
1136 static int dissect_satelliteID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1137 return dissect_rrlp_SatelliteID(tvb, offset, pinfo, tree, hf_rrlp_satelliteID);
1139 static int dissect_svid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1140 return dissect_rrlp_SatelliteID(tvb, offset, pinfo, tree, hf_rrlp_svid);
1142 static int dissect_SeqOf_BadSatelliteSet_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1143 return dissect_rrlp_SatelliteID(tvb, offset, pinfo, tree, hf_rrlp_SeqOf_BadSatelliteSet_item);
1149 dissect_rrlp_TLMWord(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1150 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1151 0U, 16383U, NULL, NULL, FALSE);
1155 static int dissect_tlmWord(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1156 return dissect_rrlp_TLMWord(tvb, offset, pinfo, tree, hf_rrlp_tlmWord);
1162 dissect_rrlp_AntiSpoofFlag(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1163 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1164 0U, 1U, NULL, NULL, FALSE);
1168 static int dissect_antiSpoof(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1169 return dissect_rrlp_AntiSpoofFlag(tvb, offset, pinfo, tree, hf_rrlp_antiSpoof);
1175 dissect_rrlp_AlertFlag(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1176 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1177 0U, 1U, NULL, NULL, FALSE);
1181 static int dissect_alert(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1182 return dissect_rrlp_AlertFlag(tvb, offset, pinfo, tree, hf_rrlp_alert);
1188 dissect_rrlp_TLMReservedBits(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1189 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1190 0U, 3U, NULL, NULL, FALSE);
1194 static int dissect_tlmRsvdBits(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1195 return dissect_rrlp_TLMReservedBits(tvb, offset, pinfo, tree, hf_rrlp_tlmRsvdBits);
1199 static const per_sequence_t GPSTOWAssistElement_sequence[] = {
1200 { "satelliteID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satelliteID },
1201 { "tlmWord" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_tlmWord },
1202 { "antiSpoof" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_antiSpoof },
1203 { "alert" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alert },
1204 { "tlmRsvdBits" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_tlmRsvdBits },
1205 { NULL, 0, 0, NULL }
1209 dissect_rrlp_GPSTOWAssistElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1210 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1211 ett_rrlp_GPSTOWAssistElement, GPSTOWAssistElement_sequence);
1215 static int dissect_GPSTOWAssist_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1216 return dissect_rrlp_GPSTOWAssistElement(tvb, offset, pinfo, tree, hf_rrlp_GPSTOWAssist_item);
1220 static const per_sequence_t GPSTOWAssist_sequence_of[1] = {
1221 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_GPSTOWAssist_item },
1225 dissect_rrlp_GPSTOWAssist(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1226 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
1227 ett_rrlp_GPSTOWAssist, GPSTOWAssist_sequence_of,
1232 static int dissect_gpsTowAssist(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1233 return dissect_rrlp_GPSTOWAssist(tvb, offset, pinfo, tree, hf_rrlp_gpsTowAssist);
1237 static const per_sequence_t ReferenceTime_sequence[] = {
1238 { "gpsTime" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsTime },
1239 { "gsmTime" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_gsmTime },
1240 { "gpsTowAssist" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_gpsTowAssist },
1241 { NULL, 0, 0, NULL }
1245 dissect_rrlp_ReferenceTime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1246 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1247 ett_rrlp_ReferenceTime, ReferenceTime_sequence);
1251 static int dissect_referenceTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1252 return dissect_rrlp_ReferenceTime(tvb, offset, pinfo, tree, hf_rrlp_referenceTime);
1256 static const per_sequence_t RefLocation_sequence[] = {
1257 { "threeDLocation" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_threeDLocation },
1258 { NULL, 0, 0, NULL }
1262 dissect_rrlp_RefLocation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1263 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1264 ett_rrlp_RefLocation, RefLocation_sequence);
1268 static int dissect_refLocation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1269 return dissect_rrlp_RefLocation(tvb, offset, pinfo, tree, hf_rrlp_refLocation);
1275 dissect_rrlp_INTEGER_0_604799(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1276 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1277 0U, 604799U, NULL, NULL, FALSE);
1281 static int dissect_gpsTOW2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1282 return dissect_rrlp_INTEGER_0_604799(tvb, offset, pinfo, tree, hf_rrlp_gpsTOW2);
1288 dissect_rrlp_INTEGER_0_239(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1289 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1290 0U, 239U, NULL, NULL, FALSE);
1294 static int dissect_iode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1295 return dissect_rrlp_INTEGER_0_239(tvb, offset, pinfo, tree, hf_rrlp_iode);
1301 dissect_rrlp_INTEGER_0_3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1302 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1303 0U, 3U, NULL, NULL, FALSE);
1307 static int dissect_udre(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1308 return dissect_rrlp_INTEGER_0_3(tvb, offset, pinfo, tree, hf_rrlp_udre);
1310 static int dissect_ephemCodeOnL2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1311 return dissect_rrlp_INTEGER_0_3(tvb, offset, pinfo, tree, hf_rrlp_ephemCodeOnL2);
1313 static int dissect_gpsBitNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1314 return dissect_rrlp_INTEGER_0_3(tvb, offset, pinfo, tree, hf_rrlp_gpsBitNumber);
1320 dissect_rrlp_INTEGER_M2047_2047(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1321 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1322 -2047, 2047U, NULL, NULL, FALSE);
1326 static int dissect_pseudoRangeCor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1327 return dissect_rrlp_INTEGER_M2047_2047(tvb, offset, pinfo, tree, hf_rrlp_pseudoRangeCor);
1333 dissect_rrlp_INTEGER_M127_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1334 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1335 -127, 127U, NULL, NULL, FALSE);
1339 static int dissect_rangeRateCor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1340 return dissect_rrlp_INTEGER_M127_127(tvb, offset, pinfo, tree, hf_rrlp_rangeRateCor);
1342 static int dissect_deltaPseudoRangeCor2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1343 return dissect_rrlp_INTEGER_M127_127(tvb, offset, pinfo, tree, hf_rrlp_deltaPseudoRangeCor2);
1345 static int dissect_deltaPseudoRangeCor3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1346 return dissect_rrlp_INTEGER_M127_127(tvb, offset, pinfo, tree, hf_rrlp_deltaPseudoRangeCor3);
1352 dissect_rrlp_INTEGER_M7_7(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1353 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1354 -7, 7U, NULL, NULL, FALSE);
1358 static int dissect_deltaRangeRateCor2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1359 return dissect_rrlp_INTEGER_M7_7(tvb, offset, pinfo, tree, hf_rrlp_deltaRangeRateCor2);
1361 static int dissect_deltaRangeRateCor3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1362 return dissect_rrlp_INTEGER_M7_7(tvb, offset, pinfo, tree, hf_rrlp_deltaRangeRateCor3);
1366 static const per_sequence_t SatElement_sequence[] = {
1367 { "satelliteID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satelliteID },
1368 { "iode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_iode },
1369 { "udre" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_udre },
1370 { "pseudoRangeCor" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pseudoRangeCor },
1371 { "rangeRateCor" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rangeRateCor },
1372 { "deltaPseudoRangeCor2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_deltaPseudoRangeCor2 },
1373 { "deltaRangeRateCor2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_deltaRangeRateCor2 },
1374 { "deltaPseudoRangeCor3" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_deltaPseudoRangeCor3 },
1375 { "deltaRangeRateCor3" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_deltaRangeRateCor3 },
1376 { NULL, 0, 0, NULL }
1380 dissect_rrlp_SatElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1381 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1382 ett_rrlp_SatElement, SatElement_sequence);
1386 static int dissect_SeqOfSatElement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1387 return dissect_rrlp_SatElement(tvb, offset, pinfo, tree, hf_rrlp_SeqOfSatElement_item);
1391 static const per_sequence_t SeqOfSatElement_sequence_of[1] = {
1392 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfSatElement_item },
1396 dissect_rrlp_SeqOfSatElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1397 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
1398 ett_rrlp_SeqOfSatElement, SeqOfSatElement_sequence_of,
1403 static int dissect_satList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1404 return dissect_rrlp_SeqOfSatElement(tvb, offset, pinfo, tree, hf_rrlp_satList);
1408 static const per_sequence_t DGPSCorrections_sequence[] = {
1409 { "gpsTOW" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsTOW2 },
1410 { "status" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_status },
1411 { "satList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satList },
1412 { NULL, 0, 0, NULL }
1416 dissect_rrlp_DGPSCorrections(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1417 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1418 ett_rrlp_DGPSCorrections, DGPSCorrections_sequence);
1422 static int dissect_dgpsCorrections(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1423 return dissect_rrlp_DGPSCorrections(tvb, offset, pinfo, tree, hf_rrlp_dgpsCorrections);
1429 dissect_rrlp_INTEGER_0_15(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1430 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1431 0U, 15U, NULL, NULL, FALSE);
1435 static int dissect_ephemURA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1436 return dissect_rrlp_INTEGER_0_15(tvb, offset, pinfo, tree, hf_rrlp_ephemURA);
1438 static int dissect_codePhaseSearchWindow(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1439 return dissect_rrlp_INTEGER_0_15(tvb, offset, pinfo, tree, hf_rrlp_codePhaseSearchWindow);
1445 dissect_rrlp_INTEGER_0_63(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1446 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1447 0U, 63U, NULL, NULL, FALSE);
1451 static int dissect_cNo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1452 return dissect_rrlp_INTEGER_0_63(tvb, offset, pinfo, tree, hf_rrlp_cNo);
1454 static int dissect_pseuRangeRMSErr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1455 return dissect_rrlp_INTEGER_0_63(tvb, offset, pinfo, tree, hf_rrlp_pseuRangeRMSErr);
1457 static int dissect_ephemSVhealth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1458 return dissect_rrlp_INTEGER_0_63(tvb, offset, pinfo, tree, hf_rrlp_ephemSVhealth);
1460 static int dissect_doppler1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1461 return dissect_rrlp_INTEGER_0_63(tvb, offset, pinfo, tree, hf_rrlp_doppler1);
1463 static int dissect_referenceFrameMSB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1464 return dissect_rrlp_INTEGER_0_63(tvb, offset, pinfo, tree, hf_rrlp_referenceFrameMSB);
1466 static int dissect_smlc_code(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1467 return dissect_rrlp_INTEGER_0_63(tvb, offset, pinfo, tree, hf_rrlp_smlc_code);
1473 dissect_rrlp_INTEGER_0_1023(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1474 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1475 0U, 1023U, NULL, NULL, FALSE);
1479 static int dissect_ephemIODC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1480 return dissect_rrlp_INTEGER_0_1023(tvb, offset, pinfo, tree, hf_rrlp_ephemIODC);
1486 dissect_rrlp_INTEGER_0_1(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1487 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1488 0U, 1U, NULL, NULL, FALSE);
1492 static int dissect_ephemL2Pflag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1493 return dissect_rrlp_INTEGER_0_1(tvb, offset, pinfo, tree, hf_rrlp_ephemL2Pflag);
1495 static int dissect_ephemFitFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1496 return dissect_rrlp_INTEGER_0_1(tvb, offset, pinfo, tree, hf_rrlp_ephemFitFlag);
1502 dissect_rrlp_INTEGER_0_8388607(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1503 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1504 0U, 8388607U, NULL, NULL, FALSE);
1508 static int dissect_reserved1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1509 return dissect_rrlp_INTEGER_0_8388607(tvb, offset, pinfo, tree, hf_rrlp_reserved1);
1515 dissect_rrlp_INTEGER_0_16777215(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1516 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1517 0U, 16777215U, NULL, NULL, FALSE);
1521 static int dissect_reserved2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1522 return dissect_rrlp_INTEGER_0_16777215(tvb, offset, pinfo, tree, hf_rrlp_reserved2);
1524 static int dissect_reserved3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1525 return dissect_rrlp_INTEGER_0_16777215(tvb, offset, pinfo, tree, hf_rrlp_reserved3);
1527 static int dissect_almanacAPowerHalf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1528 return dissect_rrlp_INTEGER_0_16777215(tvb, offset, pinfo, tree, hf_rrlp_almanacAPowerHalf);
1534 dissect_rrlp_INTEGER_0_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1535 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1536 0U, 65535U, NULL, NULL, FALSE);
1540 static int dissect_refFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1541 return dissect_rrlp_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_rrlp_refFrame);
1543 static int dissect_reserved4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1544 return dissect_rrlp_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_rrlp_reserved4);
1546 static int dissect_almanacE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1547 return dissect_rrlp_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_rrlp_almanacE);
1551 static const per_sequence_t EphemerisSubframe1Reserved_sequence[] = {
1552 { "reserved1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_reserved1 },
1553 { "reserved2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_reserved2 },
1554 { "reserved3" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_reserved3 },
1555 { "reserved4" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_reserved4 },
1556 { NULL, 0, 0, NULL }
1560 dissect_rrlp_EphemerisSubframe1Reserved(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1561 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1562 ett_rrlp_EphemerisSubframe1Reserved, EphemerisSubframe1Reserved_sequence);
1566 static int dissect_ephemSF1Rsvd(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1567 return dissect_rrlp_EphemerisSubframe1Reserved(tvb, offset, pinfo, tree, hf_rrlp_ephemSF1Rsvd);
1573 dissect_rrlp_INTEGER_M128_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1574 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1575 -128, 127U, NULL, NULL, FALSE);
1579 static int dissect_ephemTgd(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1580 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_ephemTgd);
1582 static int dissect_ephemAF2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1583 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_ephemAF2);
1585 static int dissect_alfa0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1586 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_alfa0);
1588 static int dissect_alfa1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1589 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_alfa1);
1591 static int dissect_alfa2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1592 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_alfa2);
1594 static int dissect_alfa3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1595 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_alfa3);
1597 static int dissect_beta0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1598 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_beta0);
1600 static int dissect_beta1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1601 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_beta1);
1603 static int dissect_beta2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1604 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_beta2);
1606 static int dissect_beta3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1607 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_beta3);
1609 static int dissect_utcDeltaTls(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1610 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_utcDeltaTls);
1612 static int dissect_utcDN(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1613 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_utcDN);
1615 static int dissect_utcDeltaTlsf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1616 return dissect_rrlp_INTEGER_M128_127(tvb, offset, pinfo, tree, hf_rrlp_utcDeltaTlsf);
1622 dissect_rrlp_INTEGER_0_37799(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1623 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1624 0U, 37799U, NULL, NULL, FALSE);
1628 static int dissect_ephemToc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1629 return dissect_rrlp_INTEGER_0_37799(tvb, offset, pinfo, tree, hf_rrlp_ephemToc);
1631 static int dissect_ephemToe(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1632 return dissect_rrlp_INTEGER_0_37799(tvb, offset, pinfo, tree, hf_rrlp_ephemToe);
1638 dissect_rrlp_INTEGER_M32768_32767(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1639 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1640 -32768, 32767U, NULL, NULL, FALSE);
1644 static int dissect_doppler(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1645 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_doppler);
1647 static int dissect_ephemAF1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1648 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemAF1);
1650 static int dissect_ephemCrs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1651 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemCrs);
1653 static int dissect_ephemDeltaN(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1654 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemDeltaN);
1656 static int dissect_ephemCuc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1657 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemCuc);
1659 static int dissect_ephemCus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1660 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemCus);
1662 static int dissect_ephemCic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1663 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemCic);
1665 static int dissect_ephemCis(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1666 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemCis);
1668 static int dissect_ephemCrc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1669 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_ephemCrc);
1671 static int dissect_almanacKsii(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1672 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_almanacKsii);
1674 static int dissect_almanacOmegaDot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1675 return dissect_rrlp_INTEGER_M32768_32767(tvb, offset, pinfo, tree, hf_rrlp_almanacOmegaDot);
1681 dissect_rrlp_INTEGER_M2097152_2097151(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1682 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1683 -2097152, 2097151U, NULL, NULL, FALSE);
1687 static int dissect_ephemAF0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1688 return dissect_rrlp_INTEGER_M2097152_2097151(tvb, offset, pinfo, tree, hf_rrlp_ephemAF0);
1694 dissect_rrlp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1695 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1696 -2147483648, 2147483647U, NULL, NULL, FALSE);
1700 static int dissect_ephemM0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1701 return dissect_rrlp_INTEGER_M2147483648_2147483647(tvb, offset, pinfo, tree, hf_rrlp_ephemM0);
1703 static int dissect_ephemOmegaA0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1704 return dissect_rrlp_INTEGER_M2147483648_2147483647(tvb, offset, pinfo, tree, hf_rrlp_ephemOmegaA0);
1706 static int dissect_ephemI0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1707 return dissect_rrlp_INTEGER_M2147483648_2147483647(tvb, offset, pinfo, tree, hf_rrlp_ephemI0);
1709 static int dissect_ephemW(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1710 return dissect_rrlp_INTEGER_M2147483648_2147483647(tvb, offset, pinfo, tree, hf_rrlp_ephemW);
1712 static int dissect_utcA0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1713 return dissect_rrlp_INTEGER_M2147483648_2147483647(tvb, offset, pinfo, tree, hf_rrlp_utcA0);
1719 dissect_rrlp_INTEGER_0_4294967295(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1720 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1721 0U, 4294967295U, NULL, NULL, FALSE);
1725 static int dissect_ephemE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1726 return dissect_rrlp_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_rrlp_ephemE);
1728 static int dissect_ephemAPowerHalf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1729 return dissect_rrlp_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_rrlp_ephemAPowerHalf);
1735 dissect_rrlp_INTEGER_0_31(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1736 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1737 0U, 31U, NULL, NULL, FALSE);
1741 static int dissect_stdOfEOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1742 return dissect_rrlp_INTEGER_0_31(tvb, offset, pinfo, tree, hf_rrlp_stdOfEOTD);
1744 static int dissect_ephemAODA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1745 return dissect_rrlp_INTEGER_0_31(tvb, offset, pinfo, tree, hf_rrlp_ephemAODA);
1747 static int dissect_azimuth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1748 return dissect_rrlp_INTEGER_0_31(tvb, offset, pinfo, tree, hf_rrlp_azimuth);
1754 dissect_rrlp_INTEGER_M8388608_8388607(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1755 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1756 -8388608, 8388607U, NULL, NULL, FALSE);
1760 static int dissect_ephemOmegaADot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1761 return dissect_rrlp_INTEGER_M8388608_8388607(tvb, offset, pinfo, tree, hf_rrlp_ephemOmegaADot);
1763 static int dissect_utcA1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1764 return dissect_rrlp_INTEGER_M8388608_8388607(tvb, offset, pinfo, tree, hf_rrlp_utcA1);
1766 static int dissect_almanacOmega0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1767 return dissect_rrlp_INTEGER_M8388608_8388607(tvb, offset, pinfo, tree, hf_rrlp_almanacOmega0);
1769 static int dissect_almanacW(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1770 return dissect_rrlp_INTEGER_M8388608_8388607(tvb, offset, pinfo, tree, hf_rrlp_almanacW);
1772 static int dissect_almanacM0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1773 return dissect_rrlp_INTEGER_M8388608_8388607(tvb, offset, pinfo, tree, hf_rrlp_almanacM0);
1779 dissect_rrlp_INTEGER_M8192_8191(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1780 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1781 -8192, 8191U, NULL, NULL, FALSE);
1785 static int dissect_ephemIDot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1786 return dissect_rrlp_INTEGER_M8192_8191(tvb, offset, pinfo, tree, hf_rrlp_ephemIDot);
1790 static const per_sequence_t UncompressedEphemeris_sequence[] = {
1791 { "ephemCodeOnL2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCodeOnL2 },
1792 { "ephemURA" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemURA },
1793 { "ephemSVhealth" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemSVhealth },
1794 { "ephemIODC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemIODC },
1795 { "ephemL2Pflag" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemL2Pflag },
1796 { "ephemSF1Rsvd" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemSF1Rsvd },
1797 { "ephemTgd" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemTgd },
1798 { "ephemToc" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemToc },
1799 { "ephemAF2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemAF2 },
1800 { "ephemAF1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemAF1 },
1801 { "ephemAF0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemAF0 },
1802 { "ephemCrs" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCrs },
1803 { "ephemDeltaN" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemDeltaN },
1804 { "ephemM0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemM0 },
1805 { "ephemCuc" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCuc },
1806 { "ephemE" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemE },
1807 { "ephemCus" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCus },
1808 { "ephemAPowerHalf" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemAPowerHalf },
1809 { "ephemToe" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemToe },
1810 { "ephemFitFlag" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemFitFlag },
1811 { "ephemAODA" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemAODA },
1812 { "ephemCic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCic },
1813 { "ephemOmegaA0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemOmegaA0 },
1814 { "ephemCis" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCis },
1815 { "ephemI0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemI0 },
1816 { "ephemCrc" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemCrc },
1817 { "ephemW" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemW },
1818 { "ephemOmegaADot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemOmegaADot },
1819 { "ephemIDot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ephemIDot },
1820 { NULL, 0, 0, NULL }
1824 dissect_rrlp_UncompressedEphemeris(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1825 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1826 ett_rrlp_UncompressedEphemeris, UncompressedEphemeris_sequence);
1830 static int dissect_newSatelliteAndModelUC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1831 return dissect_rrlp_UncompressedEphemeris(tvb, offset, pinfo, tree, hf_rrlp_newSatelliteAndModelUC);
1833 static int dissect_newNaviModelUC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1834 return dissect_rrlp_UncompressedEphemeris(tvb, offset, pinfo, tree, hf_rrlp_newNaviModelUC);
1838 static const value_string rrlp_SatStatus_vals[] = {
1839 { 0, "newSatelliteAndModelUC" },
1840 { 1, "oldSatelliteAndModel" },
1841 { 2, "newNaviModelUC" },
1845 static const per_choice_t SatStatus_choice[] = {
1846 { 0, "newSatelliteAndModelUC" , ASN1_EXTENSION_ROOT , dissect_newSatelliteAndModelUC },
1847 { 1, "oldSatelliteAndModel" , ASN1_EXTENSION_ROOT , dissect_oldSatelliteAndModel },
1848 { 2, "newNaviModelUC" , ASN1_EXTENSION_ROOT , dissect_newNaviModelUC },
1849 { 0, NULL, 0, NULL }
1853 dissect_rrlp_SatStatus(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1854 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
1855 ett_rrlp_SatStatus, SatStatus_choice,
1860 static int dissect_satStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1861 return dissect_rrlp_SatStatus(tvb, offset, pinfo, tree, hf_rrlp_satStatus);
1865 static const per_sequence_t NavModelElement_sequence[] = {
1866 { "satelliteID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satelliteID },
1867 { "satStatus" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satStatus },
1868 { NULL, 0, 0, NULL }
1872 dissect_rrlp_NavModelElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1873 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1874 ett_rrlp_NavModelElement, NavModelElement_sequence);
1878 static int dissect_SeqOfNavModelElement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1879 return dissect_rrlp_NavModelElement(tvb, offset, pinfo, tree, hf_rrlp_SeqOfNavModelElement_item);
1883 static const per_sequence_t SeqOfNavModelElement_sequence_of[1] = {
1884 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfNavModelElement_item },
1888 dissect_rrlp_SeqOfNavModelElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1889 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
1890 ett_rrlp_SeqOfNavModelElement, SeqOfNavModelElement_sequence_of,
1895 static int dissect_navModelList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1896 return dissect_rrlp_SeqOfNavModelElement(tvb, offset, pinfo, tree, hf_rrlp_navModelList);
1900 static const per_sequence_t NavigationModel_sequence[] = {
1901 { "navModelList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_navModelList },
1902 { NULL, 0, 0, NULL }
1906 dissect_rrlp_NavigationModel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1907 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1908 ett_rrlp_NavigationModel, NavigationModel_sequence);
1912 static int dissect_navigationModel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1913 return dissect_rrlp_NavigationModel(tvb, offset, pinfo, tree, hf_rrlp_navigationModel);
1917 static const per_sequence_t IonosphericModel_sequence[] = {
1918 { "alfa0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alfa0 },
1919 { "alfa1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alfa1 },
1920 { "alfa2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alfa2 },
1921 { "alfa3" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alfa3 },
1922 { "beta0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_beta0 },
1923 { "beta1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_beta1 },
1924 { "beta2" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_beta2 },
1925 { "beta3" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_beta3 },
1926 { NULL, 0, 0, NULL }
1930 dissect_rrlp_IonosphericModel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1931 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1932 ett_rrlp_IonosphericModel, IonosphericModel_sequence);
1936 static int dissect_ionosphericModel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1937 return dissect_rrlp_IonosphericModel(tvb, offset, pinfo, tree, hf_rrlp_ionosphericModel);
1943 dissect_rrlp_INTEGER_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1944 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1945 0U, 255U, NULL, NULL, FALSE);
1949 static int dissect_utcTot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1950 return dissect_rrlp_INTEGER_0_255(tvb, offset, pinfo, tree, hf_rrlp_utcTot);
1952 static int dissect_utcWNt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1953 return dissect_rrlp_INTEGER_0_255(tvb, offset, pinfo, tree, hf_rrlp_utcWNt);
1955 static int dissect_utcWNlsf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1956 return dissect_rrlp_INTEGER_0_255(tvb, offset, pinfo, tree, hf_rrlp_utcWNlsf);
1958 static int dissect_alamanacWNa(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1959 return dissect_rrlp_INTEGER_0_255(tvb, offset, pinfo, tree, hf_rrlp_alamanacWNa);
1961 static int dissect_alamanacToa(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1962 return dissect_rrlp_INTEGER_0_255(tvb, offset, pinfo, tree, hf_rrlp_alamanacToa);
1964 static int dissect_almanacSVhealth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1965 return dissect_rrlp_INTEGER_0_255(tvb, offset, pinfo, tree, hf_rrlp_almanacSVhealth);
1969 static const per_sequence_t UTCModel_sequence[] = {
1970 { "utcA1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcA1 },
1971 { "utcA0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcA0 },
1972 { "utcTot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcTot },
1973 { "utcWNt" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcWNt },
1974 { "utcDeltaTls" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcDeltaTls },
1975 { "utcWNlsf" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcWNlsf },
1976 { "utcDN" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcDN },
1977 { "utcDeltaTlsf" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_utcDeltaTlsf },
1978 { NULL, 0, 0, NULL }
1982 dissect_rrlp_UTCModel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1983 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
1984 ett_rrlp_UTCModel, UTCModel_sequence);
1988 static int dissect_utcModel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
1989 return dissect_rrlp_UTCModel(tvb, offset, pinfo, tree, hf_rrlp_utcModel);
1995 dissect_rrlp_INTEGER_M1024_1023(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1996 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
1997 -1024, 1023U, NULL, NULL, FALSE);
2001 static int dissect_almanacAF0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2002 return dissect_rrlp_INTEGER_M1024_1023(tvb, offset, pinfo, tree, hf_rrlp_almanacAF0);
2004 static int dissect_almanacAF1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2005 return dissect_rrlp_INTEGER_M1024_1023(tvb, offset, pinfo, tree, hf_rrlp_almanacAF1);
2009 static const per_sequence_t AlmanacElement_sequence[] = {
2010 { "satelliteID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satelliteID },
2011 { "almanacE" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacE },
2012 { "alamanacToa" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alamanacToa },
2013 { "almanacKsii" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacKsii },
2014 { "almanacOmegaDot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacOmegaDot },
2015 { "almanacSVhealth" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacSVhealth },
2016 { "almanacAPowerHalf" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacAPowerHalf },
2017 { "almanacOmega0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacOmega0 },
2018 { "almanacW" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacW },
2019 { "almanacM0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacM0 },
2020 { "almanacAF0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacAF0 },
2021 { "almanacAF1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacAF1 },
2022 { NULL, 0, 0, NULL }
2026 dissect_rrlp_AlmanacElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2027 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2028 ett_rrlp_AlmanacElement, AlmanacElement_sequence);
2032 static int dissect_SeqOfAlmanacElement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2033 return dissect_rrlp_AlmanacElement(tvb, offset, pinfo, tree, hf_rrlp_SeqOfAlmanacElement_item);
2037 static const per_sequence_t SeqOfAlmanacElement_sequence_of[1] = {
2038 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfAlmanacElement_item },
2042 dissect_rrlp_SeqOfAlmanacElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2043 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
2044 ett_rrlp_SeqOfAlmanacElement, SeqOfAlmanacElement_sequence_of,
2049 static int dissect_almanacList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2050 return dissect_rrlp_SeqOfAlmanacElement(tvb, offset, pinfo, tree, hf_rrlp_almanacList);
2054 static const per_sequence_t Almanac_sequence[] = {
2055 { "alamanacWNa" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_alamanacWNa },
2056 { "almanacList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_almanacList },
2057 { NULL, 0, 0, NULL }
2061 dissect_rrlp_Almanac(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2062 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2063 ett_rrlp_Almanac, Almanac_sequence);
2067 static int dissect_almanac(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2068 return dissect_rrlp_Almanac(tvb, offset, pinfo, tree, hf_rrlp_almanac);
2072 static const per_sequence_t TimeRelation_sequence[] = {
2073 { "gpsTOW" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsTOW3 },
2074 { "gsmTime" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_gsmTime },
2075 { NULL, 0, 0, NULL }
2079 dissect_rrlp_TimeRelation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2080 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2081 ett_rrlp_TimeRelation, TimeRelation_sequence);
2085 static int dissect_timeRelation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2086 return dissect_rrlp_TimeRelation(tvb, offset, pinfo, tree, hf_rrlp_timeRelation);
2092 dissect_rrlp_INTEGER_M2048_2047(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2093 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2094 -2048, 2047U, NULL, NULL, FALSE);
2098 static int dissect_doppler0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2099 return dissect_rrlp_INTEGER_M2048_2047(tvb, offset, pinfo, tree, hf_rrlp_doppler0);
2103 static const per_sequence_t AddionalDopplerFields_sequence[] = {
2104 { "doppler1" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_doppler1 },
2105 { "dopplerUncertainty" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_dopplerUncertainty },
2106 { NULL, 0, 0, NULL }
2110 dissect_rrlp_AddionalDopplerFields(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2111 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2112 ett_rrlp_AddionalDopplerFields, AddionalDopplerFields_sequence);
2116 static int dissect_addionalDoppler(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2117 return dissect_rrlp_AddionalDopplerFields(tvb, offset, pinfo, tree, hf_rrlp_addionalDoppler);
2123 dissect_rrlp_INTEGER_0_1022(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2124 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2125 0U, 1022U, NULL, NULL, FALSE);
2129 static int dissect_wholeChips(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2130 return dissect_rrlp_INTEGER_0_1022(tvb, offset, pinfo, tree, hf_rrlp_wholeChips);
2132 static int dissect_codePhase(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2133 return dissect_rrlp_INTEGER_0_1022(tvb, offset, pinfo, tree, hf_rrlp_codePhase);
2139 dissect_rrlp_INTEGER_0_19(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2140 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2141 0U, 19U, NULL, NULL, FALSE);
2145 static int dissect_intCodePhase(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2146 return dissect_rrlp_INTEGER_0_19(tvb, offset, pinfo, tree, hf_rrlp_intCodePhase);
2150 static const per_sequence_t AddionalAngleFields_sequence[] = {
2151 { "azimuth" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_azimuth },
2152 { "elevation" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_elevation },
2153 { NULL, 0, 0, NULL }
2157 dissect_rrlp_AddionalAngleFields(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2158 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2159 ett_rrlp_AddionalAngleFields, AddionalAngleFields_sequence);
2163 static int dissect_addionalAngle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2164 return dissect_rrlp_AddionalAngleFields(tvb, offset, pinfo, tree, hf_rrlp_addionalAngle);
2168 static const per_sequence_t AcquisElement_sequence[] = {
2169 { "svid" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_svid },
2170 { "doppler0" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_doppler0 },
2171 { "addionalDoppler" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_addionalDoppler },
2172 { "codePhase" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_codePhase },
2173 { "intCodePhase" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_intCodePhase },
2174 { "gpsBitNumber" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsBitNumber },
2175 { "codePhaseSearchWindow" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_codePhaseSearchWindow },
2176 { "addionalAngle" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_addionalAngle },
2177 { NULL, 0, 0, NULL }
2181 dissect_rrlp_AcquisElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2182 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2183 ett_rrlp_AcquisElement, AcquisElement_sequence);
2187 static int dissect_SeqOfAcquisElement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2188 return dissect_rrlp_AcquisElement(tvb, offset, pinfo, tree, hf_rrlp_SeqOfAcquisElement_item);
2192 static const per_sequence_t SeqOfAcquisElement_sequence_of[1] = {
2193 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfAcquisElement_item },
2197 dissect_rrlp_SeqOfAcquisElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2198 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
2199 ett_rrlp_SeqOfAcquisElement, SeqOfAcquisElement_sequence_of,
2204 static int dissect_acquisList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2205 return dissect_rrlp_SeqOfAcquisElement(tvb, offset, pinfo, tree, hf_rrlp_acquisList);
2209 static const per_sequence_t AcquisAssist_sequence[] = {
2210 { "timeRelation" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_timeRelation },
2211 { "acquisList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_acquisList },
2212 { NULL, 0, 0, NULL }
2216 dissect_rrlp_AcquisAssist(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2217 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2218 ett_rrlp_AcquisAssist, AcquisAssist_sequence);
2222 static int dissect_acquisAssist(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2223 return dissect_rrlp_AcquisAssist(tvb, offset, pinfo, tree, hf_rrlp_acquisAssist);
2227 static const per_sequence_t SeqOf_BadSatelliteSet_sequence_of[1] = {
2228 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOf_BadSatelliteSet_item },
2232 dissect_rrlp_SeqOf_BadSatelliteSet(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2233 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
2234 ett_rrlp_SeqOf_BadSatelliteSet, SeqOf_BadSatelliteSet_sequence_of,
2239 static int dissect_realTimeIntegrity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2240 return dissect_rrlp_SeqOf_BadSatelliteSet(tvb, offset, pinfo, tree, hf_rrlp_realTimeIntegrity);
2244 static const per_sequence_t ControlHeader_sequence[] = {
2245 { "referenceTime" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_referenceTime },
2246 { "refLocation" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_refLocation },
2247 { "dgpsCorrections" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_dgpsCorrections },
2248 { "navigationModel" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_navigationModel },
2249 { "ionosphericModel" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ionosphericModel },
2250 { "utcModel" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_utcModel },
2251 { "almanac" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_almanac },
2252 { "acquisAssist" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_acquisAssist },
2253 { "realTimeIntegrity" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_realTimeIntegrity },
2254 { NULL, 0, 0, NULL }
2258 dissect_rrlp_ControlHeader(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2259 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2260 ett_rrlp_ControlHeader, ControlHeader_sequence);
2264 static int dissect_controlHeader(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2265 return dissect_rrlp_ControlHeader(tvb, offset, pinfo, tree, hf_rrlp_controlHeader);
2269 static const per_sequence_t GPS_AssistData_sequence[] = {
2270 { "controlHeader" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_controlHeader },
2271 { NULL, 0, 0, NULL }
2275 dissect_rrlp_GPS_AssistData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2276 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2277 ett_rrlp_GPS_AssistData, GPS_AssistData_sequence);
2281 static int dissect_gps_AssistData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2282 return dissect_rrlp_GPS_AssistData(tvb, offset, pinfo, tree, hf_rrlp_gps_AssistData);
2288 dissect_rrlp_ExpectedOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2289 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2290 0U, 1250U, NULL, NULL, FALSE);
2294 static int dissect_expectedOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2295 return dissect_rrlp_ExpectedOTD(tvb, offset, pinfo, tree, hf_rrlp_expectedOTD);
2301 dissect_rrlp_ExpOTDUncertainty(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2302 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2303 0U, 7U, NULL, NULL, FALSE);
2307 static int dissect_expOTDUncertainty(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2308 return dissect_rrlp_ExpOTDUncertainty(tvb, offset, pinfo, tree, hf_rrlp_expOTDUncertainty);
2310 static int dissect_expOTDuncertainty(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2311 return dissect_rrlp_ExpOTDUncertainty(tvb, offset, pinfo, tree, hf_rrlp_expOTDuncertainty);
2315 static const per_sequence_t MsrAssistBTS_R98_ExpOTD_sequence[] = {
2316 { "expectedOTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_expectedOTD },
2317 { "expOTDUncertainty" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_expOTDUncertainty },
2318 { NULL, 0, 0, NULL }
2322 dissect_rrlp_MsrAssistBTS_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2323 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2324 ett_rrlp_MsrAssistBTS_R98_ExpOTD, MsrAssistBTS_R98_ExpOTD_sequence);
2328 static int dissect_SeqOfMsrAssistBTS_R98_ExpOTD_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2329 return dissect_rrlp_MsrAssistBTS_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item);
2333 static const per_sequence_t SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of[1] = {
2334 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfMsrAssistBTS_R98_ExpOTD_item },
2338 dissect_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2339 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
2340 ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD, SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of,
2345 static int dissect_msrAssistList_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2346 return dissect_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_msrAssistList_R98_ExpOTD);
2350 static const per_sequence_t MsrAssistData_R98_ExpOTD_sequence[] = {
2351 { "msrAssistList-R98-ExpOTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_msrAssistList_R98_ExpOTD },
2352 { NULL, 0, 0, NULL }
2356 dissect_rrlp_MsrAssistData_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2357 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2358 ett_rrlp_MsrAssistData_R98_ExpOTD, MsrAssistData_R98_ExpOTD_sequence);
2362 static int dissect_msrAssistData_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2363 return dissect_rrlp_MsrAssistData_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_msrAssistData_R98_ExpOTD);
2367 static const per_sequence_t AssistBTSData_R98_ExpOTD_sequence[] = {
2368 { "expectedOTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_expectedOTD },
2369 { "expOTDuncertainty" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_expOTDuncertainty },
2370 { NULL, 0, 0, NULL }
2374 dissect_rrlp_AssistBTSData_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2375 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2376 ett_rrlp_AssistBTSData_R98_ExpOTD, AssistBTSData_R98_ExpOTD_sequence);
2380 static int dissect_present1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2381 return dissect_rrlp_AssistBTSData_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_present1);
2385 static const value_string rrlp_SystemInfoAssistBTS_R98_ExpOTD_vals[] = {
2386 { 0, "notPresent" },
2391 static const per_choice_t SystemInfoAssistBTS_R98_ExpOTD_choice[] = {
2392 { 0, "notPresent" , ASN1_NO_EXTENSIONS , dissect_notPresent },
2393 { 1, "present" , ASN1_NO_EXTENSIONS , dissect_present1 },
2394 { 0, NULL, 0, NULL }
2398 dissect_rrlp_SystemInfoAssistBTS_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2399 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
2400 ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD, SystemInfoAssistBTS_R98_ExpOTD_choice,
2405 static int dissect_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2406 return dissect_rrlp_SystemInfoAssistBTS_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item);
2410 static const per_sequence_t SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of[1] = {
2411 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item },
2415 dissect_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2416 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
2417 ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD, SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of,
2422 static int dissect_systemInfoAssistListR98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2423 return dissect_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_systemInfoAssistListR98_ExpOTD);
2427 static const per_sequence_t SystemInfoAssistData_R98_ExpOTD_sequence[] = {
2428 { "systemInfoAssistListR98-ExpOTD", ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_systemInfoAssistListR98_ExpOTD },
2429 { NULL, 0, 0, NULL }
2433 dissect_rrlp_SystemInfoAssistData_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2434 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2435 ett_rrlp_SystemInfoAssistData_R98_ExpOTD, SystemInfoAssistData_R98_ExpOTD_sequence);
2439 static int dissect_systemInfoAssistData_R98_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2440 return dissect_rrlp_SystemInfoAssistData_R98_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_systemInfoAssistData_R98_ExpOTD);
2444 static const per_sequence_t Rel98_Ext_ExpOTD_sequence[] = {
2445 { "msrAssistData-R98-ExpOTD" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_msrAssistData_R98_ExpOTD },
2446 { "systemInfoAssistData-R98-ExpOTD", ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_systemInfoAssistData_R98_ExpOTD },
2447 { NULL, 0, 0, NULL }
2451 dissect_rrlp_Rel98_Ext_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2452 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2453 ett_rrlp_Rel98_Ext_ExpOTD, Rel98_Ext_ExpOTD_sequence);
2457 static int dissect_rel98_Ext_ExpOTD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2458 return dissect_rrlp_Rel98_Ext_ExpOTD(tvb, offset, pinfo, tree, hf_rrlp_rel98_Ext_ExpOTD);
2464 dissect_rrlp_GPSReferenceTimeUncertainty(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2465 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2466 0U, 127U, NULL, NULL, FALSE);
2470 static int dissect_gpsReferenceTimeUncertainty(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2471 return dissect_rrlp_GPSReferenceTimeUncertainty(tvb, offset, pinfo, tree, hf_rrlp_gpsReferenceTimeUncertainty);
2475 static const per_sequence_t Rel98_MsrPosition_Req_Extension_sequence[] = {
2476 { "rel98-Ext-ExpOTD" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rel98_Ext_ExpOTD },
2477 { "gpsTimeAssistanceMeasurementRequest", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_gpsTimeAssistanceMeasurementRequest },
2478 { "gpsReferenceTimeUncertainty" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_gpsReferenceTimeUncertainty },
2479 { NULL, 0, 0, NULL }
2483 dissect_rrlp_Rel98_MsrPosition_Req_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2484 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2485 ett_rrlp_Rel98_MsrPosition_Req_Extension, Rel98_MsrPosition_Req_Extension_sequence);
2489 static int dissect_rel98_MsrPosition_Req_extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2490 return dissect_rrlp_Rel98_MsrPosition_Req_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel98_MsrPosition_Req_extension);
2496 dissect_rrlp_INTEGER_0_262143(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2497 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2498 0U, 262143U, NULL, NULL, FALSE);
2502 static int dissect_transaction_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2503 return dissect_rrlp_INTEGER_0_262143(tvb, offset, pinfo, tree, hf_rrlp_transaction_ID);
2507 static const per_sequence_t Extended_reference_sequence[] = {
2508 { "smlc-code" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_smlc_code },
2509 { "transaction-ID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_transaction_ID },
2510 { NULL, 0, 0, NULL }
2514 dissect_rrlp_Extended_reference(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2515 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2516 ett_rrlp_Extended_reference, Extended_reference_sequence);
2520 static int dissect_extended_reference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2521 return dissect_rrlp_Extended_reference(tvb, offset, pinfo, tree, hf_rrlp_extended_reference);
2525 static const per_sequence_t Rel5_MsrPosition_Req_Extension_sequence[] = {
2526 { "extended-reference" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_extended_reference },
2527 { NULL, 0, 0, NULL }
2531 dissect_rrlp_Rel5_MsrPosition_Req_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2532 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2533 ett_rrlp_Rel5_MsrPosition_Req_Extension, Rel5_MsrPosition_Req_Extension_sequence);
2537 static int dissect_rel5_MsrPosition_Req_extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2538 return dissect_rrlp_Rel5_MsrPosition_Req_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel5_MsrPosition_Req_extension);
2542 static const per_sequence_t MsrPosition_Req_sequence[] = {
2543 { "positionInstruct" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_positionInstruct },
2544 { "referenceAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_referenceAssistData },
2545 { "msrAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_msrAssistData },
2546 { "systemInfoAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_systemInfoAssistData },
2547 { "gps-AssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_gps_AssistData },
2548 { "extensionContainer" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extensionContainer },
2549 { "rel98-MsrPosition-Req-extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel98_MsrPosition_Req_extension },
2550 { "rel5-MsrPosition-Req-extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel5_MsrPosition_Req_extension },
2551 { NULL, 0, 0, NULL }
2555 dissect_rrlp_MsrPosition_Req(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2556 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2557 ett_rrlp_MsrPosition_Req, MsrPosition_Req_sequence);
2561 static int dissect_msrPositionReq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2562 return dissect_rrlp_MsrPosition_Req(tvb, offset, pinfo, tree, hf_rrlp_msrPositionReq);
2568 dissect_rrlp_INTEGER_2_3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2569 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2570 2U, 3U, NULL, NULL, FALSE);
2574 static int dissect_nbrOfSets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2575 return dissect_rrlp_INTEGER_2_3(tvb, offset, pinfo, tree, hf_rrlp_nbrOfSets);
2581 dissect_rrlp_INTEGER_1_3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2582 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2583 1U, 3U, NULL, NULL, FALSE);
2587 static int dissect_nbrOfReferenceBTSs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2588 return dissect_rrlp_INTEGER_1_3(tvb, offset, pinfo, tree, hf_rrlp_nbrOfReferenceBTSs);
2592 static const value_string rrlp_ReferenceRelation_vals[] = {
2593 { 0, "secondBTSThirdSet" },
2594 { 1, "secondBTSSecondSet" },
2595 { 2, "firstBTSFirstSet" },
2601 dissect_rrlp_ReferenceRelation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2602 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
2603 3, NULL, NULL, FALSE, 0, NULL);
2607 static int dissect_referenceRelation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2608 return dissect_rrlp_ReferenceRelation(tvb, offset, pinfo, tree, hf_rrlp_referenceRelation);
2612 static const per_sequence_t MultipleSets_sequence[] = {
2613 { "nbrOfSets" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nbrOfSets },
2614 { "nbrOfReferenceBTSs" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nbrOfReferenceBTSs },
2615 { "referenceRelation" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_referenceRelation },
2616 { NULL, 0, 0, NULL }
2620 dissect_rrlp_MultipleSets(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2621 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2622 ett_rrlp_MultipleSets, MultipleSets_sequence);
2626 static int dissect_multipleSets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2627 return dissect_rrlp_MultipleSets(tvb, offset, pinfo, tree, hf_rrlp_multipleSets);
2631 static const per_sequence_t BSICAndCarrier_sequence[] = {
2632 { "carrier" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_carrier },
2633 { "bsic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bsic },
2634 { NULL, 0, 0, NULL }
2638 dissect_rrlp_BSICAndCarrier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2639 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2640 ett_rrlp_BSICAndCarrier, BSICAndCarrier_sequence);
2644 static int dissect_bsicAndCarrier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2645 return dissect_rrlp_BSICAndCarrier(tvb, offset, pinfo, tree, hf_rrlp_bsicAndCarrier);
2651 dissect_rrlp_CellID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2652 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2653 0U, 65535U, NULL, NULL, FALSE);
2657 static int dissect_ci(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2658 return dissect_rrlp_CellID(tvb, offset, pinfo, tree, hf_rrlp_ci);
2660 static int dissect_referenceCI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2661 return dissect_rrlp_CellID(tvb, offset, pinfo, tree, hf_rrlp_referenceCI);
2667 dissect_rrlp_RequestIndex(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2668 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2669 1U, 16U, NULL, NULL, FALSE);
2673 static int dissect_requestIndex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2674 return dissect_rrlp_RequestIndex(tvb, offset, pinfo, tree, hf_rrlp_requestIndex);
2680 dissect_rrlp_SystemInfoIndex(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2681 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2682 1U, 32U, NULL, NULL, FALSE);
2686 static int dissect_systemInfoIndex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2687 return dissect_rrlp_SystemInfoIndex(tvb, offset, pinfo, tree, hf_rrlp_systemInfoIndex);
2693 dissect_rrlp_LAC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2694 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2695 0U, 65535U, NULL, NULL, FALSE);
2699 static int dissect_referenceLAC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2700 return dissect_rrlp_LAC(tvb, offset, pinfo, tree, hf_rrlp_referenceLAC);
2704 static const per_sequence_t CellIDAndLAC_sequence[] = {
2705 { "referenceLAC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceLAC },
2706 { "referenceCI" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceCI },
2707 { NULL, 0, 0, NULL }
2711 dissect_rrlp_CellIDAndLAC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2712 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2713 ett_rrlp_CellIDAndLAC, CellIDAndLAC_sequence);
2717 static int dissect_ciAndLAC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2718 return dissect_rrlp_CellIDAndLAC(tvb, offset, pinfo, tree, hf_rrlp_ciAndLAC);
2722 static const value_string rrlp_ReferenceIdentityType_vals[] = {
2723 { 0, "bsicAndCarrier" },
2725 { 2, "requestIndex" },
2726 { 3, "systemInfoIndex" },
2731 static const per_choice_t ReferenceIdentityType_choice[] = {
2732 { 0, "bsicAndCarrier" , ASN1_NO_EXTENSIONS , dissect_bsicAndCarrier },
2733 { 1, "ci" , ASN1_NO_EXTENSIONS , dissect_ci },
2734 { 2, "requestIndex" , ASN1_NO_EXTENSIONS , dissect_requestIndex },
2735 { 3, "systemInfoIndex" , ASN1_NO_EXTENSIONS , dissect_systemInfoIndex },
2736 { 4, "ciAndLAC" , ASN1_NO_EXTENSIONS , dissect_ciAndLAC },
2737 { 0, NULL, 0, NULL }
2741 dissect_rrlp_ReferenceIdentityType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2742 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
2743 ett_rrlp_ReferenceIdentityType, ReferenceIdentityType_choice,
2748 static int dissect_SeqOfReferenceIdentityType_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2749 return dissect_rrlp_ReferenceIdentityType(tvb, offset, pinfo, tree, hf_rrlp_SeqOfReferenceIdentityType_item);
2753 static const per_sequence_t SeqOfReferenceIdentityType_sequence_of[1] = {
2754 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfReferenceIdentityType_item },
2758 dissect_rrlp_SeqOfReferenceIdentityType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2759 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
2760 ett_rrlp_SeqOfReferenceIdentityType, SeqOfReferenceIdentityType_sequence_of,
2765 static int dissect_refBTSList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2766 return dissect_rrlp_SeqOfReferenceIdentityType(tvb, offset, pinfo, tree, hf_rrlp_refBTSList);
2770 static const per_sequence_t ReferenceIdentity_sequence[] = {
2771 { "refBTSList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_refBTSList },
2772 { NULL, 0, 0, NULL }
2776 dissect_rrlp_ReferenceIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2777 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2778 ett_rrlp_ReferenceIdentity, ReferenceIdentity_sequence);
2782 static int dissect_referenceIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2783 return dissect_rrlp_ReferenceIdentity(tvb, offset, pinfo, tree, hf_rrlp_referenceIdentity);
2789 dissect_rrlp_INTEGER_0_42431(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2790 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2791 0U, 42431U, NULL, NULL, FALSE);
2795 static int dissect_refFrameNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2796 return dissect_rrlp_INTEGER_0_42431(tvb, offset, pinfo, tree, hf_rrlp_refFrameNumber);
2802 dissect_rrlp_ModuloTimeSlot(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2803 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2804 0U, 3U, NULL, NULL, FALSE);
2808 static int dissect_referenceTimeSlot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2809 return dissect_rrlp_ModuloTimeSlot(tvb, offset, pinfo, tree, hf_rrlp_referenceTimeSlot);
2811 static int dissect_nborTimeSlot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2812 return dissect_rrlp_ModuloTimeSlot(tvb, offset, pinfo, tree, hf_rrlp_nborTimeSlot);
2818 dissect_rrlp_RefQuality(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2819 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2820 0U, 31U, NULL, NULL, FALSE);
2824 static int dissect_refQuality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2825 return dissect_rrlp_RefQuality(tvb, offset, pinfo, tree, hf_rrlp_refQuality);
2831 dissect_rrlp_NumOfMeasurements(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2832 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2833 0U, 7U, NULL, NULL, FALSE);
2837 static int dissect_numOfMeasurements(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2838 return dissect_rrlp_NumOfMeasurements(tvb, offset, pinfo, tree, hf_rrlp_numOfMeasurements);
2842 static const per_sequence_t TOA_MeasurementsOfRef_sequence[] = {
2843 { "refQuality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_refQuality },
2844 { "numOfMeasurements" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_numOfMeasurements },
2845 { NULL, 0, 0, NULL }
2849 dissect_rrlp_TOA_MeasurementsOfRef(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2850 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2851 ett_rrlp_TOA_MeasurementsOfRef, TOA_MeasurementsOfRef_sequence);
2855 static int dissect_toaMeasurementsOfRef(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2856 return dissect_rrlp_TOA_MeasurementsOfRef(tvb, offset, pinfo, tree, hf_rrlp_toaMeasurementsOfRef);
2862 dissect_rrlp_StdResolution(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2863 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2864 0U, 3U, NULL, NULL, FALSE);
2868 static int dissect_stdResolution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2869 return dissect_rrlp_StdResolution(tvb, offset, pinfo, tree, hf_rrlp_stdResolution);
2875 dissect_rrlp_INTEGER_0_960(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2876 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2877 0U, 960U, NULL, NULL, FALSE);
2881 static int dissect_taCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2882 return dissect_rrlp_INTEGER_0_960(tvb, offset, pinfo, tree, hf_rrlp_taCorrection);
2886 static const per_sequence_t MultiFrameCarrier_sequence[] = {
2887 { "bcchCarrier" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_bcchCarrier },
2888 { "multiFrameOffset" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_multiFrameOffset },
2889 { NULL, 0, 0, NULL }
2893 dissect_rrlp_MultiFrameCarrier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2894 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2895 ett_rrlp_MultiFrameCarrier, MultiFrameCarrier_sequence);
2899 static int dissect_multiFrameCarrier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2900 return dissect_rrlp_MultiFrameCarrier(tvb, offset, pinfo, tree, hf_rrlp_multiFrameCarrier);
2904 static const value_string rrlp_NeighborIdentity_vals[] = {
2905 { 0, "bsicAndCarrier" },
2907 { 2, "multiFrameCarrier" },
2908 { 3, "requestIndex" },
2909 { 4, "systemInfoIndex" },
2914 static const per_choice_t NeighborIdentity_choice[] = {
2915 { 0, "bsicAndCarrier" , ASN1_NO_EXTENSIONS , dissect_bsicAndCarrier },
2916 { 1, "ci" , ASN1_NO_EXTENSIONS , dissect_ci },
2917 { 2, "multiFrameCarrier" , ASN1_NO_EXTENSIONS , dissect_multiFrameCarrier },
2918 { 3, "requestIndex" , ASN1_NO_EXTENSIONS , dissect_requestIndex },
2919 { 4, "systemInfoIndex" , ASN1_NO_EXTENSIONS , dissect_systemInfoIndex },
2920 { 5, "ciAndLAC" , ASN1_NO_EXTENSIONS , dissect_ciAndLAC },
2921 { 0, NULL, 0, NULL }
2925 dissect_rrlp_NeighborIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2926 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
2927 ett_rrlp_NeighborIdentity, NeighborIdentity_choice,
2932 static int dissect_neighborIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2933 return dissect_rrlp_NeighborIdentity(tvb, offset, pinfo, tree, hf_rrlp_neighborIdentity);
2937 static const per_sequence_t EOTDQuality_sequence[] = {
2938 { "nbrOfMeasurements" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nbrOfMeasurements },
2939 { "stdOfEOTD" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_stdOfEOTD },
2940 { NULL, 0, 0, NULL }
2944 dissect_rrlp_EOTDQuality(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2945 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2946 ett_rrlp_EOTDQuality, EOTDQuality_sequence);
2950 static int dissect_eotdQuality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2951 return dissect_rrlp_EOTDQuality(tvb, offset, pinfo, tree, hf_rrlp_eotdQuality);
2957 dissect_rrlp_OTDValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2958 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
2959 0U, 39999U, NULL, NULL, FALSE);
2963 static int dissect_otdValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2964 return dissect_rrlp_OTDValue(tvb, offset, pinfo, tree, hf_rrlp_otdValue);
2968 static const per_sequence_t OTD_MeasurementWithID_sequence[] = {
2969 { "neighborIdentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_neighborIdentity },
2970 { "nborTimeSlot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nborTimeSlot },
2971 { "eotdQuality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_eotdQuality },
2972 { "otdValue" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_otdValue },
2973 { NULL, 0, 0, NULL }
2977 dissect_rrlp_OTD_MeasurementWithID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2978 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
2979 ett_rrlp_OTD_MeasurementWithID, OTD_MeasurementWithID_sequence);
2983 static int dissect_identityPresent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2984 return dissect_rrlp_OTD_MeasurementWithID(tvb, offset, pinfo, tree, hf_rrlp_identityPresent);
2990 dissect_rrlp_OTD_FirstSetMsrs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2991 offset = dissect_rrlp_OTD_MeasurementWithID(tvb, offset, pinfo, tree, hf_index);
2995 static int dissect_SeqOfOTD_FirstSetMsrs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2996 return dissect_rrlp_OTD_FirstSetMsrs(tvb, offset, pinfo, tree, hf_rrlp_SeqOfOTD_FirstSetMsrs_item);
2998 static int dissect_SeqOfOTD_FirstSetMsrs_R98_Ext_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
2999 return dissect_rrlp_OTD_FirstSetMsrs(tvb, offset, pinfo, tree, hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item);
3003 static const per_sequence_t SeqOfOTD_FirstSetMsrs_sequence_of[1] = {
3004 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_FirstSetMsrs_item },
3008 dissect_rrlp_SeqOfOTD_FirstSetMsrs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3009 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
3010 ett_rrlp_SeqOfOTD_FirstSetMsrs, SeqOfOTD_FirstSetMsrs_sequence_of,
3015 static int dissect_otd_FirstSetMsrs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3016 return dissect_rrlp_SeqOfOTD_FirstSetMsrs(tvb, offset, pinfo, tree, hf_rrlp_otd_FirstSetMsrs);
3020 static const per_sequence_t OTD_MsrElementFirst_sequence[] = {
3021 { "refFrameNumber" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_refFrameNumber },
3022 { "referenceTimeSlot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceTimeSlot },
3023 { "toaMeasurementsOfRef" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_toaMeasurementsOfRef },
3024 { "stdResolution" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_stdResolution },
3025 { "taCorrection" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_taCorrection },
3026 { "otd-FirstSetMsrs" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_otd_FirstSetMsrs },
3027 { NULL, 0, 0, NULL }
3031 dissect_rrlp_OTD_MsrElementFirst(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3032 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3033 ett_rrlp_OTD_MsrElementFirst, OTD_MsrElementFirst_sequence);
3037 static int dissect_otdMsrFirstSets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3038 return dissect_rrlp_OTD_MsrElementFirst(tvb, offset, pinfo, tree, hf_rrlp_otdMsrFirstSets);
3042 static const per_sequence_t OTD_Measurement_sequence[] = {
3043 { "nborTimeSlot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nborTimeSlot },
3044 { "eotdQuality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_eotdQuality },
3045 { "otdValue" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_otdValue },
3046 { NULL, 0, 0, NULL }
3050 dissect_rrlp_OTD_Measurement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3051 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3052 ett_rrlp_OTD_Measurement, OTD_Measurement_sequence);
3056 static int dissect_identityNotPresent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3057 return dissect_rrlp_OTD_Measurement(tvb, offset, pinfo, tree, hf_rrlp_identityNotPresent);
3061 static const value_string rrlp_OTD_MsrsOfOtherSets_vals[] = {
3062 { 0, "identityNotPresent" },
3063 { 1, "identityPresent" },
3067 static const per_choice_t OTD_MsrsOfOtherSets_choice[] = {
3068 { 0, "identityNotPresent" , ASN1_NO_EXTENSIONS , dissect_identityNotPresent },
3069 { 1, "identityPresent" , ASN1_NO_EXTENSIONS , dissect_identityPresent },
3070 { 0, NULL, 0, NULL }
3074 dissect_rrlp_OTD_MsrsOfOtherSets(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3075 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
3076 ett_rrlp_OTD_MsrsOfOtherSets, OTD_MsrsOfOtherSets_choice,
3081 static int dissect_SeqOfOTD_MsrsOfOtherSets_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3082 return dissect_rrlp_OTD_MsrsOfOtherSets(tvb, offset, pinfo, tree, hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item);
3086 static const per_sequence_t SeqOfOTD_MsrsOfOtherSets_sequence_of[1] = {
3087 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_MsrsOfOtherSets_item },
3091 dissect_rrlp_SeqOfOTD_MsrsOfOtherSets(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3092 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
3093 ett_rrlp_SeqOfOTD_MsrsOfOtherSets, SeqOfOTD_MsrsOfOtherSets_sequence_of,
3098 static int dissect_otd_MsrsOfOtherSets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3099 return dissect_rrlp_SeqOfOTD_MsrsOfOtherSets(tvb, offset, pinfo, tree, hf_rrlp_otd_MsrsOfOtherSets);
3103 static const per_sequence_t OTD_MsrElementRest_sequence[] = {
3104 { "refFrameNumber" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_refFrameNumber },
3105 { "referenceTimeSlot" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceTimeSlot },
3106 { "toaMeasurementsOfRef" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_toaMeasurementsOfRef },
3107 { "stdResolution" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_stdResolution },
3108 { "taCorrection" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_taCorrection },
3109 { "otd-MsrsOfOtherSets" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_otd_MsrsOfOtherSets },
3110 { NULL, 0, 0, NULL }
3114 dissect_rrlp_OTD_MsrElementRest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3115 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3116 ett_rrlp_OTD_MsrElementRest, OTD_MsrElementRest_sequence);
3120 static int dissect_SeqOfOTD_MsrElementRest_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3121 return dissect_rrlp_OTD_MsrElementRest(tvb, offset, pinfo, tree, hf_rrlp_SeqOfOTD_MsrElementRest_item);
3125 static const per_sequence_t SeqOfOTD_MsrElementRest_sequence_of[1] = {
3126 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_MsrElementRest_item },
3130 dissect_rrlp_SeqOfOTD_MsrElementRest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3131 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
3132 ett_rrlp_SeqOfOTD_MsrElementRest, SeqOfOTD_MsrElementRest_sequence_of,
3137 static int dissect_otdMsrRestSets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3138 return dissect_rrlp_SeqOfOTD_MsrElementRest(tvb, offset, pinfo, tree, hf_rrlp_otdMsrRestSets);
3142 static const per_sequence_t OTD_MeasureInfo_sequence[] = {
3143 { "otdMsrFirstSets" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_otdMsrFirstSets },
3144 { "otdMsrRestSets" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_otdMsrRestSets },
3145 { NULL, 0, 0, NULL }
3149 dissect_rrlp_OTD_MeasureInfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3150 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3151 ett_rrlp_OTD_MeasureInfo, OTD_MeasureInfo_sequence);
3155 static int dissect_otd_MeasureInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3156 return dissect_rrlp_OTD_MeasureInfo(tvb, offset, pinfo, tree, hf_rrlp_otd_MeasureInfo);
3162 dissect_rrlp_INTEGER_0_14399999(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3163 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
3164 0U, 14399999U, NULL, NULL, FALSE);
3168 static int dissect_gpsTOW(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3169 return dissect_rrlp_INTEGER_0_14399999(tvb, offset, pinfo, tree, hf_rrlp_gpsTOW);
3173 static const value_string rrlp_FixType_vals[] = {
3181 dissect_rrlp_FixType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3182 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
3183 0U, 1U, NULL, NULL, FALSE);
3187 static int dissect_fixType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3188 return dissect_rrlp_FixType(tvb, offset, pinfo, tree, hf_rrlp_fixType);
3192 static const per_sequence_t LocationInfo_sequence[] = {
3193 { "refFrame" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_refFrame },
3194 { "gpsTOW" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_gpsTOW },
3195 { "fixType" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_fixType },
3196 { "posEstimate" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_posEstimate },
3197 { NULL, 0, 0, NULL }
3201 dissect_rrlp_LocationInfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3202 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3203 ett_rrlp_LocationInfo, LocationInfo_sequence);
3207 static int dissect_locationInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3208 return dissect_rrlp_LocationInfo(tvb, offset, pinfo, tree, hf_rrlp_locationInfo);
3214 dissect_rrlp_GPSTOW24b(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3215 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
3216 0U, 14399999U, NULL, NULL, FALSE);
3220 static int dissect_gpsTOW1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3221 return dissect_rrlp_GPSTOW24b(tvb, offset, pinfo, tree, hf_rrlp_gpsTOW1);
3227 dissect_rrlp_INTEGER_0_1024(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3228 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
3229 0U, 1024U, NULL, NULL, FALSE);
3233 static int dissect_fracChips(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3234 return dissect_rrlp_INTEGER_0_1024(tvb, offset, pinfo, tree, hf_rrlp_fracChips);
3238 static const value_string rrlp_MpathIndic_vals[] = {
3239 { 0, "notMeasured" },
3248 dissect_rrlp_MpathIndic(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3249 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
3250 4, NULL, NULL, FALSE, 0, NULL);
3254 static int dissect_mpathIndic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3255 return dissect_rrlp_MpathIndic(tvb, offset, pinfo, tree, hf_rrlp_mpathIndic);
3259 static const per_sequence_t GPS_MsrElement_sequence[] = {
3260 { "satelliteID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_satelliteID },
3261 { "cNo" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_cNo },
3262 { "doppler" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_doppler },
3263 { "wholeChips" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_wholeChips },
3264 { "fracChips" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_fracChips },
3265 { "mpathIndic" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_mpathIndic },
3266 { "pseuRangeRMSErr" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pseuRangeRMSErr },
3267 { NULL, 0, 0, NULL }
3271 dissect_rrlp_GPS_MsrElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3272 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3273 ett_rrlp_GPS_MsrElement, GPS_MsrElement_sequence);
3277 static int dissect_SeqOfGPS_MsrElement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3278 return dissect_rrlp_GPS_MsrElement(tvb, offset, pinfo, tree, hf_rrlp_SeqOfGPS_MsrElement_item);
3282 static const per_sequence_t SeqOfGPS_MsrElement_sequence_of[1] = {
3283 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfGPS_MsrElement_item },
3287 dissect_rrlp_SeqOfGPS_MsrElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3288 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
3289 ett_rrlp_SeqOfGPS_MsrElement, SeqOfGPS_MsrElement_sequence_of,
3294 static int dissect_gps_msrList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3295 return dissect_rrlp_SeqOfGPS_MsrElement(tvb, offset, pinfo, tree, hf_rrlp_gps_msrList);
3299 static const per_sequence_t GPS_MsrSetElement_sequence[] = {
3300 { "refFrame" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_refFrame },
3301 { "gpsTOW" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsTOW1 },
3302 { "gps-msrList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gps_msrList },
3303 { NULL, 0, 0, NULL }
3307 dissect_rrlp_GPS_MsrSetElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3308 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3309 ett_rrlp_GPS_MsrSetElement, GPS_MsrSetElement_sequence);
3313 static int dissect_SeqOfGPS_MsrSetElement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3314 return dissect_rrlp_GPS_MsrSetElement(tvb, offset, pinfo, tree, hf_rrlp_SeqOfGPS_MsrSetElement_item);
3318 static const per_sequence_t SeqOfGPS_MsrSetElement_sequence_of[1] = {
3319 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfGPS_MsrSetElement_item },
3323 dissect_rrlp_SeqOfGPS_MsrSetElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3324 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
3325 ett_rrlp_SeqOfGPS_MsrSetElement, SeqOfGPS_MsrSetElement_sequence_of,
3330 static int dissect_gpsMsrSetList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3331 return dissect_rrlp_SeqOfGPS_MsrSetElement(tvb, offset, pinfo, tree, hf_rrlp_gpsMsrSetList);
3335 static const per_sequence_t GPS_MeasureInfo_sequence[] = {
3336 { "gpsMsrSetList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_gpsMsrSetList },
3337 { NULL, 0, 0, NULL }
3341 dissect_rrlp_GPS_MeasureInfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3342 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3343 ett_rrlp_GPS_MeasureInfo, GPS_MeasureInfo_sequence);
3347 static int dissect_gps_MeasureInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3348 return dissect_rrlp_GPS_MeasureInfo(tvb, offset, pinfo, tree, hf_rrlp_gps_MeasureInfo);
3352 static const value_string rrlp_LocErrorReason_vals[] = {
3354 { 1, "notEnoughBTSs" },
3355 { 2, "notEnoughSats" },
3356 { 3, "eotdLocCalAssDataMissing" },
3357 { 4, "eotdAssDataMissing" },
3358 { 5, "gpsLocCalAssDataMissing" },
3359 { 6, "gpsAssDataMissing" },
3360 { 7, "methodNotSupported" },
3361 { 8, "notProcessed" },
3362 { 9, "refBTSForGPSNotServingBTS" },
3363 { 10, "refBTSForEOTDNotServingBTS" },
3369 dissect_rrlp_LocErrorReason(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3370 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
3371 11, NULL, NULL, TRUE, 0, NULL);
3375 static int dissect_locErrorReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3376 return dissect_rrlp_LocErrorReason(tvb, offset, pinfo, tree, hf_rrlp_locErrorReason);
3382 dissect_rrlp_GPSAssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3383 offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
3384 1, maxGPSAssistanceData, NULL);
3388 static int dissect_gpsAssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3389 return dissect_rrlp_GPSAssistanceData(tvb, offset, pinfo, tree, hf_rrlp_gpsAssistanceData);
3393 static const per_sequence_t AdditionalAssistanceData_sequence[] = {
3394 { "gpsAssistanceData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_gpsAssistanceData },
3395 { "extensionContainer" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extensionContainer },
3396 { NULL, 0, 0, NULL }
3400 dissect_rrlp_AdditionalAssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3401 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3402 ett_rrlp_AdditionalAssistanceData, AdditionalAssistanceData_sequence);
3406 static int dissect_additionalAssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3407 return dissect_rrlp_AdditionalAssistanceData(tvb, offset, pinfo, tree, hf_rrlp_additionalAssistanceData);
3411 static const per_sequence_t LocationError_sequence[] = {
3412 { "locErrorReason" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_locErrorReason },
3413 { "additionalAssistanceData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_additionalAssistanceData },
3414 { NULL, 0, 0, NULL }
3418 dissect_rrlp_LocationError(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3419 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3420 ett_rrlp_LocationError, LocationError_sequence);
3424 static int dissect_locationError(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3425 return dissect_rrlp_LocationError(tvb, offset, pinfo, tree, hf_rrlp_locationError);
3429 static const per_sequence_t SeqOfOTD_FirstSetMsrs_R98_Ext_sequence_of[1] = {
3430 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_FirstSetMsrs_R98_Ext_item },
3434 dissect_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3435 offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
3436 ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext, SeqOfOTD_FirstSetMsrs_R98_Ext_sequence_of,
3441 static int dissect_otd_FirstSetMsrs_R98_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3442 return dissect_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext(tvb, offset, pinfo, tree, hf_rrlp_otd_FirstSetMsrs_R98_Ext);
3446 static const per_sequence_t OTD_MsrElementFirst_R98_Ext_sequence[] = {
3447 { "otd-FirstSetMsrs-R98-Ext" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_otd_FirstSetMsrs_R98_Ext },
3448 { NULL, 0, 0, NULL }
3452 dissect_rrlp_OTD_MsrElementFirst_R98_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3453 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3454 ett_rrlp_OTD_MsrElementFirst_R98_Ext, OTD_MsrElementFirst_R98_Ext_sequence);
3458 static int dissect_otdMsrFirstSets_R98_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3459 return dissect_rrlp_OTD_MsrElementFirst_R98_Ext(tvb, offset, pinfo, tree, hf_rrlp_otdMsrFirstSets_R98_Ext);
3463 static const per_sequence_t OTD_MeasureInfo_R98_Ext_sequence[] = {
3464 { "otdMsrFirstSets-R98-Ext" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_otdMsrFirstSets_R98_Ext },
3465 { NULL, 0, 0, NULL }
3469 dissect_rrlp_OTD_MeasureInfo_R98_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3470 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3471 ett_rrlp_OTD_MeasureInfo_R98_Ext, OTD_MeasureInfo_R98_Ext_sequence);
3475 static int dissect_otd_MeasureInfo_R98_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3476 return dissect_rrlp_OTD_MeasureInfo_R98_Ext(tvb, offset, pinfo, tree, hf_rrlp_otd_MeasureInfo_R98_Ext);
3480 static const per_sequence_t T_rel_98_Ext_MeasureInfo_sequence[] = {
3481 { "otd-MeasureInfo-R98-Ext" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_otd_MeasureInfo_R98_Ext },
3482 { NULL, 0, 0, NULL }
3486 dissect_rrlp_T_rel_98_Ext_MeasureInfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3487 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3488 ett_rrlp_T_rel_98_Ext_MeasureInfo, T_rel_98_Ext_MeasureInfo_sequence);
3492 static int dissect_rel_98_Ext_MeasureInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3493 return dissect_rrlp_T_rel_98_Ext_MeasureInfo(tvb, offset, pinfo, tree, hf_rrlp_rel_98_Ext_MeasureInfo);
3499 dissect_rrlp_INTEGER_0_9999(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3500 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
3501 0U, 9999U, NULL, NULL, FALSE);
3505 static int dissect_gpsTowSubms(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3506 return dissect_rrlp_INTEGER_0_9999(tvb, offset, pinfo, tree, hf_rrlp_gpsTowSubms);
3512 dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3513 offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
3514 0U, 127U, NULL, NULL, FALSE);
3518 static int dissect_deltaTow(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3519 return dissect_rrlp_INTEGER_0_127(tvb, offset, pinfo, tree, hf_rrlp_deltaTow);
3523 static const per_sequence_t GPSTimeAssistanceMeasurements_sequence[] = {
3524 { "referenceFrameMSB" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceFrameMSB },
3525 { "gpsTowSubms" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_gpsTowSubms },
3526 { "deltaTow" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_deltaTow },
3527 { "gpsReferenceTimeUncertainty" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_gpsReferenceTimeUncertainty },
3528 { NULL, 0, 0, NULL }
3532 dissect_rrlp_GPSTimeAssistanceMeasurements(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3533 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3534 ett_rrlp_GPSTimeAssistanceMeasurements, GPSTimeAssistanceMeasurements_sequence);
3538 static int dissect_timeAssistanceMeasurements(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3539 return dissect_rrlp_GPSTimeAssistanceMeasurements(tvb, offset, pinfo, tree, hf_rrlp_timeAssistanceMeasurements);
3543 static const per_sequence_t Rel_98_MsrPosition_Rsp_Extension_sequence[] = {
3544 { "rel-98-Ext-MeasureInfo" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rel_98_Ext_MeasureInfo },
3545 { "timeAssistanceMeasurements" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_timeAssistanceMeasurements },
3546 { NULL, 0, 0, NULL }
3550 dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3551 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3552 ett_rrlp_Rel_98_MsrPosition_Rsp_Extension, Rel_98_MsrPosition_Rsp_Extension_sequence);
3556 static int dissect_rel_98_MsrPosition_Rsp_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3557 return dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel_98_MsrPosition_Rsp_Extension);
3563 dissect_rrlp_OTD_MeasureInfo_5_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3564 offset = dissect_rrlp_SeqOfOTD_MsrElementRest(tvb, offset, pinfo, tree, hf_index);
3568 static int dissect_otd_MeasureInfo_5_Ext(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3569 return dissect_rrlp_OTD_MeasureInfo_5_Ext(tvb, offset, pinfo, tree, hf_rrlp_otd_MeasureInfo_5_Ext);
3573 static const value_string rrlp_UlPseudoSegInd_vals[] = {
3574 { 0, "firstOfMany" },
3575 { 1, "secondOfMany" },
3581 dissect_rrlp_UlPseudoSegInd(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3582 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
3583 2, NULL, NULL, FALSE, 0, NULL);
3587 static int dissect_ulPseudoSegInd(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3588 return dissect_rrlp_UlPseudoSegInd(tvb, offset, pinfo, tree, hf_rrlp_ulPseudoSegInd);
3592 static const per_sequence_t Rel_5_MsrPosition_Rsp_Extension_sequence[] = {
3593 { "extended-reference" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extended_reference },
3594 { "otd-MeasureInfo-5-Ext" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_otd_MeasureInfo_5_Ext },
3595 { "ulPseudoSegInd" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulPseudoSegInd },
3596 { NULL, 0, 0, NULL }
3600 dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3601 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3602 ett_rrlp_Rel_5_MsrPosition_Rsp_Extension, Rel_5_MsrPosition_Rsp_Extension_sequence);
3606 static int dissect_rel_5_MsrPosition_Rsp_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3607 return dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel_5_MsrPosition_Rsp_Extension);
3611 static const per_sequence_t MsrPosition_Rsp_sequence[] = {
3612 { "multipleSets" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_multipleSets },
3613 { "referenceIdentity" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_referenceIdentity },
3614 { "otd-MeasureInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_otd_MeasureInfo },
3615 { "locationInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_locationInfo },
3616 { "gps-MeasureInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_gps_MeasureInfo },
3617 { "locationError" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_locationError },
3618 { "extensionContainer" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extensionContainer },
3619 { "rel-98-MsrPosition-Rsp-Extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel_98_MsrPosition_Rsp_Extension },
3620 { "rel-5-MsrPosition-Rsp-Extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel_5_MsrPosition_Rsp_Extension },
3621 { NULL, 0, 0, NULL }
3625 dissect_rrlp_MsrPosition_Rsp(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3626 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3627 ett_rrlp_MsrPosition_Rsp, MsrPosition_Rsp_sequence);
3631 static int dissect_msrPositionRsp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3632 return dissect_rrlp_MsrPosition_Rsp(tvb, offset, pinfo, tree, hf_rrlp_msrPositionRsp);
3636 static const value_string rrlp_MoreAssDataToBeSent_vals[] = {
3637 { 0, "noMoreMessages" },
3638 { 1, "moreMessagesOnTheWay" },
3644 dissect_rrlp_MoreAssDataToBeSent(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3645 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
3646 2, NULL, NULL, FALSE, 0, NULL);
3650 static int dissect_moreAssDataToBeSent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3651 return dissect_rrlp_MoreAssDataToBeSent(tvb, offset, pinfo, tree, hf_rrlp_moreAssDataToBeSent);
3655 static const per_sequence_t Rel98_AssistanceData_Extension_sequence[] = {
3656 { "rel98-Ext-ExpOTD" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rel98_Ext_ExpOTD },
3657 { "gpsTimeAssistanceMeasurementRequest", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_gpsTimeAssistanceMeasurementRequest },
3658 { "gpsReferenceTimeUncertainty" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_gpsReferenceTimeUncertainty },
3659 { NULL, 0, 0, NULL }
3663 dissect_rrlp_Rel98_AssistanceData_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3664 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3665 ett_rrlp_Rel98_AssistanceData_Extension, Rel98_AssistanceData_Extension_sequence);
3669 static int dissect_rel98_AssistanceData_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3670 return dissect_rrlp_Rel98_AssistanceData_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel98_AssistanceData_Extension);
3674 static const per_sequence_t Rel5_AssistanceData_Extension_sequence[] = {
3675 { "extended-reference" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_extended_reference },
3676 { NULL, 0, 0, NULL }
3680 dissect_rrlp_Rel5_AssistanceData_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3681 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3682 ett_rrlp_Rel5_AssistanceData_Extension, Rel5_AssistanceData_Extension_sequence);
3686 static int dissect_rel5_AssistanceData_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3687 return dissect_rrlp_Rel5_AssistanceData_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel5_AssistanceData_Extension);
3691 static const per_sequence_t AssistanceData_sequence[] = {
3692 { "referenceAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_referenceAssistData },
3693 { "msrAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_msrAssistData },
3694 { "systemInfoAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_systemInfoAssistData },
3695 { "gps-AssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_gps_AssistData },
3696 { "moreAssDataToBeSent" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_moreAssDataToBeSent },
3697 { "extensionContainer" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extensionContainer },
3698 { "rel98-AssistanceData-Extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel98_AssistanceData_Extension },
3699 { "rel5-AssistanceData-Extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel5_AssistanceData_Extension },
3700 { NULL, 0, 0, NULL }
3704 dissect_rrlp_AssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3705 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3706 ett_rrlp_AssistanceData, AssistanceData_sequence);
3710 static int dissect_assistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3711 return dissect_rrlp_AssistanceData(tvb, offset, pinfo, tree, hf_rrlp_assistanceData);
3715 static const value_string rrlp_ErrorCodes_vals[] = {
3717 { 1, "missingComponet" },
3718 { 2, "incorrectData" },
3719 { 3, "missingIEorComponentElement" },
3720 { 4, "messageTooShort" },
3721 { 5, "unknowReferenceNumber" },
3727 dissect_rrlp_ErrorCodes(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3728 offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
3729 6, NULL, NULL, TRUE, 0, NULL);
3733 static int dissect_errorCause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3734 return dissect_rrlp_ErrorCodes(tvb, offset, pinfo, tree, hf_rrlp_errorCause);
3738 static const per_sequence_t Rel_5_ProtocolError_Extension_sequence[] = {
3739 { "extended-reference" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extended_reference },
3740 { NULL, 0, 0, NULL }
3744 dissect_rrlp_Rel_5_ProtocolError_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3745 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3746 ett_rrlp_Rel_5_ProtocolError_Extension, Rel_5_ProtocolError_Extension_sequence);
3750 static int dissect_rel_5_ProtocolError_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3751 return dissect_rrlp_Rel_5_ProtocolError_Extension(tvb, offset, pinfo, tree, hf_rrlp_rel_5_ProtocolError_Extension);
3755 static const per_sequence_t ProtocolError_sequence[] = {
3756 { "errorCause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_errorCause },
3757 { "extensionContainer" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_extensionContainer },
3758 { "rel-5-ProtocolError-Extension", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rel_5_ProtocolError_Extension },
3759 { NULL, 0, 0, NULL }
3763 dissect_rrlp_ProtocolError(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3764 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3765 ett_rrlp_ProtocolError, ProtocolError_sequence);
3769 static int dissect_protocolError(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3770 return dissect_rrlp_ProtocolError(tvb, offset, pinfo, tree, hf_rrlp_protocolError);
3774 static const value_string rrlp_RRLP_Component_vals[] = {
3775 { 0, "msrPositionReq" },
3776 { 1, "msrPositionRsp" },
3777 { 2, "assistanceData" },
3778 { 3, "assistanceDataAck" },
3779 { 4, "protocolError" },
3783 static const per_choice_t RRLP_Component_choice[] = {
3784 { 0, "msrPositionReq" , ASN1_EXTENSION_ROOT , dissect_msrPositionReq },
3785 { 1, "msrPositionRsp" , ASN1_EXTENSION_ROOT , dissect_msrPositionRsp },
3786 { 2, "assistanceData" , ASN1_EXTENSION_ROOT , dissect_assistanceData },
3787 { 3, "assistanceDataAck" , ASN1_EXTENSION_ROOT , dissect_assistanceDataAck },
3788 { 4, "protocolError" , ASN1_EXTENSION_ROOT , dissect_protocolError },
3789 { 0, NULL, 0, NULL }
3793 dissect_rrlp_RRLP_Component(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3794 offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
3795 ett_rrlp_RRLP_Component, RRLP_Component_choice,
3800 static int dissect_component(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
3801 return dissect_rrlp_RRLP_Component(tvb, offset, pinfo, tree, hf_rrlp_component);
3805 static const per_sequence_t PDU_sequence[] = {
3806 { "referenceNumber" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_referenceNumber },
3807 { "component" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_component },
3808 { NULL, 0, 0, NULL }
3812 dissect_rrlp_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3815 proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE);
3817 if (check_col(pinfo->cinfo, COL_PROTOCOL))
3818 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
3819 if (check_col(pinfo->cinfo, COL_INFO))
3820 col_clear(pinfo->cinfo, COL_INFO);
3822 offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3823 ett_rrlp_PDU, PDU_sequence);
3832 static void dissect_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3833 per_aligment_type_callback(FALSE);
3834 dissect_rrlp_PDU(tvb, 0, pinfo, tree, hf_rrlp_PDU_PDU);
3838 /*--- End of included file: packet-rrlp-fn.c ---*/
3839 #line 68 "packet-rrlp-template.c"
3842 /*--- proto_register_rrlp -------------------------------------------*/
3843 void proto_register_rrlp(void) {
3845 /* List of fields */
3846 static hf_register_info hf[] = {
3849 /*--- Included file: packet-rrlp-hfarr.c ---*/
3850 #line 1 "packet-rrlp-hfarr.c"
3852 { "PDU", "rrlp.PDU",
3853 FT_NONE, BASE_NONE, NULL, 0,
3855 { &hf_rrlp_referenceNumber,
3856 { "referenceNumber", "rrlp.referenceNumber",
3857 FT_UINT32, BASE_DEC, NULL, 0,
3858 "PDU/referenceNumber", HFILL }},
3859 { &hf_rrlp_component,
3860 { "component", "rrlp.component",
3861 FT_UINT32, BASE_DEC, VALS(rrlp_RRLP_Component_vals), 0,
3862 "PDU/component", HFILL }},
3863 { &hf_rrlp_msrPositionReq,
3864 { "msrPositionReq", "rrlp.msrPositionReq",
3865 FT_NONE, BASE_NONE, NULL, 0,
3866 "RRLP-Component/msrPositionReq", HFILL }},
3867 { &hf_rrlp_msrPositionRsp,
3868 { "msrPositionRsp", "rrlp.msrPositionRsp",
3869 FT_NONE, BASE_NONE, NULL, 0,
3870 "RRLP-Component/msrPositionRsp", HFILL }},
3871 { &hf_rrlp_assistanceData,
3872 { "assistanceData", "rrlp.assistanceData",
3873 FT_NONE, BASE_NONE, NULL, 0,
3874 "RRLP-Component/assistanceData", HFILL }},
3875 { &hf_rrlp_assistanceDataAck,
3876 { "assistanceDataAck", "rrlp.assistanceDataAck",
3877 FT_NONE, BASE_NONE, NULL, 0,
3878 "RRLP-Component/assistanceDataAck", HFILL }},
3879 { &hf_rrlp_protocolError,
3880 { "protocolError", "rrlp.protocolError",
3881 FT_NONE, BASE_NONE, NULL, 0,
3882 "RRLP-Component/protocolError", HFILL }},
3883 { &hf_rrlp_positionInstruct,
3884 { "positionInstruct", "rrlp.positionInstruct",
3885 FT_NONE, BASE_NONE, NULL, 0,
3886 "MsrPosition-Req/positionInstruct", HFILL }},
3887 { &hf_rrlp_referenceAssistData,
3888 { "referenceAssistData", "rrlp.referenceAssistData",
3889 FT_NONE, BASE_NONE, NULL, 0,
3891 { &hf_rrlp_msrAssistData,
3892 { "msrAssistData", "rrlp.msrAssistData",
3893 FT_NONE, BASE_NONE, NULL, 0,
3895 { &hf_rrlp_systemInfoAssistData,
3896 { "systemInfoAssistData", "rrlp.systemInfoAssistData",
3897 FT_NONE, BASE_NONE, NULL, 0,
3899 { &hf_rrlp_gps_AssistData,
3900 { "gps-AssistData", "rrlp.gps_AssistData",
3901 FT_NONE, BASE_NONE, NULL, 0,
3903 { &hf_rrlp_extensionContainer,
3904 { "extensionContainer", "rrlp.extensionContainer",
3905 FT_BYTES, BASE_HEX, NULL, 0,
3907 { &hf_rrlp_rel98_MsrPosition_Req_extension,
3908 { "rel98-MsrPosition-Req-extension", "rrlp.rel98_MsrPosition_Req_extension",
3909 FT_NONE, BASE_NONE, NULL, 0,
3910 "MsrPosition-Req/rel98-MsrPosition-Req-extension", HFILL }},
3911 { &hf_rrlp_rel5_MsrPosition_Req_extension,
3912 { "rel5-MsrPosition-Req-extension", "rrlp.rel5_MsrPosition_Req_extension",
3913 FT_NONE, BASE_NONE, NULL, 0,
3914 "MsrPosition-Req/rel5-MsrPosition-Req-extension", HFILL }},
3915 { &hf_rrlp_multipleSets,
3916 { "multipleSets", "rrlp.multipleSets",
3917 FT_NONE, BASE_NONE, NULL, 0,
3918 "MsrPosition-Rsp/multipleSets", HFILL }},
3919 { &hf_rrlp_referenceIdentity,
3920 { "referenceIdentity", "rrlp.referenceIdentity",
3921 FT_NONE, BASE_NONE, NULL, 0,
3922 "MsrPosition-Rsp/referenceIdentity", HFILL }},
3923 { &hf_rrlp_otd_MeasureInfo,
3924 { "otd-MeasureInfo", "rrlp.otd_MeasureInfo",
3925 FT_NONE, BASE_NONE, NULL, 0,
3926 "MsrPosition-Rsp/otd-MeasureInfo", HFILL }},
3927 { &hf_rrlp_locationInfo,
3928 { "locationInfo", "rrlp.locationInfo",
3929 FT_NONE, BASE_NONE, NULL, 0,
3930 "MsrPosition-Rsp/locationInfo", HFILL }},
3931 { &hf_rrlp_gps_MeasureInfo,
3932 { "gps-MeasureInfo", "rrlp.gps_MeasureInfo",
3933 FT_NONE, BASE_NONE, NULL, 0,
3934 "MsrPosition-Rsp/gps-MeasureInfo", HFILL }},
3935 { &hf_rrlp_locationError,
3936 { "locationError", "rrlp.locationError",
3937 FT_NONE, BASE_NONE, NULL, 0,
3938 "MsrPosition-Rsp/locationError", HFILL }},
3939 { &hf_rrlp_rel_98_MsrPosition_Rsp_Extension,
3940 { "rel-98-MsrPosition-Rsp-Extension", "rrlp.rel_98_MsrPosition_Rsp_Extension",
3941 FT_NONE, BASE_NONE, NULL, 0,
3942 "MsrPosition-Rsp/rel-98-MsrPosition-Rsp-Extension", HFILL }},
3943 { &hf_rrlp_rel_5_MsrPosition_Rsp_Extension,
3944 { "rel-5-MsrPosition-Rsp-Extension", "rrlp.rel_5_MsrPosition_Rsp_Extension",
3945 FT_NONE, BASE_NONE, NULL, 0,
3946 "MsrPosition-Rsp/rel-5-MsrPosition-Rsp-Extension", HFILL }},
3947 { &hf_rrlp_moreAssDataToBeSent,
3948 { "moreAssDataToBeSent", "rrlp.moreAssDataToBeSent",
3949 FT_UINT32, BASE_DEC, VALS(rrlp_MoreAssDataToBeSent_vals), 0,
3950 "AssistanceData/moreAssDataToBeSent", HFILL }},
3951 { &hf_rrlp_rel98_AssistanceData_Extension,
3952 { "rel98-AssistanceData-Extension", "rrlp.rel98_AssistanceData_Extension",
3953 FT_NONE, BASE_NONE, NULL, 0,
3954 "AssistanceData/rel98-AssistanceData-Extension", HFILL }},
3955 { &hf_rrlp_rel5_AssistanceData_Extension,
3956 { "rel5-AssistanceData-Extension", "rrlp.rel5_AssistanceData_Extension",
3957 FT_NONE, BASE_NONE, NULL, 0,
3958 "AssistanceData/rel5-AssistanceData-Extension", HFILL }},
3959 { &hf_rrlp_errorCause,
3960 { "errorCause", "rrlp.errorCause",
3961 FT_UINT32, BASE_DEC, VALS(rrlp_ErrorCodes_vals), 0,
3962 "ProtocolError/errorCause", HFILL }},
3963 { &hf_rrlp_rel_5_ProtocolError_Extension,
3964 { "rel-5-ProtocolError-Extension", "rrlp.rel_5_ProtocolError_Extension",
3965 FT_NONE, BASE_NONE, NULL, 0,
3966 "ProtocolError/rel-5-ProtocolError-Extension", HFILL }},
3967 { &hf_rrlp_methodType,
3968 { "methodType", "rrlp.methodType",
3969 FT_UINT32, BASE_DEC, VALS(rrlp_MethodType_vals), 0,
3970 "PositionInstruct/methodType", HFILL }},
3971 { &hf_rrlp_positionMethod,
3972 { "positionMethod", "rrlp.positionMethod",
3973 FT_UINT32, BASE_DEC, VALS(rrlp_PositionMethod_vals), 0,
3974 "PositionInstruct/positionMethod", HFILL }},
3975 { &hf_rrlp_measureResponseTime,
3976 { "measureResponseTime", "rrlp.measureResponseTime",
3977 FT_UINT32, BASE_DEC, NULL, 0,
3978 "PositionInstruct/measureResponseTime", HFILL }},
3979 { &hf_rrlp_useMultipleSets,
3980 { "useMultipleSets", "rrlp.useMultipleSets",
3981 FT_UINT32, BASE_DEC, VALS(rrlp_UseMultipleSets_vals), 0,
3982 "PositionInstruct/useMultipleSets", HFILL }},
3983 { &hf_rrlp_environmentCharacter,
3984 { "environmentCharacter", "rrlp.environmentCharacter",
3985 FT_UINT32, BASE_DEC, VALS(rrlp_EnvironmentCharacter_vals), 0,
3986 "PositionInstruct/environmentCharacter", HFILL }},
3987 { &hf_rrlp_msAssisted,
3988 { "msAssisted", "rrlp.msAssisted",
3989 FT_NONE, BASE_NONE, NULL, 0,
3990 "MethodType/msAssisted", HFILL }},
3992 { "msBased", "rrlp.msBased",
3993 FT_UINT32, BASE_DEC, NULL, 0,
3994 "MethodType/msBased", HFILL }},
3995 { &hf_rrlp_msBasedPref,
3996 { "msBasedPref", "rrlp.msBasedPref",
3997 FT_UINT32, BASE_DEC, NULL, 0,
3998 "MethodType/msBasedPref", HFILL }},
3999 { &hf_rrlp_msAssistedPref,
4000 { "msAssistedPref", "rrlp.msAssistedPref",
4001 FT_UINT32, BASE_DEC, NULL, 0,
4002 "MethodType/msAssistedPref", HFILL }},
4003 { &hf_rrlp_accuracy,
4004 { "accuracy", "rrlp.accuracy",
4005 FT_UINT32, BASE_DEC, NULL, 0,
4006 "AccuracyOpt/accuracy", HFILL }},
4007 { &hf_rrlp_bcchCarrier,
4008 { "bcchCarrier", "rrlp.bcchCarrier",
4009 FT_UINT32, BASE_DEC, NULL, 0,
4012 { "bsic", "rrlp.bsic",
4013 FT_UINT32, BASE_DEC, NULL, 0,
4015 { &hf_rrlp_timeSlotScheme,
4016 { "timeSlotScheme", "rrlp.timeSlotScheme",
4017 FT_UINT32, BASE_DEC, VALS(rrlp_TimeSlotScheme_vals), 0,
4019 { &hf_rrlp_btsPosition,
4020 { "btsPosition", "rrlp.btsPosition",
4021 FT_BYTES, BASE_HEX, NULL, 0,
4022 "ReferenceAssistData/btsPosition", HFILL }},
4023 { &hf_rrlp_msrAssistList,
4024 { "msrAssistList", "rrlp.msrAssistList",
4025 FT_UINT32, BASE_DEC, NULL, 0,
4026 "MsrAssistData/msrAssistList", HFILL }},
4027 { &hf_rrlp_SeqOfMsrAssistBTS_item,
4028 { "Item", "rrlp.SeqOfMsrAssistBTS_item",
4029 FT_NONE, BASE_NONE, NULL, 0,
4030 "SeqOfMsrAssistBTS/_item", HFILL }},
4031 { &hf_rrlp_multiFrameOffset,
4032 { "multiFrameOffset", "rrlp.multiFrameOffset",
4033 FT_UINT32, BASE_DEC, NULL, 0,
4035 { &hf_rrlp_roughRTD,
4036 { "roughRTD", "rrlp.roughRTD",
4037 FT_UINT32, BASE_DEC, NULL, 0,
4039 { &hf_rrlp_calcAssistanceBTS,
4040 { "calcAssistanceBTS", "rrlp.calcAssistanceBTS",
4041 FT_NONE, BASE_NONE, NULL, 0,
4043 { &hf_rrlp_systemInfoAssistList,
4044 { "systemInfoAssistList", "rrlp.systemInfoAssistList",
4045 FT_UINT32, BASE_DEC, NULL, 0,
4046 "SystemInfoAssistData/systemInfoAssistList", HFILL }},
4047 { &hf_rrlp_SeqOfSystemInfoAssistBTS_item,
4048 { "Item", "rrlp.SeqOfSystemInfoAssistBTS_item",
4049 FT_UINT32, BASE_DEC, VALS(rrlp_SystemInfoAssistBTS_vals), 0,
4050 "SeqOfSystemInfoAssistBTS/_item", HFILL }},
4051 { &hf_rrlp_notPresent,
4052 { "notPresent", "rrlp.notPresent",
4053 FT_NONE, BASE_NONE, NULL, 0,
4056 { "present", "rrlp.present",
4057 FT_NONE, BASE_NONE, NULL, 0,
4058 "SystemInfoAssistBTS/present", HFILL }},
4060 { "fineRTD", "rrlp.fineRTD",
4061 FT_UINT32, BASE_DEC, NULL, 0,
4062 "CalcAssistanceBTS/fineRTD", HFILL }},
4063 { &hf_rrlp_referenceWGS84,
4064 { "referenceWGS84", "rrlp.referenceWGS84",
4065 FT_NONE, BASE_NONE, NULL, 0,
4066 "CalcAssistanceBTS/referenceWGS84", HFILL }},
4067 { &hf_rrlp_relativeNorth,
4068 { "relativeNorth", "rrlp.relativeNorth",
4069 FT_INT32, BASE_DEC, NULL, 0,
4070 "ReferenceWGS84/relativeNorth", HFILL }},
4071 { &hf_rrlp_relativeEast,
4072 { "relativeEast", "rrlp.relativeEast",
4073 FT_INT32, BASE_DEC, NULL, 0,
4074 "ReferenceWGS84/relativeEast", HFILL }},
4075 { &hf_rrlp_relativeAlt,
4076 { "relativeAlt", "rrlp.relativeAlt",
4077 FT_INT32, BASE_DEC, NULL, 0,
4078 "ReferenceWGS84/relativeAlt", HFILL }},
4079 { &hf_rrlp_nbrOfSets,
4080 { "nbrOfSets", "rrlp.nbrOfSets",
4081 FT_UINT32, BASE_DEC, NULL, 0,
4082 "MultipleSets/nbrOfSets", HFILL }},
4083 { &hf_rrlp_nbrOfReferenceBTSs,
4084 { "nbrOfReferenceBTSs", "rrlp.nbrOfReferenceBTSs",
4085 FT_UINT32, BASE_DEC, NULL, 0,
4086 "MultipleSets/nbrOfReferenceBTSs", HFILL }},
4087 { &hf_rrlp_referenceRelation,
4088 { "referenceRelation", "rrlp.referenceRelation",
4089 FT_UINT32, BASE_DEC, VALS(rrlp_ReferenceRelation_vals), 0,
4090 "MultipleSets/referenceRelation", HFILL }},
4091 { &hf_rrlp_refBTSList,
4092 { "refBTSList", "rrlp.refBTSList",
4093 FT_UINT32, BASE_DEC, NULL, 0,
4094 "ReferenceIdentity/refBTSList", HFILL }},
4095 { &hf_rrlp_SeqOfReferenceIdentityType_item,
4096 { "Item", "rrlp.SeqOfReferenceIdentityType_item",
4097 FT_UINT32, BASE_DEC, VALS(rrlp_ReferenceIdentityType_vals), 0,
4098 "SeqOfReferenceIdentityType/_item", HFILL }},
4099 { &hf_rrlp_bsicAndCarrier,
4100 { "bsicAndCarrier", "rrlp.bsicAndCarrier",
4101 FT_NONE, BASE_NONE, NULL, 0,
4105 FT_UINT32, BASE_DEC, NULL, 0,
4107 { &hf_rrlp_requestIndex,
4108 { "requestIndex", "rrlp.requestIndex",
4109 FT_UINT32, BASE_DEC, NULL, 0,
4111 { &hf_rrlp_systemInfoIndex,
4112 { "systemInfoIndex", "rrlp.systemInfoIndex",
4113 FT_UINT32, BASE_DEC, NULL, 0,
4115 { &hf_rrlp_ciAndLAC,
4116 { "ciAndLAC", "rrlp.ciAndLAC",
4117 FT_NONE, BASE_NONE, NULL, 0,
4120 { "carrier", "rrlp.carrier",
4121 FT_UINT32, BASE_DEC, NULL, 0,
4122 "BSICAndCarrier/carrier", HFILL }},
4123 { &hf_rrlp_referenceLAC,
4124 { "referenceLAC", "rrlp.referenceLAC",
4125 FT_UINT32, BASE_DEC, NULL, 0,
4126 "CellIDAndLAC/referenceLAC", HFILL }},
4127 { &hf_rrlp_referenceCI,
4128 { "referenceCI", "rrlp.referenceCI",
4129 FT_UINT32, BASE_DEC, NULL, 0,
4130 "CellIDAndLAC/referenceCI", HFILL }},
4131 { &hf_rrlp_otdMsrFirstSets,
4132 { "otdMsrFirstSets", "rrlp.otdMsrFirstSets",
4133 FT_NONE, BASE_NONE, NULL, 0,
4134 "OTD-MeasureInfo/otdMsrFirstSets", HFILL }},
4135 { &hf_rrlp_otdMsrRestSets,
4136 { "otdMsrRestSets", "rrlp.otdMsrRestSets",
4137 FT_UINT32, BASE_DEC, NULL, 0,
4138 "OTD-MeasureInfo/otdMsrRestSets", HFILL }},
4139 { &hf_rrlp_SeqOfOTD_MsrElementRest_item,
4140 { "Item", "rrlp.SeqOfOTD_MsrElementRest_item",
4141 FT_NONE, BASE_NONE, NULL, 0,
4142 "SeqOfOTD-MsrElementRest/_item", HFILL }},
4143 { &hf_rrlp_refFrameNumber,
4144 { "refFrameNumber", "rrlp.refFrameNumber",
4145 FT_UINT32, BASE_DEC, NULL, 0,
4147 { &hf_rrlp_referenceTimeSlot,
4148 { "referenceTimeSlot", "rrlp.referenceTimeSlot",
4149 FT_UINT32, BASE_DEC, NULL, 0,
4151 { &hf_rrlp_toaMeasurementsOfRef,
4152 { "toaMeasurementsOfRef", "rrlp.toaMeasurementsOfRef",
4153 FT_NONE, BASE_NONE, NULL, 0,
4155 { &hf_rrlp_stdResolution,
4156 { "stdResolution", "rrlp.stdResolution",
4157 FT_UINT32, BASE_DEC, NULL, 0,
4159 { &hf_rrlp_taCorrection,
4160 { "taCorrection", "rrlp.taCorrection",
4161 FT_UINT32, BASE_DEC, NULL, 0,
4163 { &hf_rrlp_otd_FirstSetMsrs,
4164 { "otd-FirstSetMsrs", "rrlp.otd_FirstSetMsrs",
4165 FT_UINT32, BASE_DEC, NULL, 0,
4166 "OTD-MsrElementFirst/otd-FirstSetMsrs", HFILL }},
4167 { &hf_rrlp_SeqOfOTD_FirstSetMsrs_item,
4168 { "Item", "rrlp.SeqOfOTD_FirstSetMsrs_item",
4169 FT_NONE, BASE_NONE, NULL, 0,
4170 "SeqOfOTD-FirstSetMsrs/_item", HFILL }},
4171 { &hf_rrlp_otd_MsrsOfOtherSets,
4172 { "otd-MsrsOfOtherSets", "rrlp.otd_MsrsOfOtherSets",
4173 FT_UINT32, BASE_DEC, NULL, 0,
4174 "OTD-MsrElementRest/otd-MsrsOfOtherSets", HFILL }},
4175 { &hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item,
4176 { "Item", "rrlp.SeqOfOTD_MsrsOfOtherSets_item",
4177 FT_UINT32, BASE_DEC, VALS(rrlp_OTD_MsrsOfOtherSets_vals), 0,
4178 "SeqOfOTD-MsrsOfOtherSets/_item", HFILL }},
4179 { &hf_rrlp_refQuality,
4180 { "refQuality", "rrlp.refQuality",
4181 FT_UINT32, BASE_DEC, NULL, 0,
4182 "TOA-MeasurementsOfRef/refQuality", HFILL }},
4183 { &hf_rrlp_numOfMeasurements,
4184 { "numOfMeasurements", "rrlp.numOfMeasurements",
4185 FT_UINT32, BASE_DEC, NULL, 0,
4186 "TOA-MeasurementsOfRef/numOfMeasurements", HFILL }},
4187 { &hf_rrlp_identityNotPresent,
4188 { "identityNotPresent", "rrlp.identityNotPresent",
4189 FT_NONE, BASE_NONE, NULL, 0,
4190 "OTD-MsrsOfOtherSets/identityNotPresent", HFILL }},
4191 { &hf_rrlp_identityPresent,
4192 { "identityPresent", "rrlp.identityPresent",
4193 FT_NONE, BASE_NONE, NULL, 0,
4194 "OTD-MsrsOfOtherSets/identityPresent", HFILL }},
4195 { &hf_rrlp_nborTimeSlot,
4196 { "nborTimeSlot", "rrlp.nborTimeSlot",
4197 FT_UINT32, BASE_DEC, NULL, 0,
4199 { &hf_rrlp_eotdQuality,
4200 { "eotdQuality", "rrlp.eotdQuality",
4201 FT_NONE, BASE_NONE, NULL, 0,
4203 { &hf_rrlp_otdValue,
4204 { "otdValue", "rrlp.otdValue",
4205 FT_UINT32, BASE_DEC, NULL, 0,
4207 { &hf_rrlp_neighborIdentity,
4208 { "neighborIdentity", "rrlp.neighborIdentity",
4209 FT_UINT32, BASE_DEC, VALS(rrlp_NeighborIdentity_vals), 0,
4210 "OTD-MeasurementWithID/neighborIdentity", HFILL }},
4211 { &hf_rrlp_nbrOfMeasurements,
4212 { "nbrOfMeasurements", "rrlp.nbrOfMeasurements",
4213 FT_UINT32, BASE_DEC, NULL, 0,
4214 "EOTDQuality/nbrOfMeasurements", HFILL }},
4215 { &hf_rrlp_stdOfEOTD,
4216 { "stdOfEOTD", "rrlp.stdOfEOTD",
4217 FT_UINT32, BASE_DEC, NULL, 0,
4218 "EOTDQuality/stdOfEOTD", HFILL }},
4219 { &hf_rrlp_multiFrameCarrier,
4220 { "multiFrameCarrier", "rrlp.multiFrameCarrier",
4221 FT_NONE, BASE_NONE, NULL, 0,
4222 "NeighborIdentity/multiFrameCarrier", HFILL }},
4223 { &hf_rrlp_refFrame,
4224 { "refFrame", "rrlp.refFrame",
4225 FT_UINT32, BASE_DEC, NULL, 0,
4228 { "gpsTOW", "rrlp.gpsTOW",
4229 FT_UINT32, BASE_DEC, NULL, 0,
4230 "LocationInfo/gpsTOW", HFILL }},
4232 { "fixType", "rrlp.fixType",
4233 FT_UINT32, BASE_DEC, VALS(rrlp_FixType_vals), 0,
4234 "LocationInfo/fixType", HFILL }},
4235 { &hf_rrlp_posEstimate,
4236 { "posEstimate", "rrlp.posEstimate",
4237 FT_BYTES, BASE_HEX, NULL, 0,
4238 "LocationInfo/posEstimate", HFILL }},
4239 { &hf_rrlp_gpsMsrSetList,
4240 { "gpsMsrSetList", "rrlp.gpsMsrSetList",
4241 FT_UINT32, BASE_DEC, NULL, 0,
4242 "GPS-MeasureInfo/gpsMsrSetList", HFILL }},
4243 { &hf_rrlp_SeqOfGPS_MsrSetElement_item,
4244 { "Item", "rrlp.SeqOfGPS_MsrSetElement_item",
4245 FT_NONE, BASE_NONE, NULL, 0,
4246 "SeqOfGPS-MsrSetElement/_item", HFILL }},
4248 { "gpsTOW", "rrlp.gpsTOW",
4249 FT_UINT32, BASE_DEC, NULL, 0,
4250 "GPS-MsrSetElement/gpsTOW", HFILL }},
4251 { &hf_rrlp_gps_msrList,
4252 { "gps-msrList", "rrlp.gps_msrList",
4253 FT_UINT32, BASE_DEC, NULL, 0,
4254 "GPS-MsrSetElement/gps-msrList", HFILL }},
4255 { &hf_rrlp_SeqOfGPS_MsrElement_item,
4256 { "Item", "rrlp.SeqOfGPS_MsrElement_item",
4257 FT_NONE, BASE_NONE, NULL, 0,
4258 "SeqOfGPS-MsrElement/_item", HFILL }},
4259 { &hf_rrlp_satelliteID,
4260 { "satelliteID", "rrlp.satelliteID",
4261 FT_UINT32, BASE_DEC, NULL, 0,
4264 { "cNo", "rrlp.cNo",
4265 FT_UINT32, BASE_DEC, NULL, 0,
4266 "GPS-MsrElement/cNo", HFILL }},
4268 { "doppler", "rrlp.doppler",
4269 FT_INT32, BASE_DEC, NULL, 0,
4270 "GPS-MsrElement/doppler", HFILL }},
4271 { &hf_rrlp_wholeChips,
4272 { "wholeChips", "rrlp.wholeChips",
4273 FT_UINT32, BASE_DEC, NULL, 0,
4274 "GPS-MsrElement/wholeChips", HFILL }},
4275 { &hf_rrlp_fracChips,
4276 { "fracChips", "rrlp.fracChips",
4277 FT_UINT32, BASE_DEC, NULL, 0,
4278 "GPS-MsrElement/fracChips", HFILL }},
4279 { &hf_rrlp_mpathIndic,
4280 { "mpathIndic", "rrlp.mpathIndic",
4281 FT_UINT32, BASE_DEC, VALS(rrlp_MpathIndic_vals), 0,
4282 "GPS-MsrElement/mpathIndic", HFILL }},
4283 { &hf_rrlp_pseuRangeRMSErr,
4284 { "pseuRangeRMSErr", "rrlp.pseuRangeRMSErr",
4285 FT_UINT32, BASE_DEC, NULL, 0,
4286 "GPS-MsrElement/pseuRangeRMSErr", HFILL }},
4287 { &hf_rrlp_locErrorReason,
4288 { "locErrorReason", "rrlp.locErrorReason",
4289 FT_UINT32, BASE_DEC, VALS(rrlp_LocErrorReason_vals), 0,
4290 "LocationError/locErrorReason", HFILL }},
4291 { &hf_rrlp_additionalAssistanceData,
4292 { "additionalAssistanceData", "rrlp.additionalAssistanceData",
4293 FT_NONE, BASE_NONE, NULL, 0,
4294 "LocationError/additionalAssistanceData", HFILL }},
4295 { &hf_rrlp_gpsAssistanceData,
4296 { "gpsAssistanceData", "rrlp.gpsAssistanceData",
4297 FT_BYTES, BASE_HEX, NULL, 0,
4298 "AdditionalAssistanceData/gpsAssistanceData", HFILL }},
4299 { &hf_rrlp_controlHeader,
4300 { "controlHeader", "rrlp.controlHeader",
4301 FT_NONE, BASE_NONE, NULL, 0,
4302 "GPS-AssistData/controlHeader", HFILL }},
4303 { &hf_rrlp_referenceTime,
4304 { "referenceTime", "rrlp.referenceTime",
4305 FT_NONE, BASE_NONE, NULL, 0,
4306 "ControlHeader/referenceTime", HFILL }},
4307 { &hf_rrlp_refLocation,
4308 { "refLocation", "rrlp.refLocation",
4309 FT_NONE, BASE_NONE, NULL, 0,
4310 "ControlHeader/refLocation", HFILL }},
4311 { &hf_rrlp_dgpsCorrections,
4312 { "dgpsCorrections", "rrlp.dgpsCorrections",
4313 FT_NONE, BASE_NONE, NULL, 0,
4314 "ControlHeader/dgpsCorrections", HFILL }},
4315 { &hf_rrlp_navigationModel,
4316 { "navigationModel", "rrlp.navigationModel",
4317 FT_NONE, BASE_NONE, NULL, 0,
4318 "ControlHeader/navigationModel", HFILL }},
4319 { &hf_rrlp_ionosphericModel,
4320 { "ionosphericModel", "rrlp.ionosphericModel",
4321 FT_NONE, BASE_NONE, NULL, 0,
4322 "ControlHeader/ionosphericModel", HFILL }},
4323 { &hf_rrlp_utcModel,
4324 { "utcModel", "rrlp.utcModel",
4325 FT_NONE, BASE_NONE, NULL, 0,
4326 "ControlHeader/utcModel", HFILL }},
4328 { "almanac", "rrlp.almanac",
4329 FT_NONE, BASE_NONE, NULL, 0,
4330 "ControlHeader/almanac", HFILL }},
4331 { &hf_rrlp_acquisAssist,
4332 { "acquisAssist", "rrlp.acquisAssist",
4333 FT_NONE, BASE_NONE, NULL, 0,
4334 "ControlHeader/acquisAssist", HFILL }},
4335 { &hf_rrlp_realTimeIntegrity,
4336 { "realTimeIntegrity", "rrlp.realTimeIntegrity",
4337 FT_UINT32, BASE_DEC, NULL, 0,
4338 "ControlHeader/realTimeIntegrity", HFILL }},
4340 { "gpsTime", "rrlp.gpsTime",
4341 FT_NONE, BASE_NONE, NULL, 0,
4342 "ReferenceTime/gpsTime", HFILL }},
4344 { "gsmTime", "rrlp.gsmTime",
4345 FT_NONE, BASE_NONE, NULL, 0,
4347 { &hf_rrlp_gpsTowAssist,
4348 { "gpsTowAssist", "rrlp.gpsTowAssist",
4349 FT_UINT32, BASE_DEC, NULL, 0,
4350 "ReferenceTime/gpsTowAssist", HFILL }},
4351 { &hf_rrlp_gpsTOW23b,
4352 { "gpsTOW23b", "rrlp.gpsTOW23b",
4353 FT_UINT32, BASE_DEC, NULL, 0,
4354 "GPSTime/gpsTOW23b", HFILL }},
4356 { "gpsWeek", "rrlp.gpsWeek",
4357 FT_UINT32, BASE_DEC, NULL, 0,
4358 "GPSTime/gpsWeek", HFILL }},
4359 { &hf_rrlp_GPSTOWAssist_item,
4360 { "Item", "rrlp.GPSTOWAssist_item",
4361 FT_NONE, BASE_NONE, NULL, 0,
4362 "GPSTOWAssist/_item", HFILL }},
4364 { "tlmWord", "rrlp.tlmWord",
4365 FT_UINT32, BASE_DEC, NULL, 0,
4366 "GPSTOWAssistElement/tlmWord", HFILL }},
4367 { &hf_rrlp_antiSpoof,
4368 { "antiSpoof", "rrlp.antiSpoof",
4369 FT_UINT32, BASE_DEC, NULL, 0,
4370 "GPSTOWAssistElement/antiSpoof", HFILL }},
4372 { "alert", "rrlp.alert",
4373 FT_UINT32, BASE_DEC, NULL, 0,
4374 "GPSTOWAssistElement/alert", HFILL }},
4375 { &hf_rrlp_tlmRsvdBits,
4376 { "tlmRsvdBits", "rrlp.tlmRsvdBits",
4377 FT_UINT32, BASE_DEC, NULL, 0,
4378 "GPSTOWAssistElement/tlmRsvdBits", HFILL }},
4379 { &hf_rrlp_frameNumber,
4380 { "frameNumber", "rrlp.frameNumber",
4381 FT_UINT32, BASE_DEC, NULL, 0,
4382 "GSMTime/frameNumber", HFILL }},
4383 { &hf_rrlp_timeSlot,
4384 { "timeSlot", "rrlp.timeSlot",
4385 FT_UINT32, BASE_DEC, NULL, 0,
4386 "GSMTime/timeSlot", HFILL }},
4387 { &hf_rrlp_bitNumber,
4388 { "bitNumber", "rrlp.bitNumber",
4389 FT_UINT32, BASE_DEC, NULL, 0,
4390 "GSMTime/bitNumber", HFILL }},
4391 { &hf_rrlp_threeDLocation,
4392 { "threeDLocation", "rrlp.threeDLocation",
4393 FT_BYTES, BASE_HEX, NULL, 0,
4394 "RefLocation/threeDLocation", HFILL }},
4396 { "gpsTOW", "rrlp.gpsTOW",
4397 FT_UINT32, BASE_DEC, NULL, 0,
4398 "DGPSCorrections/gpsTOW", HFILL }},
4400 { "status", "rrlp.status",
4401 FT_UINT32, BASE_DEC, NULL, 0,
4402 "DGPSCorrections/status", HFILL }},
4404 { "satList", "rrlp.satList",
4405 FT_UINT32, BASE_DEC, NULL, 0,
4406 "DGPSCorrections/satList", HFILL }},
4407 { &hf_rrlp_SeqOfSatElement_item,
4408 { "Item", "rrlp.SeqOfSatElement_item",
4409 FT_NONE, BASE_NONE, NULL, 0,
4410 "SeqOfSatElement/_item", HFILL }},
4412 { "iode", "rrlp.iode",
4413 FT_UINT32, BASE_DEC, NULL, 0,
4414 "SatElement/iode", HFILL }},
4416 { "udre", "rrlp.udre",
4417 FT_UINT32, BASE_DEC, NULL, 0,
4418 "SatElement/udre", HFILL }},
4419 { &hf_rrlp_pseudoRangeCor,
4420 { "pseudoRangeCor", "rrlp.pseudoRangeCor",
4421 FT_INT32, BASE_DEC, NULL, 0,
4422 "SatElement/pseudoRangeCor", HFILL }},
4423 { &hf_rrlp_rangeRateCor,
4424 { "rangeRateCor", "rrlp.rangeRateCor",
4425 FT_INT32, BASE_DEC, NULL, 0,
4426 "SatElement/rangeRateCor", HFILL }},
4427 { &hf_rrlp_deltaPseudoRangeCor2,
4428 { "deltaPseudoRangeCor2", "rrlp.deltaPseudoRangeCor2",
4429 FT_INT32, BASE_DEC, NULL, 0,
4430 "SatElement/deltaPseudoRangeCor2", HFILL }},
4431 { &hf_rrlp_deltaRangeRateCor2,
4432 { "deltaRangeRateCor2", "rrlp.deltaRangeRateCor2",
4433 FT_INT32, BASE_DEC, NULL, 0,
4434 "SatElement/deltaRangeRateCor2", HFILL }},
4435 { &hf_rrlp_deltaPseudoRangeCor3,
4436 { "deltaPseudoRangeCor3", "rrlp.deltaPseudoRangeCor3",
4437 FT_INT32, BASE_DEC, NULL, 0,
4438 "SatElement/deltaPseudoRangeCor3", HFILL }},
4439 { &hf_rrlp_deltaRangeRateCor3,
4440 { "deltaRangeRateCor3", "rrlp.deltaRangeRateCor3",
4441 FT_INT32, BASE_DEC, NULL, 0,
4442 "SatElement/deltaRangeRateCor3", HFILL }},
4443 { &hf_rrlp_navModelList,
4444 { "navModelList", "rrlp.navModelList",
4445 FT_UINT32, BASE_DEC, NULL, 0,
4446 "NavigationModel/navModelList", HFILL }},
4447 { &hf_rrlp_SeqOfNavModelElement_item,
4448 { "Item", "rrlp.SeqOfNavModelElement_item",
4449 FT_NONE, BASE_NONE, NULL, 0,
4450 "SeqOfNavModelElement/_item", HFILL }},
4451 { &hf_rrlp_satStatus,
4452 { "satStatus", "rrlp.satStatus",
4453 FT_UINT32, BASE_DEC, VALS(rrlp_SatStatus_vals), 0,
4454 "NavModelElement/satStatus", HFILL }},
4455 { &hf_rrlp_newSatelliteAndModelUC,
4456 { "newSatelliteAndModelUC", "rrlp.newSatelliteAndModelUC",
4457 FT_NONE, BASE_NONE, NULL, 0,
4458 "SatStatus/newSatelliteAndModelUC", HFILL }},
4459 { &hf_rrlp_oldSatelliteAndModel,
4460 { "oldSatelliteAndModel", "rrlp.oldSatelliteAndModel",
4461 FT_NONE, BASE_NONE, NULL, 0,
4462 "SatStatus/oldSatelliteAndModel", HFILL }},
4463 { &hf_rrlp_newNaviModelUC,
4464 { "newNaviModelUC", "rrlp.newNaviModelUC",
4465 FT_NONE, BASE_NONE, NULL, 0,
4466 "SatStatus/newNaviModelUC", HFILL }},
4467 { &hf_rrlp_ephemCodeOnL2,
4468 { "ephemCodeOnL2", "rrlp.ephemCodeOnL2",
4469 FT_UINT32, BASE_DEC, NULL, 0,
4470 "UncompressedEphemeris/ephemCodeOnL2", HFILL }},
4471 { &hf_rrlp_ephemURA,
4472 { "ephemURA", "rrlp.ephemURA",
4473 FT_UINT32, BASE_DEC, NULL, 0,
4474 "UncompressedEphemeris/ephemURA", HFILL }},
4475 { &hf_rrlp_ephemSVhealth,
4476 { "ephemSVhealth", "rrlp.ephemSVhealth",
4477 FT_UINT32, BASE_DEC, NULL, 0,
4478 "UncompressedEphemeris/ephemSVhealth", HFILL }},
4479 { &hf_rrlp_ephemIODC,
4480 { "ephemIODC", "rrlp.ephemIODC",
4481 FT_UINT32, BASE_DEC, NULL, 0,
4482 "UncompressedEphemeris/ephemIODC", HFILL }},
4483 { &hf_rrlp_ephemL2Pflag,
4484 { "ephemL2Pflag", "rrlp.ephemL2Pflag",
4485 FT_UINT32, BASE_DEC, NULL, 0,
4486 "UncompressedEphemeris/ephemL2Pflag", HFILL }},
4487 { &hf_rrlp_ephemSF1Rsvd,
4488 { "ephemSF1Rsvd", "rrlp.ephemSF1Rsvd",
4489 FT_NONE, BASE_NONE, NULL, 0,
4490 "UncompressedEphemeris/ephemSF1Rsvd", HFILL }},
4491 { &hf_rrlp_ephemTgd,
4492 { "ephemTgd", "rrlp.ephemTgd",
4493 FT_INT32, BASE_DEC, NULL, 0,
4494 "UncompressedEphemeris/ephemTgd", HFILL }},
4495 { &hf_rrlp_ephemToc,
4496 { "ephemToc", "rrlp.ephemToc",
4497 FT_UINT32, BASE_DEC, NULL, 0,
4498 "UncompressedEphemeris/ephemToc", HFILL }},
4499 { &hf_rrlp_ephemAF2,
4500 { "ephemAF2", "rrlp.ephemAF2",
4501 FT_INT32, BASE_DEC, NULL, 0,
4502 "UncompressedEphemeris/ephemAF2", HFILL }},
4503 { &hf_rrlp_ephemAF1,
4504 { "ephemAF1", "rrlp.ephemAF1",
4505 FT_INT32, BASE_DEC, NULL, 0,
4506 "UncompressedEphemeris/ephemAF1", HFILL }},
4507 { &hf_rrlp_ephemAF0,
4508 { "ephemAF0", "rrlp.ephemAF0",
4509 FT_INT32, BASE_DEC, NULL, 0,
4510 "UncompressedEphemeris/ephemAF0", HFILL }},
4511 { &hf_rrlp_ephemCrs,
4512 { "ephemCrs", "rrlp.ephemCrs",
4513 FT_INT32, BASE_DEC, NULL, 0,
4514 "UncompressedEphemeris/ephemCrs", HFILL }},
4515 { &hf_rrlp_ephemDeltaN,
4516 { "ephemDeltaN", "rrlp.ephemDeltaN",
4517 FT_INT32, BASE_DEC, NULL, 0,
4518 "UncompressedEphemeris/ephemDeltaN", HFILL }},
4520 { "ephemM0", "rrlp.ephemM0",
4521 FT_INT32, BASE_DEC, NULL, 0,
4522 "UncompressedEphemeris/ephemM0", HFILL }},
4523 { &hf_rrlp_ephemCuc,
4524 { "ephemCuc", "rrlp.ephemCuc",
4525 FT_INT32, BASE_DEC, NULL, 0,
4526 "UncompressedEphemeris/ephemCuc", HFILL }},
4528 { "ephemE", "rrlp.ephemE",
4529 FT_UINT32, BASE_DEC, NULL, 0,
4530 "UncompressedEphemeris/ephemE", HFILL }},
4531 { &hf_rrlp_ephemCus,
4532 { "ephemCus", "rrlp.ephemCus",
4533 FT_INT32, BASE_DEC, NULL, 0,
4534 "UncompressedEphemeris/ephemCus", HFILL }},
4535 { &hf_rrlp_ephemAPowerHalf,
4536 { "ephemAPowerHalf", "rrlp.ephemAPowerHalf",
4537 FT_UINT32, BASE_DEC, NULL, 0,
4538 "UncompressedEphemeris/ephemAPowerHalf", HFILL }},
4539 { &hf_rrlp_ephemToe,
4540 { "ephemToe", "rrlp.ephemToe",
4541 FT_UINT32, BASE_DEC, NULL, 0,
4542 "UncompressedEphemeris/ephemToe", HFILL }},
4543 { &hf_rrlp_ephemFitFlag,
4544 { "ephemFitFlag", "rrlp.ephemFitFlag",
4545 FT_UINT32, BASE_DEC, NULL, 0,
4546 "UncompressedEphemeris/ephemFitFlag", HFILL }},
4547 { &hf_rrlp_ephemAODA,
4548 { "ephemAODA", "rrlp.ephemAODA",
4549 FT_UINT32, BASE_DEC, NULL, 0,
4550 "UncompressedEphemeris/ephemAODA", HFILL }},
4551 { &hf_rrlp_ephemCic,
4552 { "ephemCic", "rrlp.ephemCic",
4553 FT_INT32, BASE_DEC, NULL, 0,
4554 "UncompressedEphemeris/ephemCic", HFILL }},
4555 { &hf_rrlp_ephemOmegaA0,
4556 { "ephemOmegaA0", "rrlp.ephemOmegaA0",
4557 FT_INT32, BASE_DEC, NULL, 0,
4558 "UncompressedEphemeris/ephemOmegaA0", HFILL }},
4559 { &hf_rrlp_ephemCis,
4560 { "ephemCis", "rrlp.ephemCis",
4561 FT_INT32, BASE_DEC, NULL, 0,
4562 "UncompressedEphemeris/ephemCis", HFILL }},
4564 { "ephemI0", "rrlp.ephemI0",
4565 FT_INT32, BASE_DEC, NULL, 0,
4566 "UncompressedEphemeris/ephemI0", HFILL }},
4567 { &hf_rrlp_ephemCrc,
4568 { "ephemCrc", "rrlp.ephemCrc",
4569 FT_INT32, BASE_DEC, NULL, 0,
4570 "UncompressedEphemeris/ephemCrc", HFILL }},
4572 { "ephemW", "rrlp.ephemW",
4573 FT_INT32, BASE_DEC, NULL, 0,
4574 "UncompressedEphemeris/ephemW", HFILL }},
4575 { &hf_rrlp_ephemOmegaADot,
4576 { "ephemOmegaADot", "rrlp.ephemOmegaADot",
4577 FT_INT32, BASE_DEC, NULL, 0,
4578 "UncompressedEphemeris/ephemOmegaADot", HFILL }},
4579 { &hf_rrlp_ephemIDot,
4580 { "ephemIDot", "rrlp.ephemIDot",
4581 FT_INT32, BASE_DEC, NULL, 0,
4582 "UncompressedEphemeris/ephemIDot", HFILL }},
4583 { &hf_rrlp_reserved1,
4584 { "reserved1", "rrlp.reserved1",
4585 FT_UINT32, BASE_DEC, NULL, 0,
4586 "EphemerisSubframe1Reserved/reserved1", HFILL }},
4587 { &hf_rrlp_reserved2,
4588 { "reserved2", "rrlp.reserved2",
4589 FT_UINT32, BASE_DEC, NULL, 0,
4590 "EphemerisSubframe1Reserved/reserved2", HFILL }},
4591 { &hf_rrlp_reserved3,
4592 { "reserved3", "rrlp.reserved3",
4593 FT_UINT32, BASE_DEC, NULL, 0,
4594 "EphemerisSubframe1Reserved/reserved3", HFILL }},
4595 { &hf_rrlp_reserved4,
4596 { "reserved4", "rrlp.reserved4",
4597 FT_UINT32, BASE_DEC, NULL, 0,
4598 "EphemerisSubframe1Reserved/reserved4", HFILL }},
4600 { "alfa0", "rrlp.alfa0",
4601 FT_INT32, BASE_DEC, NULL, 0,
4602 "IonosphericModel/alfa0", HFILL }},
4604 { "alfa1", "rrlp.alfa1",
4605 FT_INT32, BASE_DEC, NULL, 0,
4606 "IonosphericModel/alfa1", HFILL }},
4608 { "alfa2", "rrlp.alfa2",
4609 FT_INT32, BASE_DEC, NULL, 0,
4610 "IonosphericModel/alfa2", HFILL }},
4612 { "alfa3", "rrlp.alfa3",
4613 FT_INT32, BASE_DEC, NULL, 0,
4614 "IonosphericModel/alfa3", HFILL }},
4616 { "beta0", "rrlp.beta0",
4617 FT_INT32, BASE_DEC, NULL, 0,
4618 "IonosphericModel/beta0", HFILL }},
4620 { "beta1", "rrlp.beta1",
4621 FT_INT32, BASE_DEC, NULL, 0,
4622 "IonosphericModel/beta1", HFILL }},
4624 { "beta2", "rrlp.beta2",
4625 FT_INT32, BASE_DEC, NULL, 0,
4626 "IonosphericModel/beta2", HFILL }},
4628 { "beta3", "rrlp.beta3",
4629 FT_INT32, BASE_DEC, NULL, 0,
4630 "IonosphericModel/beta3", HFILL }},
4632 { "utcA1", "rrlp.utcA1",
4633 FT_INT32, BASE_DEC, NULL, 0,
4634 "UTCModel/utcA1", HFILL }},
4636 { "utcA0", "rrlp.utcA0",
4637 FT_INT32, BASE_DEC, NULL, 0,
4638 "UTCModel/utcA0", HFILL }},
4640 { "utcTot", "rrlp.utcTot",
4641 FT_UINT32, BASE_DEC, NULL, 0,
4642 "UTCModel/utcTot", HFILL }},
4644 { "utcWNt", "rrlp.utcWNt",
4645 FT_UINT32, BASE_DEC, NULL, 0,
4646 "UTCModel/utcWNt", HFILL }},
4647 { &hf_rrlp_utcDeltaTls,
4648 { "utcDeltaTls", "rrlp.utcDeltaTls",
4649 FT_INT32, BASE_DEC, NULL, 0,
4650 "UTCModel/utcDeltaTls", HFILL }},
4651 { &hf_rrlp_utcWNlsf,
4652 { "utcWNlsf", "rrlp.utcWNlsf",
4653 FT_UINT32, BASE_DEC, NULL, 0,
4654 "UTCModel/utcWNlsf", HFILL }},
4656 { "utcDN", "rrlp.utcDN",
4657 FT_INT32, BASE_DEC, NULL, 0,
4658 "UTCModel/utcDN", HFILL }},
4659 { &hf_rrlp_utcDeltaTlsf,
4660 { "utcDeltaTlsf", "rrlp.utcDeltaTlsf",
4661 FT_INT32, BASE_DEC, NULL, 0,
4662 "UTCModel/utcDeltaTlsf", HFILL }},
4663 { &hf_rrlp_alamanacWNa,
4664 { "alamanacWNa", "rrlp.alamanacWNa",
4665 FT_UINT32, BASE_DEC, NULL, 0,
4666 "Almanac/alamanacWNa", HFILL }},
4667 { &hf_rrlp_almanacList,
4668 { "almanacList", "rrlp.almanacList",
4669 FT_UINT32, BASE_DEC, NULL, 0,
4670 "Almanac/almanacList", HFILL }},
4671 { &hf_rrlp_SeqOfAlmanacElement_item,
4672 { "Item", "rrlp.SeqOfAlmanacElement_item",
4673 FT_NONE, BASE_NONE, NULL, 0,
4674 "SeqOfAlmanacElement/_item", HFILL }},
4675 { &hf_rrlp_almanacE,
4676 { "almanacE", "rrlp.almanacE",
4677 FT_UINT32, BASE_DEC, NULL, 0,
4678 "AlmanacElement/almanacE", HFILL }},
4679 { &hf_rrlp_alamanacToa,
4680 { "alamanacToa", "rrlp.alamanacToa",
4681 FT_UINT32, BASE_DEC, NULL, 0,
4682 "AlmanacElement/alamanacToa", HFILL }},
4683 { &hf_rrlp_almanacKsii,
4684 { "almanacKsii", "rrlp.almanacKsii",
4685 FT_INT32, BASE_DEC, NULL, 0,
4686 "AlmanacElement/almanacKsii", HFILL }},
4687 { &hf_rrlp_almanacOmegaDot,
4688 { "almanacOmegaDot", "rrlp.almanacOmegaDot",
4689 FT_INT32, BASE_DEC, NULL, 0,
4690 "AlmanacElement/almanacOmegaDot", HFILL }},
4691 { &hf_rrlp_almanacSVhealth,
4692 { "almanacSVhealth", "rrlp.almanacSVhealth",
4693 FT_UINT32, BASE_DEC, NULL, 0,
4694 "AlmanacElement/almanacSVhealth", HFILL }},
4695 { &hf_rrlp_almanacAPowerHalf,
4696 { "almanacAPowerHalf", "rrlp.almanacAPowerHalf",
4697 FT_UINT32, BASE_DEC, NULL, 0,
4698 "AlmanacElement/almanacAPowerHalf", HFILL }},
4699 { &hf_rrlp_almanacOmega0,
4700 { "almanacOmega0", "rrlp.almanacOmega0",
4701 FT_INT32, BASE_DEC, NULL, 0,
4702 "AlmanacElement/almanacOmega0", HFILL }},
4703 { &hf_rrlp_almanacW,
4704 { "almanacW", "rrlp.almanacW",
4705 FT_INT32, BASE_DEC, NULL, 0,
4706 "AlmanacElement/almanacW", HFILL }},
4707 { &hf_rrlp_almanacM0,
4708 { "almanacM0", "rrlp.almanacM0",
4709 FT_INT32, BASE_DEC, NULL, 0,
4710 "AlmanacElement/almanacM0", HFILL }},
4711 { &hf_rrlp_almanacAF0,
4712 { "almanacAF0", "rrlp.almanacAF0",
4713 FT_INT32, BASE_DEC, NULL, 0,
4714 "AlmanacElement/almanacAF0", HFILL }},
4715 { &hf_rrlp_almanacAF1,
4716 { "almanacAF1", "rrlp.almanacAF1",
4717 FT_INT32, BASE_DEC, NULL, 0,
4718 "AlmanacElement/almanacAF1", HFILL }},
4719 { &hf_rrlp_timeRelation,
4720 { "timeRelation", "rrlp.timeRelation",
4721 FT_NONE, BASE_NONE, NULL, 0,
4722 "AcquisAssist/timeRelation", HFILL }},
4723 { &hf_rrlp_acquisList,
4724 { "acquisList", "rrlp.acquisList",
4725 FT_UINT32, BASE_DEC, NULL, 0,
4726 "AcquisAssist/acquisList", HFILL }},
4727 { &hf_rrlp_SeqOfAcquisElement_item,
4728 { "Item", "rrlp.SeqOfAcquisElement_item",
4729 FT_NONE, BASE_NONE, NULL, 0,
4730 "SeqOfAcquisElement/_item", HFILL }},
4732 { "gpsTOW", "rrlp.gpsTOW",
4733 FT_UINT32, BASE_DEC, NULL, 0,
4734 "TimeRelation/gpsTOW", HFILL }},
4736 { "svid", "rrlp.svid",
4737 FT_UINT32, BASE_DEC, NULL, 0,
4738 "AcquisElement/svid", HFILL }},
4739 { &hf_rrlp_doppler0,
4740 { "doppler0", "rrlp.doppler0",
4741 FT_INT32, BASE_DEC, NULL, 0,
4742 "AcquisElement/doppler0", HFILL }},
4743 { &hf_rrlp_addionalDoppler,
4744 { "addionalDoppler", "rrlp.addionalDoppler",
4745 FT_NONE, BASE_NONE, NULL, 0,
4746 "AcquisElement/addionalDoppler", HFILL }},
4747 { &hf_rrlp_codePhase,
4748 { "codePhase", "rrlp.codePhase",
4749 FT_UINT32, BASE_DEC, NULL, 0,
4750 "AcquisElement/codePhase", HFILL }},
4751 { &hf_rrlp_intCodePhase,
4752 { "intCodePhase", "rrlp.intCodePhase",
4753 FT_UINT32, BASE_DEC, NULL, 0,
4754 "AcquisElement/intCodePhase", HFILL }},
4755 { &hf_rrlp_gpsBitNumber,
4756 { "gpsBitNumber", "rrlp.gpsBitNumber",
4757 FT_UINT32, BASE_DEC, NULL, 0,
4758 "AcquisElement/gpsBitNumber", HFILL }},
4759 { &hf_rrlp_codePhaseSearchWindow,
4760 { "codePhaseSearchWindow", "rrlp.codePhaseSearchWindow",
4761 FT_UINT32, BASE_DEC, NULL, 0,
4762 "AcquisElement/codePhaseSearchWindow", HFILL }},
4763 { &hf_rrlp_addionalAngle,
4764 { "addionalAngle", "rrlp.addionalAngle",
4765 FT_NONE, BASE_NONE, NULL, 0,
4766 "AcquisElement/addionalAngle", HFILL }},
4767 { &hf_rrlp_doppler1,
4768 { "doppler1", "rrlp.doppler1",
4769 FT_UINT32, BASE_DEC, NULL, 0,
4770 "AddionalDopplerFields/doppler1", HFILL }},
4771 { &hf_rrlp_dopplerUncertainty,
4772 { "dopplerUncertainty", "rrlp.dopplerUncertainty",
4773 FT_UINT32, BASE_DEC, NULL, 0,
4774 "AddionalDopplerFields/dopplerUncertainty", HFILL }},
4776 { "azimuth", "rrlp.azimuth",
4777 FT_UINT32, BASE_DEC, NULL, 0,
4778 "AddionalAngleFields/azimuth", HFILL }},
4779 { &hf_rrlp_elevation,
4780 { "elevation", "rrlp.elevation",
4781 FT_UINT32, BASE_DEC, NULL, 0,
4782 "AddionalAngleFields/elevation", HFILL }},
4783 { &hf_rrlp_SeqOf_BadSatelliteSet_item,
4784 { "Item", "rrlp.SeqOf_BadSatelliteSet_item",
4785 FT_UINT32, BASE_DEC, NULL, 0,
4786 "SeqOf-BadSatelliteSet/_item", HFILL }},
4787 { &hf_rrlp_rel98_Ext_ExpOTD,
4788 { "rel98-Ext-ExpOTD", "rrlp.rel98_Ext_ExpOTD",
4789 FT_NONE, BASE_NONE, NULL, 0,
4791 { &hf_rrlp_gpsTimeAssistanceMeasurementRequest,
4792 { "gpsTimeAssistanceMeasurementRequest", "rrlp.gpsTimeAssistanceMeasurementRequest",
4793 FT_NONE, BASE_NONE, NULL, 0,
4795 { &hf_rrlp_gpsReferenceTimeUncertainty,
4796 { "gpsReferenceTimeUncertainty", "rrlp.gpsReferenceTimeUncertainty",
4797 FT_UINT32, BASE_DEC, NULL, 0,
4799 { &hf_rrlp_msrAssistData_R98_ExpOTD,
4800 { "msrAssistData-R98-ExpOTD", "rrlp.msrAssistData_R98_ExpOTD",
4801 FT_NONE, BASE_NONE, NULL, 0,
4802 "Rel98-Ext-ExpOTD/msrAssistData-R98-ExpOTD", HFILL }},
4803 { &hf_rrlp_systemInfoAssistData_R98_ExpOTD,
4804 { "systemInfoAssistData-R98-ExpOTD", "rrlp.systemInfoAssistData_R98_ExpOTD",
4805 FT_NONE, BASE_NONE, NULL, 0,
4806 "Rel98-Ext-ExpOTD/systemInfoAssistData-R98-ExpOTD", HFILL }},
4807 { &hf_rrlp_msrAssistList_R98_ExpOTD,
4808 { "msrAssistList-R98-ExpOTD", "rrlp.msrAssistList_R98_ExpOTD",
4809 FT_UINT32, BASE_DEC, NULL, 0,
4810 "MsrAssistData-R98-ExpOTD/msrAssistList-R98-ExpOTD", HFILL }},
4811 { &hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item,
4812 { "Item", "rrlp.SeqOfMsrAssistBTS_R98_ExpOTD_item",
4813 FT_NONE, BASE_NONE, NULL, 0,
4814 "SeqOfMsrAssistBTS-R98-ExpOTD/_item", HFILL }},
4815 { &hf_rrlp_expectedOTD,
4816 { "expectedOTD", "rrlp.expectedOTD",
4817 FT_UINT32, BASE_DEC, NULL, 0,
4819 { &hf_rrlp_expOTDUncertainty,
4820 { "expOTDUncertainty", "rrlp.expOTDUncertainty",
4821 FT_UINT32, BASE_DEC, NULL, 0,
4822 "MsrAssistBTS-R98-ExpOTD/expOTDUncertainty", HFILL }},
4823 { &hf_rrlp_systemInfoAssistListR98_ExpOTD,
4824 { "systemInfoAssistListR98-ExpOTD", "rrlp.systemInfoAssistListR98_ExpOTD",
4825 FT_UINT32, BASE_DEC, NULL, 0,
4826 "SystemInfoAssistData-R98-ExpOTD/systemInfoAssistListR98-ExpOTD", HFILL }},
4827 { &hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item,
4828 { "Item", "rrlp.SeqOfSystemInfoAssistBTS_R98_ExpOTD_item",
4829 FT_UINT32, BASE_DEC, VALS(rrlp_SystemInfoAssistBTS_R98_ExpOTD_vals), 0,
4830 "SeqOfSystemInfoAssistBTS-R98-ExpOTD/_item", HFILL }},
4831 { &hf_rrlp_present1,
4832 { "present", "rrlp.present",
4833 FT_NONE, BASE_NONE, NULL, 0,
4834 "SystemInfoAssistBTS-R98-ExpOTD/present", HFILL }},
4835 { &hf_rrlp_expOTDuncertainty,
4836 { "expOTDuncertainty", "rrlp.expOTDuncertainty",
4837 FT_UINT32, BASE_DEC, NULL, 0,
4838 "AssistBTSData-R98-ExpOTD/expOTDuncertainty", HFILL }},
4839 { &hf_rrlp_referenceFrameMSB,
4840 { "referenceFrameMSB", "rrlp.referenceFrameMSB",
4841 FT_UINT32, BASE_DEC, NULL, 0,
4842 "GPSTimeAssistanceMeasurements/referenceFrameMSB", HFILL }},
4843 { &hf_rrlp_gpsTowSubms,
4844 { "gpsTowSubms", "rrlp.gpsTowSubms",
4845 FT_UINT32, BASE_DEC, NULL, 0,
4846 "GPSTimeAssistanceMeasurements/gpsTowSubms", HFILL }},
4847 { &hf_rrlp_deltaTow,
4848 { "deltaTow", "rrlp.deltaTow",
4849 FT_UINT32, BASE_DEC, NULL, 0,
4850 "GPSTimeAssistanceMeasurements/deltaTow", HFILL }},
4851 { &hf_rrlp_rel_98_Ext_MeasureInfo,
4852 { "rel-98-Ext-MeasureInfo", "rrlp.rel_98_Ext_MeasureInfo",
4853 FT_NONE, BASE_NONE, NULL, 0,
4854 "Rel-98-MsrPosition-Rsp-Extension/rel-98-Ext-MeasureInfo", HFILL }},
4855 { &hf_rrlp_otd_MeasureInfo_R98_Ext,
4856 { "otd-MeasureInfo-R98-Ext", "rrlp.otd_MeasureInfo_R98_Ext",
4857 FT_NONE, BASE_NONE, NULL, 0,
4858 "Rel-98-MsrPosition-Rsp-Extension/rel-98-Ext-MeasureInfo/otd-MeasureInfo-R98-Ext", HFILL }},
4859 { &hf_rrlp_timeAssistanceMeasurements,
4860 { "timeAssistanceMeasurements", "rrlp.timeAssistanceMeasurements",
4861 FT_NONE, BASE_NONE, NULL, 0,
4862 "Rel-98-MsrPosition-Rsp-Extension/timeAssistanceMeasurements", HFILL }},
4863 { &hf_rrlp_otdMsrFirstSets_R98_Ext,
4864 { "otdMsrFirstSets-R98-Ext", "rrlp.otdMsrFirstSets_R98_Ext",
4865 FT_NONE, BASE_NONE, NULL, 0,
4866 "OTD-MeasureInfo-R98-Ext/otdMsrFirstSets-R98-Ext", HFILL }},
4867 { &hf_rrlp_otd_FirstSetMsrs_R98_Ext,
4868 { "otd-FirstSetMsrs-R98-Ext", "rrlp.otd_FirstSetMsrs_R98_Ext",
4869 FT_UINT32, BASE_DEC, NULL, 0,
4870 "OTD-MsrElementFirst-R98-Ext/otd-FirstSetMsrs-R98-Ext", HFILL }},
4871 { &hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item,
4872 { "Item", "rrlp.SeqOfOTD_FirstSetMsrs_R98_Ext_item",
4873 FT_NONE, BASE_NONE, NULL, 0,
4874 "SeqOfOTD-FirstSetMsrs-R98-Ext/_item", HFILL }},
4875 { &hf_rrlp_extended_reference,
4876 { "extended-reference", "rrlp.extended_reference",
4877 FT_NONE, BASE_NONE, NULL, 0,
4879 { &hf_rrlp_otd_MeasureInfo_5_Ext,
4880 { "otd-MeasureInfo-5-Ext", "rrlp.otd_MeasureInfo_5_Ext",
4881 FT_UINT32, BASE_DEC, NULL, 0,
4882 "Rel-5-MsrPosition-Rsp-Extension/otd-MeasureInfo-5-Ext", HFILL }},
4883 { &hf_rrlp_ulPseudoSegInd,
4884 { "ulPseudoSegInd", "rrlp.ulPseudoSegInd",
4885 FT_UINT32, BASE_DEC, VALS(rrlp_UlPseudoSegInd_vals), 0,
4886 "Rel-5-MsrPosition-Rsp-Extension/ulPseudoSegInd", HFILL }},
4887 { &hf_rrlp_smlc_code,
4888 { "smlc-code", "rrlp.smlc_code",
4889 FT_UINT32, BASE_DEC, NULL, 0,
4890 "Extended-reference/smlc-code", HFILL }},
4891 { &hf_rrlp_transaction_ID,
4892 { "transaction-ID", "rrlp.transaction_ID",
4893 FT_UINT32, BASE_DEC, NULL, 0,
4894 "Extended-reference/transaction-ID", HFILL }},
4896 /*--- End of included file: packet-rrlp-hfarr.c ---*/
4897 #line 77 "packet-rrlp-template.c"
4900 /* List of subtrees */
4901 static gint *ett[] = {
4904 /*--- Included file: packet-rrlp-ettarr.c ---*/
4905 #line 1 "packet-rrlp-ettarr.c"
4907 &ett_rrlp_RRLP_Component,
4908 &ett_rrlp_MsrPosition_Req,
4909 &ett_rrlp_MsrPosition_Rsp,
4910 &ett_rrlp_AssistanceData,
4911 &ett_rrlp_ProtocolError,
4912 &ett_rrlp_PositionInstruct,
4913 &ett_rrlp_MethodType,
4914 &ett_rrlp_AccuracyOpt,
4915 &ett_rrlp_ReferenceAssistData,
4916 &ett_rrlp_MsrAssistData,
4917 &ett_rrlp_SeqOfMsrAssistBTS,
4918 &ett_rrlp_MsrAssistBTS,
4919 &ett_rrlp_SystemInfoAssistData,
4920 &ett_rrlp_SeqOfSystemInfoAssistBTS,
4921 &ett_rrlp_SystemInfoAssistBTS,
4922 &ett_rrlp_AssistBTSData,
4923 &ett_rrlp_CalcAssistanceBTS,
4924 &ett_rrlp_ReferenceWGS84,
4925 &ett_rrlp_MultipleSets,
4926 &ett_rrlp_ReferenceIdentity,
4927 &ett_rrlp_SeqOfReferenceIdentityType,
4928 &ett_rrlp_ReferenceIdentityType,
4929 &ett_rrlp_BSICAndCarrier,
4930 &ett_rrlp_CellIDAndLAC,
4931 &ett_rrlp_OTD_MeasureInfo,
4932 &ett_rrlp_SeqOfOTD_MsrElementRest,
4933 &ett_rrlp_OTD_MsrElementFirst,
4934 &ett_rrlp_SeqOfOTD_FirstSetMsrs,
4935 &ett_rrlp_OTD_MsrElementRest,
4936 &ett_rrlp_SeqOfOTD_MsrsOfOtherSets,
4937 &ett_rrlp_TOA_MeasurementsOfRef,
4938 &ett_rrlp_OTD_MsrsOfOtherSets,
4939 &ett_rrlp_OTD_Measurement,
4940 &ett_rrlp_OTD_MeasurementWithID,
4941 &ett_rrlp_EOTDQuality,
4942 &ett_rrlp_NeighborIdentity,
4943 &ett_rrlp_MultiFrameCarrier,
4944 &ett_rrlp_LocationInfo,
4945 &ett_rrlp_GPS_MeasureInfo,
4946 &ett_rrlp_SeqOfGPS_MsrSetElement,
4947 &ett_rrlp_GPS_MsrSetElement,
4948 &ett_rrlp_SeqOfGPS_MsrElement,
4949 &ett_rrlp_GPS_MsrElement,
4950 &ett_rrlp_LocationError,
4951 &ett_rrlp_AdditionalAssistanceData,
4952 &ett_rrlp_GPS_AssistData,
4953 &ett_rrlp_ControlHeader,
4954 &ett_rrlp_ReferenceTime,
4956 &ett_rrlp_GPSTOWAssist,
4957 &ett_rrlp_GPSTOWAssistElement,
4959 &ett_rrlp_RefLocation,
4960 &ett_rrlp_DGPSCorrections,
4961 &ett_rrlp_SeqOfSatElement,
4962 &ett_rrlp_SatElement,
4963 &ett_rrlp_NavigationModel,
4964 &ett_rrlp_SeqOfNavModelElement,
4965 &ett_rrlp_NavModelElement,
4966 &ett_rrlp_SatStatus,
4967 &ett_rrlp_UncompressedEphemeris,
4968 &ett_rrlp_EphemerisSubframe1Reserved,
4969 &ett_rrlp_IonosphericModel,
4972 &ett_rrlp_SeqOfAlmanacElement,
4973 &ett_rrlp_AlmanacElement,
4974 &ett_rrlp_AcquisAssist,
4975 &ett_rrlp_SeqOfAcquisElement,
4976 &ett_rrlp_TimeRelation,
4977 &ett_rrlp_AcquisElement,
4978 &ett_rrlp_AddionalDopplerFields,
4979 &ett_rrlp_AddionalAngleFields,
4980 &ett_rrlp_SeqOf_BadSatelliteSet,
4981 &ett_rrlp_Rel98_MsrPosition_Req_Extension,
4982 &ett_rrlp_Rel98_AssistanceData_Extension,
4983 &ett_rrlp_Rel98_Ext_ExpOTD,
4984 &ett_rrlp_MsrAssistData_R98_ExpOTD,
4985 &ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD,
4986 &ett_rrlp_MsrAssistBTS_R98_ExpOTD,
4987 &ett_rrlp_SystemInfoAssistData_R98_ExpOTD,
4988 &ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD,
4989 &ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD,
4990 &ett_rrlp_AssistBTSData_R98_ExpOTD,
4991 &ett_rrlp_GPSTimeAssistanceMeasurements,
4992 &ett_rrlp_Rel_98_MsrPosition_Rsp_Extension,
4993 &ett_rrlp_T_rel_98_Ext_MeasureInfo,
4994 &ett_rrlp_OTD_MeasureInfo_R98_Ext,
4995 &ett_rrlp_OTD_MsrElementFirst_R98_Ext,
4996 &ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext,
4997 &ett_rrlp_Rel_5_MsrPosition_Rsp_Extension,
4998 &ett_rrlp_Extended_reference,
4999 &ett_rrlp_Rel5_MsrPosition_Req_Extension,
5000 &ett_rrlp_Rel5_AssistanceData_Extension,
5001 &ett_rrlp_Rel_5_ProtocolError_Extension,
5003 /*--- End of included file: packet-rrlp-ettarr.c ---*/
5004 #line 83 "packet-rrlp-template.c"
5008 /* Register protocol */
5009 proto_rrlp = proto_register_protocol(PNAME, PSNAME, PFNAME);
5010 register_dissector("rrlp", dissect_PDU_PDU, proto_rrlp);
5012 /* Register fields and subtrees */
5013 proto_register_field_array(proto_rrlp, hf, array_length(hf));
5014 proto_register_subtree_array(ett, array_length(ett));
5020 /*--- proto_reg_handoff_rrlp ---------------------------------------*/
5022 proto_reg_handoff_rrlp(void)
5025 rrlp_handle = create_dissector_handle(dissect_PDU_PDU, proto_rrlp);