#include <string.h> and/or #include <stdio.h> not needed.
[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/asn2wrs.py -p rrlp -c ./rrlp.cnf -s ./packet-rrlp-template -D . ../gsm_map/MAP-ExtensionDataTypes.asn ../gsm_map/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.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/asn1.h>
44
45 #include "packet-ber.h"
46 #include "packet-per.h"
47 #include "packet-gsm_a_common.h"
48
49 #define PNAME  "Radio Resource LCS Protocol (RRLP)"
50 #define PSNAME "RRLP"
51 #define PFNAME "rrlp"
52
53
54
55 #ifdef _MSC_VER
56 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
57 #pragma warning(disable:4146)
58 #endif
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_privateExtensionList = -1;     /* PrivateExtensionList */
70 static int hf_rrlp_pcs_Extensions = -1;           /* PCS_Extensions */
71 static int hf_rrlp_PrivateExtensionList_item = -1;  /* PrivateExtension */
72 static int hf_rrlp_extId = -1;                    /* OBJECT_IDENTIFIER */
73 static int hf_rrlp_extType = -1;                  /* T_extType */
74 static int hf_rrlp_referenceNumber = -1;          /* INTEGER_0_7 */
75 static int hf_rrlp_component = -1;                /* RRLP_Component */
76 static int hf_rrlp_msrPositionReq = -1;           /* MsrPosition_Req */
77 static int hf_rrlp_msrPositionRsp = -1;           /* MsrPosition_Rsp */
78 static int hf_rrlp_assistanceData = -1;           /* AssistanceData */
79 static int hf_rrlp_assistanceDataAck = -1;        /* NULL */
80 static int hf_rrlp_protocolError = -1;            /* ProtocolError */
81 static int hf_rrlp_posCapabilityReq = -1;         /* PosCapability_Req */
82 static int hf_rrlp_posCapabilityRsp = -1;         /* PosCapability_Rsp */
83 static int hf_rrlp_positionInstruct = -1;         /* PositionInstruct */
84 static int hf_rrlp_referenceAssistData = -1;      /* ReferenceAssistData */
85 static int hf_rrlp_msrAssistData = -1;            /* MsrAssistData */
86 static int hf_rrlp_systemInfoAssistData = -1;     /* SystemInfoAssistData */
87 static int hf_rrlp_gps_AssistData = -1;           /* GPS_AssistData */
88 static int hf_rrlp_extensionContainer = -1;       /* ExtensionContainer */
89 static int hf_rrlp_rel98_MsrPosition_Req_extension = -1;  /* Rel98_MsrPosition_Req_Extension */
90 static int hf_rrlp_rel5_MsrPosition_Req_extension = -1;  /* Rel5_MsrPosition_Req_Extension */
91 static int hf_rrlp_rel7_MsrPosition_Req_extension = -1;  /* Rel7_MsrPosition_Req_Extension */
92 static int hf_rrlp_multipleSets = -1;             /* MultipleSets */
93 static int hf_rrlp_referenceIdentity = -1;        /* ReferenceIdentity */
94 static int hf_rrlp_otd_MeasureInfo = -1;          /* OTD_MeasureInfo */
95 static int hf_rrlp_locationInfo = -1;             /* LocationInfo */
96 static int hf_rrlp_gps_MeasureInfo = -1;          /* GPS_MeasureInfo */
97 static int hf_rrlp_locationError = -1;            /* LocationError */
98 static int hf_rrlp_rel_98_MsrPosition_Rsp_Extension = -1;  /* Rel_98_MsrPosition_Rsp_Extension */
99 static int hf_rrlp_rel_5_MsrPosition_Rsp_Extension = -1;  /* Rel_5_MsrPosition_Rsp_Extension */
100 static int hf_rrlp_rel_7_MsrPosition_Rsp_Extension = -1;  /* Rel_7_MsrPosition_Rsp_Extension */
101 static int hf_rrlp_moreAssDataToBeSent = -1;      /* MoreAssDataToBeSent */
102 static int hf_rrlp_rel98_AssistanceData_Extension = -1;  /* Rel98_AssistanceData_Extension */
103 static int hf_rrlp_rel5_AssistanceData_Extension = -1;  /* Rel5_AssistanceData_Extension */
104 static int hf_rrlp_rel7_AssistanceData_Extension = -1;  /* Rel7_AssistanceData_Extension */
105 static int hf_rrlp_errorCause = -1;               /* ErrorCodes */
106 static int hf_rrlp_rel_5_ProtocolError_Extension = -1;  /* Rel_5_ProtocolError_Extension */
107 static int hf_rrlp_extended_reference = -1;       /* Extended_reference */
108 static int hf_rrlp_gANSSPositionMethods = -1;     /* GANSSPositionMethods */
109 static int hf_rrlp_posCapabilities = -1;          /* PosCapabilities */
110 static int hf_rrlp_assistanceSupported = -1;      /* AssistanceSupported */
111 static int hf_rrlp_assistanceNeeded = -1;         /* AssistanceNeeded */
112 static int hf_rrlp_methodType = -1;               /* MethodType */
113 static int hf_rrlp_positionMethod = -1;           /* PositionMethod */
114 static int hf_rrlp_measureResponseTime = -1;      /* MeasureResponseTime */
115 static int hf_rrlp_useMultipleSets = -1;          /* UseMultipleSets */
116 static int hf_rrlp_environmentCharacter = -1;     /* EnvironmentCharacter */
117 static int hf_rrlp_msAssisted = -1;               /* AccuracyOpt */
118 static int hf_rrlp_msBased = -1;                  /* Accuracy */
119 static int hf_rrlp_msBasedPref = -1;              /* Accuracy */
120 static int hf_rrlp_msAssistedPref = -1;           /* Accuracy */
121 static int hf_rrlp_accuracy = -1;                 /* Accuracy */
122 static int hf_rrlp_bcchCarrier = -1;              /* BCCHCarrier */
123 static int hf_rrlp_bsic = -1;                     /* BSIC */
124 static int hf_rrlp_timeSlotScheme = -1;           /* TimeSlotScheme */
125 static int hf_rrlp_btsPosition = -1;              /* BTSPosition */
126 static int hf_rrlp_msrAssistList = -1;            /* SeqOfMsrAssistBTS */
127 static int hf_rrlp_SeqOfMsrAssistBTS_item = -1;   /* MsrAssistBTS */
128 static int hf_rrlp_multiFrameOffset = -1;         /* MultiFrameOffset */
129 static int hf_rrlp_roughRTD = -1;                 /* RoughRTD */
130 static int hf_rrlp_calcAssistanceBTS = -1;        /* CalcAssistanceBTS */
131 static int hf_rrlp_systemInfoAssistList = -1;     /* SeqOfSystemInfoAssistBTS */
132 static int hf_rrlp_SeqOfSystemInfoAssistBTS_item = -1;  /* SystemInfoAssistBTS */
133 static int hf_rrlp_notPresent = -1;               /* NULL */
134 static int hf_rrlp_present = -1;                  /* AssistBTSData */
135 static int hf_rrlp_fineRTD = -1;                  /* FineRTD */
136 static int hf_rrlp_referenceWGS84 = -1;           /* ReferenceWGS84 */
137 static int hf_rrlp_relativeNorth = -1;            /* RelDistance */
138 static int hf_rrlp_relativeEast = -1;             /* RelDistance */
139 static int hf_rrlp_relativeAlt = -1;              /* RelativeAlt */
140 static int hf_rrlp_nbrOfSets = -1;                /* INTEGER_2_3 */
141 static int hf_rrlp_nbrOfReferenceBTSs = -1;       /* INTEGER_1_3 */
142 static int hf_rrlp_referenceRelation = -1;        /* ReferenceRelation */
143 static int hf_rrlp_refBTSList = -1;               /* SeqOfReferenceIdentityType */
144 static int hf_rrlp_SeqOfReferenceIdentityType_item = -1;  /* ReferenceIdentityType */
145 static int hf_rrlp_bsicAndCarrier = -1;           /* BSICAndCarrier */
146 static int hf_rrlp_ci = -1;                       /* CellID */
147 static int hf_rrlp_requestIndex = -1;             /* RequestIndex */
148 static int hf_rrlp_systemInfoIndex = -1;          /* SystemInfoIndex */
149 static int hf_rrlp_ciAndLAC = -1;                 /* CellIDAndLAC */
150 static int hf_rrlp_carrier = -1;                  /* BCCHCarrier */
151 static int hf_rrlp_referenceLAC = -1;             /* LAC */
152 static int hf_rrlp_referenceCI = -1;              /* CellID */
153 static int hf_rrlp_otdMsrFirstSets = -1;          /* OTD_MsrElementFirst */
154 static int hf_rrlp_otdMsrRestSets = -1;           /* SeqOfOTD_MsrElementRest */
155 static int hf_rrlp_SeqOfOTD_MsrElementRest_item = -1;  /* OTD_MsrElementRest */
156 static int hf_rrlp_refFrameNumber = -1;           /* INTEGER_0_42431 */
157 static int hf_rrlp_referenceTimeSlot = -1;        /* ModuloTimeSlot */
158 static int hf_rrlp_toaMeasurementsOfRef = -1;     /* TOA_MeasurementsOfRef */
159 static int hf_rrlp_stdResolution = -1;            /* StdResolution */
160 static int hf_rrlp_taCorrection = -1;             /* INTEGER_0_960 */
161 static int hf_rrlp_otd_FirstSetMsrs = -1;         /* SeqOfOTD_FirstSetMsrs */
162 static int hf_rrlp_SeqOfOTD_FirstSetMsrs_item = -1;  /* OTD_FirstSetMsrs */
163 static int hf_rrlp_otd_MsrsOfOtherSets = -1;      /* SeqOfOTD_MsrsOfOtherSets */
164 static int hf_rrlp_SeqOfOTD_MsrsOfOtherSets_item = -1;  /* OTD_MsrsOfOtherSets */
165 static int hf_rrlp_refQuality = -1;               /* RefQuality */
166 static int hf_rrlp_numOfMeasurements = -1;        /* NumOfMeasurements */
167 static int hf_rrlp_identityNotPresent = -1;       /* OTD_Measurement */
168 static int hf_rrlp_identityPresent = -1;          /* OTD_MeasurementWithID */
169 static int hf_rrlp_nborTimeSlot = -1;             /* ModuloTimeSlot */
170 static int hf_rrlp_eotdQuality = -1;              /* EOTDQuality */
171 static int hf_rrlp_otdValue = -1;                 /* OTDValue */
172 static int hf_rrlp_neighborIdentity = -1;         /* NeighborIdentity */
173 static int hf_rrlp_nbrOfMeasurements = -1;        /* INTEGER_0_7 */
174 static int hf_rrlp_stdOfEOTD = -1;                /* INTEGER_0_31 */
175 static int hf_rrlp_multiFrameCarrier = -1;        /* MultiFrameCarrier */
176 static int hf_rrlp_refFrame = -1;                 /* INTEGER_0_65535 */
177 static int hf_rrlp_gpsTOW = -1;                   /* INTEGER_0_14399999 */
178 static int hf_rrlp_fixType = -1;                  /* FixType */
179 static int hf_rrlp_posEstimate = -1;              /* Ext_GeographicalInformation */
180 static int hf_rrlp_gpsMsrSetList = -1;            /* SeqOfGPS_MsrSetElement */
181 static int hf_rrlp_SeqOfGPS_MsrSetElement_item = -1;  /* GPS_MsrSetElement */
182 static int hf_rrlp_gpsTOW_01 = -1;                /* GPSTOW24b */
183 static int hf_rrlp_gps_msrList = -1;              /* SeqOfGPS_MsrElement */
184 static int hf_rrlp_SeqOfGPS_MsrElement_item = -1;  /* GPS_MsrElement */
185 static int hf_rrlp_satelliteID = -1;              /* SatelliteID */
186 static int hf_rrlp_cNo = -1;                      /* INTEGER_0_63 */
187 static int hf_rrlp_doppler = -1;                  /* INTEGER_M32768_32767 */
188 static int hf_rrlp_wholeChips = -1;               /* INTEGER_0_1022 */
189 static int hf_rrlp_fracChips = -1;                /* INTEGER_0_1024 */
190 static int hf_rrlp_mpathIndic = -1;               /* MpathIndic */
191 static int hf_rrlp_pseuRangeRMSErr = -1;          /* INTEGER_0_63 */
192 static int hf_rrlp_locErrorReason = -1;           /* LocErrorReason */
193 static int hf_rrlp_additionalAssistanceData = -1;  /* AdditionalAssistanceData */
194 static int hf_rrlp_gpsAssistanceData = -1;        /* GPSAssistanceData */
195 static int hf_rrlp_ganssAssistanceData = -1;      /* GANSSAssistanceData */
196 static int hf_rrlp_controlHeader = -1;            /* ControlHeader */
197 static int hf_rrlp_referenceTime = -1;            /* ReferenceTime */
198 static int hf_rrlp_refLocation = -1;              /* RefLocation */
199 static int hf_rrlp_dgpsCorrections = -1;          /* DGPSCorrections */
200 static int hf_rrlp_navigationModel = -1;          /* NavigationModel */
201 static int hf_rrlp_ionosphericModel = -1;         /* IonosphericModel */
202 static int hf_rrlp_utcModel = -1;                 /* UTCModel */
203 static int hf_rrlp_almanac = -1;                  /* Almanac */
204 static int hf_rrlp_acquisAssist = -1;             /* AcquisAssist */
205 static int hf_rrlp_realTimeIntegrity = -1;        /* SeqOf_BadSatelliteSet */
206 static int hf_rrlp_gpsTime = -1;                  /* GPSTime */
207 static int hf_rrlp_gsmTime = -1;                  /* GSMTime */
208 static int hf_rrlp_gpsTowAssist = -1;             /* GPSTOWAssist */
209 static int hf_rrlp_gpsTOW23b = -1;                /* GPSTOW23b */
210 static int hf_rrlp_gpsWeek = -1;                  /* GPSWeek */
211 static int hf_rrlp_GPSTOWAssist_item = -1;        /* GPSTOWAssistElement */
212 static int hf_rrlp_tlmWord = -1;                  /* TLMWord */
213 static int hf_rrlp_antiSpoof = -1;                /* AntiSpoofFlag */
214 static int hf_rrlp_alert = -1;                    /* AlertFlag */
215 static int hf_rrlp_tlmRsvdBits = -1;              /* TLMReservedBits */
216 static int hf_rrlp_frameNumber = -1;              /* FrameNumber */
217 static int hf_rrlp_timeSlot = -1;                 /* TimeSlot */
218 static int hf_rrlp_bitNumber = -1;                /* BitNumber */
219 static int hf_rrlp_threeDLocation = -1;           /* Ext_GeographicalInformation */
220 static int hf_rrlp_gpsTOW_02 = -1;                /* INTEGER_0_604799 */
221 static int hf_rrlp_status = -1;                   /* INTEGER_0_7 */
222 static int hf_rrlp_satList = -1;                  /* SeqOfSatElement */
223 static int hf_rrlp_SeqOfSatElement_item = -1;     /* SatElement */
224 static int hf_rrlp_iode = -1;                     /* INTEGER_0_239 */
225 static int hf_rrlp_udre = -1;                     /* INTEGER_0_3 */
226 static int hf_rrlp_pseudoRangeCor = -1;           /* INTEGER_M2047_2047 */
227 static int hf_rrlp_rangeRateCor = -1;             /* INTEGER_M127_127 */
228 static int hf_rrlp_deltaPseudoRangeCor2 = -1;     /* INTEGER_M127_127 */
229 static int hf_rrlp_deltaRangeRateCor2 = -1;       /* INTEGER_M7_7 */
230 static int hf_rrlp_deltaPseudoRangeCor3 = -1;     /* INTEGER_M127_127 */
231 static int hf_rrlp_deltaRangeRateCor3 = -1;       /* INTEGER_M7_7 */
232 static int hf_rrlp_navModelList = -1;             /* SeqOfNavModelElement */
233 static int hf_rrlp_SeqOfNavModelElement_item = -1;  /* NavModelElement */
234 static int hf_rrlp_satStatus = -1;                /* SatStatus */
235 static int hf_rrlp_newSatelliteAndModelUC = -1;   /* UncompressedEphemeris */
236 static int hf_rrlp_oldSatelliteAndModel = -1;     /* NULL */
237 static int hf_rrlp_newNaviModelUC = -1;           /* UncompressedEphemeris */
238 static int hf_rrlp_ephemCodeOnL2 = -1;            /* INTEGER_0_3 */
239 static int hf_rrlp_ephemURA = -1;                 /* INTEGER_0_15 */
240 static int hf_rrlp_ephemSVhealth = -1;            /* INTEGER_0_63 */
241 static int hf_rrlp_ephemIODC = -1;                /* INTEGER_0_1023 */
242 static int hf_rrlp_ephemL2Pflag = -1;             /* INTEGER_0_1 */
243 static int hf_rrlp_ephemSF1Rsvd = -1;             /* EphemerisSubframe1Reserved */
244 static int hf_rrlp_ephemTgd = -1;                 /* INTEGER_M128_127 */
245 static int hf_rrlp_ephemToc = -1;                 /* INTEGER_0_37799 */
246 static int hf_rrlp_ephemAF2 = -1;                 /* INTEGER_M128_127 */
247 static int hf_rrlp_ephemAF1 = -1;                 /* INTEGER_M32768_32767 */
248 static int hf_rrlp_ephemAF0 = -1;                 /* INTEGER_M2097152_2097151 */
249 static int hf_rrlp_ephemCrs = -1;                 /* INTEGER_M32768_32767 */
250 static int hf_rrlp_ephemDeltaN = -1;              /* INTEGER_M32768_32767 */
251 static int hf_rrlp_ephemM0 = -1;                  /* INTEGER_M2147483648_2147483647 */
252 static int hf_rrlp_ephemCuc = -1;                 /* INTEGER_M32768_32767 */
253 static int hf_rrlp_ephemE = -1;                   /* INTEGER_0_4294967295 */
254 static int hf_rrlp_ephemCus = -1;                 /* INTEGER_M32768_32767 */
255 static int hf_rrlp_ephemAPowerHalf = -1;          /* INTEGER_0_4294967295 */
256 static int hf_rrlp_ephemToe = -1;                 /* INTEGER_0_37799 */
257 static int hf_rrlp_ephemFitFlag = -1;             /* INTEGER_0_1 */
258 static int hf_rrlp_ephemAODA = -1;                /* INTEGER_0_31 */
259 static int hf_rrlp_ephemCic = -1;                 /* INTEGER_M32768_32767 */
260 static int hf_rrlp_ephemOmegaA0 = -1;             /* INTEGER_M2147483648_2147483647 */
261 static int hf_rrlp_ephemCis = -1;                 /* INTEGER_M32768_32767 */
262 static int hf_rrlp_ephemI0 = -1;                  /* INTEGER_M2147483648_2147483647 */
263 static int hf_rrlp_ephemCrc = -1;                 /* INTEGER_M32768_32767 */
264 static int hf_rrlp_ephemW = -1;                   /* INTEGER_M2147483648_2147483647 */
265 static int hf_rrlp_ephemOmegaADot = -1;           /* INTEGER_M8388608_8388607 */
266 static int hf_rrlp_ephemIDot = -1;                /* INTEGER_M8192_8191 */
267 static int hf_rrlp_reserved1 = -1;                /* INTEGER_0_8388607 */
268 static int hf_rrlp_reserved2 = -1;                /* INTEGER_0_16777215 */
269 static int hf_rrlp_reserved3 = -1;                /* INTEGER_0_16777215 */
270 static int hf_rrlp_reserved4 = -1;                /* INTEGER_0_65535 */
271 static int hf_rrlp_alfa0 = -1;                    /* INTEGER_M128_127 */
272 static int hf_rrlp_alfa1 = -1;                    /* INTEGER_M128_127 */
273 static int hf_rrlp_alfa2 = -1;                    /* INTEGER_M128_127 */
274 static int hf_rrlp_alfa3 = -1;                    /* INTEGER_M128_127 */
275 static int hf_rrlp_beta0 = -1;                    /* INTEGER_M128_127 */
276 static int hf_rrlp_beta1 = -1;                    /* INTEGER_M128_127 */
277 static int hf_rrlp_beta2 = -1;                    /* INTEGER_M128_127 */
278 static int hf_rrlp_beta3 = -1;                    /* INTEGER_M128_127 */
279 static int hf_rrlp_utcA1 = -1;                    /* INTEGER_M8388608_8388607 */
280 static int hf_rrlp_utcA0 = -1;                    /* INTEGER_M2147483648_2147483647 */
281 static int hf_rrlp_utcTot = -1;                   /* INTEGER_0_255 */
282 static int hf_rrlp_utcWNt = -1;                   /* INTEGER_0_255 */
283 static int hf_rrlp_utcDeltaTls = -1;              /* INTEGER_M128_127 */
284 static int hf_rrlp_utcWNlsf = -1;                 /* INTEGER_0_255 */
285 static int hf_rrlp_utcDN = -1;                    /* INTEGER_M128_127 */
286 static int hf_rrlp_utcDeltaTlsf = -1;             /* INTEGER_M128_127 */
287 static int hf_rrlp_alamanacWNa = -1;              /* INTEGER_0_255 */
288 static int hf_rrlp_almanacList = -1;              /* SeqOfAlmanacElement */
289 static int hf_rrlp_SeqOfAlmanacElement_item = -1;  /* AlmanacElement */
290 static int hf_rrlp_almanacE = -1;                 /* INTEGER_0_65535 */
291 static int hf_rrlp_alamanacToa = -1;              /* INTEGER_0_255 */
292 static int hf_rrlp_almanacKsii = -1;              /* INTEGER_M32768_32767 */
293 static int hf_rrlp_almanacOmegaDot = -1;          /* INTEGER_M32768_32767 */
294 static int hf_rrlp_almanacSVhealth = -1;          /* INTEGER_0_255 */
295 static int hf_rrlp_almanacAPowerHalf = -1;        /* INTEGER_0_16777215 */
296 static int hf_rrlp_almanacOmega0 = -1;            /* INTEGER_M8388608_8388607 */
297 static int hf_rrlp_almanacW = -1;                 /* INTEGER_M8388608_8388607 */
298 static int hf_rrlp_almanacM0 = -1;                /* INTEGER_M8388608_8388607 */
299 static int hf_rrlp_almanacAF0 = -1;               /* INTEGER_M1024_1023 */
300 static int hf_rrlp_almanacAF1 = -1;               /* INTEGER_M1024_1023 */
301 static int hf_rrlp_timeRelation = -1;             /* TimeRelation */
302 static int hf_rrlp_acquisList = -1;               /* SeqOfAcquisElement */
303 static int hf_rrlp_SeqOfAcquisElement_item = -1;  /* AcquisElement */
304 static int hf_rrlp_gpsTOW_03 = -1;                /* GPSTOW23b */
305 static int hf_rrlp_svid = -1;                     /* SatelliteID */
306 static int hf_rrlp_doppler0 = -1;                 /* INTEGER_M2048_2047 */
307 static int hf_rrlp_addionalDoppler = -1;          /* AddionalDopplerFields */
308 static int hf_rrlp_codePhase = -1;                /* INTEGER_0_1022 */
309 static int hf_rrlp_intCodePhase = -1;             /* INTEGER_0_19 */
310 static int hf_rrlp_gpsBitNumber = -1;             /* INTEGER_0_3 */
311 static int hf_rrlp_codePhaseSearchWindow = -1;    /* INTEGER_0_15 */
312 static int hf_rrlp_addionalAngle = -1;            /* AddionalAngleFields */
313 static int hf_rrlp_doppler1 = -1;                 /* INTEGER_0_63 */
314 static int hf_rrlp_dopplerUncertainty = -1;       /* INTEGER_0_7 */
315 static int hf_rrlp_azimuth = -1;                  /* INTEGER_0_31 */
316 static int hf_rrlp_elevation = -1;                /* INTEGER_0_7 */
317 static int hf_rrlp_SeqOf_BadSatelliteSet_item = -1;  /* SatelliteID */
318 static int hf_rrlp_rel98_Ext_ExpOTD = -1;         /* Rel98_Ext_ExpOTD */
319 static int hf_rrlp_gpsTimeAssistanceMeasurementRequest = -1;  /* NULL */
320 static int hf_rrlp_gpsReferenceTimeUncertainty = -1;  /* GPSReferenceTimeUncertainty */
321 static int hf_rrlp_msrAssistData_R98_ExpOTD = -1;  /* MsrAssistData_R98_ExpOTD */
322 static int hf_rrlp_systemInfoAssistData_R98_ExpOTD = -1;  /* SystemInfoAssistData_R98_ExpOTD */
323 static int hf_rrlp_msrAssistList_R98_ExpOTD = -1;  /* SeqOfMsrAssistBTS_R98_ExpOTD */
324 static int hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item = -1;  /* MsrAssistBTS_R98_ExpOTD */
325 static int hf_rrlp_expectedOTD = -1;              /* ExpectedOTD */
326 static int hf_rrlp_expOTDUncertainty = -1;        /* ExpOTDUncertainty */
327 static int hf_rrlp_systemInfoAssistListR98_ExpOTD = -1;  /* SeqOfSystemInfoAssistBTS_R98_ExpOTD */
328 static int hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item = -1;  /* SystemInfoAssistBTS_R98_ExpOTD */
329 static int hf_rrlp_present_01 = -1;               /* AssistBTSData_R98_ExpOTD */
330 static int hf_rrlp_expOTDuncertainty = -1;        /* ExpOTDUncertainty */
331 static int hf_rrlp_referenceFrameMSB = -1;        /* INTEGER_0_63 */
332 static int hf_rrlp_gpsTowSubms = -1;              /* INTEGER_0_9999 */
333 static int hf_rrlp_deltaTow = -1;                 /* INTEGER_0_127 */
334 static int hf_rrlp_rel_98_Ext_MeasureInfo = -1;   /* T_rel_98_Ext_MeasureInfo */
335 static int hf_rrlp_otd_MeasureInfo_R98_Ext = -1;  /* OTD_MeasureInfo_R98_Ext */
336 static int hf_rrlp_timeAssistanceMeasurements = -1;  /* GPSTimeAssistanceMeasurements */
337 static int hf_rrlp_otdMsrFirstSets_R98_Ext = -1;  /* OTD_MsrElementFirst_R98_Ext */
338 static int hf_rrlp_otd_FirstSetMsrs_R98_Ext = -1;  /* SeqOfOTD_FirstSetMsrs_R98_Ext */
339 static int hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item = -1;  /* OTD_FirstSetMsrs */
340 static int hf_rrlp_otd_MeasureInfo_5_Ext = -1;    /* OTD_MeasureInfo_5_Ext */
341 static int hf_rrlp_ulPseudoSegInd = -1;           /* UlPseudoSegInd */
342 static int hf_rrlp_smlc_code = -1;                /* INTEGER_0_63 */
343 static int hf_rrlp_transaction_ID = -1;           /* INTEGER_0_262143 */
344 static int hf_rrlp_velocityRequested = -1;        /* NULL */
345 static int hf_rrlp_ganssPositionMethod = -1;      /* GANSSPositioningMethod */
346 static int hf_rrlp_ganss_AssistData = -1;         /* GANSS_AssistData */
347 static int hf_rrlp_ganssCarrierPhaseMeasurementRequest = -1;  /* NULL */
348 static int hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest = -1;  /* NULL */
349 static int hf_rrlp_requiredResponseTime = -1;     /* RequiredResponseTime */
350 static int hf_rrlp_add_GPS_AssistData = -1;       /* Add_GPS_AssistData */
351 static int hf_rrlp_ganssMultiFreqMeasurementRequest = -1;  /* NULL */
352 static int hf_rrlp_ganss_controlHeader = -1;      /* GANSS_ControlHeader */
353 static int hf_rrlp_ganssCommonAssistData = -1;    /* GANSSCommonAssistData */
354 static int hf_rrlp_ganssGenericAssistDataList = -1;  /* SeqOfGANSSGenericAssistDataElement */
355 static int hf_rrlp_ganssReferenceTime = -1;       /* GANSSReferenceTime */
356 static int hf_rrlp_ganssRefLocation = -1;         /* GANSSRefLocation */
357 static int hf_rrlp_ganssIonosphericModel = -1;    /* GANSSIonosphericModel */
358 static int hf_rrlp_ganssAddIonosphericModel = -1;  /* GANSSAddIonosphericModel */
359 static int hf_rrlp_ganssEarthOrientParam = -1;    /* GANSSEarthOrientParam */
360 static int hf_rrlp_SeqOfGANSSGenericAssistDataElement_item = -1;  /* GANSSGenericAssistDataElement */
361 static int hf_rrlp_ganssID = -1;                  /* INTEGER_0_7 */
362 static int hf_rrlp_ganssTimeModel = -1;           /* SeqOfGANSSTimeModel */
363 static int hf_rrlp_ganssDiffCorrections = -1;     /* GANSSDiffCorrections */
364 static int hf_rrlp_ganssNavigationModel = -1;     /* GANSSNavModel */
365 static int hf_rrlp_ganssRealTimeIntegrity = -1;   /* GANSSRealTimeIntegrity */
366 static int hf_rrlp_ganssDataBitAssist = -1;       /* GANSSDataBitAssist */
367 static int hf_rrlp_ganssRefMeasurementAssist = -1;  /* GANSSRefMeasurementAssist */
368 static int hf_rrlp_ganssAlmanacModel = -1;        /* GANSSAlmanacModel */
369 static int hf_rrlp_ganssUTCModel = -1;            /* GANSSUTCModel */
370 static int hf_rrlp_ganssEphemerisExtension = -1;  /* GANSSEphemerisExtension */
371 static int hf_rrlp_ganssEphemerisExtCheck = -1;   /* GANSSEphemerisExtensionCheck */
372 static int hf_rrlp_sbasID = -1;                   /* INTEGER_0_7 */
373 static int hf_rrlp_ganssAddUTCModel = -1;         /* GANSSAddUTCModel */
374 static int hf_rrlp_ganssAuxiliaryInfo = -1;       /* GANSSAuxiliaryInformation */
375 static int hf_rrlp_ganssDiffCorrectionsValidityPeriod = -1;  /* GANSSDiffCorrectionsValidityPeriod */
376 static int hf_rrlp_ganssRefTimeInfo = -1;         /* GANSSRefTimeInfo */
377 static int hf_rrlp_ganssTOD_GSMTimeAssociation = -1;  /* GANSSTOD_GSMTimeAssociation */
378 static int hf_rrlp_ganssDay = -1;                 /* INTEGER_0_8191 */
379 static int hf_rrlp_ganssTOD = -1;                 /* GANSSTOD */
380 static int hf_rrlp_ganssTODUncertainty = -1;      /* GANSSTODUncertainty */
381 static int hf_rrlp_ganssTimeID = -1;              /* INTEGER_0_7 */
382 static int hf_rrlp_frameDrift = -1;               /* FrameDrift */
383 static int hf_rrlp_ganssIonoModel = -1;           /* GANSSIonosphereModel */
384 static int hf_rrlp_ganssIonoStormFlags = -1;      /* GANSSIonoStormFlags */
385 static int hf_rrlp_ai0 = -1;                      /* INTEGER_0_4095 */
386 static int hf_rrlp_ai1 = -1;                      /* INTEGER_0_4095 */
387 static int hf_rrlp_ai2 = -1;                      /* INTEGER_0_4095 */
388 static int hf_rrlp_ionoStormFlag1 = -1;           /* INTEGER_0_1 */
389 static int hf_rrlp_ionoStormFlag2 = -1;           /* INTEGER_0_1 */
390 static int hf_rrlp_ionoStormFlag3 = -1;           /* INTEGER_0_1 */
391 static int hf_rrlp_ionoStormFlag4 = -1;           /* INTEGER_0_1 */
392 static int hf_rrlp_ionoStormFlag5 = -1;           /* INTEGER_0_1 */
393 static int hf_rrlp_dataID = -1;                   /* BIT_STRING_SIZE_2 */
394 static int hf_rrlp_ionoModel = -1;                /* IonosphericModel */
395 static int hf_rrlp_teop = -1;                     /* INTEGER_0_65535 */
396 static int hf_rrlp_pmX = -1;                      /* INTEGER_M1048576_1048575 */
397 static int hf_rrlp_pmXdot = -1;                   /* INTEGER_M16384_16383 */
398 static int hf_rrlp_pmY = -1;                      /* INTEGER_M1048576_1048575 */
399 static int hf_rrlp_pmYdot = -1;                   /* INTEGER_M16384_16383 */
400 static int hf_rrlp_deltaUT1 = -1;                 /* INTEGER_M1073741824_1073741823 */
401 static int hf_rrlp_deltaUT1dot = -1;              /* INTEGER_M262144_262143 */
402 static int hf_rrlp_SeqOfGANSSTimeModel_item = -1;  /* GANSSTimeModelElement */
403 static int hf_rrlp_ganssTimeModelRefTime = -1;    /* INTEGER_0_65535 */
404 static int hf_rrlp_tA0 = -1;                      /* TA0 */
405 static int hf_rrlp_tA1 = -1;                      /* TA1 */
406 static int hf_rrlp_tA2 = -1;                      /* TA2 */
407 static int hf_rrlp_gnssTOID = -1;                 /* INTEGER_0_7 */
408 static int hf_rrlp_weekNumber = -1;               /* INTEGER_0_8191 */
409 static int hf_rrlp_dganssRefTime = -1;            /* INTEGER_0_119 */
410 static int hf_rrlp_sgnTypeList = -1;              /* SeqOfSgnTypeElement */
411 static int hf_rrlp_SeqOfSgnTypeElement_item = -1;  /* SgnTypeElement */
412 static int hf_rrlp_ganssSignalID = -1;            /* GANSSSignalID */
413 static int hf_rrlp_ganssStatusHealth = -1;        /* INTEGER_0_7 */
414 static int hf_rrlp_dganssSgnList = -1;            /* SeqOfDGANSSSgnElement */
415 static int hf_rrlp_SeqOfDGANSSSgnElement_item = -1;  /* DGANSSSgnElement */
416 static int hf_rrlp_svID = -1;                     /* SVID */
417 static int hf_rrlp_iod = -1;                      /* INTEGER_0_1023 */
418 static int hf_rrlp_nonBroadcastIndFlag = -1;      /* INTEGER_0_1 */
419 static int hf_rrlp_ganssSatelliteList = -1;       /* SeqOfGANSSSatelliteElement */
420 static int hf_rrlp_SeqOfGANSSSatelliteElement_item = -1;  /* GANSSSatelliteElement */
421 static int hf_rrlp_svHealth = -1;                 /* BIT_STRING_SIZE_5 */
422 static int hf_rrlp_ganssClockModel = -1;          /* GANSSClockModel */
423 static int hf_rrlp_ganssOrbitModel = -1;          /* GANSSOrbitModel */
424 static int hf_rrlp_svHealthMSB = -1;              /* BIT_STRING_SIZE_1 */
425 static int hf_rrlp_iodMSB = -1;                   /* INTEGER_0_1 */
426 static int hf_rrlp_keplerianSet = -1;             /* NavModel_KeplerianSet */
427 static int hf_rrlp_navKeplerianSet = -1;          /* NavModel_NAVKeplerianSet */
428 static int hf_rrlp_cnavKeplerianSet = -1;         /* NavModel_CNAVKeplerianSet */
429 static int hf_rrlp_glonassECEF = -1;              /* NavModel_GLONASSecef */
430 static int hf_rrlp_sbasECEF = -1;                 /* NavModel_SBASecef */
431 static int hf_rrlp_keplerToe = -1;                /* INTEGER_0_16383 */
432 static int hf_rrlp_keplerW = -1;                  /* INTEGER_M2147483648_2147483647 */
433 static int hf_rrlp_keplerDeltaN = -1;             /* INTEGER_M32768_32767 */
434 static int hf_rrlp_keplerM0 = -1;                 /* INTEGER_M2147483648_2147483647 */
435 static int hf_rrlp_keplerOmegaDot = -1;           /* INTEGER_M8388608_8388607 */
436 static int hf_rrlp_keplerE = -1;                  /* INTEGER_0_4294967295 */
437 static int hf_rrlp_keplerIDot = -1;               /* INTEGER_M8192_8191 */
438 static int hf_rrlp_keplerAPowerHalf = -1;         /* INTEGER_0_4294967295 */
439 static int hf_rrlp_keplerI0 = -1;                 /* INTEGER_M2147483648_2147483647 */
440 static int hf_rrlp_keplerOmega0 = -1;             /* INTEGER_M2147483648_2147483647 */
441 static int hf_rrlp_keplerCrs = -1;                /* INTEGER_M32768_32767 */
442 static int hf_rrlp_keplerCis = -1;                /* INTEGER_M32768_32767 */
443 static int hf_rrlp_keplerCus = -1;                /* INTEGER_M32768_32767 */
444 static int hf_rrlp_keplerCrc = -1;                /* INTEGER_M32768_32767 */
445 static int hf_rrlp_keplerCic = -1;                /* INTEGER_M32768_32767 */
446 static int hf_rrlp_keplerCuc = -1;                /* INTEGER_M32768_32767 */
447 static int hf_rrlp_navURA = -1;                   /* INTEGER_0_15 */
448 static int hf_rrlp_navFitFlag = -1;               /* INTEGER_0_1 */
449 static int hf_rrlp_navToe = -1;                   /* INTEGER_0_37799 */
450 static int hf_rrlp_navOmega = -1;                 /* INTEGER_M2147483648_2147483647 */
451 static int hf_rrlp_navDeltaN = -1;                /* INTEGER_M32768_32767 */
452 static int hf_rrlp_navM0 = -1;                    /* INTEGER_M2147483648_2147483647 */
453 static int hf_rrlp_navOmegaADot = -1;             /* INTEGER_M8388608_8388607 */
454 static int hf_rrlp_navE = -1;                     /* INTEGER_0_4294967295 */
455 static int hf_rrlp_navIDot = -1;                  /* INTEGER_M8192_8191 */
456 static int hf_rrlp_navAPowerHalf = -1;            /* INTEGER_0_4294967295 */
457 static int hf_rrlp_navI0 = -1;                    /* INTEGER_M2147483648_2147483647 */
458 static int hf_rrlp_navOmegaA0 = -1;               /* INTEGER_M2147483648_2147483647 */
459 static int hf_rrlp_navCrs = -1;                   /* INTEGER_M32768_32767 */
460 static int hf_rrlp_navCis = -1;                   /* INTEGER_M32768_32767 */
461 static int hf_rrlp_navCus = -1;                   /* INTEGER_M32768_32767 */
462 static int hf_rrlp_navCrc = -1;                   /* INTEGER_M32768_32767 */
463 static int hf_rrlp_navCic = -1;                   /* INTEGER_M32768_32767 */
464 static int hf_rrlp_navCuc = -1;                   /* INTEGER_M32768_32767 */
465 static int hf_rrlp_cnavTop = -1;                  /* INTEGER_0_2015 */
466 static int hf_rrlp_cnavURAindex = -1;             /* INTEGER_M16_15 */
467 static int hf_rrlp_cnavDeltaA = -1;               /* INTEGER_M33554432_33554431 */
468 static int hf_rrlp_cnavAdot = -1;                 /* INTEGER_M16777216_16777215 */
469 static int hf_rrlp_cnavDeltaNo = -1;              /* INTEGER_M65536_65535 */
470 static int hf_rrlp_cnavDeltaNoDot = -1;           /* INTEGER_M4194304_4194303 */
471 static int hf_rrlp_cnavMo = -1;                   /* T_cnavMo */
472 static int hf_rrlp_cnavE = -1;                    /* T_cnavE */
473 static int hf_rrlp_cnavOmega = -1;                /* T_cnavOmega */
474 static int hf_rrlp_cnavOMEGA0 = -1;               /* T_cnavOMEGA0 */
475 static int hf_rrlp_cnavDeltaOmegaDot = -1;        /* INTEGER_M65536_65535 */
476 static int hf_rrlp_cnavIo = -1;                   /* T_cnavIo */
477 static int hf_rrlp_cnavIoDot = -1;                /* INTEGER_M16384_16383 */
478 static int hf_rrlp_cnavCis = -1;                  /* INTEGER_M32768_32767 */
479 static int hf_rrlp_cnavCic = -1;                  /* INTEGER_M32768_32767 */
480 static int hf_rrlp_cnavCrs = -1;                  /* INTEGER_M8388608_8388607 */
481 static int hf_rrlp_cnavCrc = -1;                  /* INTEGER_M8388608_8388607 */
482 static int hf_rrlp_cnavCus = -1;                  /* INTEGER_M1048576_1048575 */
483 static int hf_rrlp_cnavCuc = -1;                  /* INTEGER_M1048576_1048575 */
484 static int hf_rrlp_gloEn = -1;                    /* INTEGER_0_31 */
485 static int hf_rrlp_gloP1 = -1;                    /* BIT_STRING_SIZE_2 */
486 static int hf_rrlp_gloP2 = -1;                    /* BOOLEAN */
487 static int hf_rrlp_gloM = -1;                     /* INTEGER_0_3 */
488 static int hf_rrlp_gloX = -1;                     /* INTEGER_M67108864_67108863 */
489 static int hf_rrlp_gloXdot = -1;                  /* INTEGER_M8388608_8388607 */
490 static int hf_rrlp_gloXdotdot = -1;               /* INTEGER_M16_15 */
491 static int hf_rrlp_gloY = -1;                     /* INTEGER_M67108864_67108863 */
492 static int hf_rrlp_gloYdot = -1;                  /* INTEGER_M8388608_8388607 */
493 static int hf_rrlp_gloYdotdot = -1;               /* INTEGER_M16_15 */
494 static int hf_rrlp_gloZ = -1;                     /* INTEGER_M67108864_67108863 */
495 static int hf_rrlp_gloZdot = -1;                  /* INTEGER_M8388608_8388607 */
496 static int hf_rrlp_gloZdotdot = -1;               /* INTEGER_M16_15 */
497 static int hf_rrlp_sbasTo = -1;                   /* INTEGER_0_5399 */
498 static int hf_rrlp_sbasAccuracy = -1;             /* BIT_STRING_SIZE_4 */
499 static int hf_rrlp_sbasXg = -1;                   /* INTEGER_M536870912_536870911 */
500 static int hf_rrlp_sbasYg = -1;                   /* INTEGER_M536870912_536870911 */
501 static int hf_rrlp_sbasZg = -1;                   /* INTEGER_M16777216_16777215 */
502 static int hf_rrlp_sbasXgDot = -1;                /* INTEGER_M65536_65535 */
503 static int hf_rrlp_sbasYgDot = -1;                /* INTEGER_M65536_65535 */
504 static int hf_rrlp_sbasZgDot = -1;                /* INTEGER_M131072_131071 */
505 static int hf_rrlp_sbasXgDotDot = -1;             /* INTEGER_M512_511 */
506 static int hf_rrlp_sbagYgDotDot = -1;             /* INTEGER_M512_511 */
507 static int hf_rrlp_sbasZgDotDot = -1;             /* INTEGER_M512_511 */
508 static int hf_rrlp_standardClockModelList = -1;   /* SeqOfStandardClockModelElement */
509 static int hf_rrlp_navClockModel = -1;            /* NAVclockModel */
510 static int hf_rrlp_cnavClockModel = -1;           /* CNAVclockModel */
511 static int hf_rrlp_glonassClockModel = -1;        /* GLONASSclockModel */
512 static int hf_rrlp_sbasClockModel = -1;           /* SBASclockModel */
513 static int hf_rrlp_SeqOfStandardClockModelElement_item = -1;  /* StandardClockModelElement */
514 static int hf_rrlp_stanClockToc = -1;             /* INTEGER_0_16383 */
515 static int hf_rrlp_stanClockAF2 = -1;             /* INTEGER_M2048_2047 */
516 static int hf_rrlp_stanClockAF1 = -1;             /* INTEGER_M131072_131071 */
517 static int hf_rrlp_stanClockAF0 = -1;             /* INTEGER_M134217728_134217727 */
518 static int hf_rrlp_stanClockTgd = -1;             /* INTEGER_M512_511 */
519 static int hf_rrlp_stanModelID = -1;              /* INTEGER_0_1 */
520 static int hf_rrlp_navToc = -1;                   /* INTEGER_0_37799 */
521 static int hf_rrlp_navaf2 = -1;                   /* INTEGER_M128_127 */
522 static int hf_rrlp_navaf1 = -1;                   /* INTEGER_M32768_32767 */
523 static int hf_rrlp_navaf0 = -1;                   /* INTEGER_M2097152_2097151 */
524 static int hf_rrlp_navTgd = -1;                   /* INTEGER_M128_127 */
525 static int hf_rrlp_cnavToc = -1;                  /* INTEGER_0_2015 */
526 static int hf_rrlp_cnavURA0 = -1;                 /* INTEGER_M16_15 */
527 static int hf_rrlp_cnavURA1 = -1;                 /* INTEGER_0_7 */
528 static int hf_rrlp_cnavURA2 = -1;                 /* INTEGER_0_7 */
529 static int hf_rrlp_cnavAf2 = -1;                  /* INTEGER_M512_511 */
530 static int hf_rrlp_cnavAf1 = -1;                  /* INTEGER_M524288_524287 */
531 static int hf_rrlp_cnavAf0 = -1;                  /* INTEGER_M33554432_33554431 */
532 static int hf_rrlp_cnavTgd = -1;                  /* INTEGER_M4096_4095 */
533 static int hf_rrlp_cnavISCl1cp = -1;              /* INTEGER_M4096_4095 */
534 static int hf_rrlp_cnavISCl1cd = -1;              /* INTEGER_M4096_4095 */
535 static int hf_rrlp_cnavISCl1ca = -1;              /* INTEGER_M4096_4095 */
536 static int hf_rrlp_cnavISCl2c = -1;               /* INTEGER_M4096_4095 */
537 static int hf_rrlp_cnavISCl5i5 = -1;              /* INTEGER_M4096_4095 */
538 static int hf_rrlp_cnavISCl5q5 = -1;              /* INTEGER_M4096_4095 */
539 static int hf_rrlp_gloTau = -1;                   /* INTEGER_M2097152_2097151 */
540 static int hf_rrlp_gloGamma = -1;                 /* INTEGER_M1024_1023 */
541 static int hf_rrlp_gloDeltaTau = -1;              /* INTEGER_M16_15 */
542 static int hf_rrlp_sbasAgfo = -1;                 /* INTEGER_M2048_2047 */
543 static int hf_rrlp_sbasAgf1 = -1;                 /* INTEGER_M128_127 */
544 static int hf_rrlp_ganssBadSignalList = -1;       /* SeqOfBadSignalElement */
545 static int hf_rrlp_SeqOfBadSignalElement_item = -1;  /* BadSignalElement */
546 static int hf_rrlp_badSVID = -1;                  /* SVID */
547 static int hf_rrlp_badSignalID = -1;              /* GANSSSignals */
548 static int hf_rrlp_ganssTOD_01 = -1;              /* INTEGER_0_59 */
549 static int hf_rrlp_ganssDataBitsSatList = -1;     /* SeqOfGanssDataBitsElement */
550 static int hf_rrlp_SeqOfGanssDataBitsElement_item = -1;  /* GanssDataBitsElement */
551 static int hf_rrlp_ganssDataBitsSgnList = -1;     /* Seq_OfGANSSDataBitsSgn */
552 static int hf_rrlp_Seq_OfGANSSDataBitsSgn_item = -1;  /* GANSSDataBitsSgnElement */
553 static int hf_rrlp_ganssSignalType = -1;          /* GANSSSignalID */
554 static int hf_rrlp_ganssDataBits = -1;            /* SeqOf_GANSSDataBits */
555 static int hf_rrlp_SeqOf_GANSSDataBits_item = -1;  /* GANSSDataBit */
556 static int hf_rrlp_ganssRefMeasAssistList = -1;   /* SeqOfGANSSRefMeasurementElement */
557 static int hf_rrlp_SeqOfGANSSRefMeasurementElement_item = -1;  /* GANSSRefMeasurementElement */
558 static int hf_rrlp_additionalDoppler = -1;        /* AdditionalDopplerFields */
559 static int hf_rrlp_intCodePhase_01 = -1;          /* INTEGER_0_127 */
560 static int hf_rrlp_codePhaseSearchWindow_01 = -1;  /* INTEGER_0_31 */
561 static int hf_rrlp_additionalAngle = -1;          /* AddionalAngleFields */
562 static int hf_rrlp_dopplerUncertainty_01 = -1;    /* INTEGER_0_4 */
563 static int hf_rrlp_weekNumber_01 = -1;            /* INTEGER_0_255 */
564 static int hf_rrlp_toa = -1;                      /* INTEGER_0_255 */
565 static int hf_rrlp_ioda = -1;                     /* INTEGER_0_3 */
566 static int hf_rrlp_ganssAlmanacList = -1;         /* SeqOfGANSSAlmanacElement */
567 static int hf_rrlp_SeqOfGANSSAlmanacElement_item = -1;  /* GANSSAlmanacElement */
568 static int hf_rrlp_keplerianAlmanacSet = -1;      /* Almanac_KeplerianSet */
569 static int hf_rrlp_keplerianNAVAlmanac = -1;      /* Almanac_NAVKeplerianSet */
570 static int hf_rrlp_keplerianReducedAlmanac = -1;  /* Almanac_ReducedKeplerianSet */
571 static int hf_rrlp_keplerianMidiAlmanac = -1;     /* Almanac_MidiAlmanacSet */
572 static int hf_rrlp_keplerianGLONASS = -1;         /* Almanac_GlonassAlmanacSet */
573 static int hf_rrlp_ecefSBASAlmanac = -1;          /* Almanac_ECEFsbasAlmanacSet */
574 static int hf_rrlp_kepAlmanacE = -1;              /* INTEGER_0_2047 */
575 static int hf_rrlp_kepAlmanacDeltaI = -1;         /* INTEGER_M1024_1023 */
576 static int hf_rrlp_kepAlmanacOmegaDot = -1;       /* INTEGER_M1024_1023 */
577 static int hf_rrlp_kepSVHealth = -1;              /* INTEGER_0_15 */
578 static int hf_rrlp_kepAlmanacAPowerHalf = -1;     /* INTEGER_M65536_65535 */
579 static int hf_rrlp_kepAlmanacOmega0 = -1;         /* INTEGER_M32768_32767 */
580 static int hf_rrlp_kepAlmanacW = -1;              /* INTEGER_M32768_32767 */
581 static int hf_rrlp_kepAlmanacM0 = -1;             /* INTEGER_M32768_32767 */
582 static int hf_rrlp_kepAlmanacAF0 = -1;            /* INTEGER_M8192_8191 */
583 static int hf_rrlp_kepAlmanacAF1 = -1;            /* INTEGER_M1024_1023 */
584 static int hf_rrlp_navAlmE = -1;                  /* INTEGER_0_65535 */
585 static int hf_rrlp_navAlmDeltaI = -1;             /* INTEGER_M32768_32767 */
586 static int hf_rrlp_navAlmOMEGADOT = -1;           /* INTEGER_M32768_32767 */
587 static int hf_rrlp_navAlmSVHealth = -1;           /* INTEGER_0_255 */
588 static int hf_rrlp_navAlmSqrtA = -1;              /* INTEGER_0_16777215 */
589 static int hf_rrlp_navAlmOMEGAo = -1;             /* INTEGER_M8388608_8388607 */
590 static int hf_rrlp_navAlmOmega = -1;              /* INTEGER_M8388608_8388607 */
591 static int hf_rrlp_navAlmMo = -1;                 /* INTEGER_M8388608_8388607 */
592 static int hf_rrlp_navAlmaf0 = -1;                /* INTEGER_M1024_1023 */
593 static int hf_rrlp_navAlmaf1 = -1;                /* INTEGER_M1024_1023 */
594 static int hf_rrlp_redAlmDeltaA = -1;             /* INTEGER_M128_127 */
595 static int hf_rrlp_redAlmOmega0 = -1;             /* INTEGER_M64_63 */
596 static int hf_rrlp_redAlmPhi0 = -1;               /* INTEGER_M64_63 */
597 static int hf_rrlp_redAlmL1Health = -1;           /* BOOLEAN */
598 static int hf_rrlp_redAlmL2Health = -1;           /* BOOLEAN */
599 static int hf_rrlp_redAlmL5Health = -1;           /* BOOLEAN */
600 static int hf_rrlp_midiAlmE = -1;                 /* INTEGER_0_2047 */
601 static int hf_rrlp_midiAlmDeltaI = -1;            /* INTEGER_M1024_1023 */
602 static int hf_rrlp_midiAlmOmegaDot = -1;          /* INTEGER_M1024_1023 */
603 static int hf_rrlp_midiAlmSqrtA = -1;             /* INTEGER_0_131071 */
604 static int hf_rrlp_midiAlmOmega0 = -1;            /* INTEGER_M32768_32767 */
605 static int hf_rrlp_midiAlmOmega = -1;             /* INTEGER_M32768_32767 */
606 static int hf_rrlp_midiAlmMo = -1;                /* INTEGER_M32768_32767 */
607 static int hf_rrlp_midiAlmaf0 = -1;               /* INTEGER_M1024_1023 */
608 static int hf_rrlp_midiAlmaf1 = -1;               /* INTEGER_M512_511 */
609 static int hf_rrlp_midiAlmL1Health = -1;          /* BOOLEAN */
610 static int hf_rrlp_midiAlmL2Health = -1;          /* BOOLEAN */
611 static int hf_rrlp_midiAlmL5Health = -1;          /* BOOLEAN */
612 static int hf_rrlp_gloAlmNA = -1;                 /* INTEGER_1_1461 */
613 static int hf_rrlp_gloAlmnA = -1;                 /* INTEGER_1_24 */
614 static int hf_rrlp_gloAlmHA = -1;                 /* INTEGER_0_31 */
615 static int hf_rrlp_gloAlmLambdaA = -1;            /* INTEGER_M1048576_1048575 */
616 static int hf_rrlp_gloAlmtlambdaA = -1;           /* INTEGER_0_2097151 */
617 static int hf_rrlp_gloAlmDeltaIa = -1;            /* INTEGER_M131072_131071 */
618 static int hf_rrlp_gloAlmDeltaTA = -1;            /* INTEGER_M2097152_2097151 */
619 static int hf_rrlp_gloAlmDeltaTdotA = -1;         /* INTEGER_M64_63 */
620 static int hf_rrlp_gloAlmEpsilonA = -1;           /* INTEGER_0_32767 */
621 static int hf_rrlp_gloAlmOmegaA = -1;             /* INTEGER_M32768_32767 */
622 static int hf_rrlp_gloAlmTauA = -1;               /* INTEGER_M512_511 */
623 static int hf_rrlp_gloAlmCA = -1;                 /* INTEGER_0_1 */
624 static int hf_rrlp_gloAlmMA = -1;                 /* BIT_STRING_SIZE_2 */
625 static int hf_rrlp_sbasAlmDataID = -1;            /* INTEGER_0_3 */
626 static int hf_rrlp_sbasAlmHealth = -1;            /* BIT_STRING_SIZE_8 */
627 static int hf_rrlp_sbasAlmXg = -1;                /* INTEGER_M16384_16383 */
628 static int hf_rrlp_sbasAlmYg = -1;                /* INTEGER_M16384_16383 */
629 static int hf_rrlp_sbasAlmZg = -1;                /* INTEGER_M256_255 */
630 static int hf_rrlp_sbasAlmXgdot = -1;             /* INTEGER_M4_3 */
631 static int hf_rrlp_sbasAlmYgDot = -1;             /* INTEGER_M4_3 */
632 static int hf_rrlp_sbasAlmZgDot = -1;             /* INTEGER_M8_7 */
633 static int hf_rrlp_sbasAlmTo = -1;                /* INTEGER_0_2047 */
634 static int hf_rrlp_ganssUtcA1 = -1;               /* INTEGER_M8388608_8388607 */
635 static int hf_rrlp_ganssUtcA0 = -1;               /* INTEGER_M2147483648_2147483647 */
636 static int hf_rrlp_ganssUtcTot = -1;              /* INTEGER_0_255 */
637 static int hf_rrlp_ganssUtcWNt = -1;              /* INTEGER_0_255 */
638 static int hf_rrlp_ganssUtcDeltaTls = -1;         /* INTEGER_M128_127 */
639 static int hf_rrlp_ganssUtcWNlsf = -1;            /* INTEGER_0_255 */
640 static int hf_rrlp_ganssUtcDN = -1;               /* INTEGER_M128_127 */
641 static int hf_rrlp_ganssUtcDeltaTlsf = -1;        /* INTEGER_M128_127 */
642 static int hf_rrlp_ganssEphemerisHeader = -1;     /* GANSSEphemerisExtensionHeader */
643 static int hf_rrlp_ganssReferenceSet = -1;        /* SeqOfGANSSRefOrbit */
644 static int hf_rrlp_ganssephemerisDeltasMatrix = -1;  /* GANSSEphemerisDeltaMatrix */
645 static int hf_rrlp_timeAtEstimation = -1;         /* GANSSEphemerisExtensionTime */
646 static int hf_rrlp_validityPeriod = -1;           /* INTEGER_1_8 */
647 static int hf_rrlp_ephemerisExtensionDuration = -1;  /* INTEGER_1_512 */
648 static int hf_rrlp_ganssEphExtDay = -1;           /* INTEGER_0_8191 */
649 static int hf_rrlp_ganssEphExtTOD = -1;           /* GANSSTOD */
650 static int hf_rrlp_keplerToe_01 = -1;             /* INTEGER_0_37799 */
651 static int hf_rrlp_keplerW_01 = -1;               /* T_keplerW */
652 static int hf_rrlp_keplerM0_01 = -1;              /* T_keplerM0 */
653 static int hf_rrlp_keplerI0_01 = -1;              /* T_keplerI0 */
654 static int hf_rrlp_keplerOmega0_01 = -1;          /* T_keplerOmega0 */
655 static int hf_rrlp_SeqOfGANSSRefOrbit_item = -1;  /* GANSSReferenceOrbit */
656 static int hf_rrlp_ganssOrbitModel_01 = -1;       /* ReferenceNavModel */
657 static int hf_rrlp_GANSSEphemerisDeltaMatrix_item = -1;  /* GANSSEphemerisDeltaEpoch */
658 static int hf_rrlp_ganssDeltaEpochHeader = -1;    /* GANSSDeltaEpochHeader */
659 static int hf_rrlp_ganssDeltaElementList = -1;    /* GANSSDeltaElementList */
660 static int hf_rrlp_ephemerisDeltaSizes = -1;      /* GANSSEphemerisDeltaBitSizes */
661 static int hf_rrlp_ephemerisDeltaScales = -1;     /* GANSSEphemerisDeltaScales */
662 static int hf_rrlp_GANSSDeltaElementList_item = -1;  /* OCTET_STRING_SIZE_1_49 */
663 static int hf_rrlp_bitsize_delta_omega = -1;      /* INTEGER_1_32 */
664 static int hf_rrlp_bitsize_delta_deltaN = -1;     /* INTEGER_1_16 */
665 static int hf_rrlp_bitsize_delta_m0 = -1;         /* INTEGER_1_32 */
666 static int hf_rrlp_bitsize_delta_omegadot = -1;   /* INTEGER_1_24 */
667 static int hf_rrlp_bitsize_delta_e = -1;          /* INTEGER_1_32 */
668 static int hf_rrlp_bitsize_delta_idot = -1;       /* INTEGER_1_14 */
669 static int hf_rrlp_bitsize_delta_sqrtA = -1;      /* INTEGER_1_32 */
670 static int hf_rrlp_bitsize_delta_i0 = -1;         /* INTEGER_1_32 */
671 static int hf_rrlp_bitsize_delta_omega0 = -1;     /* INTEGER_1_32 */
672 static int hf_rrlp_bitsize_delta_crs = -1;        /* INTEGER_1_16 */
673 static int hf_rrlp_bitsize_delta_cis = -1;        /* INTEGER_1_16 */
674 static int hf_rrlp_bitsize_delta_cus = -1;        /* INTEGER_1_16 */
675 static int hf_rrlp_bitsize_delta_crc = -1;        /* INTEGER_1_16 */
676 static int hf_rrlp_bitsize_delta_cic = -1;        /* INTEGER_1_16 */
677 static int hf_rrlp_bitsize_delta_cuc = -1;        /* INTEGER_1_16 */
678 static int hf_rrlp_bitsize_delta_tgd1 = -1;       /* INTEGER_1_10 */
679 static int hf_rrlp_bitsize_delta_tgd2 = -1;       /* INTEGER_1_10 */
680 static int hf_rrlp_scale_delta_omega = -1;        /* INTEGER_M16_15 */
681 static int hf_rrlp_scale_delta_deltaN = -1;       /* INTEGER_M16_15 */
682 static int hf_rrlp_scale_delta_m0 = -1;           /* INTEGER_M16_15 */
683 static int hf_rrlp_scale_delta_omegadot = -1;     /* INTEGER_M16_15 */
684 static int hf_rrlp_scale_delta_e = -1;            /* INTEGER_M16_15 */
685 static int hf_rrlp_scale_delta_idot = -1;         /* INTEGER_M16_15 */
686 static int hf_rrlp_scale_delta_sqrtA = -1;        /* INTEGER_M16_15 */
687 static int hf_rrlp_scale_delta_i0 = -1;           /* INTEGER_M16_15 */
688 static int hf_rrlp_scale_delta_omega0 = -1;       /* INTEGER_M16_15 */
689 static int hf_rrlp_scale_delta_crs = -1;          /* INTEGER_M16_15 */
690 static int hf_rrlp_scale_delta_cis = -1;          /* INTEGER_M16_15 */
691 static int hf_rrlp_scale_delta_cus = -1;          /* INTEGER_M16_15 */
692 static int hf_rrlp_scale_delta_crc = -1;          /* INTEGER_M16_15 */
693 static int hf_rrlp_scale_delta_cic = -1;          /* INTEGER_M16_15 */
694 static int hf_rrlp_scale_delta_cuc = -1;          /* INTEGER_M16_15 */
695 static int hf_rrlp_scale_delta_tgd1 = -1;         /* INTEGER_M16_15 */
696 static int hf_rrlp_scale_delta_tgd2 = -1;         /* INTEGER_M16_15 */
697 static int hf_rrlp_ganssBeginTime = -1;           /* GANSSEphemerisExtensionTime */
698 static int hf_rrlp_ganssEndTime = -1;             /* GANSSEphemerisExtensionTime */
699 static int hf_rrlp_ganssSatEventsInfo = -1;       /* GANSSSatEventsInfo */
700 static int hf_rrlp_eventOccured = -1;             /* BIT_STRING_SIZE_64 */
701 static int hf_rrlp_futureEventNoted = -1;         /* BIT_STRING_SIZE_64 */
702 static int hf_rrlp_utcModel2 = -1;                /* UTCmodelSet2 */
703 static int hf_rrlp_utcModel3 = -1;                /* UTCmodelSet3 */
704 static int hf_rrlp_utcModel4 = -1;                /* UTCmodelSet4 */
705 static int hf_rrlp_utcA0_01 = -1;                 /* INTEGER_M32768_32767 */
706 static int hf_rrlp_utcA1_01 = -1;                 /* INTEGER_M4096_4095 */
707 static int hf_rrlp_utcA2 = -1;                    /* INTEGER_M64_63 */
708 static int hf_rrlp_utcTot_01 = -1;                /* INTEGER_0_65535 */
709 static int hf_rrlp_utcWNot = -1;                  /* INTEGER_0_8191 */
710 static int hf_rrlp_utcDN_01 = -1;                 /* BIT_STRING_SIZE_4 */
711 static int hf_rrlp_nA = -1;                       /* INTEGER_1_1461 */
712 static int hf_rrlp_tauC = -1;                     /* T_tauC */
713 static int hf_rrlp_b1 = -1;                       /* INTEGER_M1024_1023 */
714 static int hf_rrlp_b2 = -1;                       /* INTEGER_M512_511 */
715 static int hf_rrlp_kp = -1;                       /* BIT_STRING_SIZE_2 */
716 static int hf_rrlp_utcA1wnt = -1;                 /* INTEGER_M8388608_8388607 */
717 static int hf_rrlp_utcA0wnt = -1;                 /* T_utcA0wnt */
718 static int hf_rrlp_utcStandardID = -1;            /* INTEGER_0_7 */
719 static int hf_rrlp_ganssID1 = -1;                 /* GANSS_ID1 */
720 static int hf_rrlp_ganssID3 = -1;                 /* GANSS_ID3 */
721 static int hf_rrlp_GANSS_ID1_item = -1;           /* GANSS_ID1_element */
722 static int hf_rrlp_signalsAvailable = -1;         /* GANSSSignals */
723 static int hf_rrlp_GANSS_ID3_item = -1;           /* GANSS_ID3_element */
724 static int hf_rrlp_channelNumber = -1;            /* INTEGER_M7_13 */
725 static int hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item = -1;  /* DGANSSExtensionSgnTypeElement */
726 static int hf_rrlp_dganssExtensionSgnList = -1;   /* SeqOfDGANSSExtensionSgnElement */
727 static int hf_rrlp_SeqOfDGANSSExtensionSgnElement_item = -1;  /* DGANSSExtensionSgnElement */
728 static int hf_rrlp_udreGrowthRate = -1;           /* INTEGER_0_7 */
729 static int hf_rrlp_udreValidityTime = -1;         /* INTEGER_0_7 */
730 static int hf_rrlp_add_GPS_controlHeader = -1;    /* Add_GPS_ControlHeader */
731 static int hf_rrlp_gpsEphemerisExtension = -1;    /* GPSEphemerisExtension */
732 static int hf_rrlp_gpsEphemerisExtensionCheck = -1;  /* GPSEphemerisExtensionCheck */
733 static int hf_rrlp_dgpsCorrectionsValidityPeriod = -1;  /* DGPSCorrectionsValidityPeriod */
734 static int hf_rrlp_af2 = -1;                      /* INTEGER_M128_127 */
735 static int hf_rrlp_af1 = -1;                      /* INTEGER_M32768_32767 */
736 static int hf_rrlp_af0 = -1;                      /* INTEGER_M2097152_2097151 */
737 static int hf_rrlp_tgd = -1;                      /* INTEGER_M128_127 */
738 static int hf_rrlp_gpsEphemerisHeader = -1;       /* GPSEphemerisExtensionHeader */
739 static int hf_rrlp_gpsReferenceSet = -1;          /* SeqOfGPSRefOrbit */
740 static int hf_rrlp_gpsephemerisDeltaMatrix = -1;  /* GPSEphemerisDeltaMatrix */
741 static int hf_rrlp_timeofEstimation = -1;         /* GPSEphemerisExtensionTime */
742 static int hf_rrlp_SeqOfGPSRefOrbit_item = -1;    /* GPSReferenceOrbit */
743 static int hf_rrlp_gpsOrbitModel = -1;            /* ReferenceNavModel */
744 static int hf_rrlp_gpsClockModel = -1;            /* GPSClockModel */
745 static int hf_rrlp_GPSEphemerisDeltaMatrix_item = -1;  /* GPSEphemerisDeltaEpoch */
746 static int hf_rrlp_gpsDeltaEpochHeader = -1;      /* GPSDeltaEpochHeader */
747 static int hf_rrlp_gpsDeltaElementList = -1;      /* GPSDeltaElementList */
748 static int hf_rrlp_ephemerisDeltaSizes_01 = -1;   /* GPSEphemerisDeltaBitSizes */
749 static int hf_rrlp_ephemerisDeltaScales_01 = -1;  /* GPSEphemerisDeltaScales */
750 static int hf_rrlp_GPSDeltaElementList_item = -1;  /* OCTET_STRING_SIZE_1_47 */
751 static int hf_rrlp_bitsize_delta_tgd = -1;        /* INTEGER_1_10 */
752 static int hf_rrlp_scale_delta_tgd = -1;          /* INTEGER_M16_15 */
753 static int hf_rrlp_gpsBeginTime = -1;             /* GPSEphemerisExtensionTime */
754 static int hf_rrlp_gpsEndTime = -1;               /* GPSEphemerisExtensionTime */
755 static int hf_rrlp_gpsSatEventsInfo = -1;         /* GPSSatEventsInfo */
756 static int hf_rrlp_eventOccured_01 = -1;          /* BIT_STRING_SIZE_32 */
757 static int hf_rrlp_futureEventNoted_01 = -1;      /* BIT_STRING_SIZE_32 */
758 static int hf_rrlp_DGPSCorrectionsValidityPeriod_item = -1;  /* DGPSExtensionSatElement */
759 static int hf_rrlp_velEstimate = -1;              /* VelocityEstimate */
760 static int hf_rrlp_ganssLocationInfo = -1;        /* GANSSLocationInfo */
761 static int hf_rrlp_ganssMeasureInfo = -1;         /* GANSSMeasureInfo */
762 static int hf_rrlp_referenceFrame = -1;           /* ReferenceFrame */
763 static int hf_rrlp_ganssTODm = -1;                /* GANSSTODm */
764 static int hf_rrlp_ganssTODFrac = -1;             /* INTEGER_0_16384 */
765 static int hf_rrlp_posData = -1;                  /* PositionData */
766 static int hf_rrlp_stationaryIndication = -1;     /* INTEGER_0_1 */
767 static int hf_rrlp_referenceFN = -1;              /* INTEGER_0_65535 */
768 static int hf_rrlp_referenceFNMSB = -1;           /* INTEGER_0_63 */
769 static int hf_rrlp_ganssMsrSetList = -1;          /* SeqOfGANSS_MsrSetElement */
770 static int hf_rrlp_SeqOfGANSS_MsrSetElement_item = -1;  /* GANSS_MsrSetElement */
771 static int hf_rrlp_deltaGANSSTOD = -1;            /* INTEGER_0_127 */
772 static int hf_rrlp_ganss_MsrElementList = -1;     /* SeqOfGANSS_MsrElement */
773 static int hf_rrlp_SeqOfGANSS_MsrElement_item = -1;  /* GANSS_MsrElement */
774 static int hf_rrlp_ganss_SgnTypeList = -1;        /* SeqOfGANSS_SgnTypeElement */
775 static int hf_rrlp_SeqOfGANSS_SgnTypeElement_item = -1;  /* GANSS_SgnTypeElement */
776 static int hf_rrlp_ganssCodePhaseAmbiguity = -1;  /* INTEGER_0_127 */
777 static int hf_rrlp_ganss_SgnList = -1;            /* SeqOfGANSS_SgnElement */
778 static int hf_rrlp_SeqOfGANSS_SgnElement_item = -1;  /* GANSS_SgnElement */
779 static int hf_rrlp_mpathDet = -1;                 /* MpathIndic */
780 static int hf_rrlp_carrierQualityInd = -1;        /* INTEGER_0_3 */
781 static int hf_rrlp_codePhase_01 = -1;             /* INTEGER_0_2097151 */
782 static int hf_rrlp_integerCodePhase = -1;         /* INTEGER_0_127 */
783 static int hf_rrlp_codePhaseRMSError = -1;        /* INTEGER_0_63 */
784 static int hf_rrlp_adr = -1;                      /* INTEGER_0_33554431 */
785 static int hf_rrlp_nonGANSSpositionMethods = -1;  /* NonGANSSPositionMethods */
786 static int hf_rrlp_multipleMeasurementSets = -1;  /* MultipleMeasurementSets */
787 static int hf_rrlp_GANSSPositionMethods_item = -1;  /* GANSSPositionMethod */
788 static int hf_rrlp_gANSSPositioningMethodTypes = -1;  /* GANSSPositioningMethodTypes */
789 static int hf_rrlp_gANSSSignals = -1;             /* GANSSSignals */
790 static int hf_rrlp_sbasID_01 = -1;                /* SBASID */
791 static int hf_rrlp_gpsAssistance = -1;            /* GPSAssistance */
792 static int hf_rrlp_gANSSAssistanceSet = -1;       /* GANSSAssistanceSet */
793 static int hf_rrlp_gANSSAdditionalAssistanceChoices = -1;  /* GANSSAdditionalAssistanceChoices */
794 static int hf_rrlp_commonGANSSAssistance = -1;    /* CommonGANSSAssistance */
795 static int hf_rrlp_specificGANSSAssistance = -1;  /* SpecificGANSSAssistance */
796 static int hf_rrlp_SpecificGANSSAssistance_item = -1;  /* GANSSAssistanceForOneGANSS */
797 static int hf_rrlp_gANSSAssistance = -1;          /* GANSSAssistance */
798 static int hf_rrlp_GANSSAdditionalAssistanceChoices_item = -1;  /* GANSSAdditionalAssistanceChoicesForOneGANSS */
799 static int hf_rrlp_ganssClockModelChoice = -1;    /* GANSSModelID */
800 static int hf_rrlp_gannsOrbitModelChoice = -1;    /* GANSSModelID */
801 static int hf_rrlp_ganssAlmanacModelChoice = -1;  /* GANSSModelID */
802 static int hf_rrlp_ganssAdditionalUTCModelChoice = -1;  /* GANSSModelID */
803 /* named bits */
804 static int hf_rrlp_GANSSPositioningMethod_gps = -1;
805 static int hf_rrlp_GANSSPositioningMethod_galileo = -1;
806 static int hf_rrlp_GANSSPositioningMethod_sbas = -1;
807 static int hf_rrlp_GANSSPositioningMethod_modernizedGPS = -1;
808 static int hf_rrlp_GANSSPositioningMethod_qzss = -1;
809 static int hf_rrlp_GANSSPositioningMethod_glonass = -1;
810 static int hf_rrlp_PositionData_e_otd = -1;
811 static int hf_rrlp_PositionData_gps = -1;
812 static int hf_rrlp_PositionData_galileo = -1;
813 static int hf_rrlp_PositionData_sbas = -1;
814 static int hf_rrlp_PositionData_modernizedGPS = -1;
815 static int hf_rrlp_PositionData_qzss = -1;
816 static int hf_rrlp_PositionData_glonass = -1;
817 static int hf_rrlp_NonGANSSPositionMethods_msAssistedEOTD = -1;
818 static int hf_rrlp_NonGANSSPositionMethods_msBasedEOTD = -1;
819 static int hf_rrlp_NonGANSSPositionMethods_msAssistedGPS = -1;
820 static int hf_rrlp_NonGANSSPositionMethods_msBasedGPS = -1;
821 static int hf_rrlp_NonGANSSPositionMethods_standaloneGPS = -1;
822 static int hf_rrlp_GANSSPositioningMethodTypes_msAssisted = -1;
823 static int hf_rrlp_GANSSPositioningMethodTypes_msBased = -1;
824 static int hf_rrlp_GANSSPositioningMethodTypes_standalone = -1;
825 static int hf_rrlp_GANSSSignals_signal1 = -1;
826 static int hf_rrlp_GANSSSignals_signal2 = -1;
827 static int hf_rrlp_GANSSSignals_signal3 = -1;
828 static int hf_rrlp_GANSSSignals_signal4 = -1;
829 static int hf_rrlp_GANSSSignals_signal5 = -1;
830 static int hf_rrlp_GANSSSignals_signal6 = -1;
831 static int hf_rrlp_GANSSSignals_signal7 = -1;
832 static int hf_rrlp_GANSSSignals_signal8 = -1;
833 static int hf_rrlp_SBASID_waas = -1;
834 static int hf_rrlp_SBASID_egnos = -1;
835 static int hf_rrlp_SBASID_masas = -1;
836 static int hf_rrlp_SBASID_gagan = -1;
837 static int hf_rrlp_MultipleMeasurementSets_eotd = -1;
838 static int hf_rrlp_MultipleMeasurementSets_gps = -1;
839 static int hf_rrlp_MultipleMeasurementSets_ganss = -1;
840 static int hf_rrlp_GPSAssistance_almanac = -1;
841 static int hf_rrlp_GPSAssistance_uTCmodel = -1;
842 static int hf_rrlp_GPSAssistance_ionosphericModel = -1;
843 static int hf_rrlp_GPSAssistance_navigationmodel = -1;
844 static int hf_rrlp_GPSAssistance_dGPScorrections = -1;
845 static int hf_rrlp_GPSAssistance_referenceLocation = -1;
846 static int hf_rrlp_GPSAssistance_referenceTime = -1;
847 static int hf_rrlp_GPSAssistance_acquisitionAssistance = -1;
848 static int hf_rrlp_GPSAssistance_realTimeIntegrity = -1;
849 static int hf_rrlp_GPSAssistance_ephemerisExtension = -1;
850 static int hf_rrlp_GPSAssistance_ephemerisExtensionCheck = -1;
851 static int hf_rrlp_CommonGANSSAssistance_referenceTime = -1;
852 static int hf_rrlp_CommonGANSSAssistance_referenceLocation = -1;
853 static int hf_rrlp_CommonGANSSAssistance_ionosphericModel = -1;
854 static int hf_rrlp_CommonGANSSAssistance_addIonosphericModel = -1;
855 static int hf_rrlp_CommonGANSSAssistance_earthOrientationParam = -1;
856 static int hf_rrlp_GANSSAssistance_realTimeIntegrity = -1;
857 static int hf_rrlp_GANSSAssistance_differentialCorrections = -1;
858 static int hf_rrlp_GANSSAssistance_almanac = -1;
859 static int hf_rrlp_GANSSAssistance_referenceMeasurementInformation = -1;
860 static int hf_rrlp_GANSSAssistance_navigationModel = -1;
861 static int hf_rrlp_GANSSAssistance_timeModelGNSS_UTC = -1;
862 static int hf_rrlp_GANSSAssistance_timeModelGNSS_GNSS = -1;
863 static int hf_rrlp_GANSSAssistance_databitassistance = -1;
864 static int hf_rrlp_GANSSAssistance_ephemerisExtension = -1;
865 static int hf_rrlp_GANSSAssistance_ephemerisExtensionCheck = -1;
866 static int hf_rrlp_GANSSAssistance_addUTCmodel = -1;
867 static int hf_rrlp_GANSSAssistance_auxiliaryInformation = -1;
868 static int hf_rrlp_GANSSModelID_model1 = -1;
869 static int hf_rrlp_GANSSModelID_model2 = -1;
870 static int hf_rrlp_GANSSModelID_model3 = -1;
871 static int hf_rrlp_GANSSModelID_model4 = -1;
872 static int hf_rrlp_GANSSModelID_model5 = -1;
873 static int hf_rrlp_GANSSModelID_model6 = -1;
874 static int hf_rrlp_GANSSModelID_model7 = -1;
875 static int hf_rrlp_GANSSModelID_model8 = -1;
876
877 /*--- End of included file: packet-rrlp-hf.c ---*/
878 #line 58 "packet-rrlp-template.c"
879
880 /* Initialize the subtree pointers */
881 static gint ett_rrlp = -1;
882
883 /*--- Included file: packet-rrlp-ett.c ---*/
884 #line 1 "packet-rrlp-ett.c"
885 static gint ett_rrlp_ExtensionContainer = -1;
886 static gint ett_rrlp_PrivateExtensionList = -1;
887 static gint ett_rrlp_PrivateExtension = -1;
888 static gint ett_rrlp_PCS_Extensions = -1;
889 static gint ett_rrlp_PDU = -1;
890 static gint ett_rrlp_RRLP_Component = -1;
891 static gint ett_rrlp_MsrPosition_Req = -1;
892 static gint ett_rrlp_MsrPosition_Rsp = -1;
893 static gint ett_rrlp_AssistanceData = -1;
894 static gint ett_rrlp_ProtocolError = -1;
895 static gint ett_rrlp_PosCapability_Req = -1;
896 static gint ett_rrlp_PosCapability_Rsp = -1;
897 static gint ett_rrlp_PositionInstruct = -1;
898 static gint ett_rrlp_MethodType = -1;
899 static gint ett_rrlp_AccuracyOpt = -1;
900 static gint ett_rrlp_ReferenceAssistData = -1;
901 static gint ett_rrlp_MsrAssistData = -1;
902 static gint ett_rrlp_SeqOfMsrAssistBTS = -1;
903 static gint ett_rrlp_MsrAssistBTS = -1;
904 static gint ett_rrlp_SystemInfoAssistData = -1;
905 static gint ett_rrlp_SeqOfSystemInfoAssistBTS = -1;
906 static gint ett_rrlp_SystemInfoAssistBTS = -1;
907 static gint ett_rrlp_AssistBTSData = -1;
908 static gint ett_rrlp_CalcAssistanceBTS = -1;
909 static gint ett_rrlp_ReferenceWGS84 = -1;
910 static gint ett_rrlp_MultipleSets = -1;
911 static gint ett_rrlp_ReferenceIdentity = -1;
912 static gint ett_rrlp_SeqOfReferenceIdentityType = -1;
913 static gint ett_rrlp_ReferenceIdentityType = -1;
914 static gint ett_rrlp_BSICAndCarrier = -1;
915 static gint ett_rrlp_CellIDAndLAC = -1;
916 static gint ett_rrlp_OTD_MeasureInfo = -1;
917 static gint ett_rrlp_SeqOfOTD_MsrElementRest = -1;
918 static gint ett_rrlp_OTD_MsrElementFirst = -1;
919 static gint ett_rrlp_SeqOfOTD_FirstSetMsrs = -1;
920 static gint ett_rrlp_OTD_MsrElementRest = -1;
921 static gint ett_rrlp_SeqOfOTD_MsrsOfOtherSets = -1;
922 static gint ett_rrlp_TOA_MeasurementsOfRef = -1;
923 static gint ett_rrlp_OTD_MsrsOfOtherSets = -1;
924 static gint ett_rrlp_OTD_Measurement = -1;
925 static gint ett_rrlp_OTD_MeasurementWithID = -1;
926 static gint ett_rrlp_EOTDQuality = -1;
927 static gint ett_rrlp_NeighborIdentity = -1;
928 static gint ett_rrlp_MultiFrameCarrier = -1;
929 static gint ett_rrlp_LocationInfo = -1;
930 static gint ett_rrlp_GPS_MeasureInfo = -1;
931 static gint ett_rrlp_SeqOfGPS_MsrSetElement = -1;
932 static gint ett_rrlp_GPS_MsrSetElement = -1;
933 static gint ett_rrlp_SeqOfGPS_MsrElement = -1;
934 static gint ett_rrlp_GPS_MsrElement = -1;
935 static gint ett_rrlp_LocationError = -1;
936 static gint ett_rrlp_AdditionalAssistanceData = -1;
937 static gint ett_rrlp_GPS_AssistData = -1;
938 static gint ett_rrlp_ControlHeader = -1;
939 static gint ett_rrlp_ReferenceTime = -1;
940 static gint ett_rrlp_GPSTime = -1;
941 static gint ett_rrlp_GPSTOWAssist = -1;
942 static gint ett_rrlp_GPSTOWAssistElement = -1;
943 static gint ett_rrlp_GSMTime = -1;
944 static gint ett_rrlp_RefLocation = -1;
945 static gint ett_rrlp_DGPSCorrections = -1;
946 static gint ett_rrlp_SeqOfSatElement = -1;
947 static gint ett_rrlp_SatElement = -1;
948 static gint ett_rrlp_NavigationModel = -1;
949 static gint ett_rrlp_SeqOfNavModelElement = -1;
950 static gint ett_rrlp_NavModelElement = -1;
951 static gint ett_rrlp_SatStatus = -1;
952 static gint ett_rrlp_UncompressedEphemeris = -1;
953 static gint ett_rrlp_EphemerisSubframe1Reserved = -1;
954 static gint ett_rrlp_IonosphericModel = -1;
955 static gint ett_rrlp_UTCModel = -1;
956 static gint ett_rrlp_Almanac = -1;
957 static gint ett_rrlp_SeqOfAlmanacElement = -1;
958 static gint ett_rrlp_AlmanacElement = -1;
959 static gint ett_rrlp_AcquisAssist = -1;
960 static gint ett_rrlp_SeqOfAcquisElement = -1;
961 static gint ett_rrlp_TimeRelation = -1;
962 static gint ett_rrlp_AcquisElement = -1;
963 static gint ett_rrlp_AddionalDopplerFields = -1;
964 static gint ett_rrlp_AddionalAngleFields = -1;
965 static gint ett_rrlp_SeqOf_BadSatelliteSet = -1;
966 static gint ett_rrlp_Rel98_MsrPosition_Req_Extension = -1;
967 static gint ett_rrlp_Rel98_AssistanceData_Extension = -1;
968 static gint ett_rrlp_Rel98_Ext_ExpOTD = -1;
969 static gint ett_rrlp_MsrAssistData_R98_ExpOTD = -1;
970 static gint ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD = -1;
971 static gint ett_rrlp_MsrAssistBTS_R98_ExpOTD = -1;
972 static gint ett_rrlp_SystemInfoAssistData_R98_ExpOTD = -1;
973 static gint ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD = -1;
974 static gint ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD = -1;
975 static gint ett_rrlp_AssistBTSData_R98_ExpOTD = -1;
976 static gint ett_rrlp_GPSTimeAssistanceMeasurements = -1;
977 static gint ett_rrlp_Rel_98_MsrPosition_Rsp_Extension = -1;
978 static gint ett_rrlp_T_rel_98_Ext_MeasureInfo = -1;
979 static gint ett_rrlp_OTD_MeasureInfo_R98_Ext = -1;
980 static gint ett_rrlp_OTD_MsrElementFirst_R98_Ext = -1;
981 static gint ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext = -1;
982 static gint ett_rrlp_Rel_5_MsrPosition_Rsp_Extension = -1;
983 static gint ett_rrlp_Extended_reference = -1;
984 static gint ett_rrlp_Rel5_MsrPosition_Req_Extension = -1;
985 static gint ett_rrlp_Rel5_AssistanceData_Extension = -1;
986 static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1;
987 static gint ett_rrlp_Rel7_MsrPosition_Req_Extension = -1;
988 static gint ett_rrlp_GANSSPositioningMethod = -1;
989 static gint ett_rrlp_GANSS_AssistData = -1;
990 static gint ett_rrlp_GANSS_ControlHeader = -1;
991 static gint ett_rrlp_GANSSCommonAssistData = -1;
992 static gint ett_rrlp_SeqOfGANSSGenericAssistDataElement = -1;
993 static gint ett_rrlp_GANSSGenericAssistDataElement = -1;
994 static gint ett_rrlp_GANSSReferenceTime = -1;
995 static gint ett_rrlp_GANSSRefTimeInfo = -1;
996 static gint ett_rrlp_GANSSTOD_GSMTimeAssociation = -1;
997 static gint ett_rrlp_GANSSRefLocation = -1;
998 static gint ett_rrlp_GANSSIonosphericModel = -1;
999 static gint ett_rrlp_GANSSIonosphereModel = -1;
1000 static gint ett_rrlp_GANSSIonoStormFlags = -1;
1001 static gint ett_rrlp_GANSSAddIonosphericModel = -1;
1002 static gint ett_rrlp_GANSSEarthOrientParam = -1;
1003 static gint ett_rrlp_SeqOfGANSSTimeModel = -1;
1004 static gint ett_rrlp_GANSSTimeModelElement = -1;
1005 static gint ett_rrlp_GANSSDiffCorrections = -1;
1006 static gint ett_rrlp_SeqOfSgnTypeElement = -1;
1007 static gint ett_rrlp_SgnTypeElement = -1;
1008 static gint ett_rrlp_SeqOfDGANSSSgnElement = -1;
1009 static gint ett_rrlp_DGANSSSgnElement = -1;
1010 static gint ett_rrlp_GANSSNavModel = -1;
1011 static gint ett_rrlp_SeqOfGANSSSatelliteElement = -1;
1012 static gint ett_rrlp_GANSSSatelliteElement = -1;
1013 static gint ett_rrlp_GANSSOrbitModel = -1;
1014 static gint ett_rrlp_NavModel_KeplerianSet = -1;
1015 static gint ett_rrlp_NavModel_NAVKeplerianSet = -1;
1016 static gint ett_rrlp_NavModel_CNAVKeplerianSet = -1;
1017 static gint ett_rrlp_NavModel_GLONASSecef = -1;
1018 static gint ett_rrlp_NavModel_SBASecef = -1;
1019 static gint ett_rrlp_GANSSClockModel = -1;
1020 static gint ett_rrlp_SeqOfStandardClockModelElement = -1;
1021 static gint ett_rrlp_StandardClockModelElement = -1;
1022 static gint ett_rrlp_NAVclockModel = -1;
1023 static gint ett_rrlp_CNAVclockModel = -1;
1024 static gint ett_rrlp_GLONASSclockModel = -1;
1025 static gint ett_rrlp_SBASclockModel = -1;
1026 static gint ett_rrlp_GANSSRealTimeIntegrity = -1;
1027 static gint ett_rrlp_SeqOfBadSignalElement = -1;
1028 static gint ett_rrlp_BadSignalElement = -1;
1029 static gint ett_rrlp_GANSSDataBitAssist = -1;
1030 static gint ett_rrlp_SeqOfGanssDataBitsElement = -1;
1031 static gint ett_rrlp_GanssDataBitsElement = -1;
1032 static gint ett_rrlp_Seq_OfGANSSDataBitsSgn = -1;
1033 static gint ett_rrlp_GANSSDataBitsSgnElement = -1;
1034 static gint ett_rrlp_SeqOf_GANSSDataBits = -1;
1035 static gint ett_rrlp_GANSSRefMeasurementAssist = -1;
1036 static gint ett_rrlp_SeqOfGANSSRefMeasurementElement = -1;
1037 static gint ett_rrlp_GANSSRefMeasurementElement = -1;
1038 static gint ett_rrlp_AdditionalDopplerFields = -1;
1039 static gint ett_rrlp_GANSSAlmanacModel = -1;
1040 static gint ett_rrlp_SeqOfGANSSAlmanacElement = -1;
1041 static gint ett_rrlp_GANSSAlmanacElement = -1;
1042 static gint ett_rrlp_Almanac_KeplerianSet = -1;
1043 static gint ett_rrlp_Almanac_NAVKeplerianSet = -1;
1044 static gint ett_rrlp_Almanac_ReducedKeplerianSet = -1;
1045 static gint ett_rrlp_Almanac_MidiAlmanacSet = -1;
1046 static gint ett_rrlp_Almanac_GlonassAlmanacSet = -1;
1047 static gint ett_rrlp_Almanac_ECEFsbasAlmanacSet = -1;
1048 static gint ett_rrlp_GANSSUTCModel = -1;
1049 static gint ett_rrlp_GANSSEphemerisExtension = -1;
1050 static gint ett_rrlp_GANSSEphemerisExtensionHeader = -1;
1051 static gint ett_rrlp_GANSSEphemerisExtensionTime = -1;
1052 static gint ett_rrlp_ReferenceNavModel = -1;
1053 static gint ett_rrlp_SeqOfGANSSRefOrbit = -1;
1054 static gint ett_rrlp_GANSSReferenceOrbit = -1;
1055 static gint ett_rrlp_GANSSEphemerisDeltaMatrix = -1;
1056 static gint ett_rrlp_GANSSEphemerisDeltaEpoch = -1;
1057 static gint ett_rrlp_GANSSDeltaEpochHeader = -1;
1058 static gint ett_rrlp_GANSSDeltaElementList = -1;
1059 static gint ett_rrlp_GANSSEphemerisDeltaBitSizes = -1;
1060 static gint ett_rrlp_GANSSEphemerisDeltaScales = -1;
1061 static gint ett_rrlp_GANSSEphemerisExtensionCheck = -1;
1062 static gint ett_rrlp_GANSSSatEventsInfo = -1;
1063 static gint ett_rrlp_GANSSAddUTCModel = -1;
1064 static gint ett_rrlp_UTCmodelSet2 = -1;
1065 static gint ett_rrlp_UTCmodelSet3 = -1;
1066 static gint ett_rrlp_UTCmodelSet4 = -1;
1067 static gint ett_rrlp_GANSSAuxiliaryInformation = -1;
1068 static gint ett_rrlp_GANSS_ID1 = -1;
1069 static gint ett_rrlp_GANSS_ID1_element = -1;
1070 static gint ett_rrlp_GANSS_ID3 = -1;
1071 static gint ett_rrlp_GANSS_ID3_element = -1;
1072 static gint ett_rrlp_GANSSDiffCorrectionsValidityPeriod = -1;
1073 static gint ett_rrlp_DGANSSExtensionSgnTypeElement = -1;
1074 static gint ett_rrlp_SeqOfDGANSSExtensionSgnElement = -1;
1075 static gint ett_rrlp_DGANSSExtensionSgnElement = -1;
1076 static gint ett_rrlp_Add_GPS_AssistData = -1;
1077 static gint ett_rrlp_Add_GPS_ControlHeader = -1;
1078 static gint ett_rrlp_GPSClockModel = -1;
1079 static gint ett_rrlp_GPSEphemerisExtension = -1;
1080 static gint ett_rrlp_GPSEphemerisExtensionHeader = -1;
1081 static gint ett_rrlp_GPSEphemerisExtensionTime = -1;
1082 static gint ett_rrlp_SeqOfGPSRefOrbit = -1;
1083 static gint ett_rrlp_GPSReferenceOrbit = -1;
1084 static gint ett_rrlp_GPSEphemerisDeltaMatrix = -1;
1085 static gint ett_rrlp_GPSEphemerisDeltaEpoch = -1;
1086 static gint ett_rrlp_GPSDeltaEpochHeader = -1;
1087 static gint ett_rrlp_GPSDeltaElementList = -1;
1088 static gint ett_rrlp_GPSEphemerisDeltaBitSizes = -1;
1089 static gint ett_rrlp_GPSEphemerisDeltaScales = -1;
1090 static gint ett_rrlp_GPSEphemerisExtensionCheck = -1;
1091 static gint ett_rrlp_GPSSatEventsInfo = -1;
1092 static gint ett_rrlp_DGPSCorrectionsValidityPeriod = -1;
1093 static gint ett_rrlp_DGPSExtensionSatElement = -1;
1094 static gint ett_rrlp_Rel_7_MsrPosition_Rsp_Extension = -1;
1095 static gint ett_rrlp_GANSSLocationInfo = -1;
1096 static gint ett_rrlp_PositionData = -1;
1097 static gint ett_rrlp_ReferenceFrame = -1;
1098 static gint ett_rrlp_GANSSMeasureInfo = -1;
1099 static gint ett_rrlp_SeqOfGANSS_MsrSetElement = -1;
1100 static gint ett_rrlp_GANSS_MsrSetElement = -1;
1101 static gint ett_rrlp_SeqOfGANSS_MsrElement = -1;
1102 static gint ett_rrlp_GANSS_MsrElement = -1;
1103 static gint ett_rrlp_SeqOfGANSS_SgnTypeElement = -1;
1104 static gint ett_rrlp_GANSS_SgnTypeElement = -1;
1105 static gint ett_rrlp_SeqOfGANSS_SgnElement = -1;
1106 static gint ett_rrlp_GANSS_SgnElement = -1;
1107 static gint ett_rrlp_Rel7_AssistanceData_Extension = -1;
1108 static gint ett_rrlp_PosCapabilities = -1;
1109 static gint ett_rrlp_NonGANSSPositionMethods = -1;
1110 static gint ett_rrlp_GANSSPositionMethods = -1;
1111 static gint ett_rrlp_GANSSPositionMethod = -1;
1112 static gint ett_rrlp_GANSSPositioningMethodTypes = -1;
1113 static gint ett_rrlp_GANSSSignals = -1;
1114 static gint ett_rrlp_SBASID = -1;
1115 static gint ett_rrlp_MultipleMeasurementSets = -1;
1116 static gint ett_rrlp_AssistanceSupported = -1;
1117 static gint ett_rrlp_GPSAssistance = -1;
1118 static gint ett_rrlp_GANSSAssistanceSet = -1;
1119 static gint ett_rrlp_CommonGANSSAssistance = -1;
1120 static gint ett_rrlp_SpecificGANSSAssistance = -1;
1121 static gint ett_rrlp_GANSSAssistanceForOneGANSS = -1;
1122 static gint ett_rrlp_GANSSAssistance = -1;
1123 static gint ett_rrlp_GANSSAdditionalAssistanceChoices = -1;
1124 static gint ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS = -1;
1125 static gint ett_rrlp_GANSSModelID = -1;
1126 static gint ett_rrlp_AssistanceNeeded = -1;
1127
1128 /*--- End of included file: packet-rrlp-ett.c ---*/
1129 #line 62 "packet-rrlp-template.c"
1130
1131 /* Include constants */
1132
1133 /*--- Included file: packet-rrlp-val.h ---*/
1134 #line 1 "packet-rrlp-val.h"
1135 #define maxNumOfPrivateExtensions      10
1136 #define maxExt_GeographicalInformation 20
1137 #define maxGPSAssistanceData           40
1138 #define maxGANSSAssistanceData         40
1139
1140 /*--- End of included file: packet-rrlp-val.h ---*/
1141 #line 65 "packet-rrlp-template.c"
1142
1143
1144
1145 /*--- Included file: packet-rrlp-fn.c ---*/
1146 #line 1 "packet-rrlp-fn.c"
1147
1148
1149 static int
1150 dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1151   offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1152
1153   return offset;
1154 }
1155
1156
1157
1158 static int
1159 dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1160   offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
1161
1162   return offset;
1163 }
1164
1165
1166 static const per_sequence_t PrivateExtension_sequence[] = {
1167   { &hf_rrlp_extId          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER },
1168   { &hf_rrlp_extType        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_T_extType },
1169   { NULL, 0, 0, NULL }
1170 };
1171
1172 static int
1173 dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1174   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1175                                    ett_rrlp_PrivateExtension, PrivateExtension_sequence);
1176
1177   return offset;
1178 }
1179
1180
1181 static const per_sequence_t PrivateExtensionList_sequence_of[1] = {
1182   { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension },
1183 };
1184
1185 static int
1186 dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1187   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1188                                                   ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of,
1189                                                   1, maxNumOfPrivateExtensions, FALSE);
1190
1191   return offset;
1192 }
1193
1194
1195 static const per_sequence_t PCS_Extensions_sequence[] = {
1196   { NULL, 0, 0, NULL }
1197 };
1198
1199 static int
1200 dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1201   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1202                                    ett_rrlp_PCS_Extensions, PCS_Extensions_sequence);
1203
1204   return offset;
1205 }
1206
1207
1208 static const per_sequence_t ExtensionContainer_sequence[] = {
1209   { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_PrivateExtensionList },
1210   { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_PCS_Extensions },
1211   { NULL, 0, 0, NULL }
1212 };
1213
1214 static int
1215 dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1216   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1217                                    ett_rrlp_ExtensionContainer, ExtensionContainer_sequence);
1218
1219   return offset;
1220 }
1221
1222
1223
1224 static int
1225 dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1226 #line 34 "rrlp.cnf"
1227
1228 tvbuff_t *parameter_tvb = NULL;
1229
1230     offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1231                                        1, maxExt_GeographicalInformation, FALSE, &parameter_tvb);
1232
1233
1234   if(parameter_tvb)
1235         dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
1236
1237
1238   return offset;
1239 }
1240
1241
1242
1243 static int
1244 dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1245   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1246                                        4, 7, FALSE, NULL);
1247
1248   return offset;
1249 }
1250
1251
1252
1253 static int
1254 dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1255   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1256                                                             0U, 7U, NULL, FALSE);
1257
1258   return offset;
1259 }
1260
1261
1262
1263 static int
1264 dissect_rrlp_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1265   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1266                                                             0U, 127U, NULL, FALSE);
1267
1268   return offset;
1269 }
1270
1271
1272 static const per_sequence_t AccuracyOpt_sequence[] = {
1273   { &hf_rrlp_accuracy       , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_Accuracy },
1274   { NULL, 0, 0, NULL }
1275 };
1276
1277 static int
1278 dissect_rrlp_AccuracyOpt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1279   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1280                                    ett_rrlp_AccuracyOpt, AccuracyOpt_sequence);
1281
1282   return offset;
1283 }
1284
1285
1286 static const value_string rrlp_MethodType_vals[] = {
1287   {   0, "msAssisted" },
1288   {   1, "msBased" },
1289   {   2, "msBasedPref" },
1290   {   3, "msAssistedPref" },
1291   { 0, NULL }
1292 };
1293
1294 static const per_choice_t MethodType_choice[] = {
1295   {   0, &hf_rrlp_msAssisted     , ASN1_NO_EXTENSIONS     , dissect_rrlp_AccuracyOpt },
1296   {   1, &hf_rrlp_msBased        , ASN1_NO_EXTENSIONS     , dissect_rrlp_Accuracy },
1297   {   2, &hf_rrlp_msBasedPref    , ASN1_NO_EXTENSIONS     , dissect_rrlp_Accuracy },
1298   {   3, &hf_rrlp_msAssistedPref , ASN1_NO_EXTENSIONS     , dissect_rrlp_Accuracy },
1299   { 0, NULL, 0, NULL }
1300 };
1301
1302 static int
1303 dissect_rrlp_MethodType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1304   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1305                                  ett_rrlp_MethodType, MethodType_choice,
1306                                  NULL);
1307
1308   return offset;
1309 }
1310
1311
1312 static const value_string rrlp_PositionMethod_vals[] = {
1313   {   0, "eotd" },
1314   {   1, "gps" },
1315   {   2, "gpsOrEOTD" },
1316   { 0, NULL }
1317 };
1318
1319
1320 static int
1321 dissect_rrlp_PositionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1322   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1323                                      3, NULL, FALSE, 0, NULL);
1324
1325   return offset;
1326 }
1327
1328
1329
1330 static int
1331 dissect_rrlp_MeasureResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1332   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1333                                                             0U, 7U, NULL, FALSE);
1334
1335   return offset;
1336 }
1337
1338
1339 static const value_string rrlp_UseMultipleSets_vals[] = {
1340   {   0, "multipleSets" },
1341   {   1, "oneSet" },
1342   { 0, NULL }
1343 };
1344
1345
1346 static int
1347 dissect_rrlp_UseMultipleSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1348   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1349                                      2, NULL, FALSE, 0, NULL);
1350
1351   return offset;
1352 }
1353
1354
1355 static const value_string rrlp_EnvironmentCharacter_vals[] = {
1356   {   0, "badArea" },
1357   {   1, "notBadArea" },
1358   {   2, "mixedArea" },
1359   { 0, NULL }
1360 };
1361
1362
1363 static int
1364 dissect_rrlp_EnvironmentCharacter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1365   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1366                                      3, NULL, TRUE, 0, NULL);
1367
1368   return offset;
1369 }
1370
1371
1372 static const per_sequence_t PositionInstruct_sequence[] = {
1373   { &hf_rrlp_methodType     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_MethodType },
1374   { &hf_rrlp_positionMethod , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionMethod },
1375   { &hf_rrlp_measureResponseTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_MeasureResponseTime },
1376   { &hf_rrlp_useMultipleSets, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_UseMultipleSets },
1377   { &hf_rrlp_environmentCharacter, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_EnvironmentCharacter },
1378   { NULL, 0, 0, NULL }
1379 };
1380
1381 static int
1382 dissect_rrlp_PositionInstruct(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1383   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1384                                    ett_rrlp_PositionInstruct, PositionInstruct_sequence);
1385
1386   return offset;
1387 }
1388
1389
1390
1391 static int
1392 dissect_rrlp_BCCHCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1393   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1394                                                             0U, 1023U, NULL, FALSE);
1395
1396   return offset;
1397 }
1398
1399
1400
1401 static int
1402 dissect_rrlp_BSIC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1403   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1404                                                             0U, 63U, NULL, FALSE);
1405
1406   return offset;
1407 }
1408
1409
1410 static const value_string rrlp_TimeSlotScheme_vals[] = {
1411   {   0, "equalLength" },
1412   {   1, "variousLength" },
1413   { 0, NULL }
1414 };
1415
1416
1417 static int
1418 dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1419   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1420                                      2, NULL, FALSE, 0, NULL);
1421
1422   return offset;
1423 }
1424
1425
1426
1427 static int
1428 dissect_rrlp_BTSPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1429   offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, actx, tree, hf_index);
1430
1431   return offset;
1432 }
1433
1434
1435 static const per_sequence_t ReferenceAssistData_sequence[] = {
1436   { &hf_rrlp_bcchCarrier    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
1437   { &hf_rrlp_bsic           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1438   { &hf_rrlp_timeSlotScheme , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlotScheme },
1439   { &hf_rrlp_btsPosition    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_BTSPosition },
1440   { NULL, 0, 0, NULL }
1441 };
1442
1443 static int
1444 dissect_rrlp_ReferenceAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1445   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1446                                    ett_rrlp_ReferenceAssistData, ReferenceAssistData_sequence);
1447
1448   return offset;
1449 }
1450
1451
1452
1453 static int
1454 dissect_rrlp_MultiFrameOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1455   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1456                                                             0U, 51U, NULL, FALSE);
1457
1458   return offset;
1459 }
1460
1461
1462
1463 static int
1464 dissect_rrlp_RoughRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1465   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1466                                                             0U, 1250U, NULL, FALSE);
1467
1468   return offset;
1469 }
1470
1471
1472
1473 static int
1474 dissect_rrlp_FineRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1475   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1476                                                             0U, 255U, NULL, FALSE);
1477
1478   return offset;
1479 }
1480
1481
1482
1483 static int
1484 dissect_rrlp_RelDistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1485   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1486                                                             -200000, 200000U, NULL, FALSE);
1487
1488   return offset;
1489 }
1490
1491
1492
1493 static int
1494 dissect_rrlp_RelativeAlt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1495   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1496                                                             -4000, 4000U, NULL, FALSE);
1497
1498   return offset;
1499 }
1500
1501
1502 static const per_sequence_t ReferenceWGS84_sequence[] = {
1503   { &hf_rrlp_relativeNorth  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_RelDistance },
1504   { &hf_rrlp_relativeEast   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_RelDistance },
1505   { &hf_rrlp_relativeAlt    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_RelativeAlt },
1506   { NULL, 0, 0, NULL }
1507 };
1508
1509 static int
1510 dissect_rrlp_ReferenceWGS84(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1511   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1512                                    ett_rrlp_ReferenceWGS84, ReferenceWGS84_sequence);
1513
1514   return offset;
1515 }
1516
1517
1518 static const per_sequence_t CalcAssistanceBTS_sequence[] = {
1519   { &hf_rrlp_fineRTD        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_FineRTD },
1520   { &hf_rrlp_referenceWGS84 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceWGS84 },
1521   { NULL, 0, 0, NULL }
1522 };
1523
1524 static int
1525 dissect_rrlp_CalcAssistanceBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1526   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1527                                    ett_rrlp_CalcAssistanceBTS, CalcAssistanceBTS_sequence);
1528
1529   return offset;
1530 }
1531
1532
1533 static const per_sequence_t MsrAssistBTS_sequence[] = {
1534   { &hf_rrlp_bcchCarrier    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
1535   { &hf_rrlp_bsic           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1536   { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
1537   { &hf_rrlp_timeSlotScheme , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlotScheme },
1538   { &hf_rrlp_roughRTD       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_RoughRTD },
1539   { &hf_rrlp_calcAssistanceBTS, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_CalcAssistanceBTS },
1540   { NULL, 0, 0, NULL }
1541 };
1542
1543 static int
1544 dissect_rrlp_MsrAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1545   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1546                                    ett_rrlp_MsrAssistBTS, MsrAssistBTS_sequence);
1547
1548   return offset;
1549 }
1550
1551
1552 static const per_sequence_t SeqOfMsrAssistBTS_sequence_of[1] = {
1553   { &hf_rrlp_SeqOfMsrAssistBTS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_MsrAssistBTS },
1554 };
1555
1556 static int
1557 dissect_rrlp_SeqOfMsrAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1558   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1559                                                   ett_rrlp_SeqOfMsrAssistBTS, SeqOfMsrAssistBTS_sequence_of,
1560                                                   1, 15, FALSE);
1561
1562   return offset;
1563 }
1564
1565
1566 static const per_sequence_t MsrAssistData_sequence[] = {
1567   { &hf_rrlp_msrAssistList  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfMsrAssistBTS },
1568   { NULL, 0, 0, NULL }
1569 };
1570
1571 static int
1572 dissect_rrlp_MsrAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1573   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1574                                    ett_rrlp_MsrAssistData, MsrAssistData_sequence);
1575
1576   return offset;
1577 }
1578
1579
1580
1581 static int
1582 dissect_rrlp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1583   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1584
1585   return offset;
1586 }
1587
1588
1589 static const per_sequence_t AssistBTSData_sequence[] = {
1590   { &hf_rrlp_bsic           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1591   { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
1592   { &hf_rrlp_timeSlotScheme , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlotScheme },
1593   { &hf_rrlp_roughRTD       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_RoughRTD },
1594   { &hf_rrlp_calcAssistanceBTS, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_CalcAssistanceBTS },
1595   { NULL, 0, 0, NULL }
1596 };
1597
1598 static int
1599 dissect_rrlp_AssistBTSData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1600   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1601                                    ett_rrlp_AssistBTSData, AssistBTSData_sequence);
1602
1603   return offset;
1604 }
1605
1606
1607 static const value_string rrlp_SystemInfoAssistBTS_vals[] = {
1608   {   0, "notPresent" },
1609   {   1, "present" },
1610   { 0, NULL }
1611 };
1612
1613 static const per_choice_t SystemInfoAssistBTS_choice[] = {
1614   {   0, &hf_rrlp_notPresent     , ASN1_NO_EXTENSIONS     , dissect_rrlp_NULL },
1615   {   1, &hf_rrlp_present        , ASN1_NO_EXTENSIONS     , dissect_rrlp_AssistBTSData },
1616   { 0, NULL, 0, NULL }
1617 };
1618
1619 static int
1620 dissect_rrlp_SystemInfoAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1621   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1622                                  ett_rrlp_SystemInfoAssistBTS, SystemInfoAssistBTS_choice,
1623                                  NULL);
1624
1625   return offset;
1626 }
1627
1628
1629 static const per_sequence_t SeqOfSystemInfoAssistBTS_sequence_of[1] = {
1630   { &hf_rrlp_SeqOfSystemInfoAssistBTS_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SystemInfoAssistBTS },
1631 };
1632
1633 static int
1634 dissect_rrlp_SeqOfSystemInfoAssistBTS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1635   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1636                                                   ett_rrlp_SeqOfSystemInfoAssistBTS, SeqOfSystemInfoAssistBTS_sequence_of,
1637                                                   1, 32, FALSE);
1638
1639   return offset;
1640 }
1641
1642
1643 static const per_sequence_t SystemInfoAssistData_sequence[] = {
1644   { &hf_rrlp_systemInfoAssistList, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSystemInfoAssistBTS },
1645   { NULL, 0, 0, NULL }
1646 };
1647
1648 static int
1649 dissect_rrlp_SystemInfoAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1650   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1651                                    ett_rrlp_SystemInfoAssistData, SystemInfoAssistData_sequence);
1652
1653   return offset;
1654 }
1655
1656
1657
1658 static int
1659 dissect_rrlp_GPSTOW23b(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1660   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1661                                                             0U, 7559999U, NULL, FALSE);
1662
1663   return offset;
1664 }
1665
1666
1667
1668 static int
1669 dissect_rrlp_GPSWeek(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1670   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1671                                                             0U, 1023U, NULL, FALSE);
1672
1673   return offset;
1674 }
1675
1676
1677 static const per_sequence_t GPSTime_sequence[] = {
1678   { &hf_rrlp_gpsTOW23b      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOW23b },
1679   { &hf_rrlp_gpsWeek        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSWeek },
1680   { NULL, 0, 0, NULL }
1681 };
1682
1683 static int
1684 dissect_rrlp_GPSTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1685   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1686                                    ett_rrlp_GPSTime, GPSTime_sequence);
1687
1688   return offset;
1689 }
1690
1691
1692
1693 static int
1694 dissect_rrlp_FrameNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1695   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1696                                                             0U, 2097151U, NULL, FALSE);
1697
1698   return offset;
1699 }
1700
1701
1702
1703 static int
1704 dissect_rrlp_TimeSlot(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1705   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1706                                                             0U, 7U, NULL, FALSE);
1707
1708   return offset;
1709 }
1710
1711
1712
1713 static int
1714 dissect_rrlp_BitNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1715   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1716                                                             0U, 156U, NULL, FALSE);
1717
1718   return offset;
1719 }
1720
1721
1722 static const per_sequence_t GSMTime_sequence[] = {
1723   { &hf_rrlp_bcchCarrier    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
1724   { &hf_rrlp_bsic           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
1725   { &hf_rrlp_frameNumber    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber },
1726   { &hf_rrlp_timeSlot       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot },
1727   { &hf_rrlp_bitNumber      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber },
1728   { NULL, 0, 0, NULL }
1729 };
1730
1731 static int
1732 dissect_rrlp_GSMTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1734                                    ett_rrlp_GSMTime, GSMTime_sequence);
1735
1736   return offset;
1737 }
1738
1739
1740
1741 static int
1742 dissect_rrlp_SatelliteID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1743   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1744                                                             0U, 63U, NULL, FALSE);
1745
1746   return offset;
1747 }
1748
1749
1750
1751 static int
1752 dissect_rrlp_TLMWord(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1753   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1754                                                             0U, 16383U, NULL, FALSE);
1755
1756   return offset;
1757 }
1758
1759
1760
1761 static int
1762 dissect_rrlp_AntiSpoofFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1763   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1764                                                             0U, 1U, NULL, FALSE);
1765
1766   return offset;
1767 }
1768
1769
1770
1771 static int
1772 dissect_rrlp_AlertFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1773   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1774                                                             0U, 1U, NULL, FALSE);
1775
1776   return offset;
1777 }
1778
1779
1780
1781 static int
1782 dissect_rrlp_TLMReservedBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1783   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1784                                                             0U, 3U, NULL, FALSE);
1785
1786   return offset;
1787 }
1788
1789
1790 static const per_sequence_t GPSTOWAssistElement_sequence[] = {
1791   { &hf_rrlp_satelliteID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
1792   { &hf_rrlp_tlmWord        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TLMWord },
1793   { &hf_rrlp_antiSpoof      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_AntiSpoofFlag },
1794   { &hf_rrlp_alert          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_AlertFlag },
1795   { &hf_rrlp_tlmRsvdBits    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TLMReservedBits },
1796   { NULL, 0, 0, NULL }
1797 };
1798
1799 static int
1800 dissect_rrlp_GPSTOWAssistElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1801   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1802                                    ett_rrlp_GPSTOWAssistElement, GPSTOWAssistElement_sequence);
1803
1804   return offset;
1805 }
1806
1807
1808 static const per_sequence_t GPSTOWAssist_sequence_of[1] = {
1809   { &hf_rrlp_GPSTOWAssist_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOWAssistElement },
1810 };
1811
1812 static int
1813 dissect_rrlp_GPSTOWAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1814   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1815                                                   ett_rrlp_GPSTOWAssist, GPSTOWAssist_sequence_of,
1816                                                   1, 12, FALSE);
1817
1818   return offset;
1819 }
1820
1821
1822 static const per_sequence_t ReferenceTime_sequence[] = {
1823   { &hf_rrlp_gpsTime        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTime },
1824   { &hf_rrlp_gsmTime        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_GSMTime },
1825   { &hf_rrlp_gpsTowAssist   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_GPSTOWAssist },
1826   { NULL, 0, 0, NULL }
1827 };
1828
1829 static int
1830 dissect_rrlp_ReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1831   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1832                                    ett_rrlp_ReferenceTime, ReferenceTime_sequence);
1833
1834   return offset;
1835 }
1836
1837
1838 static const per_sequence_t RefLocation_sequence[] = {
1839   { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
1840   { NULL, 0, 0, NULL }
1841 };
1842
1843 static int
1844 dissect_rrlp_RefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1845   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1846                                    ett_rrlp_RefLocation, RefLocation_sequence);
1847
1848   return offset;
1849 }
1850
1851
1852
1853 static int
1854 dissect_rrlp_INTEGER_0_604799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1855   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1856                                                             0U, 604799U, NULL, FALSE);
1857
1858   return offset;
1859 }
1860
1861
1862
1863 static int
1864 dissect_rrlp_INTEGER_0_239(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1865   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1866                                                             0U, 239U, NULL, FALSE);
1867
1868   return offset;
1869 }
1870
1871
1872
1873 static int
1874 dissect_rrlp_INTEGER_0_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1875   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1876                                                             0U, 3U, NULL, FALSE);
1877
1878   return offset;
1879 }
1880
1881
1882
1883 static int
1884 dissect_rrlp_INTEGER_M2047_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1885   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1886                                                             -2047, 2047U, NULL, FALSE);
1887
1888   return offset;
1889 }
1890
1891
1892
1893 static int
1894 dissect_rrlp_INTEGER_M127_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1895   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1896                                                             -127, 127U, NULL, FALSE);
1897
1898   return offset;
1899 }
1900
1901
1902
1903 static int
1904 dissect_rrlp_INTEGER_M7_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1905   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1906                                                             -7, 7U, NULL, FALSE);
1907
1908   return offset;
1909 }
1910
1911
1912 static const per_sequence_t SatElement_sequence[] = {
1913   { &hf_rrlp_satelliteID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
1914   { &hf_rrlp_iode           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_239 },
1915   { &hf_rrlp_udre           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
1916   { &hf_rrlp_pseudoRangeCor , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2047_2047 },
1917   { &hf_rrlp_rangeRateCor   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
1918   { &hf_rrlp_deltaPseudoRangeCor2, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
1919   { &hf_rrlp_deltaRangeRateCor2, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_7 },
1920   { &hf_rrlp_deltaPseudoRangeCor3, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
1921   { &hf_rrlp_deltaRangeRateCor3, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_7 },
1922   { NULL, 0, 0, NULL }
1923 };
1924
1925 static int
1926 dissect_rrlp_SatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1927   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1928                                    ett_rrlp_SatElement, SatElement_sequence);
1929
1930   return offset;
1931 }
1932
1933
1934 static const per_sequence_t SeqOfSatElement_sequence_of[1] = {
1935   { &hf_rrlp_SeqOfSatElement_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatElement },
1936 };
1937
1938 static int
1939 dissect_rrlp_SeqOfSatElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1940   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1941                                                   ett_rrlp_SeqOfSatElement, SeqOfSatElement_sequence_of,
1942                                                   1, 16, FALSE);
1943
1944   return offset;
1945 }
1946
1947
1948 static const per_sequence_t DGPSCorrections_sequence[] = {
1949   { &hf_rrlp_gpsTOW_02      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_604799 },
1950   { &hf_rrlp_status         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
1951   { &hf_rrlp_satList        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSatElement },
1952   { NULL, 0, 0, NULL }
1953 };
1954
1955 static int
1956 dissect_rrlp_DGPSCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1957   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1958                                    ett_rrlp_DGPSCorrections, DGPSCorrections_sequence);
1959
1960   return offset;
1961 }
1962
1963
1964
1965 static int
1966 dissect_rrlp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1967   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1968                                                             0U, 15U, NULL, FALSE);
1969
1970   return offset;
1971 }
1972
1973
1974
1975 static int
1976 dissect_rrlp_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1977   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1978                                                             0U, 63U, NULL, FALSE);
1979
1980   return offset;
1981 }
1982
1983
1984
1985 static int
1986 dissect_rrlp_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1987   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1988                                                             0U, 1023U, NULL, FALSE);
1989
1990   return offset;
1991 }
1992
1993
1994
1995 static int
1996 dissect_rrlp_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1997   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1998                                                             0U, 1U, NULL, FALSE);
1999
2000   return offset;
2001 }
2002
2003
2004
2005 static int
2006 dissect_rrlp_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2008                                                             0U, 8388607U, NULL, FALSE);
2009
2010   return offset;
2011 }
2012
2013
2014
2015 static int
2016 dissect_rrlp_INTEGER_0_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2017   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2018                                                             0U, 16777215U, NULL, FALSE);
2019
2020   return offset;
2021 }
2022
2023
2024
2025 static int
2026 dissect_rrlp_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2027   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2028                                                             0U, 65535U, NULL, FALSE);
2029
2030   return offset;
2031 }
2032
2033
2034 static const per_sequence_t EphemerisSubframe1Reserved_sequence[] = {
2035   { &hf_rrlp_reserved1      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8388607 },
2036   { &hf_rrlp_reserved2      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
2037   { &hf_rrlp_reserved3      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
2038   { &hf_rrlp_reserved4      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
2039   { NULL, 0, 0, NULL }
2040 };
2041
2042 static int
2043 dissect_rrlp_EphemerisSubframe1Reserved(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2044   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2045                                    ett_rrlp_EphemerisSubframe1Reserved, EphemerisSubframe1Reserved_sequence);
2046
2047   return offset;
2048 }
2049
2050
2051
2052 static int
2053 dissect_rrlp_INTEGER_M128_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2054   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2055                                                             -128, 127U, NULL, FALSE);
2056
2057   return offset;
2058 }
2059
2060
2061
2062 static int
2063 dissect_rrlp_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2064   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2065                                                             0U, 37799U, NULL, FALSE);
2066
2067   return offset;
2068 }
2069
2070
2071
2072 static int
2073 dissect_rrlp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2074   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2075                                                             -32768, 32767U, NULL, FALSE);
2076
2077   return offset;
2078 }
2079
2080
2081
2082 static int
2083 dissect_rrlp_INTEGER_M2097152_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2084   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2085                                                             -2097152, 2097151U, NULL, FALSE);
2086
2087   return offset;
2088 }
2089
2090
2091
2092 static int
2093 dissect_rrlp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2094   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2095                                                             -2147483648, 2147483647U, NULL, FALSE);
2096
2097   return offset;
2098 }
2099
2100
2101
2102 static int
2103 dissect_rrlp_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2104   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2105                                                             0U, 4294967295U, NULL, FALSE);
2106
2107   return offset;
2108 }
2109
2110
2111
2112 static int
2113 dissect_rrlp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2114   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2115                                                             0U, 31U, NULL, FALSE);
2116
2117   return offset;
2118 }
2119
2120
2121
2122 static int
2123 dissect_rrlp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2124   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2125                                                             -8388608, 8388607U, NULL, FALSE);
2126
2127   return offset;
2128 }
2129
2130
2131
2132 static int
2133 dissect_rrlp_INTEGER_M8192_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2134   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2135                                                             -8192, 8191U, NULL, FALSE);
2136
2137   return offset;
2138 }
2139
2140
2141 static const per_sequence_t UncompressedEphemeris_sequence[] = {
2142   { &hf_rrlp_ephemCodeOnL2  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
2143   { &hf_rrlp_ephemURA       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
2144   { &hf_rrlp_ephemSVhealth  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
2145   { &hf_rrlp_ephemIODC      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
2146   { &hf_rrlp_ephemL2Pflag   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2147   { &hf_rrlp_ephemSF1Rsvd   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_EphemerisSubframe1Reserved },
2148   { &hf_rrlp_ephemTgd       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2149   { &hf_rrlp_ephemToc       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
2150   { &hf_rrlp_ephemAF2       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2151   { &hf_rrlp_ephemAF1       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2152   { &hf_rrlp_ephemAF0       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
2153   { &hf_rrlp_ephemCrs       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2154   { &hf_rrlp_ephemDeltaN    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2155   { &hf_rrlp_ephemM0        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2156   { &hf_rrlp_ephemCuc       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2157   { &hf_rrlp_ephemE         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
2158   { &hf_rrlp_ephemCus       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2159   { &hf_rrlp_ephemAPowerHalf, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
2160   { &hf_rrlp_ephemToe       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
2161   { &hf_rrlp_ephemFitFlag   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2162   { &hf_rrlp_ephemAODA      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
2163   { &hf_rrlp_ephemCic       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2164   { &hf_rrlp_ephemOmegaA0   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2165   { &hf_rrlp_ephemCis       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2166   { &hf_rrlp_ephemI0        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2167   { &hf_rrlp_ephemCrc       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2168   { &hf_rrlp_ephemW         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2169   { &hf_rrlp_ephemOmegaADot , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2170   { &hf_rrlp_ephemIDot      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
2171   { NULL, 0, 0, NULL }
2172 };
2173
2174 static int
2175 dissect_rrlp_UncompressedEphemeris(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2176   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2177                                    ett_rrlp_UncompressedEphemeris, UncompressedEphemeris_sequence);
2178
2179   return offset;
2180 }
2181
2182
2183 static const value_string rrlp_SatStatus_vals[] = {
2184   {   0, "newSatelliteAndModelUC" },
2185   {   1, "oldSatelliteAndModel" },
2186   {   2, "newNaviModelUC" },
2187   { 0, NULL }
2188 };
2189
2190 static const per_choice_t SatStatus_choice[] = {
2191   {   0, &hf_rrlp_newSatelliteAndModelUC, ASN1_EXTENSION_ROOT    , dissect_rrlp_UncompressedEphemeris },
2192   {   1, &hf_rrlp_oldSatelliteAndModel, ASN1_EXTENSION_ROOT    , dissect_rrlp_NULL },
2193   {   2, &hf_rrlp_newNaviModelUC , ASN1_EXTENSION_ROOT    , dissect_rrlp_UncompressedEphemeris },
2194   { 0, NULL, 0, NULL }
2195 };
2196
2197 static int
2198 dissect_rrlp_SatStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2199   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2200                                  ett_rrlp_SatStatus, SatStatus_choice,
2201                                  NULL);
2202
2203   return offset;
2204 }
2205
2206
2207 static const per_sequence_t NavModelElement_sequence[] = {
2208   { &hf_rrlp_satelliteID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2209   { &hf_rrlp_satStatus      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatStatus },
2210   { NULL, 0, 0, NULL }
2211 };
2212
2213 static int
2214 dissect_rrlp_NavModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2215   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2216                                    ett_rrlp_NavModelElement, NavModelElement_sequence);
2217
2218   return offset;
2219 }
2220
2221
2222 static const per_sequence_t SeqOfNavModelElement_sequence_of[1] = {
2223   { &hf_rrlp_SeqOfNavModelElement_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_NavModelElement },
2224 };
2225
2226 static int
2227 dissect_rrlp_SeqOfNavModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2228   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2229                                                   ett_rrlp_SeqOfNavModelElement, SeqOfNavModelElement_sequence_of,
2230                                                   1, 16, FALSE);
2231
2232   return offset;
2233 }
2234
2235
2236 static const per_sequence_t NavigationModel_sequence[] = {
2237   { &hf_rrlp_navModelList   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfNavModelElement },
2238   { NULL, 0, 0, NULL }
2239 };
2240
2241 static int
2242 dissect_rrlp_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2243   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2244                                    ett_rrlp_NavigationModel, NavigationModel_sequence);
2245
2246   return offset;
2247 }
2248
2249
2250 static const per_sequence_t IonosphericModel_sequence[] = {
2251   { &hf_rrlp_alfa0          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2252   { &hf_rrlp_alfa1          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2253   { &hf_rrlp_alfa2          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2254   { &hf_rrlp_alfa3          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2255   { &hf_rrlp_beta0          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2256   { &hf_rrlp_beta1          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2257   { &hf_rrlp_beta2          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2258   { &hf_rrlp_beta3          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2259   { NULL, 0, 0, NULL }
2260 };
2261
2262 static int
2263 dissect_rrlp_IonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2264   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2265                                    ett_rrlp_IonosphericModel, IonosphericModel_sequence);
2266
2267   return offset;
2268 }
2269
2270
2271
2272 static int
2273 dissect_rrlp_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2274   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2275                                                             0U, 255U, NULL, FALSE);
2276
2277   return offset;
2278 }
2279
2280
2281 static const per_sequence_t UTCModel_sequence[] = {
2282   { &hf_rrlp_utcA1          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2283   { &hf_rrlp_utcA0          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
2284   { &hf_rrlp_utcTot         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2285   { &hf_rrlp_utcWNt         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2286   { &hf_rrlp_utcDeltaTls    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2287   { &hf_rrlp_utcWNlsf       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2288   { &hf_rrlp_utcDN          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2289   { &hf_rrlp_utcDeltaTlsf   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
2290   { NULL, 0, 0, NULL }
2291 };
2292
2293 static int
2294 dissect_rrlp_UTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2295   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2296                                    ett_rrlp_UTCModel, UTCModel_sequence);
2297
2298   return offset;
2299 }
2300
2301
2302
2303 static int
2304 dissect_rrlp_INTEGER_M1024_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2305   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2306                                                             -1024, 1023U, NULL, FALSE);
2307
2308   return offset;
2309 }
2310
2311
2312 static const per_sequence_t AlmanacElement_sequence[] = {
2313   { &hf_rrlp_satelliteID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2314   { &hf_rrlp_almanacE       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
2315   { &hf_rrlp_alamanacToa    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2316   { &hf_rrlp_almanacKsii    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2317   { &hf_rrlp_almanacOmegaDot, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
2318   { &hf_rrlp_almanacSVhealth, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2319   { &hf_rrlp_almanacAPowerHalf, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
2320   { &hf_rrlp_almanacOmega0  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2321   { &hf_rrlp_almanacW       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2322   { &hf_rrlp_almanacM0      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
2323   { &hf_rrlp_almanacAF0     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
2324   { &hf_rrlp_almanacAF1     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
2325   { NULL, 0, 0, NULL }
2326 };
2327
2328 static int
2329 dissect_rrlp_AlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2330   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2331                                    ett_rrlp_AlmanacElement, AlmanacElement_sequence);
2332
2333   return offset;
2334 }
2335
2336
2337 static const per_sequence_t SeqOfAlmanacElement_sequence_of[1] = {
2338   { &hf_rrlp_SeqOfAlmanacElement_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_AlmanacElement },
2339 };
2340
2341 static int
2342 dissect_rrlp_SeqOfAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2343   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2344                                                   ett_rrlp_SeqOfAlmanacElement, SeqOfAlmanacElement_sequence_of,
2345                                                   1, 64, FALSE);
2346
2347   return offset;
2348 }
2349
2350
2351 static const per_sequence_t Almanac_sequence[] = {
2352   { &hf_rrlp_alamanacWNa    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
2353   { &hf_rrlp_almanacList    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfAlmanacElement },
2354   { NULL, 0, 0, NULL }
2355 };
2356
2357 static int
2358 dissect_rrlp_Almanac(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2359   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2360                                    ett_rrlp_Almanac, Almanac_sequence);
2361
2362   return offset;
2363 }
2364
2365
2366 static const per_sequence_t TimeRelation_sequence[] = {
2367   { &hf_rrlp_gpsTOW_03      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSTOW23b },
2368   { &hf_rrlp_gsmTime        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_GSMTime },
2369   { NULL, 0, 0, NULL }
2370 };
2371
2372 static int
2373 dissect_rrlp_TimeRelation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2374   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2375                                    ett_rrlp_TimeRelation, TimeRelation_sequence);
2376
2377   return offset;
2378 }
2379
2380
2381
2382 static int
2383 dissect_rrlp_INTEGER_M2048_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2384   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2385                                                             -2048, 2047U, NULL, FALSE);
2386
2387   return offset;
2388 }
2389
2390
2391 static const per_sequence_t AddionalDopplerFields_sequence[] = {
2392   { &hf_rrlp_doppler1       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
2393   { &hf_rrlp_dopplerUncertainty, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
2394   { NULL, 0, 0, NULL }
2395 };
2396
2397 static int
2398 dissect_rrlp_AddionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2399   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2400                                    ett_rrlp_AddionalDopplerFields, AddionalDopplerFields_sequence);
2401
2402   return offset;
2403 }
2404
2405
2406
2407 static int
2408 dissect_rrlp_INTEGER_0_1022(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2409   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2410                                                             0U, 1022U, NULL, FALSE);
2411
2412   return offset;
2413 }
2414
2415
2416
2417 static int
2418 dissect_rrlp_INTEGER_0_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2419   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2420                                                             0U, 19U, NULL, FALSE);
2421
2422   return offset;
2423 }
2424
2425
2426 static const per_sequence_t AddionalAngleFields_sequence[] = {
2427   { &hf_rrlp_azimuth        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
2428   { &hf_rrlp_elevation      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
2429   { NULL, 0, 0, NULL }
2430 };
2431
2432 static int
2433 dissect_rrlp_AddionalAngleFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2434   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2435                                    ett_rrlp_AddionalAngleFields, AddionalAngleFields_sequence);
2436
2437   return offset;
2438 }
2439
2440
2441 static const per_sequence_t AcquisElement_sequence[] = {
2442   { &hf_rrlp_svid           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2443   { &hf_rrlp_doppler0       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
2444   { &hf_rrlp_addionalDoppler, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_AddionalDopplerFields },
2445   { &hf_rrlp_codePhase      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 },
2446   { &hf_rrlp_intCodePhase   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_19 },
2447   { &hf_rrlp_gpsBitNumber   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
2448   { &hf_rrlp_codePhaseSearchWindow, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
2449   { &hf_rrlp_addionalAngle  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_AddionalAngleFields },
2450   { NULL, 0, 0, NULL }
2451 };
2452
2453 static int
2454 dissect_rrlp_AcquisElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2455   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2456                                    ett_rrlp_AcquisElement, AcquisElement_sequence);
2457
2458   return offset;
2459 }
2460
2461
2462 static const per_sequence_t SeqOfAcquisElement_sequence_of[1] = {
2463   { &hf_rrlp_SeqOfAcquisElement_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_AcquisElement },
2464 };
2465
2466 static int
2467 dissect_rrlp_SeqOfAcquisElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2468   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2469                                                   ett_rrlp_SeqOfAcquisElement, SeqOfAcquisElement_sequence_of,
2470                                                   1, 16, FALSE);
2471
2472   return offset;
2473 }
2474
2475
2476 static const per_sequence_t AcquisAssist_sequence[] = {
2477   { &hf_rrlp_timeRelation   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeRelation },
2478   { &hf_rrlp_acquisList     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfAcquisElement },
2479   { NULL, 0, 0, NULL }
2480 };
2481
2482 static int
2483 dissect_rrlp_AcquisAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2484   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2485                                    ett_rrlp_AcquisAssist, AcquisAssist_sequence);
2486
2487   return offset;
2488 }
2489
2490
2491 static const per_sequence_t SeqOf_BadSatelliteSet_sequence_of[1] = {
2492   { &hf_rrlp_SeqOf_BadSatelliteSet_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
2493 };
2494
2495 static int
2496 dissect_rrlp_SeqOf_BadSatelliteSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2497   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2498                                                   ett_rrlp_SeqOf_BadSatelliteSet, SeqOf_BadSatelliteSet_sequence_of,
2499                                                   1, 16, FALSE);
2500
2501   return offset;
2502 }
2503
2504
2505 static const per_sequence_t ControlHeader_sequence[] = {
2506   { &hf_rrlp_referenceTime  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_ReferenceTime },
2507   { &hf_rrlp_refLocation    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_RefLocation },
2508   { &hf_rrlp_dgpsCorrections, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_DGPSCorrections },
2509   { &hf_rrlp_navigationModel, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_NavigationModel },
2510   { &hf_rrlp_ionosphericModel, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_IonosphericModel },
2511   { &hf_rrlp_utcModel       , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_UTCModel },
2512   { &hf_rrlp_almanac        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_Almanac },
2513   { &hf_rrlp_acquisAssist   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_AcquisAssist },
2514   { &hf_rrlp_realTimeIntegrity, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_SeqOf_BadSatelliteSet },
2515   { NULL, 0, 0, NULL }
2516 };
2517
2518 static int
2519 dissect_rrlp_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2520   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2521                                    ett_rrlp_ControlHeader, ControlHeader_sequence);
2522
2523   return offset;
2524 }
2525
2526
2527 static const per_sequence_t GPS_AssistData_sequence[] = {
2528   { &hf_rrlp_controlHeader  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_ControlHeader },
2529   { NULL, 0, 0, NULL }
2530 };
2531
2532 static int
2533 dissect_rrlp_GPS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2534   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2535                                    ett_rrlp_GPS_AssistData, GPS_AssistData_sequence);
2536
2537   return offset;
2538 }
2539
2540
2541
2542 static int
2543 dissect_rrlp_ExpectedOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2544   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2545                                                             0U, 1250U, NULL, FALSE);
2546
2547   return offset;
2548 }
2549
2550
2551
2552 static int
2553 dissect_rrlp_ExpOTDUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2554   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2555                                                             0U, 7U, NULL, FALSE);
2556
2557   return offset;
2558 }
2559
2560
2561 static const per_sequence_t MsrAssistBTS_R98_ExpOTD_sequence[] = {
2562   { &hf_rrlp_expectedOTD    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpectedOTD },
2563   { &hf_rrlp_expOTDUncertainty, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpOTDUncertainty },
2564   { NULL, 0, 0, NULL }
2565 };
2566
2567 static int
2568 dissect_rrlp_MsrAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2569   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2570                                    ett_rrlp_MsrAssistBTS_R98_ExpOTD, MsrAssistBTS_R98_ExpOTD_sequence);
2571
2572   return offset;
2573 }
2574
2575
2576 static const per_sequence_t SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of[1] = {
2577   { &hf_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_MsrAssistBTS_R98_ExpOTD },
2578 };
2579
2580 static int
2581 dissect_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2582   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2583                                                   ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD, SeqOfMsrAssistBTS_R98_ExpOTD_sequence_of,
2584                                                   1, 15, FALSE);
2585
2586   return offset;
2587 }
2588
2589
2590 static const per_sequence_t MsrAssistData_R98_ExpOTD_sequence[] = {
2591   { &hf_rrlp_msrAssistList_R98_ExpOTD, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD },
2592   { NULL, 0, 0, NULL }
2593 };
2594
2595 static int
2596 dissect_rrlp_MsrAssistData_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2597   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2598                                    ett_rrlp_MsrAssistData_R98_ExpOTD, MsrAssistData_R98_ExpOTD_sequence);
2599
2600   return offset;
2601 }
2602
2603
2604 static const per_sequence_t AssistBTSData_R98_ExpOTD_sequence[] = {
2605   { &hf_rrlp_expectedOTD    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpectedOTD },
2606   { &hf_rrlp_expOTDuncertainty, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_ExpOTDUncertainty },
2607   { NULL, 0, 0, NULL }
2608 };
2609
2610 static int
2611 dissect_rrlp_AssistBTSData_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2612   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2613                                    ett_rrlp_AssistBTSData_R98_ExpOTD, AssistBTSData_R98_ExpOTD_sequence);
2614
2615   return offset;
2616 }
2617
2618
2619 static const value_string rrlp_SystemInfoAssistBTS_R98_ExpOTD_vals[] = {
2620   {   0, "notPresent" },
2621   {   1, "present" },
2622   { 0, NULL }
2623 };
2624
2625 static const per_choice_t SystemInfoAssistBTS_R98_ExpOTD_choice[] = {
2626   {   0, &hf_rrlp_notPresent     , ASN1_NO_EXTENSIONS     , dissect_rrlp_NULL },
2627   {   1, &hf_rrlp_present_01     , ASN1_NO_EXTENSIONS     , dissect_rrlp_AssistBTSData_R98_ExpOTD },
2628   { 0, NULL, 0, NULL }
2629 };
2630
2631 static int
2632 dissect_rrlp_SystemInfoAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2633   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2634                                  ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD, SystemInfoAssistBTS_R98_ExpOTD_choice,
2635                                  NULL);
2636
2637   return offset;
2638 }
2639
2640
2641 static const per_sequence_t SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of[1] = {
2642   { &hf_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SystemInfoAssistBTS_R98_ExpOTD },
2643 };
2644
2645 static int
2646 dissect_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2647   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2648                                                   ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD, SeqOfSystemInfoAssistBTS_R98_ExpOTD_sequence_of,
2649                                                   1, 32, FALSE);
2650
2651   return offset;
2652 }
2653
2654
2655 static const per_sequence_t SystemInfoAssistData_R98_ExpOTD_sequence[] = {
2656   { &hf_rrlp_systemInfoAssistListR98_ExpOTD, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD },
2657   { NULL, 0, 0, NULL }
2658 };
2659
2660 static int
2661 dissect_rrlp_SystemInfoAssistData_R98_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2662   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2663                                    ett_rrlp_SystemInfoAssistData_R98_ExpOTD, SystemInfoAssistData_R98_ExpOTD_sequence);
2664
2665   return offset;
2666 }
2667
2668
2669 static const per_sequence_t Rel98_Ext_ExpOTD_sequence[] = {
2670   { &hf_rrlp_msrAssistData_R98_ExpOTD, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_MsrAssistData_R98_ExpOTD },
2671   { &hf_rrlp_systemInfoAssistData_R98_ExpOTD, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_SystemInfoAssistData_R98_ExpOTD },
2672   { NULL, 0, 0, NULL }
2673 };
2674
2675 static int
2676 dissect_rrlp_Rel98_Ext_ExpOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2677   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2678                                    ett_rrlp_Rel98_Ext_ExpOTD, Rel98_Ext_ExpOTD_sequence);
2679
2680   return offset;
2681 }
2682
2683
2684
2685 static int
2686 dissect_rrlp_GPSReferenceTimeUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2687   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2688                                                             0U, 127U, NULL, FALSE);
2689
2690   return offset;
2691 }
2692
2693
2694 static const per_sequence_t Rel98_MsrPosition_Req_Extension_sequence[] = {
2695   { &hf_rrlp_rel98_Ext_ExpOTD, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_Rel98_Ext_ExpOTD },
2696   { &hf_rrlp_gpsTimeAssistanceMeasurementRequest, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rrlp_NULL },
2697   { &hf_rrlp_gpsReferenceTimeUncertainty, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rrlp_GPSReferenceTimeUncertainty },
2698   { NULL, 0, 0, NULL }
2699 };
2700
2701 static int
2702 dissect_rrlp_Rel98_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2703   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2704                                    ett_rrlp_Rel98_MsrPosition_Req_Extension, Rel98_MsrPosition_Req_Extension_sequence);
2705
2706   return offset;
2707 }
2708
2709
2710
2711 static int
2712 dissect_rrlp_INTEGER_0_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2713   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2714                                                             0U, 262143U, NULL, FALSE);
2715
2716   return offset;
2717 }
2718
2719
2720 static const per_sequence_t Extended_reference_sequence[] = {
2721   { &hf_rrlp_smlc_code      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
2722   { &hf_rrlp_transaction_ID , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_262143 },
2723   { NULL, 0, 0, NULL }
2724 };
2725
2726 static int
2727 dissect_rrlp_Extended_reference(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2728   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2729                                    ett_rrlp_Extended_reference, Extended_reference_sequence);
2730
2731   return offset;
2732 }
2733
2734
2735 static const per_sequence_t Rel5_MsrPosition_Req_Extension_sequence[] = {
2736   { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
2737   { NULL, 0, 0, NULL }
2738 };
2739
2740 static int
2741 dissect_rrlp_Rel5_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2742   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2743                                    ett_rrlp_Rel5_MsrPosition_Req_Extension, Rel5_MsrPosition_Req_Extension_sequence);
2744
2745   return offset;
2746 }
2747
2748
2749
2750 static int
2751 dissect_rrlp_GANSSPositioningMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2752   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2753                                      2, 16, FALSE, NULL);
2754
2755   return offset;
2756 }
2757
2758
2759
2760 static int
2761 dissect_rrlp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2762   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2763                                                             0U, 8191U, NULL, FALSE);
2764
2765   return offset;
2766 }
2767
2768
2769
2770 static int
2771 dissect_rrlp_GANSSTOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2772   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2773                                                             0U, 86399U, NULL, FALSE);
2774
2775   return offset;
2776 }
2777
2778
2779
2780 static int
2781 dissect_rrlp_GANSSTODUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2782   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2783                                                             0U, 127U, NULL, FALSE);
2784
2785   return offset;
2786 }
2787
2788
2789 static const per_sequence_t GANSSRefTimeInfo_sequence[] = {
2790   { &hf_rrlp_ganssDay       , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_INTEGER_0_8191 },
2791   { &hf_rrlp_ganssTOD       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD },
2792   { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_GANSSTODUncertainty },
2793   { &hf_rrlp_ganssTimeID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_INTEGER_0_7 },
2794   { NULL, 0, 0, NULL }
2795 };
2796
2797 static int
2798 dissect_rrlp_GANSSRefTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2799   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2800                                    ett_rrlp_GANSSRefTimeInfo, GANSSRefTimeInfo_sequence);
2801
2802   return offset;
2803 }
2804
2805
2806
2807 static int
2808 dissect_rrlp_FrameDrift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2809   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2810                                                             -64, 63U, NULL, FALSE);
2811
2812   return offset;
2813 }
2814
2815
2816 static const per_sequence_t GANSSTOD_GSMTimeAssociation_sequence[] = {
2817   { &hf_rrlp_bcchCarrier    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
2818   { &hf_rrlp_bsic           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
2819   { &hf_rrlp_frameNumber    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber },
2820   { &hf_rrlp_timeSlot       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot },
2821   { &hf_rrlp_bitNumber      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber },
2822   { &hf_rrlp_frameDrift     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_FrameDrift },
2823   { NULL, 0, 0, NULL }
2824 };
2825
2826 static int
2827 dissect_rrlp_GANSSTOD_GSMTimeAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2828   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2829                                    ett_rrlp_GANSSTOD_GSMTimeAssociation, GANSSTOD_GSMTimeAssociation_sequence);
2830
2831   return offset;
2832 }
2833
2834
2835 static const per_sequence_t GANSSReferenceTime_sequence[] = {
2836   { &hf_rrlp_ganssRefTimeInfo, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefTimeInfo },
2837   { &hf_rrlp_ganssTOD_GSMTimeAssociation, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_GANSSTOD_GSMTimeAssociation },
2838   { NULL, 0, 0, NULL }
2839 };
2840
2841 static int
2842 dissect_rrlp_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2843   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2844                                    ett_rrlp_GANSSReferenceTime, GANSSReferenceTime_sequence);
2845
2846   return offset;
2847 }
2848
2849
2850 static const per_sequence_t GANSSRefLocation_sequence[] = {
2851   { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
2852   { NULL, 0, 0, NULL }
2853 };
2854
2855 static int
2856 dissect_rrlp_GANSSRefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2857   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2858                                    ett_rrlp_GANSSRefLocation, GANSSRefLocation_sequence);
2859
2860   return offset;
2861 }
2862
2863
2864
2865 static int
2866 dissect_rrlp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2867   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2868                                                             0U, 4095U, NULL, FALSE);
2869
2870   return offset;
2871 }
2872
2873
2874 static const per_sequence_t GANSSIonosphereModel_sequence[] = {
2875   { &hf_rrlp_ai0            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
2876   { &hf_rrlp_ai1            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
2877   { &hf_rrlp_ai2            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
2878   { NULL, 0, 0, NULL }
2879 };
2880
2881 static int
2882 dissect_rrlp_GANSSIonosphereModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2883   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2884                                    ett_rrlp_GANSSIonosphereModel, GANSSIonosphereModel_sequence);
2885
2886   return offset;
2887 }
2888
2889
2890 static const per_sequence_t GANSSIonoStormFlags_sequence[] = {
2891   { &hf_rrlp_ionoStormFlag1 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2892   { &hf_rrlp_ionoStormFlag2 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2893   { &hf_rrlp_ionoStormFlag3 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2894   { &hf_rrlp_ionoStormFlag4 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2895   { &hf_rrlp_ionoStormFlag5 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
2896   { NULL, 0, 0, NULL }
2897 };
2898
2899 static int
2900 dissect_rrlp_GANSSIonoStormFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2901   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2902                                    ett_rrlp_GANSSIonoStormFlags, GANSSIonoStormFlags_sequence);
2903
2904   return offset;
2905 }
2906
2907
2908 static const per_sequence_t GANSSIonosphericModel_sequence[] = {
2909   { &hf_rrlp_ganssIonoModel , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSIonosphereModel },
2910   { &hf_rrlp_ganssIonoStormFlags, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_GANSSIonoStormFlags },
2911   { NULL, 0, 0, NULL }
2912 };
2913
2914 static int
2915 dissect_rrlp_GANSSIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2916   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2917                                    ett_rrlp_GANSSIonosphericModel, GANSSIonosphericModel_sequence);
2918
2919   return offset;
2920 }
2921
2922
2923
2924 static int
2925 dissect_rrlp_BIT_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2926   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2927                                      2, 2, FALSE, NULL);
2928
2929   return offset;
2930 }
2931
2932
2933 static const per_sequence_t GANSSAddIonosphericModel_sequence[] = {
2934   { &hf_rrlp_dataID         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_2 },
2935   { &hf_rrlp_ionoModel      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_IonosphericModel },
2936   { NULL, 0, 0, NULL }
2937 };
2938
2939 static int
2940 dissect_rrlp_GANSSAddIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2941   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2942                                    ett_rrlp_GANSSAddIonosphericModel, GANSSAddIonosphericModel_sequence);
2943
2944   return offset;
2945 }
2946
2947
2948
2949 static int
2950 dissect_rrlp_INTEGER_M1048576_1048575(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2951   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2952                                                             -1048576, 1048575U, NULL, FALSE);
2953
2954   return offset;
2955 }
2956
2957
2958
2959 static int
2960 dissect_rrlp_INTEGER_M16384_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2961   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2962                                                             -16384, 16383U, NULL, FALSE);
2963
2964   return offset;
2965 }
2966
2967
2968
2969 static int
2970 dissect_rrlp_INTEGER_M1073741824_1073741823(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2971   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2972                                                             -1073741824, 1073741823U, NULL, FALSE);
2973
2974   return offset;
2975 }
2976
2977
2978
2979 static int
2980 dissect_rrlp_INTEGER_M262144_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2981   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2982                                                             -262144, 262143U, NULL, FALSE);
2983
2984   return offset;
2985 }
2986
2987
2988 static const per_sequence_t GANSSEarthOrientParam_sequence[] = {
2989   { &hf_rrlp_teop           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
2990   { &hf_rrlp_pmX            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
2991   { &hf_rrlp_pmXdot         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
2992   { &hf_rrlp_pmY            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
2993   { &hf_rrlp_pmYdot         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
2994   { &hf_rrlp_deltaUT1       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1073741824_1073741823 },
2995   { &hf_rrlp_deltaUT1dot    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M262144_262143 },
2996   { NULL, 0, 0, NULL }
2997 };
2998
2999 static int
3000 dissect_rrlp_GANSSEarthOrientParam(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3001   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3002                                    ett_rrlp_GANSSEarthOrientParam, GANSSEarthOrientParam_sequence);
3003
3004   return offset;
3005 }
3006
3007
3008 static const per_sequence_t GANSSCommonAssistData_sequence[] = {
3009   { &hf_rrlp_ganssReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_GANSSReferenceTime },
3010   { &hf_rrlp_ganssRefLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_GANSSRefLocation },
3011   { &hf_rrlp_ganssIonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rrlp_GANSSIonosphericModel },
3012   { &hf_rrlp_ganssAddIonosphericModel, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rrlp_GANSSAddIonosphericModel },
3013   { &hf_rrlp_ganssEarthOrientParam, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rrlp_GANSSEarthOrientParam },
3014   { NULL, 0, 0, NULL }
3015 };
3016
3017 static int
3018 dissect_rrlp_GANSSCommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3019   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3020                                    ett_rrlp_GANSSCommonAssistData, GANSSCommonAssistData_sequence);
3021
3022   return offset;
3023 }
3024
3025
3026
3027 static int
3028 dissect_rrlp_TA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3029   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3030                                                             -2147483648, 2147483647U, NULL, FALSE);
3031
3032   return offset;
3033 }
3034
3035
3036
3037 static int
3038 dissect_rrlp_TA1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3039   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3040                                                             -8388608, 8388607U, NULL, FALSE);
3041
3042   return offset;
3043 }
3044
3045
3046
3047 static int
3048 dissect_rrlp_TA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3049   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3050                                                             -64, 63U, NULL, FALSE);
3051
3052   return offset;
3053 }
3054
3055
3056 static const per_sequence_t GANSSTimeModelElement_sequence[] = {
3057   { &hf_rrlp_ganssTimeModelRefTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
3058   { &hf_rrlp_tA0            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_TA0 },
3059   { &hf_rrlp_tA1            , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_TA1 },
3060   { &hf_rrlp_tA2            , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_TA2 },
3061   { &hf_rrlp_gnssTOID       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
3062   { &hf_rrlp_weekNumber     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_rrlp_INTEGER_0_8191 },
3063   { NULL, 0, 0, NULL }
3064 };
3065
3066 static int
3067 dissect_rrlp_GANSSTimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3068   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3069                                    ett_rrlp_GANSSTimeModelElement, GANSSTimeModelElement_sequence);
3070
3071   return offset;
3072 }
3073
3074
3075 static const per_sequence_t SeqOfGANSSTimeModel_sequence_of[1] = {
3076   { &hf_rrlp_SeqOfGANSSTimeModel_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTimeModelElement },
3077 };
3078
3079 static int
3080 dissect_rrlp_SeqOfGANSSTimeModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3081   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3082                                                   ett_rrlp_SeqOfGANSSTimeModel, SeqOfGANSSTimeModel_sequence_of,
3083                                                   1, 7, FALSE);
3084
3085   return offset;
3086 }
3087