From e.yimjia via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9289 :
[metze/wireshark/wip.git] / epan / dissectors / packet-ilp.c
1 /* Do not modify this file. Changes will be overwritten.                      */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3 /* packet-ilp.c                                                               */
4 /* ../../tools/asn2wrs.py -p ilp -c ./ilp.cnf -s ./packet-ilp-template -D . -O ../../epan/dissectors ILP.asn ILP-Components.asn */
5
6 /* Input file: packet-ilp-template.c */
7
8 #line 1 "../../asn1/ilp/packet-ilp-template.c"
9 /* packet-ilp.c
10  * Routines for OMA Internal Location Protocol packet dissection
11  * Copyright 2006, e.yimjia <jy.m12.0@gmail.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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
32  *
33  * ref OMA-TS-ILP-V2_0_1-20121205-A
34  * http://www.openmobilealliance.org
35  */
36
37 #include "config.h"
38
39 #include <glib.h>
40 #include <epan/packet.h>
41 #include <epan/prefs.h>
42 #include <epan/asn1.h>
43
44 #include "packet-per.h"
45 #include "packet-tcp.h"
46 #include "packet-gsm_map.h"
47
48 #define PNAME  "OMA Internal Location Protocol"
49 #define PSNAME "ILP"
50 #define PFNAME "ilp"
51
52 void proto_register_ilp(void);
53
54 static dissector_handle_t rrlp_handle;
55 static dissector_handle_t lpp_handle;
56
57 /* IANA Registered Ports
58  * oma-ilp         7276/tcp    OMA Internal Location
59  */
60 static guint gbl_ilp_port = 7276;
61
62 /* Initialize the protocol and registered fields */
63 static int proto_ilp = -1;
64
65
66 #define ILP_HEADER_SIZE 2
67
68 static gboolean ilp_desegment = TRUE;
69
70
71 /*--- Included file: packet-ilp-hf.c ---*/
72 #line 1 "../../asn1/ilp/packet-ilp-hf.c"
73 static int hf_ilp_ILP_PDU_PDU = -1;               /* ILP_PDU */
74 static int hf_ilp_length = -1;                    /* INTEGER_0_65535 */
75 static int hf_ilp_version = -1;                   /* Version */
76 static int hf_ilp_sessionID2 = -1;                /* SessionID2 */
77 static int hf_ilp_message = -1;                   /* IlpMessage */
78 static int hf_ilp_msPREQ = -1;                    /* PREQ */
79 static int hf_ilp_msPRES = -1;                    /* PRES */
80 static int hf_ilp_msPRPT = -1;                    /* PRPT */
81 static int hf_ilp_msPLREQ = -1;                   /* PLREQ */
82 static int hf_ilp_msPLRES = -1;                   /* PLRES */
83 static int hf_ilp_msPINIT = -1;                   /* PINIT */
84 static int hf_ilp_msPAUTH = -1;                   /* PAUTH */
85 static int hf_ilp_msPALIVE = -1;                  /* PALIVE */
86 static int hf_ilp_msPEND = -1;                    /* PEND */
87 static int hf_ilp_msPMESS = -1;                   /* PMESS */
88 static int hf_ilp_sLPMode = -1;                   /* SLPMode */
89 static int hf_ilp_approvedPosMethods = -1;        /* PosTechnology */
90 static int hf_ilp_locationId = -1;                /* LocationId */
91 static int hf_ilp_multipleLocationIds = -1;       /* MultipleLocationIds */
92 static int hf_ilp_position = -1;                  /* Position */
93 static int hf_ilp_triggerParams = -1;             /* TriggerParams */
94 static int hf_ilp_sPCSETKey = -1;                 /* SPCSETKey */
95 static int hf_ilp_sPCTID = -1;                    /* SPCTID */
96 static int hf_ilp_sPCSETKeylifetime = -1;         /* SPCSETKeylifetime */
97 static int hf_ilp_qoP = -1;                       /* QoP */
98 static int hf_ilp_sETCapabilities = -1;           /* SETCapabilities */
99 static int hf_ilp_notificationMode = -1;          /* NotificationMode */
100 static int hf_ilp_triggerType = -1;               /* TriggerType */
101 static int hf_ilp_periodicTriggerParams = -1;     /* PeriodicTriggerParams */
102 static int hf_ilp_numberOfFixes = -1;             /* INTEGER_1_8639999 */
103 static int hf_ilp_intervalBetweenFixes = -1;      /* INTEGER_1_8639999 */
104 static int hf_ilp_startTime = -1;                 /* INTEGER_0_2678400 */
105 static int hf_ilp_preferredPosMethod = -1;        /* PosMethod */
106 static int hf_ilp_gnssPosTechnology = -1;         /* GNSSPosTechnology */
107 static int hf_ilp_supportedPosMethods = -1;       /* PosTechnology */
108 static int hf_ilp_sPCstatusCode = -1;             /* SPCStatusCode */
109 static int hf_ilp_fixNumber = -1;                 /* INTEGER_1_8639999 */
110 static int hf_ilp_statusCode = -1;                /* StatusCode */
111 static int hf_ilp_positionResults = -1;           /* PositionResults */
112 static int hf_ilp_PositionResults_item = -1;      /* PositionResult */
113 static int hf_ilp_posMethod = -1;                 /* PosMethod */
114 static int hf_ilp_requestedAssistData = -1;       /* RequestedAssistData */
115 static int hf_ilp_posPayLoad = -1;                /* PosPayLoad */
116 static int hf_ilp_utran_GPSReferenceTimeResult = -1;  /* UTRAN_GPSReferenceTimeResult */
117 static int hf_ilp_utran_GANSSReferenceTimeResult = -1;  /* UTRAN_GANSSReferenceTimeResult */
118 static int hf_ilp_almanacRequested = -1;          /* BOOLEAN */
119 static int hf_ilp_utcModelRequested = -1;         /* BOOLEAN */
120 static int hf_ilp_ionosphericModelRequested = -1;  /* BOOLEAN */
121 static int hf_ilp_dgpsCorrectionsRequested = -1;  /* BOOLEAN */
122 static int hf_ilp_referenceLocationRequested = -1;  /* BOOLEAN */
123 static int hf_ilp_referenceTimeRequested = -1;    /* BOOLEAN */
124 static int hf_ilp_acquisitionAssistanceRequested = -1;  /* BOOLEAN */
125 static int hf_ilp_realTimeIntegrityRequested = -1;  /* BOOLEAN */
126 static int hf_ilp_navigationModelRequested = -1;  /* BOOLEAN */
127 static int hf_ilp_navigationModelData = -1;       /* NavigationModel */
128 static int hf_ilp_ganssRequestedCommonAssistanceDataList = -1;  /* GanssRequestedCommonAssistanceDataList */
129 static int hf_ilp_ganssRequestedGenericAssistanceDataList = -1;  /* GanssRequestedGenericAssistanceDataList */
130 static int hf_ilp_extendedEphemeris = -1;         /* ExtendedEphemeris */
131 static int hf_ilp_extendedEphemerisCheck = -1;    /* ExtendedEphCheck */
132 static int hf_ilp_validity = -1;                  /* INTEGER_1_256 */
133 static int hf_ilp_beginTime = -1;                 /* GPSTime */
134 static int hf_ilp_endTime = -1;                   /* GPSTime */
135 static int hf_ilp_gPSWeek = -1;                   /* INTEGER_0_1023 */
136 static int hf_ilp_gPSTOWhour = -1;                /* INTEGER_0_167 */
137 static int hf_ilp_ganssReferenceTime = -1;        /* BOOLEAN */
138 static int hf_ilp_ganssIonosphericModel = -1;     /* BOOLEAN */
139 static int hf_ilp_ganssAdditionalIonosphericModelForDataID00 = -1;  /* BOOLEAN */
140 static int hf_ilp_ganssAdditionalIonosphericModelForDataID11 = -1;  /* BOOLEAN */
141 static int hf_ilp_ganssEarthOrientationParameters = -1;  /* BOOLEAN */
142 static int hf_ilp_GanssRequestedGenericAssistanceDataList_item = -1;  /* GanssReqGenericData */
143 static int hf_ilp_ganssId = -1;                   /* INTEGER_0_15 */
144 static int hf_ilp_ganssSBASid = -1;               /* BIT_STRING_SIZE_3 */
145 static int hf_ilp_ganssRealTimeIntegrity = -1;    /* BOOLEAN */
146 static int hf_ilp_ganssDifferentialCorrection = -1;  /* DGANSS_Sig_Id_Req */
147 static int hf_ilp_ganssAlmanac = -1;              /* BOOLEAN */
148 static int hf_ilp_ganssNavigationModelData = -1;  /* GanssNavigationModelData */
149 static int hf_ilp_ganssTimeModels = -1;           /* BIT_STRING_SIZE_16 */
150 static int hf_ilp_ganssReferenceMeasurementInfo = -1;  /* BOOLEAN */
151 static int hf_ilp_ganssDataBits = -1;             /* GanssDataBits */
152 static int hf_ilp_ganssUTCModel = -1;             /* BOOLEAN */
153 static int hf_ilp_ganssAdditionalDataChoices = -1;  /* GanssAdditionalDataChoices */
154 static int hf_ilp_ganssAuxiliaryInformation = -1;  /* BOOLEAN */
155 static int hf_ilp_ganssExtendedEphemeris = -1;    /* ExtendedEphemeris */
156 static int hf_ilp_ganssExtendedEphemerisCheck = -1;  /* GanssExtendedEphCheck */
157 static int hf_ilp_ganssWeek = -1;                 /* INTEGER_0_4095 */
158 static int hf_ilp_ganssToe = -1;                  /* INTEGER_0_167 */
159 static int hf_ilp_t_toeLimit = -1;                /* INTEGER_0_10 */
160 static int hf_ilp_satellitesListRelatedDataList = -1;  /* SatellitesListRelatedDataList */
161 static int hf_ilp_SatellitesListRelatedDataList_item = -1;  /* SatellitesListRelatedData */
162 static int hf_ilp_satId = -1;                     /* INTEGER_0_63 */
163 static int hf_ilp_iod = -1;                       /* INTEGER_0_1023 */
164 static int hf_ilp_ganssTODmin = -1;               /* INTEGER_0_59 */
165 static int hf_ilp_reqDataBitAssistanceList = -1;  /* ReqDataBitAssistanceList */
166 static int hf_ilp_gnssSignals = -1;               /* GANSSSignals */
167 static int hf_ilp_ganssDataBitInterval = -1;      /* INTEGER_0_15 */
168 static int hf_ilp_ganssDataBitSatList = -1;       /* T_ganssDataBitSatList */
169 static int hf_ilp_ganssDataBitSatList_item = -1;  /* INTEGER_0_63 */
170 static int hf_ilp_orbitModelID = -1;              /* INTEGER_0_7 */
171 static int hf_ilp_clockModelID = -1;              /* INTEGER_0_7 */
172 static int hf_ilp_utcModelID = -1;                /* INTEGER_0_7 */
173 static int hf_ilp_almanacModelID = -1;            /* INTEGER_0_7 */
174 static int hf_ilp_beginTime_01 = -1;              /* GANSSextEphTime */
175 static int hf_ilp_endTime_01 = -1;                /* GANSSextEphTime */
176 static int hf_ilp_gANSSday = -1;                  /* INTEGER_0_8191 */
177 static int hf_ilp_gANSSTODhour = -1;              /* INTEGER_0_23 */
178 static int hf_ilp_gpsWeek = -1;                   /* INTEGER_0_1023 */
179 static int hf_ilp_gpsToe = -1;                    /* INTEGER_0_167 */
180 static int hf_ilp_nSAT = -1;                      /* INTEGER_0_31 */
181 static int hf_ilp_toeLimit = -1;                  /* INTEGER_0_10 */
182 static int hf_ilp_satInfo = -1;                   /* SatelliteInfo */
183 static int hf_ilp_SatelliteInfo_item = -1;        /* SatelliteInfoElement */
184 static int hf_ilp_iODE = -1;                      /* INTEGER_0_255 */
185 static int hf_ilp_sPCStatusCode = -1;             /* SPCStatusCode */
186 static int hf_ilp_velocity = -1;                  /* Velocity */
187 static int hf_ilp_utran_GPSReferenceTimeAssistance = -1;  /* UTRAN_GPSReferenceTimeAssistance */
188 static int hf_ilp_utran_GANSSReferenceTimeAssistance = -1;  /* UTRAN_GANSSReferenceTimeAssistance */
189 static int hf_ilp_maj = -1;                       /* INTEGER_0_255 */
190 static int hf_ilp_min = -1;                       /* INTEGER_0_255 */
191 static int hf_ilp_servind = -1;                   /* INTEGER_0_255 */
192 static int hf_ilp_slcSessionID = -1;              /* SlcSessionID */
193 static int hf_ilp_setSessionID = -1;              /* SetSessionID */
194 static int hf_ilp_spcSessionID = -1;              /* SpcSessionID */
195 static int hf_ilp_sessionId = -1;                 /* INTEGER_0_65535 */
196 static int hf_ilp_setId = -1;                     /* SETId */
197 static int hf_ilp_msisdn = -1;                    /* OCTET_STRING_SIZE_8 */
198 static int hf_ilp_mdn = -1;                       /* OCTET_STRING_SIZE_8 */
199 static int hf_ilp_minsi = -1;                     /* BIT_STRING_SIZE_34 */
200 static int hf_ilp_imsi = -1;                      /* OCTET_STRING_SIZE_8 */
201 static int hf_ilp_nai = -1;                       /* IA5String_SIZE_1_1000 */
202 static int hf_ilp_iPAddress = -1;                 /* IPAddress */
203 static int hf_ilp_sessionID = -1;                 /* OCTET_STRING_SIZE_4 */
204 static int hf_ilp_slcId = -1;                     /* NodeAddress */
205 static int hf_ilp_spcId = -1;                     /* NodeAddress */
206 static int hf_ilp_ipv4Address = -1;               /* OCTET_STRING_SIZE_4 */
207 static int hf_ilp_ipv6Address = -1;               /* OCTET_STRING_SIZE_16 */
208 static int hf_ilp_fqdn = -1;                      /* FQDN */
209 static int hf_ilp_cellInfo = -1;                  /* CellInfo */
210 static int hf_ilp_status = -1;                    /* Status */
211 static int hf_ilp_MultipleLocationIds_item = -1;  /* LocationIdData */
212 static int hf_ilp_relativetimestamp = -1;         /* RelativeTime */
213 static int hf_ilp_servingFlag = -1;               /* BOOLEAN */
214 static int hf_ilp_posTechnology = -1;             /* PosTechnology */
215 static int hf_ilp_prefMethod = -1;                /* PrefMethod */
216 static int hf_ilp_posProtocol = -1;               /* PosProtocol */
217 static int hf_ilp_supportedBearers = -1;          /* SupportedBearers */
218 static int hf_ilp_agpsSETassisted = -1;           /* BOOLEAN */
219 static int hf_ilp_agpsSETBased = -1;              /* BOOLEAN */
220 static int hf_ilp_autonomousGPS = -1;             /* BOOLEAN */
221 static int hf_ilp_aFLT = -1;                      /* BOOLEAN */
222 static int hf_ilp_eCID = -1;                      /* BOOLEAN */
223 static int hf_ilp_eOTD = -1;                      /* BOOLEAN */
224 static int hf_ilp_oTDOA = -1;                     /* BOOLEAN */
225 static int hf_ilp_gANSSPositionMethods = -1;      /* GANSSPositionMethods */
226 static int hf_ilp_GANSSPositionMethods_item = -1;  /* GANSSPositionMethod */
227 static int hf_ilp_gANSSPositioningMethodTypes = -1;  /* GANSSPositioningMethodTypes */
228 static int hf_ilp_gANSSSignals = -1;              /* GANSSSignals */
229 static int hf_ilp_setAssisted = -1;               /* BOOLEAN */
230 static int hf_ilp_setBased = -1;                  /* BOOLEAN */
231 static int hf_ilp_autonomous = -1;                /* BOOLEAN */
232 static int hf_ilp_tia801 = -1;                    /* BOOLEAN */
233 static int hf_ilp_rrlp = -1;                      /* BOOLEAN */
234 static int hf_ilp_rrc = -1;                       /* BOOLEAN */
235 static int hf_ilp_lpp = -1;                       /* BOOLEAN */
236 static int hf_ilp_posProtocolVersionRRLP = -1;    /* PosProtocolVersion3GPP */
237 static int hf_ilp_posProtocolVersionRRC = -1;     /* PosProtocolVersion3GPP */
238 static int hf_ilp_posProtocolVersionTIA801 = -1;  /* PosProtocolVersion3GPP2 */
239 static int hf_ilp_posProtocolVersionLPP = -1;     /* PosProtocolVersion3GPP */
240 static int hf_ilp_majorVersionField = -1;         /* INTEGER_0_255 */
241 static int hf_ilp_technicalVersionField = -1;     /* INTEGER_0_255 */
242 static int hf_ilp_editorialVersionField = -1;     /* INTEGER_0_255 */
243 static int hf_ilp_PosProtocolVersion3GPP2_item = -1;  /* Supported3GPP2PosProtocolVersion */
244 static int hf_ilp_revisionNumber = -1;            /* BIT_STRING_SIZE_6 */
245 static int hf_ilp_pointReleaseNumber = -1;        /* INTEGER_0_255 */
246 static int hf_ilp_internalEditLevel = -1;         /* INTEGER_0_255 */
247 static int hf_ilp_gsm = -1;                       /* BOOLEAN */
248 static int hf_ilp_wcdma = -1;                     /* BOOLEAN */
249 static int hf_ilp_lte = -1;                       /* BOOLEAN */
250 static int hf_ilp_cdma = -1;                      /* BOOLEAN */
251 static int hf_ilp_hprd = -1;                      /* BOOLEAN */
252 static int hf_ilp_umb = -1;                       /* BOOLEAN */
253 static int hf_ilp_wlan = -1;                      /* BOOLEAN */
254 static int hf_ilp_wiMAX = -1;                     /* BOOLEAN */
255 static int hf_ilp_gsmCell = -1;                   /* GsmCellInformation */
256 static int hf_ilp_wcdmaCell = -1;                 /* WcdmaCellInformation */
257 static int hf_ilp_cdmaCell = -1;                  /* CdmaCellInformation */
258 static int hf_ilp_hrpdCell = -1;                  /* HrpdCellInformation */
259 static int hf_ilp_umbCell = -1;                   /* UmbCellInformation */
260 static int hf_ilp_lteCell = -1;                   /* LteCellInformation */
261 static int hf_ilp_wlanAP = -1;                    /* WlanAPInformation */
262 static int hf_ilp_wimaxBS = -1;                   /* WimaxBSInformation */
263 static int hf_ilp_set_GPSTimingOfCell = -1;       /* T_set_GPSTimingOfCell */
264 static int hf_ilp_ms_part = -1;                   /* INTEGER_0_16383 */
265 static int hf_ilp_ls_part = -1;                   /* INTEGER_0_4294967295 */
266 static int hf_ilp_modeSpecificInfo = -1;          /* T_modeSpecificInfo */
267 static int hf_ilp_fdd = -1;                       /* T_fdd */
268 static int hf_ilp_referenceIdentity = -1;         /* PrimaryCPICH_Info */
269 static int hf_ilp_tdd = -1;                       /* T_tdd */
270 static int hf_ilp_referenceIdentity_01 = -1;      /* CellParametersID */
271 static int hf_ilp_sfn = -1;                       /* INTEGER_0_4095 */
272 static int hf_ilp_gpsReferenceTimeUncertainty = -1;  /* INTEGER_0_127 */
273 static int hf_ilp_ganssTimeID = -1;               /* INTEGER_0_15 */
274 static int hf_ilp_set_GANSSReferenceTime = -1;    /* SET_GANSSReferenceTime */
275 static int hf_ilp_set_GANSSTimingOfCell = -1;     /* T_set_GANSSTimingOfCell */
276 static int hf_ilp_ms_part_01 = -1;                /* INTEGER_0_80 */
277 static int hf_ilp_modeSpecificInfo_01 = -1;       /* T_modeSpecificInfo_01 */
278 static int hf_ilp_fdd_01 = -1;                    /* T_fdd_01 */
279 static int hf_ilp_tdd_01 = -1;                    /* T_tdd_01 */
280 static int hf_ilp_ganss_TODUncertainty = -1;      /* INTEGER_0_127 */
281 static int hf_ilp_gps = -1;                       /* BOOLEAN */
282 static int hf_ilp_galileo = -1;                   /* BOOLEAN */
283 static int hf_ilp_sbas = -1;                      /* BOOLEAN */
284 static int hf_ilp_modernized_gps = -1;            /* BOOLEAN */
285 static int hf_ilp_qzss = -1;                      /* BOOLEAN */
286 static int hf_ilp_glonass = -1;                   /* BOOLEAN */
287 static int hf_ilp_timestamp = -1;                 /* UTCTime */
288 static int hf_ilp_positionEstimate = -1;          /* PositionEstimate */
289 static int hf_ilp_latitudeSign = -1;              /* T_latitudeSign */
290 static int hf_ilp_latitude = -1;                  /* INTEGER_0_8388607 */
291 static int hf_ilp_longitude = -1;                 /* INTEGER_M8388608_8388607 */
292 static int hf_ilp_uncertainty = -1;               /* T_uncertainty */
293 static int hf_ilp_uncertaintySemiMajor = -1;      /* INTEGER_0_127 */
294 static int hf_ilp_uncertaintySemiMinor = -1;      /* INTEGER_0_127 */
295 static int hf_ilp_orientationMajorAxis = -1;      /* INTEGER_0_180 */
296 static int hf_ilp_confidence = -1;                /* INTEGER_0_100 */
297 static int hf_ilp_altitudeInfo = -1;              /* AltitudeInfo */
298 static int hf_ilp_altitudeDirection = -1;         /* T_altitudeDirection */
299 static int hf_ilp_altitude = -1;                  /* INTEGER_0_32767 */
300 static int hf_ilp_altUncertainty = -1;            /* INTEGER_0_127 */
301 static int hf_ilp_refNID = -1;                    /* INTEGER_0_65535 */
302 static int hf_ilp_refSID = -1;                    /* INTEGER_0_32767 */
303 static int hf_ilp_refBASEID = -1;                 /* INTEGER_0_65535 */
304 static int hf_ilp_refBASELAT = -1;                /* INTEGER_0_4194303 */
305 static int hf_ilp_reBASELONG = -1;                /* INTEGER_0_8388607 */
306 static int hf_ilp_refREFPN = -1;                  /* INTEGER_0_511 */
307 static int hf_ilp_refWeekNumber = -1;             /* INTEGER_0_65535 */
308 static int hf_ilp_refSeconds = -1;                /* INTEGER_0_4194303 */
309 static int hf_ilp_refMCC = -1;                    /* INTEGER_0_999 */
310 static int hf_ilp_refMNC = -1;                    /* INTEGER_0_999 */
311 static int hf_ilp_refLAC = -1;                    /* INTEGER_0_65535 */
312 static int hf_ilp_refCI = -1;                     /* INTEGER_0_65535 */
313 static int hf_ilp_nMR = -1;                       /* NMR */
314 static int hf_ilp_tA = -1;                        /* INTEGER_0_255 */
315 static int hf_ilp_refUC = -1;                     /* INTEGER_0_268435455 */
316 static int hf_ilp_frequencyInfo = -1;             /* FrequencyInfo */
317 static int hf_ilp_primaryScramblingCode = -1;     /* INTEGER_0_511 */
318 static int hf_ilp_measuredResultsList = -1;       /* MeasuredResultsList */
319 static int hf_ilp_cellParametersId = -1;          /* INTEGER_0_127 */
320 static int hf_ilp_timingAdvance = -1;             /* TimingAdvance */
321 static int hf_ilp_tA_01 = -1;                     /* INTEGER_0_8191 */
322 static int hf_ilp_tAResolution = -1;              /* TAResolution */
323 static int hf_ilp_chipRate = -1;                  /* ChipRate */
324 static int hf_ilp_refSECTORID = -1;               /* BIT_STRING_SIZE_128 */
325 static int hf_ilp_cellGlobalIdEUTRA = -1;         /* CellGlobalIdEUTRA */
326 static int hf_ilp_physCellId = -1;                /* PhysCellId */
327 static int hf_ilp_trackingAreaCode = -1;          /* TrackingAreaCode */
328 static int hf_ilp_rsrpResult = -1;                /* RSRP_Range */
329 static int hf_ilp_rsrqResult = -1;                /* RSRQ_Range */
330 static int hf_ilp_tA_02 = -1;                     /* INTEGER_0_1282 */
331 static int hf_ilp_measResultListEUTRA = -1;       /* MeasResultListEUTRA */
332 static int hf_ilp_earfcn = -1;                    /* INTEGER_0_65535 */
333 static int hf_ilp_MeasResultListEUTRA_item = -1;  /* MeasResultEUTRA */
334 static int hf_ilp_cgi_Info = -1;                  /* T_cgi_Info */
335 static int hf_ilp_cellGlobalId = -1;              /* CellGlobalIdEUTRA */
336 static int hf_ilp_measResult = -1;                /* T_measResult */
337 static int hf_ilp_plmn_Identity = -1;             /* PLMN_Identity */
338 static int hf_ilp_cellIdentity = -1;              /* CellIdentity */
339 static int hf_ilp_mcc = -1;                       /* MCC */
340 static int hf_ilp_mnc = -1;                       /* MNC */
341 static int hf_ilp_MCC_item = -1;                  /* MCC_MNC_Digit */
342 static int hf_ilp_MNC_item = -1;                  /* MCC_MNC_Digit */
343 static int hf_ilp_apMACAddress = -1;              /* BIT_STRING_SIZE_48 */
344 static int hf_ilp_apTransmitPower = -1;           /* INTEGER_M127_128 */
345 static int hf_ilp_apAntennaGain = -1;             /* INTEGER_M127_128 */
346 static int hf_ilp_apSignaltoNoise = -1;           /* INTEGER_M127_128 */
347 static int hf_ilp_apDeviceType = -1;              /* T_apDeviceType */
348 static int hf_ilp_apSignalStrength = -1;          /* INTEGER_M127_128 */
349 static int hf_ilp_apChannelFrequency = -1;        /* INTEGER_0_256 */
350 static int hf_ilp_apRoundTripDelay = -1;          /* RTD */
351 static int hf_ilp_setTransmitPower = -1;          /* INTEGER_M127_128 */
352 static int hf_ilp_setAntennaGain = -1;            /* INTEGER_M127_128 */
353 static int hf_ilp_setSignaltoNoise = -1;          /* INTEGER_M127_128 */
354 static int hf_ilp_setSignalStrength = -1;         /* INTEGER_M127_128 */
355 static int hf_ilp_apReportedLocation = -1;        /* ReportedLocation */
356 static int hf_ilp_rTDValue = -1;                  /* INTEGER_0_16777216 */
357 static int hf_ilp_rTDUnits = -1;                  /* RTDUnits */
358 static int hf_ilp_rTDAccuracy = -1;               /* INTEGER_0_255 */
359 static int hf_ilp_locationEncodingDescriptor = -1;  /* LocationEncodingDescriptor */
360 static int hf_ilp_locationData = -1;              /* LocationData */
361 static int hf_ilp_locationAccuracy = -1;          /* INTEGER_0_4294967295 */
362 static int hf_ilp_locationValue = -1;             /* OCTET_STRING_SIZE_1_128 */
363 static int hf_ilp_wimaxBsID = -1;                 /* WimaxBsID */
364 static int hf_ilp_wimaxRTD = -1;                  /* WimaxRTD */
365 static int hf_ilp_wimaxNMRList = -1;              /* WimaxNMRList */
366 static int hf_ilp_bsID_MSB = -1;                  /* BIT_STRING_SIZE_24 */
367 static int hf_ilp_bsID_LSB = -1;                  /* BIT_STRING_SIZE_24 */
368 static int hf_ilp_rTD = -1;                       /* INTEGER_0_65535 */
369 static int hf_ilp_rTDstd = -1;                    /* INTEGER_0_1023 */
370 static int hf_ilp_WimaxNMRList_item = -1;         /* WimaxNMR */
371 static int hf_ilp_relDelay = -1;                  /* INTEGER_M32768_32767 */
372 static int hf_ilp_relDelaystd = -1;               /* INTEGER_0_1023 */
373 static int hf_ilp_rSSI = -1;                      /* INTEGER_0_255 */
374 static int hf_ilp_rSSIstd = -1;                   /* INTEGER_0_63 */
375 static int hf_ilp_bSTxPower = -1;                 /* INTEGER_0_255 */
376 static int hf_ilp_cINR = -1;                      /* INTEGER_0_255 */
377 static int hf_ilp_cINRstd = -1;                   /* INTEGER_0_63 */
378 static int hf_ilp_bSLocation = -1;                /* ReportedLocation */
379 static int hf_ilp_modeSpecificFrequencyInfo = -1;  /* FrequencySpecificInfo */
380 static int hf_ilp_fdd_fr = -1;                    /* FrequencyInfoFDD */
381 static int hf_ilp_tdd_fr = -1;                    /* FrequencyInfoTDD */
382 static int hf_ilp_uarfcn_UL = -1;                 /* UARFCN */
383 static int hf_ilp_uarfcn_DL = -1;                 /* UARFCN */
384 static int hf_ilp_uarfcn_Nt = -1;                 /* UARFCN */
385 static int hf_ilp_NMR_item = -1;                  /* NMRelement */
386 static int hf_ilp_aRFCN = -1;                     /* INTEGER_0_1023 */
387 static int hf_ilp_bSIC = -1;                      /* INTEGER_0_63 */
388 static int hf_ilp_rxLev = -1;                     /* INTEGER_0_63 */
389 static int hf_ilp_MeasuredResultsList_item = -1;  /* MeasuredResults */
390 static int hf_ilp_utra_CarrierRSSI = -1;          /* UTRA_CarrierRSSI */
391 static int hf_ilp_cellMeasuredResultsList = -1;   /* CellMeasuredResultsList */
392 static int hf_ilp_CellMeasuredResultsList_item = -1;  /* CellMeasuredResults */
393 static int hf_ilp_cellIdentity_01 = -1;           /* INTEGER_0_268435455 */
394 static int hf_ilp_modeSpecificInfo_02 = -1;       /* T_modeSpecificInfo_02 */
395 static int hf_ilp_fdd_02 = -1;                    /* T_fdd_02 */
396 static int hf_ilp_primaryCPICH_Info = -1;         /* PrimaryCPICH_Info */
397 static int hf_ilp_cpich_Ec_N0 = -1;               /* CPICH_Ec_N0 */
398 static int hf_ilp_cpich_RSCP = -1;                /* CPICH_RSCP */
399 static int hf_ilp_pathloss = -1;                  /* Pathloss */
400 static int hf_ilp_tdd_02 = -1;                    /* T_tdd_02 */
401 static int hf_ilp_cellParametersID = -1;          /* CellParametersID */
402 static int hf_ilp_proposedTGSN = -1;              /* TGSN */
403 static int hf_ilp_primaryCCPCH_RSCP = -1;         /* PrimaryCCPCH_RSCP */
404 static int hf_ilp_timeslotISCP_List = -1;         /* TimeslotISCP_List */
405 static int hf_ilp_TimeslotISCP_List_item = -1;    /* TimeslotISCP */
406 static int hf_ilp_utran_GPSReferenceTime = -1;    /* UTRAN_GPSReferenceTime */
407 static int hf_ilp_utranGPSDriftRate = -1;         /* UTRANGPSDriftRate */
408 static int hf_ilp_utran_GPSTimingOfCell = -1;     /* T_utran_GPSTimingOfCell */
409 static int hf_ilp_ms_part_02 = -1;                /* INTEGER_0_1023 */
410 static int hf_ilp_modeSpecificInfo_03 = -1;       /* T_modeSpecificInfo_03 */
411 static int hf_ilp_fdd_03 = -1;                    /* T_fdd_03 */
412 static int hf_ilp_tdd_03 = -1;                    /* T_tdd_03 */
413 static int hf_ilp_utran_GANSSReferenceTime = -1;  /* UTRAN_GANSSReferenceTime */
414 static int hf_ilp_ganssDay = -1;                  /* INTEGER_0_8191 */
415 static int hf_ilp_utranGANSSDriftRate = -1;       /* UTRANGANSSDriftRate */
416 static int hf_ilp_ganssTOD = -1;                  /* INTEGER_0_86399 */
417 static int hf_ilp_utran_GANSSTimingOfCell = -1;   /* INTEGER_0_3999999 */
418 static int hf_ilp_modeSpecificInfo_04 = -1;       /* T_modeSpecificInfo_04 */
419 static int hf_ilp_fdd_04 = -1;                    /* T_fdd_04 */
420 static int hf_ilp_tdd_04 = -1;                    /* T_tdd_04 */
421 static int hf_ilp_horacc = -1;                    /* INTEGER_0_127 */
422 static int hf_ilp_veracc = -1;                    /* INTEGER_0_127 */
423 static int hf_ilp_maxLocAge = -1;                 /* INTEGER_0_65535 */
424 static int hf_ilp_delay = -1;                     /* INTEGER_0_7 */
425 static int hf_ilp_horvel = -1;                    /* Horvel */
426 static int hf_ilp_horandvervel = -1;              /* Horandvervel */
427 static int hf_ilp_horveluncert = -1;              /* Horveluncert */
428 static int hf_ilp_horandveruncert = -1;           /* Horandveruncert */
429 static int hf_ilp_bearing = -1;                   /* BIT_STRING_SIZE_9 */
430 static int hf_ilp_horspeed = -1;                  /* BIT_STRING_SIZE_16 */
431 static int hf_ilp_verdirect = -1;                 /* BIT_STRING_SIZE_1 */
432 static int hf_ilp_verspeed = -1;                  /* BIT_STRING_SIZE_8 */
433 static int hf_ilp_uncertspeed = -1;               /* BIT_STRING_SIZE_8 */
434 static int hf_ilp_horuncertspeed = -1;            /* BIT_STRING_SIZE_8 */
435 static int hf_ilp_veruncertspeed = -1;            /* BIT_STRING_SIZE_8 */
436 static int hf_ilp_rAND = -1;                      /* BIT_STRING_SIZE_128 */
437 static int hf_ilp_slpFQDN = -1;                   /* FQDN */
438 static int hf_ilp_rrcPayload = -1;                /* OCTET_STRING_SIZE_1_8192 */
439 static int hf_ilp_rrlpPayload = -1;               /* T_rrlpPayload */
440 static int hf_ilp_multiPosPayload = -1;           /* MultiPosPayLoad */
441 static int hf_ilp_lPPPayload = -1;                /* T_lPPPayload */
442 static int hf_ilp_lPPPayload_item = -1;           /* T_lPPPayload_item */
443 static int hf_ilp_tia801Payload = -1;             /* T_tia801Payload */
444 static int hf_ilp_tia801Payload_item = -1;        /* OCTET_STRING_SIZE_1_60000 */
445 /* named bits */
446 static int hf_ilp_GANSSSignals_signal1 = -1;
447 static int hf_ilp_GANSSSignals_signal2 = -1;
448 static int hf_ilp_GANSSSignals_signal3 = -1;
449 static int hf_ilp_GANSSSignals_signal4 = -1;
450 static int hf_ilp_GANSSSignals_signal5 = -1;
451 static int hf_ilp_GANSSSignals_signal6 = -1;
452 static int hf_ilp_GANSSSignals_signal7 = -1;
453 static int hf_ilp_GANSSSignals_signal8 = -1;
454
455 /*--- End of included file: packet-ilp-hf.c ---*/
456 #line 63 "../../asn1/ilp/packet-ilp-template.c"
457
458 /* Initialize the subtree pointers */
459 static gint ett_ilp = -1;
460
461 /*--- Included file: packet-ilp-ett.c ---*/
462 #line 1 "../../asn1/ilp/packet-ilp-ett.c"
463 static gint ett_ilp_ILP_PDU = -1;
464 static gint ett_ilp_IlpMessage = -1;
465 static gint ett_ilp_PREQ = -1;
466 static gint ett_ilp_TriggerParams = -1;
467 static gint ett_ilp_PeriodicTriggerParams = -1;
468 static gint ett_ilp_PRES = -1;
469 static gint ett_ilp_PRPT = -1;
470 static gint ett_ilp_PLREQ = -1;
471 static gint ett_ilp_PLRES = -1;
472 static gint ett_ilp_PositionResults = -1;
473 static gint ett_ilp_PositionResult = -1;
474 static gint ett_ilp_PINIT = -1;
475 static gint ett_ilp_RequestedAssistData = -1;
476 static gint ett_ilp_ExtendedEphemeris = -1;
477 static gint ett_ilp_ExtendedEphCheck = -1;
478 static gint ett_ilp_GPSTime = -1;
479 static gint ett_ilp_GanssRequestedCommonAssistanceDataList = -1;
480 static gint ett_ilp_GanssRequestedGenericAssistanceDataList = -1;
481 static gint ett_ilp_GanssReqGenericData = -1;
482 static gint ett_ilp_GanssNavigationModelData = -1;
483 static gint ett_ilp_SatellitesListRelatedDataList = -1;
484 static gint ett_ilp_SatellitesListRelatedData = -1;
485 static gint ett_ilp_GanssDataBits = -1;
486 static gint ett_ilp_ReqDataBitAssistanceList = -1;
487 static gint ett_ilp_T_ganssDataBitSatList = -1;
488 static gint ett_ilp_GanssAdditionalDataChoices = -1;
489 static gint ett_ilp_GanssExtendedEphCheck = -1;
490 static gint ett_ilp_GANSSextEphTime = -1;
491 static gint ett_ilp_NavigationModel = -1;
492 static gint ett_ilp_SatelliteInfo = -1;
493 static gint ett_ilp_SatelliteInfoElement = -1;
494 static gint ett_ilp_PAUTH = -1;
495 static gint ett_ilp_PALIVE = -1;
496 static gint ett_ilp_PEND = -1;
497 static gint ett_ilp_PMESS = -1;
498 static gint ett_ilp_Version = -1;
499 static gint ett_ilp_SessionID2 = -1;
500 static gint ett_ilp_SetSessionID = -1;
501 static gint ett_ilp_SETId = -1;
502 static gint ett_ilp_SlcSessionID = -1;
503 static gint ett_ilp_SpcSessionID = -1;
504 static gint ett_ilp_IPAddress = -1;
505 static gint ett_ilp_NodeAddress = -1;
506 static gint ett_ilp_LocationId = -1;
507 static gint ett_ilp_MultipleLocationIds = -1;
508 static gint ett_ilp_LocationIdData = -1;
509 static gint ett_ilp_SETCapabilities = -1;
510 static gint ett_ilp_PosTechnology = -1;
511 static gint ett_ilp_GANSSPositionMethods = -1;
512 static gint ett_ilp_GANSSPositionMethod = -1;
513 static gint ett_ilp_GANSSPositioningMethodTypes = -1;
514 static gint ett_ilp_GANSSSignals = -1;
515 static gint ett_ilp_PosProtocol = -1;
516 static gint ett_ilp_PosProtocolVersion3GPP = -1;
517 static gint ett_ilp_PosProtocolVersion3GPP2 = -1;
518 static gint ett_ilp_Supported3GPP2PosProtocolVersion = -1;
519 static gint ett_ilp_SupportedBearers = -1;
520 static gint ett_ilp_CellInfo = -1;
521 static gint ett_ilp_UTRAN_GPSReferenceTimeResult = -1;
522 static gint ett_ilp_T_set_GPSTimingOfCell = -1;
523 static gint ett_ilp_T_modeSpecificInfo = -1;
524 static gint ett_ilp_T_fdd = -1;
525 static gint ett_ilp_T_tdd = -1;
526 static gint ett_ilp_UTRAN_GANSSReferenceTimeResult = -1;
527 static gint ett_ilp_SET_GANSSReferenceTime = -1;
528 static gint ett_ilp_T_set_GANSSTimingOfCell = -1;
529 static gint ett_ilp_T_modeSpecificInfo_01 = -1;
530 static gint ett_ilp_T_fdd_01 = -1;
531 static gint ett_ilp_T_tdd_01 = -1;
532 static gint ett_ilp_GNSSPosTechnology = -1;
533 static gint ett_ilp_Position = -1;
534 static gint ett_ilp_PositionEstimate = -1;
535 static gint ett_ilp_T_uncertainty = -1;
536 static gint ett_ilp_AltitudeInfo = -1;
537 static gint ett_ilp_CdmaCellInformation = -1;
538 static gint ett_ilp_GsmCellInformation = -1;
539 static gint ett_ilp_WcdmaCellInformation = -1;
540 static gint ett_ilp_TimingAdvance = -1;
541 static gint ett_ilp_HrpdCellInformation = -1;
542 static gint ett_ilp_UmbCellInformation = -1;
543 static gint ett_ilp_LteCellInformation = -1;
544 static gint ett_ilp_MeasResultListEUTRA = -1;
545 static gint ett_ilp_MeasResultEUTRA = -1;
546 static gint ett_ilp_T_cgi_Info = -1;
547 static gint ett_ilp_T_measResult = -1;
548 static gint ett_ilp_CellGlobalIdEUTRA = -1;
549 static gint ett_ilp_PLMN_Identity = -1;
550 static gint ett_ilp_MCC = -1;
551 static gint ett_ilp_MNC = -1;
552 static gint ett_ilp_WlanAPInformation = -1;
553 static gint ett_ilp_RTD = -1;
554 static gint ett_ilp_ReportedLocation = -1;
555 static gint ett_ilp_LocationData = -1;
556 static gint ett_ilp_WimaxBSInformation = -1;
557 static gint ett_ilp_WimaxBsID = -1;
558 static gint ett_ilp_WimaxRTD = -1;
559 static gint ett_ilp_WimaxNMRList = -1;
560 static gint ett_ilp_WimaxNMR = -1;
561 static gint ett_ilp_FrequencyInfo = -1;
562 static gint ett_ilp_FrequencySpecificInfo = -1;
563 static gint ett_ilp_FrequencyInfoFDD = -1;
564 static gint ett_ilp_FrequencyInfoTDD = -1;
565 static gint ett_ilp_NMR = -1;
566 static gint ett_ilp_NMRelement = -1;
567 static gint ett_ilp_MeasuredResultsList = -1;
568 static gint ett_ilp_MeasuredResults = -1;
569 static gint ett_ilp_CellMeasuredResultsList = -1;
570 static gint ett_ilp_CellMeasuredResults = -1;
571 static gint ett_ilp_T_modeSpecificInfo_02 = -1;
572 static gint ett_ilp_T_fdd_02 = -1;
573 static gint ett_ilp_T_tdd_02 = -1;
574 static gint ett_ilp_TimeslotISCP_List = -1;
575 static gint ett_ilp_PrimaryCPICH_Info = -1;
576 static gint ett_ilp_UTRAN_GPSReferenceTimeAssistance = -1;
577 static gint ett_ilp_UTRAN_GPSReferenceTime = -1;
578 static gint ett_ilp_T_utran_GPSTimingOfCell = -1;
579 static gint ett_ilp_T_modeSpecificInfo_03 = -1;
580 static gint ett_ilp_T_fdd_03 = -1;
581 static gint ett_ilp_T_tdd_03 = -1;
582 static gint ett_ilp_UTRAN_GANSSReferenceTimeAssistance = -1;
583 static gint ett_ilp_UTRAN_GANSSReferenceTime = -1;
584 static gint ett_ilp_T_modeSpecificInfo_04 = -1;
585 static gint ett_ilp_T_fdd_04 = -1;
586 static gint ett_ilp_T_tdd_04 = -1;
587 static gint ett_ilp_QoP = -1;
588 static gint ett_ilp_Velocity = -1;
589 static gint ett_ilp_Horvel = -1;
590 static gint ett_ilp_Horandvervel = -1;
591 static gint ett_ilp_Horveluncert = -1;
592 static gint ett_ilp_Horandveruncert = -1;
593 static gint ett_ilp_SPCTID = -1;
594 static gint ett_ilp_PosPayLoad = -1;
595 static gint ett_ilp_MultiPosPayLoad = -1;
596 static gint ett_ilp_T_lPPPayload = -1;
597 static gint ett_ilp_T_tia801Payload = -1;
598
599 /*--- End of included file: packet-ilp-ett.c ---*/
600 #line 67 "../../asn1/ilp/packet-ilp-template.c"
601
602 /* Include constants */
603
604 /*--- Included file: packet-ilp-val.h ---*/
605 #line 1 "../../asn1/ilp/packet-ilp-val.h"
606 #define maxGANSS                       16
607 #define maxGANSSSat                    32
608 #define maxLidSize                     64
609 #define maxCellReport                  8
610 #define maxWimaxBSMeas                 32
611 #define maxCellMeas                    32
612 #define maxFreq                        8
613 #define maxTS                          14
614 #define maxPosSize                     1024
615
616 /*--- End of included file: packet-ilp-val.h ---*/
617 #line 70 "../../asn1/ilp/packet-ilp-template.c"
618
619
620
621 /*--- Included file: packet-ilp-fn.c ---*/
622 #line 1 "../../asn1/ilp/packet-ilp-fn.c"
623
624
625 static int
626 dissect_ilp_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
627   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
628                                                             0U, 65535U, NULL, FALSE);
629
630   return offset;
631 }
632
633
634
635 static int
636 dissect_ilp_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
637   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
638                                                             0U, 255U, NULL, FALSE);
639
640   return offset;
641 }
642
643
644 static const per_sequence_t Version_sequence[] = {
645   { &hf_ilp_maj             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
646   { &hf_ilp_min             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
647   { &hf_ilp_servind         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
648   { NULL, 0, 0, NULL }
649 };
650
651 static int
652 dissect_ilp_Version(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
653   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
654                                    ett_ilp_Version, Version_sequence);
655
656   return offset;
657 }
658
659
660
661 static int
662 dissect_ilp_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
663   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
664                                        4, 4, FALSE, NULL);
665
666   return offset;
667 }
668
669
670
671 static int
672 dissect_ilp_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
673   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
674                                        16, 16, FALSE, NULL);
675
676   return offset;
677 }
678
679
680 static const value_string ilp_IPAddress_vals[] = {
681   {   0, "ipv4Address" },
682   {   1, "ipv6Address" },
683   { 0, NULL }
684 };
685
686 static const per_choice_t IPAddress_choice[] = {
687   {   0, &hf_ilp_ipv4Address     , ASN1_NO_EXTENSIONS     , dissect_ilp_OCTET_STRING_SIZE_4 },
688   {   1, &hf_ilp_ipv6Address     , ASN1_NO_EXTENSIONS     , dissect_ilp_OCTET_STRING_SIZE_16 },
689   { 0, NULL, 0, NULL }
690 };
691
692 static int
693 dissect_ilp_IPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
694   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
695                                  ett_ilp_IPAddress, IPAddress_choice,
696                                  NULL);
697
698   return offset;
699 }
700
701
702
703 static int
704 dissect_ilp_FQDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
705   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
706                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-", 64,
707                                                       NULL);
708
709   return offset;
710 }
711
712
713 static const value_string ilp_NodeAddress_vals[] = {
714   {   0, "iPAddress" },
715   {   1, "fqdn" },
716   { 0, NULL }
717 };
718
719 static const per_choice_t NodeAddress_choice[] = {
720   {   0, &hf_ilp_iPAddress       , ASN1_EXTENSION_ROOT    , dissect_ilp_IPAddress },
721   {   1, &hf_ilp_fqdn            , ASN1_EXTENSION_ROOT    , dissect_ilp_FQDN },
722   { 0, NULL, 0, NULL }
723 };
724
725 static int
726 dissect_ilp_NodeAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
727   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
728                                  ett_ilp_NodeAddress, NodeAddress_choice,
729                                  NULL);
730
731   return offset;
732 }
733
734
735 static const per_sequence_t SlcSessionID_sequence[] = {
736   { &hf_ilp_sessionID       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_4 },
737   { &hf_ilp_slcId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_NodeAddress },
738   { NULL, 0, 0, NULL }
739 };
740
741 static int
742 dissect_ilp_SlcSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
743   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
744                                    ett_ilp_SlcSessionID, SlcSessionID_sequence);
745
746   return offset;
747 }
748
749
750
751 static int
752 dissect_ilp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
753   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
754                                        8, 8, FALSE, NULL);
755
756   return offset;
757 }
758
759
760
761 static int
762 dissect_ilp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
763   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
764                                      34, 34, FALSE, NULL);
765
766   return offset;
767 }
768
769
770
771 static int
772 dissect_ilp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
773   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
774                                           1, 1000, FALSE);
775
776   return offset;
777 }
778
779
780 static const value_string ilp_SETId_vals[] = {
781   {   0, "msisdn" },
782   {   1, "mdn" },
783   {   2, "min" },
784   {   3, "imsi" },
785   {   4, "nai" },
786   {   5, "iPAddress" },
787   { 0, NULL }
788 };
789
790 static const per_choice_t SETId_choice[] = {
791   {   0, &hf_ilp_msisdn          , ASN1_EXTENSION_ROOT    , dissect_ilp_OCTET_STRING_SIZE_8 },
792   {   1, &hf_ilp_mdn             , ASN1_EXTENSION_ROOT    , dissect_ilp_OCTET_STRING_SIZE_8 },
793   {   2, &hf_ilp_minsi           , ASN1_EXTENSION_ROOT    , dissect_ilp_BIT_STRING_SIZE_34 },
794   {   3, &hf_ilp_imsi            , ASN1_EXTENSION_ROOT    , dissect_ilp_OCTET_STRING_SIZE_8 },
795   {   4, &hf_ilp_nai             , ASN1_EXTENSION_ROOT    , dissect_ilp_IA5String_SIZE_1_1000 },
796   {   5, &hf_ilp_iPAddress       , ASN1_EXTENSION_ROOT    , dissect_ilp_IPAddress },
797   { 0, NULL, 0, NULL }
798 };
799
800 static int
801 dissect_ilp_SETId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
802   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
803                                  ett_ilp_SETId, SETId_choice,
804                                  NULL);
805
806   return offset;
807 }
808
809
810 static const per_sequence_t SetSessionID_sequence[] = {
811   { &hf_ilp_sessionId       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
812   { &hf_ilp_setId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_SETId },
813   { NULL, 0, 0, NULL }
814 };
815
816 static int
817 dissect_ilp_SetSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
818   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
819                                    ett_ilp_SetSessionID, SetSessionID_sequence);
820
821   return offset;
822 }
823
824
825 static const per_sequence_t SpcSessionID_sequence[] = {
826   { &hf_ilp_sessionID       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_4 },
827   { &hf_ilp_spcId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_NodeAddress },
828   { NULL, 0, 0, NULL }
829 };
830
831 static int
832 dissect_ilp_SpcSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
833   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
834                                    ett_ilp_SpcSessionID, SpcSessionID_sequence);
835
836   return offset;
837 }
838
839
840 static const per_sequence_t SessionID2_sequence[] = {
841   { &hf_ilp_slcSessionID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_SlcSessionID },
842   { &hf_ilp_setSessionID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_SetSessionID },
843   { &hf_ilp_spcSessionID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_SpcSessionID },
844   { NULL, 0, 0, NULL }
845 };
846
847 static int
848 dissect_ilp_SessionID2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
849   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
850                                    ett_ilp_SessionID2, SessionID2_sequence);
851
852   return offset;
853 }
854
855
856 static const value_string ilp_SLPMode_vals[] = {
857   {   0, "proxy" },
858   {   1, "nonProxy" },
859   { 0, NULL }
860 };
861
862
863 static int
864 dissect_ilp_SLPMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
865   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
866                                      2, NULL, FALSE, 0, NULL);
867
868   return offset;
869 }
870
871
872
873 static int
874 dissect_ilp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
875   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
876
877   return offset;
878 }
879
880
881
882 static int
883 dissect_ilp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
884   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
885                                                             0U, 15U, NULL, FALSE);
886
887   return offset;
888 }
889
890
891
892 static int
893 dissect_ilp_BIT_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
894   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
895                                      3, 3, FALSE, NULL);
896
897   return offset;
898 }
899
900
901 static const per_sequence_t GANSSPositioningMethodTypes_sequence[] = {
902   { &hf_ilp_setAssisted     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
903   { &hf_ilp_setBased        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
904   { &hf_ilp_autonomous      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
905   { NULL, 0, 0, NULL }
906 };
907
908 static int
909 dissect_ilp_GANSSPositioningMethodTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
910   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
911                                    ett_ilp_GANSSPositioningMethodTypes, GANSSPositioningMethodTypes_sequence);
912
913   return offset;
914 }
915
916
917
918 static int
919 dissect_ilp_GANSSSignals(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
920   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
921                                      1, 8, FALSE, NULL);
922
923   return offset;
924 }
925
926
927 static const per_sequence_t GANSSPositionMethod_sequence[] = {
928   { &hf_ilp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 },
929   { &hf_ilp_ganssSBASid     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_BIT_STRING_SIZE_3 },
930   { &hf_ilp_gANSSPositioningMethodTypes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSPositioningMethodTypes },
931   { &hf_ilp_gANSSSignals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSSignals },
932   { NULL, 0, 0, NULL }
933 };
934
935 static int
936 dissect_ilp_GANSSPositionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
937   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
938                                    ett_ilp_GANSSPositionMethod, GANSSPositionMethod_sequence);
939
940   return offset;
941 }
942
943
944 static const per_sequence_t GANSSPositionMethods_sequence_of[1] = {
945   { &hf_ilp_GANSSPositionMethods_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSPositionMethod },
946 };
947
948 static int
949 dissect_ilp_GANSSPositionMethods(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
950   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
951                                                   ett_ilp_GANSSPositionMethods, GANSSPositionMethods_sequence_of,
952                                                   1, 16, FALSE);
953
954   return offset;
955 }
956
957
958 static const per_sequence_t PosTechnology_sequence[] = {
959   { &hf_ilp_agpsSETassisted , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
960   { &hf_ilp_agpsSETBased    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
961   { &hf_ilp_autonomousGPS   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
962   { &hf_ilp_aFLT            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
963   { &hf_ilp_eCID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
964   { &hf_ilp_eOTD            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
965   { &hf_ilp_oTDOA           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
966   { &hf_ilp_gANSSPositionMethods, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_GANSSPositionMethods },
967   { NULL, 0, 0, NULL }
968 };
969
970 static int
971 dissect_ilp_PosTechnology(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
972   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
973                                    ett_ilp_PosTechnology, PosTechnology_sequence);
974
975   return offset;
976 }
977
978
979
980 static int
981 dissect_ilp_INTEGER_0_999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
982   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
983                                                             0U, 999U, NULL, FALSE);
984
985   return offset;
986 }
987
988
989
990 static int
991 dissect_ilp_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
992   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
993                                                             0U, 1023U, NULL, FALSE);
994
995   return offset;
996 }
997
998
999
1000 static int
1001 dissect_ilp_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1002   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1003                                                             0U, 63U, NULL, FALSE);
1004
1005   return offset;
1006 }
1007
1008
1009 static const per_sequence_t NMRelement_sequence[] = {
1010   { &hf_ilp_aRFCN           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 },
1011   { &hf_ilp_bSIC            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 },
1012   { &hf_ilp_rxLev           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 },
1013   { NULL, 0, 0, NULL }
1014 };
1015
1016 static int
1017 dissect_ilp_NMRelement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1018   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1019                                    ett_ilp_NMRelement, NMRelement_sequence);
1020
1021   return offset;
1022 }
1023
1024
1025 static const per_sequence_t NMR_sequence_of[1] = {
1026   { &hf_ilp_NMR_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_NMRelement },
1027 };
1028
1029 static int
1030 dissect_ilp_NMR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1031   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1032                                                   ett_ilp_NMR, NMR_sequence_of,
1033                                                   1, 15, FALSE);
1034
1035   return offset;
1036 }
1037
1038
1039 static const per_sequence_t GsmCellInformation_sequence[] = {
1040   { &hf_ilp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 },
1041   { &hf_ilp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 },
1042   { &hf_ilp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1043   { &hf_ilp_refCI           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1044   { &hf_ilp_nMR             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_NMR },
1045   { &hf_ilp_tA              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_255 },
1046   { NULL, 0, 0, NULL }
1047 };
1048
1049 static int
1050 dissect_ilp_GsmCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1051   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1052                                    ett_ilp_GsmCellInformation, GsmCellInformation_sequence);
1053
1054   return offset;
1055 }
1056
1057
1058
1059 static int
1060 dissect_ilp_INTEGER_0_268435455(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1061   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1062                                                             0U, 268435455U, NULL, FALSE);
1063
1064   return offset;
1065 }
1066
1067
1068
1069 static int
1070 dissect_ilp_UARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1071   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1072                                                             0U, 16383U, NULL, FALSE);
1073
1074   return offset;
1075 }
1076
1077
1078 static const per_sequence_t FrequencyInfoFDD_sequence[] = {
1079   { &hf_ilp_uarfcn_UL       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_UARFCN },
1080   { &hf_ilp_uarfcn_DL       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_UARFCN },
1081   { NULL, 0, 0, NULL }
1082 };
1083
1084 static int
1085 dissect_ilp_FrequencyInfoFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1086   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1087                                    ett_ilp_FrequencyInfoFDD, FrequencyInfoFDD_sequence);
1088
1089   return offset;
1090 }
1091
1092
1093 static const per_sequence_t FrequencyInfoTDD_sequence[] = {
1094   { &hf_ilp_uarfcn_Nt       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_UARFCN },
1095   { NULL, 0, 0, NULL }
1096 };
1097
1098 static int
1099 dissect_ilp_FrequencyInfoTDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1100   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1101                                    ett_ilp_FrequencyInfoTDD, FrequencyInfoTDD_sequence);
1102
1103   return offset;
1104 }
1105
1106
1107 static const value_string ilp_FrequencySpecificInfo_vals[] = {
1108   {   0, "fdd" },
1109   {   1, "tdd" },
1110   { 0, NULL }
1111 };
1112
1113 static const per_choice_t FrequencySpecificInfo_choice[] = {
1114   {   0, &hf_ilp_fdd_fr          , ASN1_EXTENSION_ROOT    , dissect_ilp_FrequencyInfoFDD },
1115   {   1, &hf_ilp_tdd_fr          , ASN1_EXTENSION_ROOT    , dissect_ilp_FrequencyInfoTDD },
1116   { 0, NULL, 0, NULL }
1117 };
1118
1119 static int
1120 dissect_ilp_FrequencySpecificInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1121   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1122                                  ett_ilp_FrequencySpecificInfo, FrequencySpecificInfo_choice,
1123                                  NULL);
1124
1125   return offset;
1126 }
1127
1128
1129 static const per_sequence_t FrequencyInfo_sequence[] = {
1130   { &hf_ilp_modeSpecificFrequencyInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_FrequencySpecificInfo },
1131   { NULL, 0, 0, NULL }
1132 };
1133
1134 static int
1135 dissect_ilp_FrequencyInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1136   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1137                                    ett_ilp_FrequencyInfo, FrequencyInfo_sequence);
1138
1139   return offset;
1140 }
1141
1142
1143
1144 static int
1145 dissect_ilp_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1146   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1147                                                             0U, 511U, NULL, FALSE);
1148
1149   return offset;
1150 }
1151
1152
1153
1154 static int
1155 dissect_ilp_UTRA_CarrierRSSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1156   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1157                                                             0U, 127U, NULL, FALSE);
1158
1159   return offset;
1160 }
1161
1162
1163 static const per_sequence_t PrimaryCPICH_Info_sequence[] = {
1164   { &hf_ilp_primaryScramblingCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_511 },
1165   { NULL, 0, 0, NULL }
1166 };
1167
1168 static int
1169 dissect_ilp_PrimaryCPICH_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1170   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1171                                    ett_ilp_PrimaryCPICH_Info, PrimaryCPICH_Info_sequence);
1172
1173   return offset;
1174 }
1175
1176
1177
1178 static int
1179 dissect_ilp_CPICH_Ec_N0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1180   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1181                                                             0U, 63U, NULL, FALSE);
1182
1183   return offset;
1184 }
1185
1186
1187
1188 static int
1189 dissect_ilp_CPICH_RSCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1190   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1191                                                             0U, 127U, NULL, FALSE);
1192
1193   return offset;
1194 }
1195
1196
1197
1198 static int
1199 dissect_ilp_Pathloss(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1200   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1201                                                             46U, 173U, NULL, FALSE);
1202
1203   return offset;
1204 }
1205
1206
1207 static const per_sequence_t T_fdd_02_sequence[] = {
1208   { &hf_ilp_primaryCPICH_Info, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_PrimaryCPICH_Info },
1209   { &hf_ilp_cpich_Ec_N0     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_CPICH_Ec_N0 },
1210   { &hf_ilp_cpich_RSCP      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_CPICH_RSCP },
1211   { &hf_ilp_pathloss        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_Pathloss },
1212   { NULL, 0, 0, NULL }
1213 };
1214
1215 static int
1216 dissect_ilp_T_fdd_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1217   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1218                                    ett_ilp_T_fdd_02, T_fdd_02_sequence);
1219
1220   return offset;
1221 }
1222
1223
1224
1225 static int
1226 dissect_ilp_CellParametersID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1227   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1228                                                             0U, 127U, NULL, FALSE);
1229
1230   return offset;
1231 }
1232
1233
1234
1235 static int
1236 dissect_ilp_TGSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1237   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1238                                                             0U, 14U, NULL, FALSE);
1239
1240   return offset;
1241 }
1242
1243
1244
1245 static int
1246 dissect_ilp_PrimaryCCPCH_RSCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1247   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1248                                                             0U, 127U, NULL, FALSE);
1249
1250   return offset;
1251 }
1252
1253
1254
1255 static int
1256 dissect_ilp_TimeslotISCP(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, 127U, NULL, FALSE);
1259
1260   return offset;
1261 }
1262
1263
1264 static const per_sequence_t TimeslotISCP_List_sequence_of[1] = {
1265   { &hf_ilp_TimeslotISCP_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_TimeslotISCP },
1266 };
1267
1268 static int
1269 dissect_ilp_TimeslotISCP_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1270   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1271                                                   ett_ilp_TimeslotISCP_List, TimeslotISCP_List_sequence_of,
1272                                                   1, maxTS, FALSE);
1273
1274   return offset;
1275 }
1276
1277
1278 static const per_sequence_t T_tdd_02_sequence[] = {
1279   { &hf_ilp_cellParametersID, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_CellParametersID },
1280   { &hf_ilp_proposedTGSN    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_TGSN },
1281   { &hf_ilp_primaryCCPCH_RSCP, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_PrimaryCCPCH_RSCP },
1282   { &hf_ilp_pathloss        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_Pathloss },
1283   { &hf_ilp_timeslotISCP_List, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_TimeslotISCP_List },
1284   { NULL, 0, 0, NULL }
1285 };
1286
1287 static int
1288 dissect_ilp_T_tdd_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1289   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1290                                    ett_ilp_T_tdd_02, T_tdd_02_sequence);
1291
1292   return offset;
1293 }
1294
1295
1296 static const value_string ilp_T_modeSpecificInfo_02_vals[] = {
1297   {   0, "fdd" },
1298   {   1, "tdd" },
1299   { 0, NULL }
1300 };
1301
1302 static const per_choice_t T_modeSpecificInfo_02_choice[] = {
1303   {   0, &hf_ilp_fdd_02          , ASN1_NO_EXTENSIONS     , dissect_ilp_T_fdd_02 },
1304   {   1, &hf_ilp_tdd_02          , ASN1_NO_EXTENSIONS     , dissect_ilp_T_tdd_02 },
1305   { 0, NULL, 0, NULL }
1306 };
1307
1308 static int
1309 dissect_ilp_T_modeSpecificInfo_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1310   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1311                                  ett_ilp_T_modeSpecificInfo_02, T_modeSpecificInfo_02_choice,
1312                                  NULL);
1313
1314   return offset;
1315 }
1316
1317
1318 static const per_sequence_t CellMeasuredResults_sequence[] = {
1319   { &hf_ilp_cellIdentity_01 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_268435455 },
1320   { &hf_ilp_modeSpecificInfo_02, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_T_modeSpecificInfo_02 },
1321   { NULL, 0, 0, NULL }
1322 };
1323
1324 static int
1325 dissect_ilp_CellMeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1326   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1327                                    ett_ilp_CellMeasuredResults, CellMeasuredResults_sequence);
1328
1329   return offset;
1330 }
1331
1332
1333 static const per_sequence_t CellMeasuredResultsList_sequence_of[1] = {
1334   { &hf_ilp_CellMeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_CellMeasuredResults },
1335 };
1336
1337 static int
1338 dissect_ilp_CellMeasuredResultsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1339   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1340                                                   ett_ilp_CellMeasuredResultsList, CellMeasuredResultsList_sequence_of,
1341                                                   1, maxCellMeas, FALSE);
1342
1343   return offset;
1344 }
1345
1346
1347 static const per_sequence_t MeasuredResults_sequence[] = {
1348   { &hf_ilp_frequencyInfo   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_FrequencyInfo },
1349   { &hf_ilp_utra_CarrierRSSI, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_UTRA_CarrierRSSI },
1350   { &hf_ilp_cellMeasuredResultsList, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_CellMeasuredResultsList },
1351   { NULL, 0, 0, NULL }
1352 };
1353
1354 static int
1355 dissect_ilp_MeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1357                                    ett_ilp_MeasuredResults, MeasuredResults_sequence);
1358
1359   return offset;
1360 }
1361
1362
1363 static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
1364   { &hf_ilp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_MeasuredResults },
1365 };
1366
1367 static int
1368 dissect_ilp_MeasuredResultsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1369   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1370                                                   ett_ilp_MeasuredResultsList, MeasuredResultsList_sequence_of,
1371                                                   1, maxFreq, FALSE);
1372
1373   return offset;
1374 }
1375
1376
1377
1378 static int
1379 dissect_ilp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1380   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1381                                                             0U, 127U, NULL, FALSE);
1382
1383   return offset;
1384 }
1385
1386
1387
1388 static int
1389 dissect_ilp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1390   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1391                                                             0U, 8191U, NULL, FALSE);
1392
1393   return offset;
1394 }
1395
1396
1397 static const value_string ilp_TAResolution_vals[] = {
1398   {   0, "res10chip" },
1399   {   1, "res05chip" },
1400   {   2, "res0125chip" },
1401   { 0, NULL }
1402 };
1403
1404
1405 static int
1406 dissect_ilp_TAResolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1407   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1408                                      3, NULL, TRUE, 0, NULL);
1409
1410   return offset;
1411 }
1412
1413
1414 static const value_string ilp_ChipRate_vals[] = {
1415   {   0, "tdd128" },
1416   {   1, "tdd384" },
1417   {   2, "tdd768" },
1418   { 0, NULL }
1419 };
1420
1421
1422 static int
1423 dissect_ilp_ChipRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1424   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1425                                      3, NULL, TRUE, 0, NULL);
1426
1427   return offset;
1428 }
1429
1430
1431 static const per_sequence_t TimingAdvance_sequence[] = {
1432   { &hf_ilp_tA_01           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8191 },
1433   { &hf_ilp_tAResolution    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_TAResolution },
1434   { &hf_ilp_chipRate        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_ChipRate },
1435   { NULL, 0, 0, NULL }
1436 };
1437
1438 static int
1439 dissect_ilp_TimingAdvance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1440   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1441                                    ett_ilp_TimingAdvance, TimingAdvance_sequence);
1442
1443   return offset;
1444 }
1445
1446
1447 static const per_sequence_t WcdmaCellInformation_sequence[] = {
1448   { &hf_ilp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 },
1449   { &hf_ilp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 },
1450   { &hf_ilp_refUC           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_268435455 },
1451   { &hf_ilp_frequencyInfo   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_FrequencyInfo },
1452   { &hf_ilp_primaryScramblingCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_511 },
1453   { &hf_ilp_measuredResultsList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_MeasuredResultsList },
1454   { &hf_ilp_cellParametersId, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_127 },
1455   { &hf_ilp_timingAdvance   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_TimingAdvance },
1456   { NULL, 0, 0, NULL }
1457 };
1458
1459 static int
1460 dissect_ilp_WcdmaCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1461   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1462                                    ett_ilp_WcdmaCellInformation, WcdmaCellInformation_sequence);
1463
1464   return offset;
1465 }
1466
1467
1468
1469 static int
1470 dissect_ilp_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1471   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1472                                                             0U, 32767U, NULL, FALSE);
1473
1474   return offset;
1475 }
1476
1477
1478
1479 static int
1480 dissect_ilp_INTEGER_0_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1481   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1482                                                             0U, 4194303U, NULL, FALSE);
1483
1484   return offset;
1485 }
1486
1487
1488
1489 static int
1490 dissect_ilp_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1491   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1492                                                             0U, 8388607U, NULL, FALSE);
1493
1494   return offset;
1495 }
1496
1497
1498 static const per_sequence_t CdmaCellInformation_sequence[] = {
1499   { &hf_ilp_refNID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1500   { &hf_ilp_refSID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_32767 },
1501   { &hf_ilp_refBASEID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1502   { &hf_ilp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 },
1503   { &hf_ilp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 },
1504   { &hf_ilp_refREFPN        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_511 },
1505   { &hf_ilp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1506   { &hf_ilp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 },
1507   { NULL, 0, 0, NULL }
1508 };
1509
1510 static int
1511 dissect_ilp_CdmaCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1512   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1513                                    ett_ilp_CdmaCellInformation, CdmaCellInformation_sequence);
1514
1515   return offset;
1516 }
1517
1518
1519
1520 static int
1521 dissect_ilp_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1522   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1523                                      128, 128, FALSE, NULL);
1524
1525   return offset;
1526 }
1527
1528
1529 static const per_sequence_t HrpdCellInformation_sequence[] = {
1530   { &hf_ilp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_BIT_STRING_SIZE_128 },
1531   { &hf_ilp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 },
1532   { &hf_ilp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 },
1533   { &hf_ilp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1534   { &hf_ilp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 },
1535   { NULL, 0, 0, NULL }
1536 };
1537
1538 static int
1539 dissect_ilp_HrpdCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1540   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1541                                    ett_ilp_HrpdCellInformation, HrpdCellInformation_sequence);
1542
1543   return offset;
1544 }
1545
1546
1547 static const per_sequence_t UmbCellInformation_sequence[] = {
1548   { &hf_ilp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_128 },
1549   { &hf_ilp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 },
1550   { &hf_ilp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 },
1551   { &hf_ilp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 },
1552   { &hf_ilp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 },
1553   { &hf_ilp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1554   { &hf_ilp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 },
1555   { NULL, 0, 0, NULL }
1556 };
1557
1558 static int
1559 dissect_ilp_UmbCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1560   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1561                                    ett_ilp_UmbCellInformation, UmbCellInformation_sequence);
1562
1563   return offset;
1564 }
1565
1566
1567
1568 static int
1569 dissect_ilp_MCC_MNC_Digit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1570   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1571                                                             0U, 9U, NULL, FALSE);
1572
1573   return offset;
1574 }
1575
1576
1577 static const per_sequence_t MCC_sequence_of[1] = {
1578   { &hf_ilp_MCC_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_MCC_MNC_Digit },
1579 };
1580
1581 static int
1582 dissect_ilp_MCC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1583   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1584                                                   ett_ilp_MCC, MCC_sequence_of,
1585                                                   3, 3, FALSE);
1586
1587   return offset;
1588 }
1589
1590
1591 static const per_sequence_t MNC_sequence_of[1] = {
1592   { &hf_ilp_MNC_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_MCC_MNC_Digit },
1593 };
1594
1595 static int
1596 dissect_ilp_MNC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1597   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1598                                                   ett_ilp_MNC, MNC_sequence_of,
1599                                                   2, 3, FALSE);
1600
1601   return offset;
1602 }
1603
1604
1605 static const per_sequence_t PLMN_Identity_sequence[] = {
1606   { &hf_ilp_mcc             , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_MCC },
1607   { &hf_ilp_mnc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_MNC },
1608   { NULL, 0, 0, NULL }
1609 };
1610
1611 static int
1612 dissect_ilp_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1613   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1614                                    ett_ilp_PLMN_Identity, PLMN_Identity_sequence);
1615
1616   return offset;
1617 }
1618
1619
1620
1621 static int
1622 dissect_ilp_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1623   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1624                                      28, 28, FALSE, NULL);
1625
1626   return offset;
1627 }
1628
1629
1630 static const per_sequence_t CellGlobalIdEUTRA_sequence[] = {
1631   { &hf_ilp_plmn_Identity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PLMN_Identity },
1632   { &hf_ilp_cellIdentity    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_CellIdentity },
1633   { NULL, 0, 0, NULL }
1634 };
1635
1636 static int
1637 dissect_ilp_CellGlobalIdEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1638   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1639                                    ett_ilp_CellGlobalIdEUTRA, CellGlobalIdEUTRA_sequence);
1640
1641   return offset;
1642 }
1643
1644
1645
1646 static int
1647 dissect_ilp_PhysCellId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1648   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1649                                                             0U, 503U, NULL, FALSE);
1650
1651   return offset;
1652 }
1653
1654
1655
1656 static int
1657 dissect_ilp_TrackingAreaCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1658   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1659                                      16, 16, FALSE, NULL);
1660
1661   return offset;
1662 }
1663
1664
1665
1666 static int
1667 dissect_ilp_RSRP_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1668   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1669                                                             0U, 97U, NULL, FALSE);
1670
1671   return offset;
1672 }
1673
1674
1675
1676 static int
1677 dissect_ilp_RSRQ_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1678   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1679                                                             0U, 34U, NULL, FALSE);
1680
1681   return offset;
1682 }
1683
1684
1685
1686 static int
1687 dissect_ilp_INTEGER_0_1282(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1688   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1689                                                             0U, 1282U, NULL, FALSE);
1690
1691   return offset;
1692 }
1693
1694
1695 static const per_sequence_t T_cgi_Info_sequence[] = {
1696   { &hf_ilp_cellGlobalId    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_CellGlobalIdEUTRA },
1697   { &hf_ilp_trackingAreaCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_TrackingAreaCode },
1698   { NULL, 0, 0, NULL }
1699 };
1700
1701 static int
1702 dissect_ilp_T_cgi_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1703   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1704                                    ett_ilp_T_cgi_Info, T_cgi_Info_sequence);
1705
1706   return offset;
1707 }
1708
1709
1710 static const per_sequence_t T_measResult_sequence[] = {
1711   { &hf_ilp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_RSRP_Range },
1712   { &hf_ilp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_RSRQ_Range },
1713   { &hf_ilp_earfcn          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_65535 },
1714   { NULL, 0, 0, NULL }
1715 };
1716
1717 static int
1718 dissect_ilp_T_measResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1719   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1720                                    ett_ilp_T_measResult, T_measResult_sequence);
1721
1722   return offset;
1723 }
1724
1725
1726 static const per_sequence_t MeasResultEUTRA_sequence[] = {
1727   { &hf_ilp_physCellId      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_PhysCellId },
1728   { &hf_ilp_cgi_Info        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ilp_T_cgi_Info },
1729   { &hf_ilp_measResult      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_T_measResult },
1730   { NULL, 0, 0, NULL }
1731 };
1732
1733 static int
1734 dissect_ilp_MeasResultEUTRA(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_ilp_MeasResultEUTRA, MeasResultEUTRA_sequence);
1737
1738   return offset;
1739 }
1740
1741
1742 static const per_sequence_t MeasResultListEUTRA_sequence_of[1] = {
1743   { &hf_ilp_MeasResultListEUTRA_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_MeasResultEUTRA },
1744 };
1745
1746 static int
1747 dissect_ilp_MeasResultListEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1748   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1749                                                   ett_ilp_MeasResultListEUTRA, MeasResultListEUTRA_sequence_of,
1750                                                   1, maxCellReport, FALSE);
1751
1752   return offset;
1753 }
1754
1755
1756 static const per_sequence_t LteCellInformation_sequence[] = {
1757   { &hf_ilp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_CellGlobalIdEUTRA },
1758   { &hf_ilp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PhysCellId },
1759   { &hf_ilp_trackingAreaCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_TrackingAreaCode },
1760   { &hf_ilp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_RSRP_Range },
1761   { &hf_ilp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_RSRQ_Range },
1762   { &hf_ilp_tA_02           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_1282 },
1763   { &hf_ilp_measResultListEUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_MeasResultListEUTRA },
1764   { &hf_ilp_earfcn          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_65535 },
1765   { NULL, 0, 0, NULL }
1766 };
1767
1768 static int
1769 dissect_ilp_LteCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1770   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1771                                    ett_ilp_LteCellInformation, LteCellInformation_sequence);
1772
1773   return offset;
1774 }
1775
1776
1777
1778 static int
1779 dissect_ilp_BIT_STRING_SIZE_48(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1780   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1781                                      48, 48, FALSE, NULL);
1782
1783   return offset;
1784 }
1785
1786
1787
1788 static int
1789 dissect_ilp_INTEGER_M127_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1790   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1791                                                             -127, 128U, NULL, FALSE);
1792
1793   return offset;
1794 }
1795
1796
1797 static const value_string ilp_T_apDeviceType_vals[] = {
1798   {   0, "wlan802-11a" },
1799   {   1, "wlan802-11b" },
1800   {   2, "wlan802-11g" },
1801   { 0, NULL }
1802 };
1803
1804
1805 static int
1806 dissect_ilp_T_apDeviceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1807   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1808                                      3, NULL, TRUE, 0, NULL);
1809
1810   return offset;
1811 }
1812
1813
1814
1815 static int
1816 dissect_ilp_INTEGER_0_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1817   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1818                                                             0U, 256U, NULL, FALSE);
1819
1820   return offset;
1821 }
1822
1823
1824
1825 static int
1826 dissect_ilp_INTEGER_0_16777216(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1827   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1828                                                             0U, 16777216U, NULL, FALSE);
1829
1830   return offset;
1831 }
1832
1833
1834 static const value_string ilp_RTDUnits_vals[] = {
1835   {   0, "microseconds" },
1836   {   1, "hundredsofnanoseconds" },
1837   {   2, "tensofnanoseconds" },
1838   {   3, "nanoseconds" },
1839   {   4, "tenthsofnanoseconds" },
1840   { 0, NULL }
1841 };
1842
1843
1844 static int
1845 dissect_ilp_RTDUnits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1846   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1847                                      5, NULL, TRUE, 0, NULL);
1848
1849   return offset;
1850 }
1851
1852
1853 static const per_sequence_t RTD_sequence[] = {
1854   { &hf_ilp_rTDValue        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_16777216 },
1855   { &hf_ilp_rTDUnits        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_RTDUnits },
1856   { &hf_ilp_rTDAccuracy     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_255 },
1857   { NULL, 0, 0, NULL }
1858 };
1859
1860 static int
1861 dissect_ilp_RTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1862   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1863                                    ett_ilp_RTD, RTD_sequence);
1864
1865   return offset;
1866 }
1867
1868
1869 static const value_string ilp_LocationEncodingDescriptor_vals[] = {
1870   {   0, "lCI" },
1871   {   1, "aSN1" },
1872   { 0, NULL }
1873 };
1874
1875
1876 static int
1877 dissect_ilp_LocationEncodingDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1878   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1879                                      2, NULL, TRUE, 0, NULL);
1880
1881   return offset;
1882 }
1883
1884
1885
1886 static int
1887 dissect_ilp_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1888   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1889                                                             0U, 4294967295U, NULL, FALSE);
1890
1891   return offset;
1892 }
1893
1894
1895
1896 static int
1897 dissect_ilp_OCTET_STRING_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1898   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1899                                        1, 128, FALSE, NULL);
1900
1901   return offset;
1902 }
1903
1904
1905 static const per_sequence_t LocationData_sequence[] = {
1906   { &hf_ilp_locationAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_4294967295 },
1907   { &hf_ilp_locationValue   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_1_128 },
1908   { NULL, 0, 0, NULL }
1909 };
1910
1911 static int
1912 dissect_ilp_LocationData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1913   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1914                                    ett_ilp_LocationData, LocationData_sequence);
1915
1916   return offset;
1917 }
1918
1919
1920 static const per_sequence_t ReportedLocation_sequence[] = {
1921   { &hf_ilp_locationEncodingDescriptor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_LocationEncodingDescriptor },
1922   { &hf_ilp_locationData    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_LocationData },
1923   { NULL, 0, 0, NULL }
1924 };
1925
1926 static int
1927 dissect_ilp_ReportedLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1928   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1929                                    ett_ilp_ReportedLocation, ReportedLocation_sequence);
1930
1931   return offset;
1932 }
1933
1934
1935 static const per_sequence_t WlanAPInformation_sequence[] = {
1936   { &hf_ilp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_48 },
1937   { &hf_ilp_apTransmitPower , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1938   { &hf_ilp_apAntennaGain   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1939   { &hf_ilp_apSignaltoNoise , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1940   { &hf_ilp_apDeviceType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_T_apDeviceType },
1941   { &hf_ilp_apSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1942   { &hf_ilp_apChannelFrequency, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_256 },
1943   { &hf_ilp_apRoundTripDelay, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_RTD },
1944   { &hf_ilp_setTransmitPower, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1945   { &hf_ilp_setAntennaGain  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1946   { &hf_ilp_setSignaltoNoise, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1947   { &hf_ilp_setSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M127_128 },
1948   { &hf_ilp_apReportedLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_ReportedLocation },
1949   { NULL, 0, 0, NULL }
1950 };
1951
1952 static int
1953 dissect_ilp_WlanAPInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1954   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1955                                    ett_ilp_WlanAPInformation, WlanAPInformation_sequence);
1956
1957   return offset;
1958 }
1959
1960
1961
1962 static int
1963 dissect_ilp_BIT_STRING_SIZE_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1964   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1965                                      24, 24, FALSE, NULL);
1966
1967   return offset;
1968 }
1969
1970
1971 static const per_sequence_t WimaxBsID_sequence[] = {
1972   { &hf_ilp_bsID_MSB        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_BIT_STRING_SIZE_24 },
1973   { &hf_ilp_bsID_LSB        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_24 },
1974   { NULL, 0, 0, NULL }
1975 };
1976
1977 static int
1978 dissect_ilp_WimaxBsID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1979   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1980                                    ett_ilp_WimaxBsID, WimaxBsID_sequence);
1981
1982   return offset;
1983 }
1984
1985
1986 static const per_sequence_t WimaxRTD_sequence[] = {
1987   { &hf_ilp_rTD             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 },
1988   { &hf_ilp_rTDstd          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_1023 },
1989   { NULL, 0, 0, NULL }
1990 };
1991
1992 static int
1993 dissect_ilp_WimaxRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1994   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1995                                    ett_ilp_WimaxRTD, WimaxRTD_sequence);
1996
1997   return offset;
1998 }
1999
2000
2001
2002 static int
2003 dissect_ilp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2004   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2005                                                             -32768, 32767U, NULL, FALSE);
2006
2007   return offset;
2008 }
2009
2010
2011 static const per_sequence_t WimaxNMR_sequence[] = {
2012   { &hf_ilp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_WimaxBsID },
2013   { &hf_ilp_relDelay        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_M32768_32767 },
2014   { &hf_ilp_relDelaystd     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_1023 },
2015   { &hf_ilp_rSSI            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_255 },
2016   { &hf_ilp_rSSIstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_63 },
2017   { &hf_ilp_bSTxPower       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_255 },
2018   { &hf_ilp_cINR            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_255 },
2019   { &hf_ilp_cINRstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_63 },
2020   { &hf_ilp_bSLocation      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_ReportedLocation },
2021   { NULL, 0, 0, NULL }
2022 };
2023
2024 static int
2025 dissect_ilp_WimaxNMR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2026   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2027                                    ett_ilp_WimaxNMR, WimaxNMR_sequence);
2028
2029   return offset;
2030 }
2031
2032
2033 static const per_sequence_t WimaxNMRList_sequence_of[1] = {
2034   { &hf_ilp_WimaxNMRList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_WimaxNMR },
2035 };
2036
2037 static int
2038 dissect_ilp_WimaxNMRList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2039   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2040                                                   ett_ilp_WimaxNMRList, WimaxNMRList_sequence_of,
2041                                                   1, maxWimaxBSMeas, FALSE);
2042
2043   return offset;
2044 }
2045
2046
2047 static const per_sequence_t WimaxBSInformation_sequence[] = {
2048   { &hf_ilp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_WimaxBsID },
2049   { &hf_ilp_wimaxRTD        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_WimaxRTD },
2050   { &hf_ilp_wimaxNMRList    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_WimaxNMRList },
2051   { NULL, 0, 0, NULL }
2052 };
2053
2054 static int
2055 dissect_ilp_WimaxBSInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2056   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2057                                    ett_ilp_WimaxBSInformation, WimaxBSInformation_sequence);
2058
2059   return offset;
2060 }
2061
2062
2063 static const value_string ilp_CellInfo_vals[] = {
2064   {   0, "gsmCell" },
2065   {   1, "wcdmaCell" },
2066   {   2, "cdmaCell" },
2067   {   3, "hrpdCell" },
2068   {   4, "umbCell" },
2069   {   5, "lteCell" },
2070   {   6, "wlanAP" },
2071   {   7, "wimaxBS" },
2072   { 0, NULL }
2073 };
2074
2075 static const per_choice_t CellInfo_choice[] = {
2076   {   0, &hf_ilp_gsmCell         , ASN1_EXTENSION_ROOT    , dissect_ilp_GsmCellInformation },
2077   {   1, &hf_ilp_wcdmaCell       , ASN1_EXTENSION_ROOT    , dissect_ilp_WcdmaCellInformation },
2078   {   2, &hf_ilp_cdmaCell        , ASN1_EXTENSION_ROOT    , dissect_ilp_CdmaCellInformation },
2079   {   3, &hf_ilp_hrpdCell        , ASN1_EXTENSION_ROOT    , dissect_ilp_HrpdCellInformation },
2080   {   4, &hf_ilp_umbCell         , ASN1_EXTENSION_ROOT    , dissect_ilp_UmbCellInformation },
2081   {   5, &hf_ilp_lteCell         , ASN1_EXTENSION_ROOT    , dissect_ilp_LteCellInformation },
2082   {   6, &hf_ilp_wlanAP          , ASN1_EXTENSION_ROOT    , dissect_ilp_WlanAPInformation },
2083   {   7, &hf_ilp_wimaxBS         , ASN1_EXTENSION_ROOT    , dissect_ilp_WimaxBSInformation },
2084   { 0, NULL, 0, NULL }
2085 };
2086
2087 static int
2088 dissect_ilp_CellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2089   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2090                                  ett_ilp_CellInfo, CellInfo_choice,
2091                                  NULL);
2092
2093   return offset;
2094 }
2095
2096
2097 static const value_string ilp_Status_vals[] = {
2098   {   0, "stale" },
2099   {   1, "current" },
2100   {   2, "unknown" },
2101   { 0, NULL }
2102 };
2103
2104
2105 static int
2106 dissect_ilp_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2107   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2108                                      3, NULL, TRUE, 0, NULL);
2109
2110   return offset;
2111 }
2112
2113
2114 static const per_sequence_t LocationId_sequence[] = {
2115   { &hf_ilp_cellInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_CellInfo },
2116   { &hf_ilp_status          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_Status },
2117   { NULL, 0, 0, NULL }
2118 };
2119
2120 static int
2121 dissect_ilp_LocationId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2122   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2123                                    ett_ilp_LocationId, LocationId_sequence);
2124
2125   return offset;
2126 }
2127
2128
2129
2130 static int
2131 dissect_ilp_RelativeTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2132   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2133                                                             0U, 65535U, NULL, FALSE);
2134
2135   return offset;
2136 }
2137
2138
2139 static const per_sequence_t LocationIdData_sequence[] = {
2140   { &hf_ilp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_LocationId },
2141   { &hf_ilp_relativetimestamp, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_RelativeTime },
2142   { &hf_ilp_servingFlag     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2143   { NULL, 0, 0, NULL }
2144 };
2145
2146 static int
2147 dissect_ilp_LocationIdData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2148   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2149                                    ett_ilp_LocationIdData, LocationIdData_sequence);
2150
2151   return offset;
2152 }
2153
2154
2155 static const per_sequence_t MultipleLocationIds_sequence_of[1] = {
2156   { &hf_ilp_MultipleLocationIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_LocationIdData },
2157 };
2158
2159 static int
2160 dissect_ilp_MultipleLocationIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2161   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2162                                                   ett_ilp_MultipleLocationIds, MultipleLocationIds_sequence_of,
2163                                                   1, maxLidSize, FALSE);
2164
2165   return offset;
2166 }
2167
2168
2169
2170 static int
2171 dissect_ilp_UTCTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2172   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
2173                                         NO_BOUND, NO_BOUND, FALSE);
2174
2175   return offset;
2176 }
2177
2178
2179 static const value_string ilp_T_latitudeSign_vals[] = {
2180   {   0, "north" },
2181   {   1, "south" },
2182   { 0, NULL }
2183 };
2184
2185
2186 static int
2187 dissect_ilp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2188   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2189                                      2, NULL, FALSE, 0, NULL);
2190
2191   return offset;
2192 }
2193
2194
2195
2196 static int
2197 dissect_ilp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2198   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2199                                                             -8388608, 8388607U, NULL, FALSE);
2200
2201   return offset;
2202 }
2203
2204
2205
2206 static int
2207 dissect_ilp_INTEGER_0_180(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2208   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2209                                                             0U, 180U, NULL, FALSE);
2210
2211   return offset;
2212 }
2213
2214
2215 static const per_sequence_t T_uncertainty_sequence[] = {
2216   { &hf_ilp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 },
2217   { &hf_ilp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 },
2218   { &hf_ilp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_180 },
2219   { NULL, 0, 0, NULL }
2220 };
2221
2222 static int
2223 dissect_ilp_T_uncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2224   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2225                                    ett_ilp_T_uncertainty, T_uncertainty_sequence);
2226
2227   return offset;
2228 }
2229
2230
2231
2232 static int
2233 dissect_ilp_INTEGER_0_100(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2234   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2235                                                             0U, 100U, NULL, FALSE);
2236
2237   return offset;
2238 }
2239
2240
2241 static const value_string ilp_T_altitudeDirection_vals[] = {
2242   {   0, "height" },
2243   {   1, "depth" },
2244   { 0, NULL }
2245 };
2246
2247
2248 static int
2249 dissect_ilp_T_altitudeDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2250   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2251                                      2, NULL, FALSE, 0, NULL);
2252
2253   return offset;
2254 }
2255
2256
2257 static const per_sequence_t AltitudeInfo_sequence[] = {
2258   { &hf_ilp_altitudeDirection, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_T_altitudeDirection },
2259   { &hf_ilp_altitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_32767 },
2260   { &hf_ilp_altUncertainty  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 },
2261   { NULL, 0, 0, NULL }
2262 };
2263
2264 static int
2265 dissect_ilp_AltitudeInfo(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_ilp_AltitudeInfo, AltitudeInfo_sequence);
2268
2269   return offset;
2270 }
2271
2272
2273 static const per_sequence_t PositionEstimate_sequence[] = {
2274   { &hf_ilp_latitudeSign    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_T_latitudeSign },
2275   { &hf_ilp_latitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 },
2276   { &hf_ilp_longitude       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_M8388608_8388607 },
2277   { &hf_ilp_uncertainty     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_T_uncertainty },
2278   { &hf_ilp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_100 },
2279   { &hf_ilp_altitudeInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_AltitudeInfo },
2280   { NULL, 0, 0, NULL }
2281 };
2282
2283 static int
2284 dissect_ilp_PositionEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2285   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2286                                    ett_ilp_PositionEstimate, PositionEstimate_sequence);
2287
2288   return offset;
2289 }
2290
2291
2292
2293 static int
2294 dissect_ilp_BIT_STRING_SIZE_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2295   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2296                                      9, 9, FALSE, NULL);
2297
2298   return offset;
2299 }
2300
2301
2302
2303 static int
2304 dissect_ilp_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2305   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2306                                      16, 16, FALSE, NULL);
2307
2308   return offset;
2309 }
2310
2311
2312 static const per_sequence_t Horvel_sequence[] = {
2313   { &hf_ilp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 },
2314   { &hf_ilp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 },
2315   { NULL, 0, 0, NULL }
2316 };
2317
2318 static int
2319 dissect_ilp_Horvel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2320   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2321                                    ett_ilp_Horvel, Horvel_sequence);
2322
2323   return offset;
2324 }
2325
2326
2327
2328 static int
2329 dissect_ilp_BIT_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2330   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2331                                      1, 1, FALSE, NULL);
2332
2333   return offset;
2334 }
2335
2336
2337
2338 static int
2339 dissect_ilp_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2340   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2341                                      8, 8, FALSE, NULL);
2342
2343   return offset;
2344 }
2345
2346
2347 static const per_sequence_t Horandvervel_sequence[] = {
2348   { &hf_ilp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_1 },
2349   { &hf_ilp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 },
2350   { &hf_ilp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 },
2351   { &hf_ilp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 },
2352   { NULL, 0, 0, NULL }
2353 };
2354
2355 static int
2356 dissect_ilp_Horandvervel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2357   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2358                                    ett_ilp_Horandvervel, Horandvervel_sequence);
2359
2360   return offset;
2361 }
2362
2363
2364 static const per_sequence_t Horveluncert_sequence[] = {
2365   { &hf_ilp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 },
2366   { &hf_ilp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 },
2367   { &hf_ilp_uncertspeed     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 },
2368   { NULL, 0, 0, NULL }
2369 };
2370
2371 static int
2372 dissect_ilp_Horveluncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2373   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2374                                    ett_ilp_Horveluncert, Horveluncert_sequence);
2375
2376   return offset;
2377 }
2378
2379
2380 static const per_sequence_t Horandveruncert_sequence[] = {
2381   { &hf_ilp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_1 },
2382   { &hf_ilp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 },
2383   { &hf_ilp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 },
2384   { &hf_ilp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 },
2385   { &hf_ilp_horuncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 },
2386   { &hf_ilp_veruncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 },
2387   { NULL, 0, 0, NULL }
2388 };
2389
2390 static int
2391 dissect_ilp_Horandveruncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2392   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2393                                    ett_ilp_Horandveruncert, Horandveruncert_sequence);
2394
2395   return offset;
2396 }
2397
2398
2399 static const value_string ilp_Velocity_vals[] = {
2400   {   0, "horvel" },
2401   {   1, "horandvervel" },
2402   {   2, "horveluncert" },
2403   {   3, "horandveruncert" },
2404   { 0, NULL }
2405 };
2406
2407 static const per_choice_t Velocity_choice[] = {
2408   {   0, &hf_ilp_horvel          , ASN1_EXTENSION_ROOT    , dissect_ilp_Horvel },
2409   {   1, &hf_ilp_horandvervel    , ASN1_EXTENSION_ROOT    , dissect_ilp_Horandvervel },
2410   {   2, &hf_ilp_horveluncert    , ASN1_EXTENSION_ROOT    , dissect_ilp_Horveluncert },
2411   {   3, &hf_ilp_horandveruncert , ASN1_EXTENSION_ROOT    , dissect_ilp_Horandveruncert },
2412   { 0, NULL, 0, NULL }
2413 };
2414
2415 static int
2416 dissect_ilp_Velocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2417   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2418                                  ett_ilp_Velocity, Velocity_choice,
2419                                  NULL);
2420
2421   return offset;
2422 }
2423
2424
2425 static const per_sequence_t Position_sequence[] = {
2426   { &hf_ilp_timestamp       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_UTCTime },
2427   { &hf_ilp_positionEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PositionEstimate },
2428   { &hf_ilp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_Velocity },
2429   { NULL, 0, 0, NULL }
2430 };
2431
2432 static int
2433 dissect_ilp_Position(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2434   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2435                                    ett_ilp_Position, Position_sequence);
2436
2437   return offset;
2438 }
2439
2440
2441 static const value_string ilp_TriggerType_vals[] = {
2442   {   0, "periodic" },
2443   {   1, "areaEvent" },
2444   { 0, NULL }
2445 };
2446
2447
2448 static int
2449 dissect_ilp_TriggerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2450   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2451                                      2, NULL, TRUE, 0, NULL);
2452
2453   return offset;
2454 }
2455
2456
2457
2458 static int
2459 dissect_ilp_INTEGER_1_8639999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2460   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2461                                                             1U, 8639999U, NULL, FALSE);
2462
2463   return offset;
2464 }
2465
2466
2467
2468 static int
2469 dissect_ilp_INTEGER_0_2678400(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_integer(tvb, offset, actx, tree, hf_index,
2471                                                             0U, 2678400U, NULL, FALSE);
2472
2473   return offset;
2474 }
2475
2476
2477 static const per_sequence_t PeriodicTriggerParams_sequence[] = {
2478   { &hf_ilp_numberOfFixes   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_1_8639999 },
2479   { &hf_ilp_intervalBetweenFixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_1_8639999 },
2480   { &hf_ilp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_2678400 },
2481   { NULL, 0, 0, NULL }
2482 };
2483
2484 static int
2485 dissect_ilp_PeriodicTriggerParams(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_ilp_PeriodicTriggerParams, PeriodicTriggerParams_sequence);
2488
2489   return offset;
2490 }
2491
2492
2493 static const per_sequence_t TriggerParams_sequence[] = {
2494   { &hf_ilp_triggerType     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_TriggerType },
2495   { &hf_ilp_periodicTriggerParams, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PeriodicTriggerParams },
2496   { NULL, 0, 0, NULL }
2497 };
2498
2499 static int
2500 dissect_ilp_TriggerParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2501   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2502                                    ett_ilp_TriggerParams, TriggerParams_sequence);
2503
2504   return offset;
2505 }
2506
2507
2508
2509 static int
2510 dissect_ilp_SPCSETKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2511   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2512                                      128, 128, FALSE, NULL);
2513
2514   return offset;
2515 }
2516
2517
2518 static const per_sequence_t SPCTID_sequence[] = {
2519   { &hf_ilp_rAND            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_128 },
2520   { &hf_ilp_slpFQDN         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_FQDN },
2521   { NULL, 0, 0, NULL }
2522 };
2523
2524 static int
2525 dissect_ilp_SPCTID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2526   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2527                                    ett_ilp_SPCTID, SPCTID_sequence);
2528
2529   return offset;
2530 }
2531
2532
2533
2534 static int
2535 dissect_ilp_SPCSETKeylifetime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2536   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2537                                                             1U, 24U, NULL, FALSE);
2538
2539   return offset;
2540 }
2541
2542
2543
2544 static int
2545 dissect_ilp_INTEGER_0_7(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, 7U, NULL, FALSE);
2548
2549   return offset;
2550 }
2551
2552
2553 static const per_sequence_t QoP_sequence[] = {
2554   { &hf_ilp_horacc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 },
2555   { &hf_ilp_veracc          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_127 },
2556   { &hf_ilp_maxLocAge       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_65535 },
2557   { &hf_ilp_delay           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_7 },
2558   { NULL, 0, 0, NULL }
2559 };
2560
2561 static int
2562 dissect_ilp_QoP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2563   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2564                                    ett_ilp_QoP, QoP_sequence);
2565
2566   return offset;
2567 }
2568
2569
2570 static const value_string ilp_PrefMethod_vals[] = {
2571   {   0, "agnssSETAssistedPreferred" },
2572   {   1, "agnssSETBasedPreferred" },
2573   {   2, "noPreference" },
2574   { 0, NULL }
2575 };
2576
2577
2578 static int
2579 dissect_ilp_PrefMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2580   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2581                                      3, NULL, TRUE, 0, NULL);
2582
2583   return offset;
2584 }
2585
2586
2587 static const per_sequence_t PosProtocolVersion3GPP_sequence[] = {
2588   { &hf_ilp_majorVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
2589   { &hf_ilp_technicalVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
2590   { &hf_ilp_editorialVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
2591   { NULL, 0, 0, NULL }
2592 };
2593
2594 static int
2595 dissect_ilp_PosProtocolVersion3GPP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2596   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2597                                    ett_ilp_PosProtocolVersion3GPP, PosProtocolVersion3GPP_sequence);
2598
2599   return offset;
2600 }
2601
2602
2603
2604 static int
2605 dissect_ilp_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2606   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2607                                      6, 6, FALSE, NULL);
2608
2609   return offset;
2610 }
2611
2612
2613 static const per_sequence_t Supported3GPP2PosProtocolVersion_sequence[] = {
2614   { &hf_ilp_revisionNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_6 },
2615   { &hf_ilp_pointReleaseNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
2616   { &hf_ilp_internalEditLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
2617   { NULL, 0, 0, NULL }
2618 };
2619
2620 static int
2621 dissect_ilp_Supported3GPP2PosProtocolVersion(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2622   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2623                                    ett_ilp_Supported3GPP2PosProtocolVersion, Supported3GPP2PosProtocolVersion_sequence);
2624
2625   return offset;
2626 }
2627
2628
2629 static const per_sequence_t PosProtocolVersion3GPP2_sequence_of[1] = {
2630   { &hf_ilp_PosProtocolVersion3GPP2_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_Supported3GPP2PosProtocolVersion },
2631 };
2632
2633 static int
2634 dissect_ilp_PosProtocolVersion3GPP2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2635   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2636                                                   ett_ilp_PosProtocolVersion3GPP2, PosProtocolVersion3GPP2_sequence_of,
2637                                                   1, 8, FALSE);
2638
2639   return offset;
2640 }
2641
2642
2643 static const per_sequence_t PosProtocol_sequence[] = {
2644   { &hf_ilp_tia801          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2645   { &hf_ilp_rrlp            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2646   { &hf_ilp_rrc             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2647   { &hf_ilp_lpp             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2648   { &hf_ilp_posProtocolVersionRRLP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosProtocolVersion3GPP },
2649   { &hf_ilp_posProtocolVersionRRC, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosProtocolVersion3GPP },
2650   { &hf_ilp_posProtocolVersionTIA801, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosProtocolVersion3GPP2 },
2651   { &hf_ilp_posProtocolVersionLPP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosProtocolVersion3GPP },
2652   { NULL, 0, 0, NULL }
2653 };
2654
2655 static int
2656 dissect_ilp_PosProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2657   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2658                                    ett_ilp_PosProtocol, PosProtocol_sequence);
2659
2660   return offset;
2661 }
2662
2663
2664 static const per_sequence_t SupportedBearers_sequence[] = {
2665   { &hf_ilp_gsm             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2666   { &hf_ilp_wcdma           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2667   { &hf_ilp_lte             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2668   { &hf_ilp_cdma            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2669   { &hf_ilp_hprd            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2670   { &hf_ilp_umb             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2671   { &hf_ilp_wlan            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2672   { &hf_ilp_wiMAX           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2673   { NULL, 0, 0, NULL }
2674 };
2675
2676 static int
2677 dissect_ilp_SupportedBearers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2678   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2679                                    ett_ilp_SupportedBearers, SupportedBearers_sequence);
2680
2681   return offset;
2682 }
2683
2684
2685 static const per_sequence_t SETCapabilities_sequence[] = {
2686   { &hf_ilp_posTechnology   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PosTechnology },
2687   { &hf_ilp_prefMethod      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PrefMethod },
2688   { &hf_ilp_posProtocol     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PosProtocol },
2689   { &hf_ilp_supportedBearers, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SupportedBearers },
2690   { NULL, 0, 0, NULL }
2691 };
2692
2693 static int
2694 dissect_ilp_SETCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2695   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2696                                    ett_ilp_SETCapabilities, SETCapabilities_sequence);
2697
2698   return offset;
2699 }
2700
2701
2702 static const value_string ilp_NotificationMode_vals[] = {
2703   {   0, "normal" },
2704   {   1, "basedOnLocation" },
2705   { 0, NULL }
2706 };
2707
2708
2709 static int
2710 dissect_ilp_NotificationMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2711   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2712                                      2, NULL, TRUE, 0, NULL);
2713
2714   return offset;
2715 }
2716
2717
2718 static const per_sequence_t PREQ_sequence[] = {
2719   { &hf_ilp_sLPMode         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_SLPMode },
2720   { &hf_ilp_approvedPosMethods, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosTechnology },
2721   { &hf_ilp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_LocationId },
2722   { &hf_ilp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_MultipleLocationIds },
2723   { &hf_ilp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_Position },
2724   { &hf_ilp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_TriggerParams },
2725   { &hf_ilp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SPCSETKey },
2726   { &hf_ilp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SPCTID },
2727   { &hf_ilp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SPCSETKeylifetime },
2728   { &hf_ilp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_QoP },
2729   { &hf_ilp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SETCapabilities },
2730   { &hf_ilp_notificationMode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_NotificationMode },
2731   { NULL, 0, 0, NULL }
2732 };
2733
2734 static int
2735 dissect_ilp_PREQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2737                                    ett_ilp_PREQ, PREQ_sequence);
2738
2739   return offset;
2740 }
2741
2742
2743 static const value_string ilp_PosMethod_vals[] = {
2744   {   0, "agpsSETassisted" },
2745   {   1, "agpsSETbased" },
2746   {   2, "agpsSETassistedpref" },
2747   {   3, "agpsSETbasedpref" },
2748   {   4, "autonomousGPS" },
2749   {   5, "aFLT" },
2750   {   6, "eCID" },
2751   {   7, "eOTD" },
2752   {   8, "oTDOA" },
2753   {   9, "agnssSETassisted" },
2754   {  10, "agnssSETbased" },
2755   {  11, "agnssSETassistedpref" },
2756   {  12, "agnssSETbasedpref" },
2757   {  13, "autonomousGNSS" },
2758   { 0, NULL }
2759 };
2760
2761
2762 static int
2763 dissect_ilp_PosMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2764   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2765                                      14, NULL, TRUE, 0, NULL);
2766
2767   return offset;
2768 }
2769
2770
2771 static const per_sequence_t GNSSPosTechnology_sequence[] = {
2772   { &hf_ilp_gps             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2773   { &hf_ilp_galileo         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2774   { &hf_ilp_sbas            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2775   { &hf_ilp_modernized_gps  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2776   { &hf_ilp_qzss            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2777   { &hf_ilp_glonass         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
2778   { NULL, 0, 0, NULL }
2779 };
2780
2781 static int
2782 dissect_ilp_GNSSPosTechnology(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2783   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2784                                    ett_ilp_GNSSPosTechnology, GNSSPosTechnology_sequence);
2785
2786   return offset;
2787 }
2788
2789
2790 static const value_string ilp_SPCStatusCode_vals[] = {
2791   {   0, "operational" },
2792   {   1, "notOperational" },
2793   {   2, "reducedAvailability" },
2794   { 0, NULL }
2795 };
2796
2797
2798 static int
2799 dissect_ilp_SPCStatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2800   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2801                                      3, NULL, TRUE, 0, NULL);
2802
2803   return offset;
2804 }
2805
2806
2807 static const per_sequence_t PRES_sequence[] = {
2808   { &hf_ilp_preferredPosMethod, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosMethod },
2809   { &hf_ilp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_GNSSPosTechnology },
2810   { &hf_ilp_supportedPosMethods, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_PosTechnology },
2811   { &hf_ilp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_Position },
2812   { &hf_ilp_sPCstatusCode   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SPCStatusCode },
2813   { NULL, 0, 0, NULL }
2814 };
2815
2816 static int
2817 dissect_ilp_PRES(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2818   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2819                                    ett_ilp_PRES, PRES_sequence);
2820
2821   return offset;
2822 }
2823
2824
2825 static const value_string ilp_StatusCode_vals[] = {
2826   {   0, "unspecified" },
2827   {   1, "systemFailure" },
2828   {   2, "unexpectedMessage" },
2829   {   3, "protocolError" },
2830   {   4, "dataMissing" },
2831   {   5, "unexpectedDataValue" },
2832   {   6, "posMethodFailure" },
2833   {   7, "posMethodMismatch" },
2834   {   8, "posProtocolMismatch" },
2835   {   9, "targetSETnotReachable" },
2836   {  10, "versionNotSupported" },
2837   {  11, "resourceShortage" },
2838   {  12, "invalidSessionId" },
2839   {  13, "nonProxyModeNotSupported" },
2840   {  14, "proxyModeNotSupported" },
2841   {  15, "positioningNotPermitted" },
2842   {  16, "iLPTimeout" },
2843   { 0, NULL }
2844 };
2845
2846
2847 static int
2848 dissect_ilp_StatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2850                                      17, NULL, TRUE, 0, NULL);
2851
2852   return offset;
2853 }
2854
2855
2856 static const per_sequence_t PRPT_sequence[] = {
2857   { &hf_ilp_position        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_Position },
2858   { &hf_ilp_fixNumber       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_1_8639999 },
2859   { &hf_ilp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_StatusCode },
2860   { NULL, 0, 0, NULL }
2861 };
2862
2863 static int
2864 dissect_ilp_PRPT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2865   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2866                                    ett_ilp_PRPT, PRPT_sequence);
2867
2868   return offset;
2869 }
2870
2871
2872 static const per_sequence_t PLREQ_sequence[] = {
2873   { &hf_ilp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_LocationId },
2874   { &hf_ilp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_MultipleLocationIds },
2875   { NULL, 0, 0, NULL }
2876 };
2877
2878 static int
2879 dissect_ilp_PLREQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2880   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2881                                    ett_ilp_PLREQ, PLREQ_sequence);
2882
2883   return offset;
2884 }
2885
2886
2887 static const value_string ilp_PositionResult_vals[] = {
2888   {   0, "position" },
2889   {   1, "statusCode" },
2890   { 0, NULL }
2891 };
2892
2893 static const per_choice_t PositionResult_choice[] = {
2894   {   0, &hf_ilp_position        , ASN1_EXTENSION_ROOT    , dissect_ilp_Position },
2895   {   1, &hf_ilp_statusCode      , ASN1_EXTENSION_ROOT    , dissect_ilp_StatusCode },
2896   { 0, NULL, 0, NULL }
2897 };
2898
2899 static int
2900 dissect_ilp_PositionResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2901   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2902                                  ett_ilp_PositionResult, PositionResult_choice,
2903                                  NULL);
2904
2905   return offset;
2906 }
2907
2908
2909 static const per_sequence_t PositionResults_sequence_of[1] = {
2910   { &hf_ilp_PositionResults_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_PositionResult },
2911 };
2912
2913 static int
2914 dissect_ilp_PositionResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2915   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2916                                                   ett_ilp_PositionResults, PositionResults_sequence_of,
2917                                                   1, maxPosSize, FALSE);
2918
2919   return offset;
2920 }
2921
2922
2923 static const per_sequence_t PLRES_sequence[] = {
2924   { &hf_ilp_positionResults , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_PositionResults },
2925   { NULL, 0, 0, NULL }
2926 };
2927
2928 static int
2929 dissect_ilp_PLRES(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2930   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2931                                    ett_ilp_PLRES, PLRES_sequence);
2932
2933   return offset;
2934 }
2935
2936
2937
2938 static int
2939 dissect_ilp_INTEGER_0_167(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2940   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2941                                                             0U, 167U, NULL, FALSE);
2942
2943   return offset;
2944 }
2945
2946
2947
2948 static int
2949 dissect_ilp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2950   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2951                                                             0U, 31U, NULL, FALSE);
2952
2953   return offset;
2954 }
2955
2956
2957
2958 static int
2959 dissect_ilp_INTEGER_0_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2960   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2961                                                             0U, 10U, NULL, FALSE);
2962
2963   return offset;
2964 }
2965
2966
2967 static const per_sequence_t SatelliteInfoElement_sequence[] = {
2968   { &hf_ilp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 },
2969   { &hf_ilp_iODE            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 },
2970   { NULL, 0, 0, NULL }
2971 };
2972
2973 static int
2974 dissect_ilp_SatelliteInfoElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2975   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2976                                    ett_ilp_SatelliteInfoElement, SatelliteInfoElement_sequence);
2977
2978   return offset;
2979 }
2980
2981
2982 static const per_sequence_t SatelliteInfo_sequence_of[1] = {
2983   { &hf_ilp_SatelliteInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_SatelliteInfoElement },
2984 };
2985
2986 static int
2987 dissect_ilp_SatelliteInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2988   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2989                                                   ett_ilp_SatelliteInfo, SatelliteInfo_sequence_of,
2990                                                   1, 31, FALSE);
2991
2992   return offset;
2993 }
2994
2995
2996 static const per_sequence_t NavigationModel_sequence[] = {
2997   { &hf_ilp_gpsWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 },
2998   { &hf_ilp_gpsToe          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_167 },
2999   { &hf_ilp_nSAT            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_31 },
3000   { &hf_ilp_toeLimit        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_10 },
3001   { &hf_ilp_satInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SatelliteInfo },
3002   { NULL, 0, 0, NULL }
3003 };
3004
3005 static int
3006 dissect_ilp_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3007   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3008                                    ett_ilp_NavigationModel, NavigationModel_sequence);
3009
3010   return offset;
3011 }
3012
3013
3014 static const per_sequence_t GanssRequestedCommonAssistanceDataList_sequence[] = {
3015   { &hf_ilp_ganssReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3016   { &hf_ilp_ganssIonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3017   { &hf_ilp_ganssAdditionalIonosphericModelForDataID00, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3018   { &hf_ilp_ganssAdditionalIonosphericModelForDataID11, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3019   { &hf_ilp_ganssEarthOrientationParameters, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3020   { NULL, 0, 0, NULL }
3021 };
3022
3023 static int
3024 dissect_ilp_GanssRequestedCommonAssistanceDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3025   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3026                                    ett_ilp_GanssRequestedCommonAssistanceDataList, GanssRequestedCommonAssistanceDataList_sequence);
3027
3028   return offset;
3029 }
3030
3031
3032
3033 static int
3034 dissect_ilp_DGANSS_Sig_Id_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3035   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3036                                      8, 8, FALSE, NULL);
3037
3038   return offset;
3039 }
3040
3041
3042
3043 static int
3044 dissect_ilp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3045   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3046                                                             0U, 4095U, NULL, FALSE);
3047
3048   return offset;
3049 }
3050
3051
3052 static const per_sequence_t SatellitesListRelatedData_sequence[] = {
3053   { &hf_ilp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 },
3054   { &hf_ilp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 },
3055   { NULL, 0, 0, NULL }
3056 };
3057
3058 static int
3059 dissect_ilp_SatellitesListRelatedData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3060   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3061                                    ett_ilp_SatellitesListRelatedData, SatellitesListRelatedData_sequence);
3062
3063   return offset;
3064 }
3065
3066
3067 static const per_sequence_t SatellitesListRelatedDataList_sequence_of[1] = {
3068   { &hf_ilp_SatellitesListRelatedDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_SatellitesListRelatedData },
3069 };
3070
3071 static int
3072 dissect_ilp_SatellitesListRelatedDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3073   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3074                                                   ett_ilp_SatellitesListRelatedDataList, SatellitesListRelatedDataList_sequence_of,
3075                                                   0, maxGANSSSat, FALSE);
3076
3077   return offset;
3078 }
3079
3080
3081 static const per_sequence_t GanssNavigationModelData_sequence[] = {
3082   { &hf_ilp_ganssWeek       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4095 },
3083   { &hf_ilp_ganssToe        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_167 },
3084   { &hf_ilp_t_toeLimit      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_10 },
3085   { &hf_ilp_satellitesListRelatedDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_SatellitesListRelatedDataList },
3086   { NULL, 0, 0, NULL }
3087 };
3088
3089 static int
3090 dissect_ilp_GanssNavigationModelData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3091   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3092                                    ett_ilp_GanssNavigationModelData, GanssNavigationModelData_sequence);
3093
3094   return offset;
3095 }
3096
3097
3098
3099 static int
3100 dissect_ilp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3101   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3102                                                             0U, 59U, NULL, FALSE);
3103
3104   return offset;
3105 }
3106
3107
3108 static const per_sequence_t T_ganssDataBitSatList_sequence_of[1] = {
3109   { &hf_ilp_ganssDataBitSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 },
3110 };
3111
3112 static int
3113 dissect_ilp_T_ganssDataBitSatList(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_sequence_of(tvb, offset, actx, tree, hf_index,
3115                                                   ett_ilp_T_ganssDataBitSatList, T_ganssDataBitSatList_sequence_of,
3116                                                   1, maxGANSSSat, FALSE);
3117
3118   return offset;
3119 }
3120
3121
3122 static const per_sequence_t ReqDataBitAssistanceList_sequence[] = {
3123   { &hf_ilp_gnssSignals     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSSignals },
3124   { &hf_ilp_ganssDataBitInterval, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 },
3125   { &hf_ilp_ganssDataBitSatList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_T_ganssDataBitSatList },
3126   { NULL, 0, 0, NULL }
3127 };
3128
3129 static int
3130 dissect_ilp_ReqDataBitAssistanceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3131   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3132                                    ett_ilp_ReqDataBitAssistanceList, ReqDataBitAssistanceList_sequence);
3133
3134   return offset;
3135 }
3136
3137
3138 static const per_sequence_t GanssDataBits_sequence[] = {
3139   { &hf_ilp_ganssTODmin     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_59 },
3140   { &hf_ilp_reqDataBitAssistanceList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_ReqDataBitAssistanceList },
3141   { NULL, 0, 0, NULL }
3142 };
3143
3144 static int
3145 dissect_ilp_GanssDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3146   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3147                                    ett_ilp_GanssDataBits, GanssDataBits_sequence);
3148
3149   return offset;
3150 }
3151
3152
3153 static const per_sequence_t GanssAdditionalDataChoices_sequence[] = {
3154   { &hf_ilp_orbitModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_7 },
3155   { &hf_ilp_clockModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_7 },
3156   { &hf_ilp_utcModelID      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_7 },
3157   { &hf_ilp_almanacModelID  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_INTEGER_0_7 },
3158   { NULL, 0, 0, NULL }
3159 };
3160
3161 static int
3162 dissect_ilp_GanssAdditionalDataChoices(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3163   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3164                                    ett_ilp_GanssAdditionalDataChoices, GanssAdditionalDataChoices_sequence);
3165
3166   return offset;
3167 }
3168
3169
3170
3171 static int
3172 dissect_ilp_INTEGER_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3173   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3174                                                             1U, 256U, NULL, FALSE);
3175
3176   return offset;
3177 }
3178
3179
3180 static const per_sequence_t ExtendedEphemeris_sequence[] = {
3181   { &hf_ilp_validity        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_1_256 },
3182   { NULL, 0, 0, NULL }
3183 };
3184
3185 static int
3186 dissect_ilp_ExtendedEphemeris(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3187   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3188                                    ett_ilp_ExtendedEphemeris, ExtendedEphemeris_sequence);
3189
3190   return offset;
3191 }
3192
3193
3194
3195 static int
3196 dissect_ilp_INTEGER_0_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3197   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3198                                                             0U, 23U, NULL, FALSE);
3199
3200   return offset;
3201 }
3202
3203
3204 static const per_sequence_t GANSSextEphTime_sequence[] = {
3205   { &hf_ilp_gANSSday        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8191 },
3206   { &hf_ilp_gANSSTODhour    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_23 },
3207   { NULL, 0, 0, NULL }
3208 };
3209
3210 static int
3211 dissect_ilp_GANSSextEphTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3212   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3213                                    ett_ilp_GANSSextEphTime, GANSSextEphTime_sequence);
3214
3215   return offset;
3216 }
3217
3218
3219 static const per_sequence_t GanssExtendedEphCheck_sequence[] = {
3220   { &hf_ilp_beginTime_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSextEphTime },
3221   { &hf_ilp_endTime_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSextEphTime },
3222   { NULL, 0, 0, NULL }
3223 };
3224
3225 static int
3226 dissect_ilp_GanssExtendedEphCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3227   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3228                                    ett_ilp_GanssExtendedEphCheck, GanssExtendedEphCheck_sequence);
3229
3230   return offset;
3231 }
3232
3233
3234 static const per_sequence_t GanssReqGenericData_sequence[] = {
3235   { &hf_ilp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 },
3236   { &hf_ilp_ganssSBASid     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_BIT_STRING_SIZE_3 },
3237   { &hf_ilp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_BOOLEAN },
3238   { &hf_ilp_ganssDifferentialCorrection, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_DGANSS_Sig_Id_Req },
3239   { &hf_ilp_ganssAlmanac    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3240   { &hf_ilp_ganssNavigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_GanssNavigationModelData },
3241   { &hf_ilp_ganssTimeModels , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_BIT_STRING_SIZE_16 },
3242   { &hf_ilp_ganssReferenceMeasurementInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3243   { &hf_ilp_ganssDataBits   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_GanssDataBits },
3244   { &hf_ilp_ganssUTCModel   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3245   { &hf_ilp_ganssAdditionalDataChoices, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_GanssAdditionalDataChoices },
3246   { &hf_ilp_ganssAuxiliaryInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN },
3247   { &hf_ilp_ganssExtendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_ExtendedEphemeris },
3248   { &hf_ilp_ganssExtendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ilp_GanssExtendedEphCheck },
3249   { NULL, 0, 0, NULL }
3250 };
3251
3252 static int
3253 dissect_ilp_GanssReqGenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3254   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3255                                    ett_ilp_GanssReqGenericData, GanssReqGenericData_sequence);
3256
3257   return offset;
3258 }
3259
3260
3261 static const per_sequence_t GanssRequestedGenericAssistanceDataList_sequence_of[1] = {
3262   { &hf_ilp_GanssRequestedGenericAssistanceDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ilp_GanssReqGenericData },
3263 };
3264
3265 static int
3266 dissect_ilp_GanssRequestedGenericAssistanceDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3267   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3268                                                   ett_ilp_GanssRequestedGenericAssistanceDataList, GanssRequestedGenericAssistanceDataList_sequence_of,
3269                                                   1, maxGANSS, FALSE);
3270
3271   return offset;
3272 }
3273
3274
3275 static const per_sequence_t GPSTime_sequence[] = {
3276   { &hf_ilp_gPSWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 },
3277   { &hf_ilp_gPSTOWhour      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_167 },
3278   { NULL, 0, 0, NULL }
3279 };
3280
3281 static int
3282 dissect_ilp_GPSTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3283   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3284                                    ett_ilp_GPSTime, GPSTime_sequence);
3285
3286   return offset;
3287 }
3288