change a whole bunch of ethereal into wireshark
[obnox/wireshark/wip.git] / epan / dissectors / packet-rrlp.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler    */
3 /* .\packet-rrlp.c                                                            */
4 /* ../../tools/asn2eth.py -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
5
6 /* Input file: packet-rrlp-template.c */
7
8 #line 1 "packet-rrlp-template.c"
9 /* packet-rrlp.c
10  * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
11  * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  *
33  * Ref 3GPP TS 44.031 version 6.8.0 Release 6
34  * http://www.3gpp.org
35  */
36
37 #ifdef HAVE_CONFIG_H
38 # include "config.h"
39 #endif
40
41 #include <glib.h>
42 #include <epan/packet.h>
43 #include <epan/conversation.h>
44
45 #include <stdio.h>
46 #include <string.h>
47
48 #include "packet-rrlp.h"
49
50 #include "packet-ber.h"
51 #include "packet-per.h"
52 #include "packet-gsm_map.h"
53
54 #define PNAME  "Radio Resource LCS Protocol (RRLP)"
55 #define PSNAME "RRLP"
56 #define PFNAME "rrlp"
57
58 static dissector_handle_t rrlp_handle=NULL;
59
60
61 /* Initialize the protocol and registered fields */
62 static int proto_rrlp = -1;
63
64
65
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 */
329
330 /*--- End of included file: packet-rrlp-hf.c ---*/
331 #line 58 "packet-rrlp-template.c"
332
333 /* Initialize the subtree pointers */
334 static gint ett_rrlp = -1;
335
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;
434
435 /*--- End of included file: packet-rrlp-ett.c ---*/
436 #line 62 "packet-rrlp-template.c"
437
438 /* Include constants */
439
440 /*--- Included file: packet-rrlp-val.h ---*/
441 #line 1 "packet-rrlp-val.h"
442 #define maxGPSAssistanceData           40
443
444 /*--- End of included file: packet-rrlp-val.h ---*/
445 #line 65 "packet-rrlp-template.c"
446
447
448
449 /*--- Included file: packet-rrlp-fn.c ---*/
450 #line 1 "packet-rrlp-fn.c"
451 /*--- Fields for imported types ---*/
452
453
454
455
456 static int
457 dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
458 #line 23 "rrlp.cnf"
459
460 tvbuff_t *parameter_tvb = NULL;
461
462     offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
463                                        1, 20, &parameter_tvb);
464
465
466   if(parameter_tvb)
467         dissect_geographical_description(parameter_tvb, pinfo, tree);
468
469
470   return offset;
471 }
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);
474 }
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);
477 }
478
479
480
481 static int
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);
485
486   return offset;
487 }
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);
490 }
491
492
493
494 static int
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);
498
499   return offset;
500 }
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);
503 }
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);
506 }
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);
509 }
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);
512 }
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);
515 }
516
517
518
519 static int
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);
523
524   return offset;
525 }
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);
528 }
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);
531 }
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);
534 }
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);
537 }
538
539
540 static const per_sequence_t AccuracyOpt_sequence[] = {
541   { "accuracy"                    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_accuracy },
542   { NULL, 0, 0, NULL }
543 };
544
545 static int
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);
549
550   return offset;
551 }
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);
554 }
555
556
557 static const value_string rrlp_MethodType_vals[] = {
558   {   0, "msAssisted" },
559   {   1, "msBased" },
560   {   2, "msBasedPref" },
561   {   3, "msAssistedPref" },
562   { 0, NULL }
563 };
564
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 },
570   { 0, NULL, 0, NULL }
571 };
572
573 static int
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,
577                                  NULL);
578
579   return offset;
580 }
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);
583 }
584
585
586 static const value_string rrlp_PositionMethod_vals[] = {
587   {   0, "eotd" },
588   {   1, "gps" },
589   {   2, "gpsOrEOTD" },
590   { 0, NULL }
591 };
592
593
594 static int
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);
598
599   return offset;
600 }
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);
603 }
604
605
606
607 static int
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);
611
612   return offset;
613 }
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);
616 }
617
618
619 static const value_string rrlp_UseMultipleSets_vals[] = {
620   {   0, "multipleSets" },
621   {   1, "oneSet" },
622   { 0, NULL }
623 };
624
625
626 static int
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);
630
631   return offset;
632 }
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);
635 }
636
637
638 static const value_string rrlp_EnvironmentCharacter_vals[] = {
639   {   0, "badArea" },
640   {   1, "notBadArea" },
641   {   2, "mixedArea" },
642   { 0, NULL }
643 };
644
645
646 static int
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);
650
651   return offset;
652 }
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);
655 }
656
657
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 },
664   { NULL, 0, 0, NULL }
665 };
666
667 static int
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);
671
672   return offset;
673 }
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);
676 }
677
678
679
680 static int
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);
684
685   return offset;
686 }
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);
689 }
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);
692 }
693
694
695
696 static int
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);
700
701   return offset;
702 }
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);
705 }
706
707
708 static const value_string rrlp_TimeSlotScheme_vals[] = {
709   {   0, "equalLength" },
710   {   1, "variousLength" },
711   { 0, NULL }
712 };
713
714
715 static int
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);
719
720   return offset;
721 }
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);
724 }
725
726
727
728 static int
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);
731
732   return offset;
733 }
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);
736 }
737
738
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 },
744   { NULL, 0, 0, NULL }
745 };
746
747 static int
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);
751
752   return offset;
753 }
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);
756 }
757
758
759
760 static int
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);
764
765   return offset;
766 }
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);
769 }
770
771
772
773 static int
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);
777
778   return offset;
779 }
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);
782 }
783
784
785
786 static int
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);
790
791   return offset;
792 }
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);
795 }
796
797
798
799 static int
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);
803
804   return offset;
805 }
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);
808 }
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);
811 }
812
813
814
815 static int
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);
819
820   return offset;
821 }
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);
824 }
825
826
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 },
831   { NULL, 0, 0, NULL }
832 };
833
834 static int
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);
838
839   return offset;
840 }
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);
843 }
844
845
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 },
849   { NULL, 0, 0, NULL }
850 };
851
852 static int
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);
856
857   return offset;
858 }
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);
861 }
862
863
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 },
871   { NULL, 0, 0, NULL }
872 };
873
874 static int
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);
878
879   return offset;
880 }
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);
883 }
884
885
886 static const per_sequence_t SeqOfMsrAssistBTS_sequence_of[1] = {
887   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfMsrAssistBTS_item },
888 };
889
890 static int
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,
894                                                   1, 15);
895
896   return offset;
897 }
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);
900 }
901
902
903 static const per_sequence_t MsrAssistData_sequence[] = {
904   { "msrAssistList"               , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_msrAssistList },
905   { NULL, 0, 0, NULL }
906 };
907
908 static int
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);
912
913   return offset;
914 }
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);
917 }
918
919
920
921 static int
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);
924
925   return offset;
926 }
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);
929 }
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);
932 }
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);
935 }
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);
938 }
939
940
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 },
947   { NULL, 0, 0, NULL }
948 };
949
950 static int
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);
954
955   return offset;
956 }
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);
959 }
960
961
962 static const value_string rrlp_SystemInfoAssistBTS_vals[] = {
963   {   0, "notPresent" },
964   {   1, "present" },
965   { 0, NULL }
966 };
967
968 static const per_choice_t SystemInfoAssistBTS_choice[] = {
969   {   0, "notPresent"                  , ASN1_NO_EXTENSIONS     , dissect_notPresent },
970   {   1, "present"                     , ASN1_NO_EXTENSIONS     , dissect_present },
971   { 0, NULL, 0, NULL }
972 };
973
974 static int
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,
978                                  NULL);
979
980   return offset;
981 }
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);
984 }
985
986
987 static const per_sequence_t SeqOfSystemInfoAssistBTS_sequence_of[1] = {
988   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfSystemInfoAssistBTS_item },
989 };
990
991 static int
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,
995                                                   1, 32);
996
997   return offset;
998 }
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);
1001 }
1002
1003
1004 static const per_sequence_t SystemInfoAssistData_sequence[] = {
1005   { "systemInfoAssistList"        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_systemInfoAssistList },
1006   { NULL, 0, 0, NULL }
1007 };
1008
1009 static int
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);
1013
1014   return offset;
1015 }
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);
1018 }
1019
1020
1021
1022 static int
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);
1026
1027   return offset;
1028 }
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);
1031 }
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);
1034 }
1035
1036
1037
1038 static int
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);
1042
1043   return offset;
1044 }
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);
1047 }
1048
1049
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 }
1054 };
1055
1056 static int
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);
1060
1061   return offset;
1062 }
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);
1065 }
1066
1067
1068
1069 static int
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);
1073
1074   return offset;
1075 }
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);
1078 }
1079
1080
1081
1082 static int
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);
1086
1087   return offset;
1088 }
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);
1091 }
1092
1093
1094
1095 static int
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);
1099
1100   return offset;
1101 }
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);
1104 }
1105
1106
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 }
1114 };
1115
1116 static int
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);
1120
1121   return offset;
1122 }
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);
1125 }
1126
1127
1128
1129 static int
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);
1133
1134   return offset;
1135 }
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);
1138 }
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);
1141 }
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);
1144 }
1145
1146
1147
1148 static int
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);
1152
1153   return offset;
1154 }
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);
1157 }
1158
1159
1160
1161 static int
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);
1165
1166   return offset;
1167 }
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);
1170 }
1171
1172
1173
1174 static int
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);
1178
1179   return offset;
1180 }
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);
1183 }
1184
1185
1186
1187 static int
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);
1191
1192   return offset;
1193 }
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);
1196 }
1197
1198
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 }
1206 };
1207
1208 static int
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);
1212
1213   return offset;
1214 }
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);
1217 }
1218
1219
1220 static const per_sequence_t GPSTOWAssist_sequence_of[1] = {
1221   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_GPSTOWAssist_item },
1222 };
1223
1224 static int
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,
1228                                                   1, 12);
1229
1230   return offset;
1231 }
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);
1234 }
1235
1236
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 }
1242 };
1243
1244 static int
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);
1248
1249   return offset;
1250 }
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);
1253 }
1254
1255
1256 static const per_sequence_t RefLocation_sequence[] = {
1257   { "threeDLocation"              , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_threeDLocation },
1258   { NULL, 0, 0, NULL }
1259 };
1260
1261 static int
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);
1265
1266   return offset;
1267 }
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);
1270 }
1271
1272
1273
1274 static int
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);
1278
1279   return offset;
1280 }
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);
1283 }
1284
1285
1286
1287 static int
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);
1291
1292   return offset;
1293 }
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);
1296 }
1297
1298
1299
1300 static int
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);
1304
1305   return offset;
1306 }
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);
1309 }
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);
1312 }
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);
1315 }
1316
1317
1318
1319 static int
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);
1323
1324   return offset;
1325 }
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);
1328 }
1329
1330
1331
1332 static int
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);
1336
1337   return offset;
1338 }
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);
1341 }
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);
1344 }
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);
1347 }
1348
1349
1350
1351 static int
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);
1355
1356   return offset;
1357 }
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);
1360 }
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);
1363 }
1364
1365
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 }
1377 };
1378
1379 static int
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);
1383
1384   return offset;
1385 }
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);
1388 }
1389
1390
1391 static const per_sequence_t SeqOfSatElement_sequence_of[1] = {
1392   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfSatElement_item },
1393 };
1394
1395 static int
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,
1399                                                   1, 16);
1400
1401   return offset;
1402 }
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);
1405 }
1406
1407
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 }
1413 };
1414
1415 static int
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);
1419
1420   return offset;
1421 }
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);
1424 }
1425
1426
1427
1428 static int
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);
1432
1433   return offset;
1434 }
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);
1437 }
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);
1440 }
1441
1442
1443
1444 static int
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);
1448
1449   return offset;
1450 }
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);
1453 }
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);
1456 }
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);
1459 }
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);
1462 }
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);
1465 }
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);
1468 }
1469
1470
1471
1472 static int
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);
1476
1477   return offset;
1478 }
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);
1481 }
1482
1483
1484
1485 static int
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);
1489
1490   return offset;
1491 }
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);
1494 }
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);
1497 }
1498
1499
1500
1501 static int
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);
1505
1506   return offset;
1507 }
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);
1510 }
1511
1512
1513
1514 static int
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);
1518
1519   return offset;
1520 }
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);
1523 }
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);
1526 }
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);
1529 }
1530
1531
1532
1533 static int
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);
1537
1538   return offset;
1539 }
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);
1542 }
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);
1545 }
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);
1548 }
1549
1550
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 }
1557 };
1558
1559 static int
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);
1563
1564   return offset;
1565 }
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);
1568 }
1569
1570
1571
1572 static int
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);
1576
1577   return offset;
1578 }
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);
1581 }
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);
1584 }
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);
1587 }
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);
1590 }
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);
1593 }
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);
1596 }
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);
1599 }
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);
1602 }
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);
1605 }
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);
1608 }
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);
1611 }
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);
1614 }
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);
1617 }
1618
1619
1620
1621 static int
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);
1625
1626   return offset;
1627 }
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);
1630 }
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);
1633 }
1634
1635
1636
1637 static int
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);
1641
1642   return offset;
1643 }
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);
1646 }
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);
1649 }
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);
1652 }
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);
1655 }
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);
1658 }
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);
1661 }
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);
1664 }
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);
1667 }
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);
1670 }
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);
1673 }
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);
1676 }
1677
1678
1679
1680 static int
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);
1684
1685   return offset;
1686 }
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);
1689 }
1690
1691
1692
1693 static int
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);
1697
1698   return offset;
1699 }
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);
1702 }
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);
1705 }
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);
1708 }
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);
1711 }
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);
1714 }
1715
1716
1717
1718 static int
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);
1722
1723   return offset;
1724 }
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);
1727 }
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);
1730 }
1731
1732
1733
1734 static int
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);
1738
1739   return offset;
1740 }
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);
1743 }
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);
1746 }
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);
1749 }
1750
1751
1752
1753 static int
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);
1757
1758   return offset;
1759 }
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);
1762 }
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);
1765 }
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);
1768 }
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);
1771 }
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);
1774 }
1775
1776
1777
1778 static int
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);
1782
1783   return offset;
1784 }
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);
1787 }
1788
1789
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 }
1821 };
1822
1823 static int
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);
1827
1828   return offset;
1829 }
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);
1832 }
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);
1835 }
1836
1837
1838 static const value_string rrlp_SatStatus_vals[] = {
1839   {   0, "newSatelliteAndModelUC" },
1840   {   1, "oldSatelliteAndModel" },
1841   {   2, "newNaviModelUC" },
1842   { 0, NULL }
1843 };
1844
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 }
1850 };
1851
1852 static int
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,
1856                                  NULL);
1857
1858   return offset;
1859 }
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);
1862 }
1863
1864
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 }
1869 };
1870
1871 static int
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);
1875
1876   return offset;
1877 }
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);
1880 }
1881
1882
1883 static const per_sequence_t SeqOfNavModelElement_sequence_of[1] = {
1884   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfNavModelElement_item },
1885 };
1886
1887 static int
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,
1891                                                   1, 16);
1892
1893   return offset;
1894 }
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);
1897 }
1898
1899
1900 static const per_sequence_t NavigationModel_sequence[] = {
1901   { "navModelList"                , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_navModelList },
1902   { NULL, 0, 0, NULL }
1903 };
1904
1905 static int
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);
1909
1910   return offset;
1911 }
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);
1914 }
1915
1916
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 }
1927 };
1928
1929 static int
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);
1933
1934   return offset;
1935 }
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);
1938 }
1939
1940
1941
1942 static int
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);
1946
1947   return offset;
1948 }
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);
1951 }
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);
1954 }
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);
1957 }
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);
1960 }
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);
1963 }
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);
1966 }
1967
1968
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 }
1979 };
1980
1981 static int
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);
1985
1986   return offset;
1987 }
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);
1990 }
1991
1992
1993
1994 static int
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);
1998
1999   return offset;
2000 }
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);
2003 }
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);
2006 }
2007
2008
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 }
2023 };
2024
2025 static int
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);
2029
2030   return offset;
2031 }
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);
2034 }
2035
2036
2037 static const per_sequence_t SeqOfAlmanacElement_sequence_of[1] = {
2038   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfAlmanacElement_item },
2039 };
2040
2041 static int
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,
2045                                                   1, 64);
2046
2047   return offset;
2048 }
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);
2051 }
2052
2053
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 }
2058 };
2059
2060 static int
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);
2064
2065   return offset;
2066 }
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);
2069 }
2070
2071
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 }
2076 };
2077
2078 static int
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);
2082
2083   return offset;
2084 }
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);
2087 }
2088
2089
2090
2091 static int
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);
2095
2096   return offset;
2097 }
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);
2100 }
2101
2102
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 }
2107 };
2108
2109 static int
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);
2113
2114   return offset;
2115 }
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);
2118 }
2119
2120
2121
2122 static int
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);
2126
2127   return offset;
2128 }
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);
2131 }
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);
2134 }
2135
2136
2137
2138 static int
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);
2142
2143   return offset;
2144 }
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);
2147 }
2148
2149
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 }
2154 };
2155
2156 static int
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);
2160
2161   return offset;
2162 }
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);
2165 }
2166
2167
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 }
2178 };
2179
2180 static int
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);
2184
2185   return offset;
2186 }
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);
2189 }
2190
2191
2192 static const per_sequence_t SeqOfAcquisElement_sequence_of[1] = {
2193   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfAcquisElement_item },
2194 };
2195
2196 static int
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,
2200                                                   1, 16);
2201
2202   return offset;
2203 }
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);
2206 }
2207
2208
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 }
2213 };
2214
2215 static int
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);
2219
2220   return offset;
2221 }
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);
2224 }
2225
2226
2227 static const per_sequence_t SeqOf_BadSatelliteSet_sequence_of[1] = {
2228   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOf_BadSatelliteSet_item },
2229 };
2230
2231 static int
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,
2235                                                   1, 16);
2236
2237   return offset;
2238 }
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);
2241 }
2242
2243
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 }
2255 };
2256
2257 static int
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);
2261
2262   return offset;
2263 }
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);
2266 }
2267
2268
2269 static const per_sequence_t GPS_AssistData_sequence[] = {
2270   { "controlHeader"               , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_controlHeader },
2271   { NULL, 0, 0, NULL }
2272 };
2273
2274 static int
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);
2278
2279   return offset;
2280 }
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);
2283 }
2284
2285
2286
2287 static int
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);
2291
2292   return offset;
2293 }
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);
2296 }
2297
2298
2299
2300 static int
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);
2304
2305   return offset;
2306 }
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);
2309 }
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);
2312 }
2313
2314
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 }
2319 };
2320
2321 static int
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);
2325
2326   return offset;
2327 }
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);
2330 }
2331
2332
2333 static const per_sequence_t SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of[1] = {
2334   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfMsrAssistBTS_R98_ExpOTD_item },
2335 };
2336
2337 static int
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,
2341                                                   1, 15);
2342
2343   return offset;
2344 }
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);
2347 }
2348
2349
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 }
2353 };
2354
2355 static int
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);
2359
2360   return offset;
2361 }
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);
2364 }
2365
2366
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 }
2371 };
2372
2373 static int
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);
2377
2378   return offset;
2379 }
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);
2382 }
2383
2384
2385 static const value_string rrlp_SystemInfoAssistBTS_R98_ExpOTD_vals[] = {
2386   {   0, "notPresent" },
2387   {   1, "present" },
2388   { 0, NULL }
2389 };
2390
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 }
2395 };
2396
2397 static int
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,
2401                                  NULL);
2402
2403   return offset;
2404 }
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);
2407 }
2408
2409
2410 static const per_sequence_t SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of[1] = {
2411   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item },
2412 };
2413
2414 static int
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,
2418                                                   1, 32);
2419
2420   return offset;
2421 }
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);
2424 }
2425
2426
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 }
2430 };
2431
2432 static int
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);
2436
2437   return offset;
2438 }
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);
2441 }
2442
2443
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 }
2448 };
2449
2450 static int
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);
2454
2455   return offset;
2456 }
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);
2459 }
2460
2461
2462
2463 static int
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);
2467
2468   return offset;
2469 }
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);
2472 }
2473
2474
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 }
2480 };
2481
2482 static int
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);
2486
2487   return offset;
2488 }
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);
2491 }
2492
2493
2494
2495 static int
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);
2499
2500   return offset;
2501 }
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);
2504 }
2505
2506
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 }
2511 };
2512
2513 static int
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);
2517
2518   return offset;
2519 }
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);
2522 }
2523
2524
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 }
2528 };
2529
2530 static int
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);
2534
2535   return offset;
2536 }
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);
2539 }
2540
2541
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 }
2552 };
2553
2554 static int
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);
2558
2559   return offset;
2560 }
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);
2563 }
2564
2565
2566
2567 static int
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);
2571
2572   return offset;
2573 }
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);
2576 }
2577
2578
2579
2580 static int
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);
2584
2585   return offset;
2586 }
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);
2589 }
2590
2591
2592 static const value_string rrlp_ReferenceRelation_vals[] = {
2593   {   0, "secondBTSThirdSet" },
2594   {   1, "secondBTSSecondSet" },
2595   {   2, "firstBTSFirstSet" },
2596   { 0, NULL }
2597 };
2598
2599
2600 static int
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);
2604
2605   return offset;
2606 }
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);
2609 }
2610
2611
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 }
2617 };
2618
2619 static int
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);
2623
2624   return offset;
2625 }
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);
2628 }
2629
2630
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 }
2635 };
2636
2637 static int
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);
2641
2642   return offset;
2643 }
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);
2646 }
2647
2648
2649
2650 static int
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);
2654
2655   return offset;
2656 }
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);
2659 }
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);
2662 }
2663
2664
2665
2666 static int
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);
2670
2671   return offset;
2672 }
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);
2675 }
2676
2677
2678
2679 static int
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);
2683
2684   return offset;
2685 }
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);
2688 }
2689
2690
2691
2692 static int
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);
2696
2697   return offset;
2698 }
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);
2701 }
2702
2703
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 }
2708 };
2709
2710 static int
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);
2714
2715   return offset;
2716 }
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);
2719 }
2720
2721
2722 static const value_string rrlp_ReferenceIdentityType_vals[] = {
2723   {   0, "bsicAndCarrier" },
2724   {   1, "ci" },
2725   {   2, "requestIndex" },
2726   {   3, "systemInfoIndex" },
2727   {   4, "ciAndLAC" },
2728   { 0, NULL }
2729 };
2730
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 }
2738 };
2739
2740 static int
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,
2744                                  NULL);
2745
2746   return offset;
2747 }
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);
2750 }
2751
2752
2753 static const per_sequence_t SeqOfReferenceIdentityType_sequence_of[1] = {
2754   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfReferenceIdentityType_item },
2755 };
2756
2757 static int
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,
2761                                                   1, 3);
2762
2763   return offset;
2764 }
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);
2767 }
2768
2769
2770 static const per_sequence_t ReferenceIdentity_sequence[] = {
2771   { "refBTSList"                  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_refBTSList },
2772   { NULL, 0, 0, NULL }
2773 };
2774
2775 static int
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);
2779
2780   return offset;
2781 }
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);
2784 }
2785
2786
2787
2788 static int
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);
2792
2793   return offset;
2794 }
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);
2797 }
2798
2799
2800
2801 static int
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);
2805
2806   return offset;
2807 }
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);
2810 }
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);
2813 }
2814
2815
2816
2817 static int
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);
2821
2822   return offset;
2823 }
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);
2826 }
2827
2828
2829
2830 static int
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);
2834
2835   return offset;
2836 }
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);
2839 }
2840
2841
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 }
2846 };
2847
2848 static int
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);
2852
2853   return offset;
2854 }
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);
2857 }
2858
2859
2860
2861 static int
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);
2865
2866   return offset;
2867 }
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);
2870 }
2871
2872
2873
2874 static int
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);
2878
2879   return offset;
2880 }
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);
2883 }
2884
2885
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 }
2890 };
2891
2892 static int
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);
2896
2897   return offset;
2898 }
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);
2901 }
2902
2903
2904 static const value_string rrlp_NeighborIdentity_vals[] = {
2905   {   0, "bsicAndCarrier" },
2906   {   1, "ci" },
2907   {   2, "multiFrameCarrier" },
2908   {   3, "requestIndex" },
2909   {   4, "systemInfoIndex" },
2910   {   5, "ciAndLAC" },
2911   { 0, NULL }
2912 };
2913
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 }
2922 };
2923
2924 static int
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,
2928                                  NULL);
2929
2930   return offset;
2931 }
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);
2934 }
2935
2936
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 }
2941 };
2942
2943 static int
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);
2947
2948   return offset;
2949 }
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);
2952 }
2953
2954
2955
2956 static int
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);
2960
2961   return offset;
2962 }
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);
2965 }
2966
2967
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 }
2974 };
2975
2976 static int
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);
2980
2981   return offset;
2982 }
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);
2985 }
2986
2987
2988
2989 static int
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);
2992
2993   return offset;
2994 }
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);
2997 }
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);
3000 }
3001
3002
3003 static const per_sequence_t SeqOfOTD_FirstSetMsrs_sequence_of[1] = {
3004   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_FirstSetMsrs_item },
3005 };
3006
3007 static int
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,
3011                                                   1, 10);
3012
3013   return offset;
3014 }
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);
3017 }
3018
3019
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 }
3028 };
3029
3030 static int
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);
3034
3035   return offset;
3036 }
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);
3039 }
3040
3041
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 }
3047 };
3048
3049 static int
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);
3053
3054   return offset;
3055 }
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);
3058 }
3059
3060
3061 static const value_string rrlp_OTD_MsrsOfOtherSets_vals[] = {
3062   {   0, "identityNotPresent" },
3063   {   1, "identityPresent" },
3064   { 0, NULL }
3065 };
3066
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 }
3071 };
3072
3073 static int
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,
3077                                  NULL);
3078
3079   return offset;
3080 }
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);
3083 }
3084
3085
3086 static const per_sequence_t SeqOfOTD_MsrsOfOtherSets_sequence_of[1] = {
3087   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_MsrsOfOtherSets_item },
3088 };
3089
3090 static int
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,
3094                                                   1, 10);
3095
3096   return offset;
3097 }
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);
3100 }
3101
3102
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 }
3111 };
3112
3113 static int
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);
3117
3118   return offset;
3119 }
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);
3122 }
3123
3124
3125 static const per_sequence_t SeqOfOTD_MsrElementRest_sequence_of[1] = {
3126   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfOTD_MsrElementRest_item },
3127 };
3128
3129 static int
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,
3133                                                   1, 2);
3134
3135   return offset;
3136 }
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);
3139 }
3140
3141
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 }
3146 };
3147
3148 static int
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);
3152
3153   return offset;
3154 }
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);
3157 }
3158
3159
3160
3161 static int
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);
3165
3166   return offset;
3167 }
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);
3170 }
3171
3172
3173 static const value_string rrlp_FixType_vals[] = {
3174   {   0, "twoDFix" },
3175   {   1, "threeDFix" },
3176   { 0, NULL }
3177 };
3178
3179
3180 static int
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);
3184
3185   return offset;
3186 }
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);
3189 }
3190
3191
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 }
3198 };
3199
3200 static int
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);
3204
3205   return offset;
3206 }
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);
3209 }
3210
3211
3212
3213 static int
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);
3217
3218   return offset;
3219 }
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);
3222 }
3223
3224
3225
3226 static int
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);
3230
3231   return offset;
3232 }
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);
3235 }
3236
3237
3238 static const value_string rrlp_MpathIndic_vals[] = {
3239   {   0, "notMeasured" },
3240   {   1, "low" },
3241   {   2, "medium" },
3242   {   3, "high" },
3243   { 0, NULL }
3244 };
3245
3246
3247 static int
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);
3251
3252   return offset;
3253 }
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);
3256 }
3257
3258
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 }
3268 };
3269
3270 static int
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);
3274
3275   return offset;
3276 }
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);
3279 }
3280
3281
3282 static const per_sequence_t SeqOfGPS_MsrElement_sequence_of[1] = {
3283   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfGPS_MsrElement_item },
3284 };
3285
3286 static int
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,
3290                                                   1, 16);
3291
3292   return offset;
3293 }
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);
3296 }
3297
3298
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 }
3304 };
3305
3306 static int
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);
3310
3311   return offset;
3312 }
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);
3315 }
3316
3317
3318 static const per_sequence_t SeqOfGPS_MsrSetElement_sequence_of[1] = {
3319   { ""                            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_SeqOfGPS_MsrSetElement_item },
3320 };
3321
3322 static int
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,
3326                                                   1, 3);
3327
3328   return offset;
3329 }
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);
3332 }
3333
3334
3335 static const per_sequence_t GPS_MeasureInfo_sequence[] = {
3336   { "gpsMsrSetList"               , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_gpsMsrSetList },
3337   { NULL, 0, 0, NULL }
3338 };
3339
3340 static int
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);
3344
3345   return offset;
3346 }
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);
3349 }
3350
3351
3352 static const value_string rrlp_LocErrorReason_vals[] = {
3353   {   0, "unDefined" },
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" },
3364   { 0, NULL }
3365 };
3366
3367
3368 static int
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);
3372
3373   return offset;
3374 }
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);
3377 }
3378
3379
3380
3381 static int
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);
3385
3386   return offset;
3387 }
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);
3390 }
3391
3392
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 }
3397 };
3398
3399 static int
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);
3403
3404   return offset;
3405 }
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);
3408 }
3409
3410
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 }
3415 };
3416
3417 static int
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);
3421
3422   return offset;
3423 }
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);
3426 }
3427
3428
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 },
3431 };
3432
3433 static int
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,
3437                                                   1, 5);
3438
3439   return offset;
3440 }
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);
3443 }
3444
3445
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 }
3449 };
3450
3451 static int
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);
3455
3456   return offset;
3457 }
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);
3460 }
3461
3462
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 }
3466 };
3467
3468 static int
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);
3472
3473   return offset;
3474 }
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);
3477 }
3478
3479
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 }
3483 };
3484
3485 static int
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);
3489
3490   return offset;
3491 }
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);
3494 }
3495
3496
3497
3498 static int
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);
3502
3503   return offset;
3504 }
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);
3507 }
3508
3509
3510
3511 static int
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);
3515
3516   return offset;
3517 }
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);
3520 }
3521
3522
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 }
3529 };
3530
3531 static int
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);
3535
3536   return offset;
3537 }
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);
3540 }
3541
3542
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 }
3547 };
3548
3549 static int
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);
3553
3554   return offset;
3555 }
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);
3558 }
3559
3560
3561
3562 static int
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);
3565
3566   return offset;
3567 }
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);
3570 }
3571
3572
3573 static const value_string rrlp_UlPseudoSegInd_vals[] = {
3574   {   0, "firstOfMany" },
3575   {   1, "secondOfMany" },
3576   { 0, NULL }
3577 };
3578
3579
3580 static int
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);
3584
3585   return offset;
3586 }
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);
3589 }
3590
3591
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 }
3597 };
3598
3599 static int
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);
3603
3604   return offset;
3605 }
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);
3608 }
3609
3610
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 }
3622 };
3623
3624 static int
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);
3628
3629   return offset;
3630 }
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);
3633 }
3634
3635
3636 static const value_string rrlp_MoreAssDataToBeSent_vals[] = {
3637   {   0, "noMoreMessages" },
3638   {   1, "moreMessagesOnTheWay" },
3639   { 0, NULL }
3640 };
3641
3642
3643 static int
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);
3647
3648   return offset;
3649 }
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);
3652 }
3653
3654
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 }
3660 };
3661
3662 static int
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);
3666
3667   return offset;
3668 }
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);
3671 }
3672
3673
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 }
3677 };
3678
3679 static int
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);
3683
3684   return offset;
3685 }
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);
3688 }
3689
3690
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 }
3701 };
3702
3703 static int
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);
3707
3708   return offset;
3709 }
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);
3712 }
3713
3714
3715 static const value_string rrlp_ErrorCodes_vals[] = {
3716   {   0, "unDefined" },
3717   {   1, "missingComponet" },
3718   {   2, "incorrectData" },
3719   {   3, "missingIEorComponentElement" },
3720   {   4, "messageTooShort" },
3721   {   5, "unknowReferenceNumber" },
3722   { 0, NULL }
3723 };
3724
3725
3726 static int
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);
3730
3731   return offset;
3732 }
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);
3735 }
3736
3737
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 }
3741 };
3742
3743 static int
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);
3747
3748   return offset;
3749 }
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);
3752 }
3753
3754
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 }
3760 };
3761
3762 static int
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);
3766
3767   return offset;
3768 }
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);
3771 }
3772
3773
3774 static const value_string rrlp_RRLP_Component_vals[] = {
3775   {   0, "msrPositionReq" },
3776   {   1, "msrPositionRsp" },
3777   {   2, "assistanceData" },
3778   {   3, "assistanceDataAck" },
3779   {   4, "protocolError" },
3780   { 0, NULL }
3781 };
3782
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 }
3790 };
3791
3792 static int
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,
3796                                  NULL);
3797
3798   return offset;
3799 }
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);
3802 }
3803
3804
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 }
3809 };
3810
3811 static int
3812 dissect_rrlp_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3813 #line 10 "rrlp.cnf"
3814         
3815         proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE);
3816
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);
3821
3822     offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
3823                                    ett_rrlp_PDU, PDU_sequence);
3824
3825
3826
3827   return offset;
3828 }
3829
3830 /*--- PDUs ---*/
3831
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);
3835 }
3836
3837
3838 /*--- End of included file: packet-rrlp-fn.c ---*/
3839 #line 68 "packet-rrlp-template.c"
3840
3841
3842 /*--- proto_register_rrlp -------------------------------------------*/
3843 void proto_register_rrlp(void) {
3844
3845   /* List of fields */
3846   static hf_register_info hf[] = {
3847
3848
3849 /*--- Included file: packet-rrlp-hfarr.c ---*/
3850 #line 1 "packet-rrlp-hfarr.c"
3851     { &hf_rrlp_PDU_PDU,
3852       { "PDU", "rrlp.PDU",
3853         FT_NONE, BASE_NONE, NULL, 0,
3854         "PDU", HFILL }},
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,
3890         "", HFILL }},
3891     { &hf_rrlp_msrAssistData,
3892       { "msrAssistData", "rrlp.msrAssistData",
3893         FT_NONE, BASE_NONE, NULL, 0,
3894         "", HFILL }},
3895     { &hf_rrlp_systemInfoAssistData,
3896       { "systemInfoAssistData", "rrlp.systemInfoAssistData",
3897         FT_NONE, BASE_NONE, NULL, 0,
3898         "", HFILL }},
3899     { &hf_rrlp_gps_AssistData,
3900       { "gps-AssistData", "rrlp.gps_AssistData",
3901         FT_NONE, BASE_NONE, NULL, 0,
3902         "", HFILL }},
3903     { &hf_rrlp_extensionContainer,
3904       { "extensionContainer", "rrlp.extensionContainer",
3905         FT_BYTES, BASE_HEX, NULL, 0,
3906         "", HFILL }},
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 }},
3991     { &hf_rrlp_msBased,
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,
4010         "", HFILL }},
4011     { &hf_rrlp_bsic,
4012       { "bsic", "rrlp.bsic",
4013         FT_UINT32, BASE_DEC, NULL, 0,
4014         "", HFILL }},
4015     { &hf_rrlp_timeSlotScheme,
4016       { "timeSlotScheme", "rrlp.timeSlotScheme",
4017         FT_UINT32, BASE_DEC, VALS(rrlp_TimeSlotScheme_vals), 0,
4018         "", HFILL }},
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,
4034         "", HFILL }},
4035     { &hf_rrlp_roughRTD,
4036       { "roughRTD", "rrlp.roughRTD",
4037         FT_UINT32, BASE_DEC, NULL, 0,
4038         "", HFILL }},
4039     { &hf_rrlp_calcAssistanceBTS,
4040       { "calcAssistanceBTS", "rrlp.calcAssistanceBTS",
4041         FT_NONE, BASE_NONE, NULL, 0,
4042         "", HFILL }},
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,
4054         "", HFILL }},
4055     { &hf_rrlp_present,
4056       { "present", "rrlp.present",
4057         FT_NONE, BASE_NONE, NULL, 0,
4058         "SystemInfoAssistBTS/present", HFILL }},
4059     { &hf_rrlp_fineRTD,
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,
4102         "", HFILL }},
4103     { &hf_rrlp_ci,
4104       { "ci", "rrlp.ci",
4105         FT_UINT32, BASE_DEC, NULL, 0,
4106         "", HFILL }},
4107     { &hf_rrlp_requestIndex,
4108       { "requestIndex", "rrlp.requestIndex",
4109         FT_UINT32, BASE_DEC, NULL, 0,
4110         "", HFILL }},
4111     { &hf_rrlp_systemInfoIndex,
4112       { "systemInfoIndex", "rrlp.systemInfoIndex",
4113         FT_UINT32, BASE_DEC, NULL, 0,
4114         "", HFILL }},
4115     { &hf_rrlp_ciAndLAC,
4116       { "ciAndLAC", "rrlp.ciAndLAC",
4117         FT_NONE, BASE_NONE, NULL, 0,
4118         "", HFILL }},
4119     { &hf_rrlp_carrier,
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,
4146         "", HFILL }},
4147     { &hf_rrlp_referenceTimeSlot,
4148       { "referenceTimeSlot", "rrlp.referenceTimeSlot",
4149         FT_UINT32, BASE_DEC, NULL, 0,
4150         "", HFILL }},
4151     { &hf_rrlp_toaMeasurementsOfRef,
4152       { "toaMeasurementsOfRef", "rrlp.toaMeasurementsOfRef",
4153         FT_NONE, BASE_NONE, NULL, 0,
4154         "", HFILL }},
4155     { &hf_rrlp_stdResolution,
4156       { "stdResolution", "rrlp.stdResolution",
4157         FT_UINT32, BASE_DEC, NULL, 0,
4158         "", HFILL }},
4159     { &hf_rrlp_taCorrection,
4160       { "taCorrection", "rrlp.taCorrection",
4161         FT_UINT32, BASE_DEC, NULL, 0,
4162         "", HFILL }},
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,
4198         "", HFILL }},
4199     { &hf_rrlp_eotdQuality,
4200       { "eotdQuality", "rrlp.eotdQuality",
4201         FT_NONE, BASE_NONE, NULL, 0,
4202         "", HFILL }},
4203     { &hf_rrlp_otdValue,
4204       { "otdValue", "rrlp.otdValue",
4205         FT_UINT32, BASE_DEC, NULL, 0,
4206         "", HFILL }},
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,
4226         "", HFILL }},
4227     { &hf_rrlp_gpsTOW,
4228       { "gpsTOW", "rrlp.gpsTOW",
4229         FT_UINT32, BASE_DEC, NULL, 0,
4230         "LocationInfo/gpsTOW", HFILL }},
4231     { &hf_rrlp_fixType,
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 }},
4247     { &hf_rrlp_gpsTOW1,
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,
4262         "", HFILL }},
4263     { &hf_rrlp_cNo,
4264       { "cNo", "rrlp.cNo",
4265         FT_UINT32, BASE_DEC, NULL, 0,
4266         "GPS-MsrElement/cNo", HFILL }},
4267     { &hf_rrlp_doppler,
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 }},
4327     { &hf_rrlp_almanac,
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 }},
4339     { &hf_rrlp_gpsTime,
4340       { "gpsTime", "rrlp.gpsTime",
4341         FT_NONE, BASE_NONE, NULL, 0,
4342         "ReferenceTime/gpsTime", HFILL }},
4343     { &hf_rrlp_gsmTime,
4344       { "gsmTime", "rrlp.gsmTime",
4345         FT_NONE, BASE_NONE, NULL, 0,
4346         "", HFILL }},
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 }},
4355     { &hf_rrlp_gpsWeek,
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 }},
4363     { &hf_rrlp_tlmWord,
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 }},
4371     { &hf_rrlp_alert,
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 }},
4395     { &hf_rrlp_gpsTOW2,
4396       { "gpsTOW", "rrlp.gpsTOW",
4397         FT_UINT32, BASE_DEC, NULL, 0,
4398         "DGPSCorrections/gpsTOW", HFILL }},
4399     { &hf_rrlp_status,
4400       { "status", "rrlp.status",
4401         FT_UINT32, BASE_DEC, NULL, 0,
4402         "DGPSCorrections/status", HFILL }},
4403     { &hf_rrlp_satList,
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 }},
4411     { &hf_rrlp_iode,
4412       { "iode", "rrlp.iode",
4413         FT_UINT32, BASE_DEC, NULL, 0,
4414         "SatElement/iode", HFILL }},
4415     { &hf_rrlp_udre,
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 }},
4519     { &hf_rrlp_ephemM0,
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 }},
4527     { &hf_rrlp_ephemE,
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 }},
4563     { &hf_rrlp_ephemI0,
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 }},
4571     { &hf_rrlp_ephemW,
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 }},
4599     { &hf_rrlp_alfa0,
4600       { "alfa0", "rrlp.alfa0",
4601         FT_INT32, BASE_DEC, NULL, 0,
4602         "IonosphericModel/alfa0", HFILL }},
4603     { &hf_rrlp_alfa1,
4604       { "alfa1", "rrlp.alfa1",
4605         FT_INT32, BASE_DEC, NULL, 0,
4606         "IonosphericModel/alfa1", HFILL }},
4607     { &hf_rrlp_alfa2,
4608       { "alfa2", "rrlp.alfa2",
4609         FT_INT32, BASE_DEC, NULL, 0,
4610         "IonosphericModel/alfa2", HFILL }},
4611     { &hf_rrlp_alfa3,
4612       { "alfa3", "rrlp.alfa3",
4613         FT_INT32, BASE_DEC, NULL, 0,
4614         "IonosphericModel/alfa3", HFILL }},
4615     { &hf_rrlp_beta0,
4616       { "beta0", "rrlp.beta0",
4617         FT_INT32, BASE_DEC, NULL, 0,
4618         "IonosphericModel/beta0", HFILL }},
4619     { &hf_rrlp_beta1,
4620       { "beta1", "rrlp.beta1",
4621         FT_INT32, BASE_DEC, NULL, 0,
4622         "IonosphericModel/beta1", HFILL }},
4623     { &hf_rrlp_beta2,
4624       { "beta2", "rrlp.beta2",
4625         FT_INT32, BASE_DEC, NULL, 0,
4626         "IonosphericModel/beta2", HFILL }},
4627     { &hf_rrlp_beta3,
4628       { "beta3", "rrlp.beta3",
4629         FT_INT32, BASE_DEC, NULL, 0,
4630         "IonosphericModel/beta3", HFILL }},
4631     { &hf_rrlp_utcA1,
4632       { "utcA1", "rrlp.utcA1",
4633         FT_INT32, BASE_DEC, NULL, 0,
4634         "UTCModel/utcA1", HFILL }},
4635     { &hf_rrlp_utcA0,
4636       { "utcA0", "rrlp.utcA0",
4637         FT_INT32, BASE_DEC, NULL, 0,
4638         "UTCModel/utcA0", HFILL }},
4639     { &hf_rrlp_utcTot,
4640       { "utcTot", "rrlp.utcTot",
4641         FT_UINT32, BASE_DEC, NULL, 0,
4642         "UTCModel/utcTot", HFILL }},
4643     { &hf_rrlp_utcWNt,
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 }},
4655     { &hf_rrlp_utcDN,
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 }},
4731     { &hf_rrlp_gpsTOW3,
4732       { "gpsTOW", "rrlp.gpsTOW",
4733         FT_UINT32, BASE_DEC, NULL, 0,
4734         "TimeRelation/gpsTOW", HFILL }},
4735     { &hf_rrlp_svid,
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 }},
4775     { &hf_rrlp_azimuth,
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,
4790         "", HFILL }},
4791     { &hf_rrlp_gpsTimeAssistanceMeasurementRequest,
4792       { "gpsTimeAssistanceMeasurementRequest", "rrlp.gpsTimeAssistanceMeasurementRequest",
4793         FT_NONE, BASE_NONE, NULL, 0,
4794         "", HFILL }},
4795     { &hf_rrlp_gpsReferenceTimeUncertainty,
4796       { "gpsReferenceTimeUncertainty", "rrlp.gpsReferenceTimeUncertainty",
4797         FT_UINT32, BASE_DEC, NULL, 0,
4798         "", HFILL }},
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,
4818         "", HFILL }},
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,
4878         "", HFILL }},
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 }},
4895
4896 /*--- End of included file: packet-rrlp-hfarr.c ---*/
4897 #line 77 "packet-rrlp-template.c"
4898   };
4899
4900   /* List of subtrees */
4901   static gint *ett[] = {
4902           &ett_rrlp,
4903
4904 /*--- Included file: packet-rrlp-ettarr.c ---*/
4905 #line 1 "packet-rrlp-ettarr.c"
4906     &ett_rrlp_PDU,
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,
4955     &ett_rrlp_GPSTime,
4956     &ett_rrlp_GPSTOWAssist,
4957     &ett_rrlp_GPSTOWAssistElement,
4958     &ett_rrlp_GSMTime,
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,
4970     &ett_rrlp_UTCModel,
4971     &ett_rrlp_Almanac,
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,
5002
5003 /*--- End of included file: packet-rrlp-ettarr.c ---*/
5004 #line 83 "packet-rrlp-template.c"
5005   };
5006
5007
5008   /* Register protocol */
5009   proto_rrlp = proto_register_protocol(PNAME, PSNAME, PFNAME);
5010   register_dissector("rrlp", dissect_PDU_PDU, proto_rrlp);
5011
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));
5015
5016  
5017 }
5018
5019
5020 /*--- proto_reg_handoff_rrlp ---------------------------------------*/
5021 void
5022 proto_reg_handoff_rrlp(void)
5023 {
5024
5025         rrlp_handle = create_dissector_handle(dissect_PDU_PDU, proto_rrlp);
5026
5027
5028 }
5029
5030