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