#include <stdio.h> not needed.
[obnox/wireshark/wip.git] / epan / dissectors / packet-ulp.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-ulp.c                                                               */
4 /* ../../tools/asn2wrs.py -p ulp -c ./ulp.cnf -s ./packet-ulp-template -D . ULP.asn SUPL.asn ULP-Components.asn */
5
6 /* Input file: packet-ulp-template.c */
7
8 #line 1 "packet-ulp-template.c"
9 /* packet-ulp.c
10  * Routines for OMA UserPlane Location Protocol packet dissection
11  * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  *
33  * ref OMA-TS-ULP-V1_0-20060127-C
34  * http://www.openmobilealliance.org
35  */
36
37 #ifdef HAVE_CONFIG_H
38 # include "config.h"
39 #endif
40
41 #include <glib.h>
42 #include <epan/packet.h>
43 #include <epan/prefs.h>
44 #include <epan/asn1.h>
45
46 #include <string.h>
47
48 #include "packet-per.h"
49 #include "packet-tcp.h"
50 #include "packet-gsm_map.h"
51
52 #define PNAME  "OMA UserPlane Location Protocol"
53 #define PSNAME "ULP"
54 #define PFNAME "ulp"
55
56 static dissector_handle_t rrlp_handle;
57
58 /* IANA Registered Ports  
59  * oma-ulp         7275/tcp    OMA UserPlane Location
60  * oma-ulp         7275/udp    OMA UserPlane Location
61  */
62 static guint gbl_ulp_port = 7275;
63
64 /* Initialize the protocol and registered fields */
65 static int proto_ulp = -1;
66
67
68 #define ULP_HEADER_SIZE 2
69
70 gboolean ulp_desegment = TRUE;
71
72
73 /*--- Included file: packet-ulp-hf.c ---*/
74 #line 1 "packet-ulp-hf.c"
75 static int hf_ulp_ULP_PDU_PDU = -1;               /* ULP_PDU */
76 static int hf_ulp_length = -1;                    /* INTEGER_0_65535 */
77 static int hf_ulp_version = -1;                   /* Version */
78 static int hf_ulp_sessionID = -1;                 /* SessionID */
79 static int hf_ulp_message = -1;                   /* UlpMessage */
80 static int hf_ulp_msSUPLINIT = -1;                /* SUPLINIT */
81 static int hf_ulp_msSUPLSTART = -1;               /* SUPLSTART */
82 static int hf_ulp_msSUPLRESPONSE = -1;            /* SUPLRESPONSE */
83 static int hf_ulp_msSUPLPOSINIT = -1;             /* SUPLPOSINIT */
84 static int hf_ulp_msSUPLPOS = -1;                 /* SUPLPOS */
85 static int hf_ulp_msSUPLEND = -1;                 /* SUPLEND */
86 static int hf_ulp_msSUPLAUTHREQ = -1;             /* SUPLAUTHREQ */
87 static int hf_ulp_msSUPLAUTHRESP = -1;            /* SUPLAUTHRESP */
88 static int hf_ulp_msSUPLTRIGGEREDSTART = -1;      /* Ver2_SUPLTRIGGEREDSTART */
89 static int hf_ulp_msSUPLTRIGGEREDRESPONSE = -1;   /* Ver2_SUPLTRIGGEREDRESPONSE */
90 static int hf_ulp_msSUPLTRIGGEREDSTOP = -1;       /* Ver2_SUPLTRIGGEREDSTOP */
91 static int hf_ulp_msSUPLNOTIFY = -1;              /* Ver2_SUPLNOTIFY */
92 static int hf_ulp_msSUPLNOTIFYRESPONSE = -1;      /* Ver2_SUPLNOTIFYRESPONSE */
93 static int hf_ulp_msSUPLSETINIT = -1;             /* Ver2_SUPLSETINIT */
94 static int hf_ulp_msSUPLREPORT = -1;              /* Ver2_SUPLREPORT */
95 static int hf_ulp_posMethod = -1;                 /* PosMethod */
96 static int hf_ulp_notification = -1;              /* Notification */
97 static int hf_ulp_sLPAddress = -1;                /* SLPAddress */
98 static int hf_ulp_qoP = -1;                       /* QoP */
99 static int hf_ulp_sLPMode = -1;                   /* SLPMode */
100 static int hf_ulp_mAC = -1;                       /* MAC */
101 static int hf_ulp_keyIdentity = -1;               /* KeyIdentity */
102 static int hf_ulp_ver2_SUPL_INIT_extension = -1;  /* Ver2_SUPL_INIT_extension */
103 static int hf_ulp_notificationType = -1;          /* NotificationType */
104 static int hf_ulp_encodingType = -1;              /* EncodingType */
105 static int hf_ulp_requestorId = -1;               /* OCTET_STRING_SIZE_1_maxReqLength */
106 static int hf_ulp_requestorIdType = -1;           /* FormatIndicator */
107 static int hf_ulp_clientName = -1;                /* OCTET_STRING_SIZE_1_maxClientLength */
108 static int hf_ulp_clientNameType = -1;            /* FormatIndicator */
109 static int hf_ulp_ver2_Notification_extension = -1;  /* Ver2_Notification_extension */
110 static int hf_ulp_sETCapabilities = -1;           /* SETCapabilities */
111 static int hf_ulp_locationId = -1;                /* LocationId */
112 static int hf_ulp_ver2_SUPL_START_extension = -1;  /* Ver2_SUPL_START_extension */
113 static int hf_ulp_posTechnology = -1;             /* PosTechnology */
114 static int hf_ulp_prefMethod = -1;                /* PrefMethod */
115 static int hf_ulp_posProtocol = -1;               /* PosProtocol */
116 static int hf_ulp_ver2_SETCapabilities_extension = -1;  /* Ver2_SETCapabilities_extension */
117 static int hf_ulp_agpsSETassisted = -1;           /* BOOLEAN */
118 static int hf_ulp_agpsSETBased = -1;              /* BOOLEAN */
119 static int hf_ulp_autonomousGPS = -1;             /* BOOLEAN */
120 static int hf_ulp_aFLT = -1;                      /* BOOLEAN */
121 static int hf_ulp_eCID = -1;                      /* BOOLEAN */
122 static int hf_ulp_eOTD = -1;                      /* BOOLEAN */
123 static int hf_ulp_oTDOA = -1;                     /* BOOLEAN */
124 static int hf_ulp_ver2_PosTechnology_extension = -1;  /* Ver2_PosTechnology_extension */
125 static int hf_ulp_tia801 = -1;                    /* BOOLEAN */
126 static int hf_ulp_rrlp = -1;                      /* BOOLEAN */
127 static int hf_ulp_rrc = -1;                       /* BOOLEAN */
128 static int hf_ulp_ver2_PosProtocol_extension = -1;  /* Ver2_PosProtocol_extension */
129 static int hf_ulp_sETAuthKey = -1;                /* SETAuthKey */
130 static int hf_ulp_keyIdentity4 = -1;              /* KeyIdentity4 */
131 static int hf_ulp_ver2_SUPL_RESPONSE_extension = -1;  /* Ver2_SUPL_RESPONSE_extension */
132 static int hf_ulp_shortKey = -1;                  /* BIT_STRING_SIZE_128 */
133 static int hf_ulp_longKey = -1;                   /* BIT_STRING_SIZE_256 */
134 static int hf_ulp_requestedAssistData = -1;       /* RequestedAssistData */
135 static int hf_ulp_position = -1;                  /* Position */
136 static int hf_ulp_sUPLPOS = -1;                   /* SUPLPOS */
137 static int hf_ulp_ver = -1;                       /* Ver */
138 static int hf_ulp_ver2_SUPL_POS_INIT_extension = -1;  /* Ver2_SUPL_POS_INIT_extension */
139 static int hf_ulp_almanacRequested = -1;          /* BOOLEAN */
140 static int hf_ulp_utcModelRequested = -1;         /* BOOLEAN */
141 static int hf_ulp_ionosphericModelRequested = -1;  /* BOOLEAN */
142 static int hf_ulp_dgpsCorrectionsRequested = -1;  /* BOOLEAN */
143 static int hf_ulp_referenceLocationRequested = -1;  /* BOOLEAN */
144 static int hf_ulp_referenceTimeRequested = -1;    /* BOOLEAN */
145 static int hf_ulp_acquisitionAssistanceRequested = -1;  /* BOOLEAN */
146 static int hf_ulp_realTimeIntegrityRequested = -1;  /* BOOLEAN */
147 static int hf_ulp_navigationModelRequested = -1;  /* BOOLEAN */
148 static int hf_ulp_navigationModelData = -1;       /* NavigationModel */
149 static int hf_ulp_ver2_RequestedAssistData_extension = -1;  /* Ver2_RequestedAssistData_extension */
150 static int hf_ulp_gpsWeek = -1;                   /* INTEGER_0_1023 */
151 static int hf_ulp_gpsToe = -1;                    /* INTEGER_0_167 */
152 static int hf_ulp_nSAT = -1;                      /* INTEGER_0_31 */
153 static int hf_ulp_toeLimit = -1;                  /* INTEGER_0_10 */
154 static int hf_ulp_satInfo = -1;                   /* SatelliteInfo */
155 static int hf_ulp_SatelliteInfo_item = -1;        /* SatelliteInfoElement */
156 static int hf_ulp_satId = -1;                     /* INTEGER_0_63 */
157 static int hf_ulp_iODE = -1;                      /* INTEGER_0_255 */
158 static int hf_ulp_posPayLoad = -1;                /* PosPayLoad */
159 static int hf_ulp_velocity = -1;                  /* Velocity */
160 static int hf_ulp_ver2_SUPL_POS_extension = -1;   /* Ver2_SUPL_POS_extension */
161 static int hf_ulp_tia801payload = -1;             /* OCTET_STRING_SIZE_1_8192 */
162 static int hf_ulp_rrcPayload = -1;                /* OCTET_STRING_SIZE_1_8192 */
163 static int hf_ulp_rrlpPayload = -1;               /* T_rrlpPayload */
164 static int hf_ulp_ver2_PosPayLoad_extension = -1;  /* Ver2_PosPayLoad_extension */
165 static int hf_ulp_statusCode = -1;                /* StatusCode */
166 static int hf_ulp_ver2_SUPL_END_extension = -1;   /* Ver2_SUPL_END_extension */
167 static int hf_ulp_sPCSETKey = -1;                 /* SPCSETKey */
168 static int hf_ulp_sPCTID = -1;                    /* SPCTID */
169 static int hf_ulp_sPCSETKeylifetime = -1;         /* SPCSETKeylifetime */
170 static int hf_ulp_notificationResponse = -1;      /* NotificationResponse */
171 static int hf_ulp_targetSETID = -1;               /* SETId */
172 static int hf_ulp_applicationID = -1;             /* ApplicationID */
173 static int hf_ulp_multipleLocationIds = -1;       /* MultipleLocationIds */
174 static int hf_ulp_thirdParty = -1;                /* ThirdParty */
175 static int hf_ulp_triggerType = -1;               /* TriggerType */
176 static int hf_ulp_triggerParams = -1;             /* TriggerParams */
177 static int hf_ulp_reportingCap = -1;              /* ReportingCap */
178 static int hf_ulp_causeCode = -1;                 /* CauseCode */
179 static int hf_ulp_periodicParams = -1;            /* PeriodicParams */
180 static int hf_ulp_areaEventParams = -1;           /* AreaEventParams */
181 static int hf_ulp_numberOfFixes = -1;             /* INTEGER_1_8639999 */
182 static int hf_ulp_intervalBetweenFixes = -1;      /* INTEGER_1_8639999 */
183 static int hf_ulp_startTime = -1;                 /* INTEGER_0_2678400 */
184 static int hf_ulp_areaEventType = -1;             /* AreaEventType */
185 static int hf_ulp_locationEstimate = -1;          /* BOOLEAN */
186 static int hf_ulp_repeatedReportingParams = -1;   /* RepeatedReportingParams */
187 static int hf_ulp_stopTime = -1;                  /* INTEGER_0_11318399 */
188 static int hf_ulp_geographicTargetAreaList = -1;  /* GeographicTargetAreaList */
189 static int hf_ulp_areaIdLists = -1;               /* SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList */
190 static int hf_ulp_areaIdLists_item = -1;          /* AreaIdList */
191 static int hf_ulp_minimumIntervalTime = -1;       /* INTEGER_1_604800 */
192 static int hf_ulp_maximumNumberOfReports = -1;    /* INTEGER_1_1024 */
193 static int hf_ulp_GeographicTargetAreaList_item = -1;  /* GeographicTargetArea */
194 static int hf_ulp_circularArea = -1;              /* CircularArea */
195 static int hf_ulp_ellipticalArea = -1;            /* EllipticalArea */
196 static int hf_ulp_polygonArea = -1;               /* PolygonArea */
197 static int hf_ulp_areaIdSet = -1;                 /* AreaIdSet */
198 static int hf_ulp_areaIdSetType = -1;             /* AreaIdSetType */
199 static int hf_ulp_geoAreaMappingList = -1;        /* GeoAreaMappingList */
200 static int hf_ulp_AreaIdSet_item = -1;            /* AreaId */
201 static int hf_ulp_gSMAreaId = -1;                 /* GSMAreaId */
202 static int hf_ulp_wCDMAAreaId = -1;               /* WCDMAAreaId */
203 static int hf_ulp_cDMAAreaId = -1;                /* CDMAAreaId */
204 static int hf_ulp_hRPDAreaId = -1;                /* HRPDAreaId */
205 static int hf_ulp_uMBAreaId = -1;                 /* UMBAreaId */
206 static int hf_ulp_lTEAreaId = -1;                 /* LTEAreaId */
207 static int hf_ulp_wLANAreaId = -1;                /* WLANAreaId */
208 static int hf_ulp_wiMAXAreaId = -1;               /* WimaxAreaId */
209 static int hf_ulp_refMCC = -1;                    /* INTEGER_0_999 */
210 static int hf_ulp_refMNC = -1;                    /* INTEGER_0_999 */
211 static int hf_ulp_refLAC = -1;                    /* INTEGER_0_65535 */
212 static int hf_ulp_refCI = -1;                     /* INTEGER_0_65535 */
213 static int hf_ulp_refUC = -1;                     /* INTEGER_0_268435455 */
214 static int hf_ulp_refSID = -1;                    /* INTEGER_0_65535 */
215 static int hf_ulp_refNID = -1;                    /* INTEGER_0_32767 */
216 static int hf_ulp_refBASEID = -1;                 /* INTEGER_0_65535 */
217 static int hf_ulp_refSECTORID = -1;               /* BIT_STRING_SIZE_128 */
218 static int hf_ulp_refCI_01 = -1;                  /* BIT_STRING_SIZE_29 */
219 static int hf_ulp_apMACAddress = -1;              /* BIT_STRING_SIZE_48 */
220 static int hf_ulp_bsID_MSB = -1;                  /* BIT_STRING_SIZE_24 */
221 static int hf_ulp_bsID_LSB = -1;                  /* BIT_STRING_SIZE_24 */
222 static int hf_ulp_GeoAreaMappingList_item = -1;   /* GeoAreaIndex */
223 static int hf_ulp_supportedNetworkInformation = -1;  /* SupportedNetworkInformation */
224 static int hf_ulp_reportingMode = -1;             /* ReportingMode */
225 static int hf_ulp_gnssPosTechnology = -1;         /* GNSSPosTechnology */
226 static int hf_ulp_repMode = -1;                   /* RepMode */
227 static int hf_ulp_batchRepConditions = -1;        /* BatchRepConditions */
228 static int hf_ulp_batchRepType = -1;              /* BatchRepType */
229 static int hf_ulp_num_interval = -1;              /* INTEGER_1_1024 */
230 static int hf_ulp_num_minutes = -1;               /* INTEGER_1_2048 */
231 static int hf_ulp_endofsession = -1;              /* NULL */
232 static int hf_ulp_reportPosition = -1;            /* BOOLEAN */
233 static int hf_ulp_reportMeasurements = -1;        /* BOOLEAN */
234 static int hf_ulp_intermediateReports = -1;       /* BOOLEAN */
235 static int hf_ulp_discardOldest = -1;             /* BOOLEAN */
236 static int hf_ulp_sessionList = -1;               /* SessionList */
237 static int hf_ulp_reportDataList = -1;            /* ReportDataList */
238 static int hf_ulp_moreComponents = -1;            /* NULL */
239 static int hf_ulp_SessionList_item = -1;          /* SessionInformation */
240 static int hf_ulp_ReportDataList_item = -1;       /* ReportData */
241 static int hf_ulp_positionData = -1;              /* PositionData */
242 static int hf_ulp_resultCode = -1;                /* ResultCode */
243 static int hf_ulp_timestamp = -1;                 /* TimeStamp */
244 static int hf_ulp_ganssSignalsInfo = -1;          /* GANSSsignalsInfo */
245 static int hf_ulp_GANSSsignalsInfo_item = -1;     /* GANSSSignalsDescription */
246 static int hf_ulp_ganssId = -1;                   /* INTEGER_0_15 */
247 static int hf_ulp_gANSSSignals = -1;              /* GANSSSignals */
248 static int hf_ulp_absoluteTime = -1;              /* UTCTime */
249 static int hf_ulp_relativeTime = -1;              /* INTEGER_0_31536000 */
250 static int hf_ulp_notificationMode = -1;          /* NotificationMode */
251 static int hf_ulp_e_SLPAddress = -1;              /* SLPAddress */
252 static int hf_ulp_historicReporting = -1;         /* HistoricReporting */
253 static int hf_ulp_protectionLevel = -1;           /* ProtectionLevel */
254 static int hf_ulp_minimumMajorVersion = -1;       /* INTEGER_0_255 */
255 static int hf_ulp_allowedReportingType = -1;      /* AllowedReportingType */
256 static int hf_ulp_reportingCriteria = -1;         /* ReportingCriteria */
257 static int hf_ulp_timeWindow = -1;                /* TimeWindow */
258 static int hf_ulp_maxNumberofReports = -1;        /* INTEGER_1_65536 */
259 static int hf_ulp_minTimeInterval = -1;           /* INTEGER_1_86400 */
260 static int hf_ulp_startTime_01 = -1;              /* INTEGER_M525600_M1 */
261 static int hf_ulp_stopTime_01 = -1;               /* INTEGER_M525599_0 */
262 static int hf_ulp_protlevel = -1;                 /* ProtLevel */
263 static int hf_ulp_basicProtectionParams = -1;     /* BasicProtectionParams */
264 static int hf_ulp_keyIdentifier = -1;             /* OCTET_STRING_SIZE_8 */
265 static int hf_ulp_basicReplayCounter = -1;        /* INTEGER_0_65535 */
266 static int hf_ulp_basicMAC = -1;                  /* BIT_STRING_SIZE_32 */
267 static int hf_ulp_initialApproximateposition = -1;  /* Position */
268 static int hf_ulp_utran_GPSReferenceTimeResult = -1;  /* UTRAN_GPSReferenceTimeResult */
269 static int hf_ulp_utran_GANSSReferenceTimeResult = -1;  /* UTRAN_GANSSReferenceTimeResult */
270 static int hf_ulp_utran_GPSReferenceTimeAssistance = -1;  /* UTRAN_GPSReferenceTimeAssistance */
271 static int hf_ulp_utran_GANSSReferenceTimeAssistance = -1;  /* UTRAN_GANSSReferenceTimeAssistance */
272 static int hf_ulp_emergencyCallLocation = -1;     /* NULL */
273 static int hf_ulp_serviceCapabilities = -1;       /* ServiceCapabilities */
274 static int hf_ulp_servicesSupported = -1;         /* ServicesSupported */
275 static int hf_ulp_reportingCapabilities = -1;     /* ReportingCap */
276 static int hf_ulp_eventTriggerCapabilities = -1;  /* EventTriggerCapabilities */
277 static int hf_ulp_sessionCapabilities = -1;       /* SessionCapabilities */
278 static int hf_ulp_periodicTrigger = -1;           /* BOOLEAN */
279 static int hf_ulp_areaEventTrigger = -1;          /* BOOLEAN */
280 static int hf_ulp_geoAreaShapesSupported = -1;    /* GeoAreaShapesSupported */
281 static int hf_ulp_maxNumGeoAreaSupported = -1;    /* INTEGER_0_maxNumGeoArea */
282 static int hf_ulp_maxAreaIdListSupported = -1;    /* INTEGER_0_maxAreaIdList */
283 static int hf_ulp_maxAreaIdSupportedPerList = -1;  /* INTEGER_0_maxAreaId */
284 static int hf_ulp_ellipticalArea_01 = -1;         /* BOOLEAN */
285 static int hf_ulp_polygonArea_01 = -1;            /* BOOLEAN */
286 static int hf_ulp_maxNumberTotalSessions = -1;    /* INTEGER_1_128 */
287 static int hf_ulp_maxNumberPeriodicSessions = -1;  /* INTEGER_1_32 */
288 static int hf_ulp_maxNumberTriggeredSessions = -1;  /* INTEGER_1_32 */
289 static int hf_ulp_lpp = -1;                       /* BOOLEAN */
290 static int hf_ulp_posProtocolVersionRRLP = -1;    /* PosProtocolVersion3GPP */
291 static int hf_ulp_posProtocolVersionRRC = -1;     /* PosProtocolVersion3GPP */
292 static int hf_ulp_posProtocolVersionTIA801 = -1;  /* PosProtocolVersion3GPP2 */
293 static int hf_ulp_posProtocolVersionLPP = -1;     /* PosProtocolVersion3GPP */
294 static int hf_ulp_majorVersionField = -1;         /* INTEGER_0_255 */
295 static int hf_ulp_technicalVersionField = -1;     /* INTEGER_0_255 */
296 static int hf_ulp_editorialVersionField = -1;     /* INTEGER_0_255 */
297 static int hf_ulp_PosProtocolVersion3GPP2_item = -1;  /* Supported3GPP2PosProtocolVersion */
298 static int hf_ulp_revisionNumber = -1;            /* BIT_STRING_SIZE_6 */
299 static int hf_ulp_pointReleaseNumber = -1;        /* INTEGER_0_255 */
300 static int hf_ulp_internalEditLevel = -1;         /* INTEGER_0_255 */
301 static int hf_ulp_gANSSPositionMethods = -1;      /* GANSSPositionMethods */
302 static int hf_ulp_GANSSPositionMethods_item = -1;  /* GANSSPositionMethod */
303 static int hf_ulp_ganssSBASid = -1;               /* BIT_STRING_SIZE_3 */
304 static int hf_ulp_gANSSPositioningMethodTypes = -1;  /* GANSSPositioningMethodTypes */
305 static int hf_ulp_setAssisted = -1;               /* BOOLEAN */
306 static int hf_ulp_setBased = -1;                  /* BOOLEAN */
307 static int hf_ulp_autonomous = -1;                /* BOOLEAN */
308 static int hf_ulp_ganssRequestedCommonAssistanceDataList = -1;  /* GanssRequestedCommonAssistanceDataList */
309 static int hf_ulp_ganssRequestedGenericAssistanceDataList = -1;  /* GanssRequestedGenericAssistanceDataList */
310 static int hf_ulp_extendedEphemeris = -1;         /* ExtendedEphemeris */
311 static int hf_ulp_extendedEphemerisCheck = -1;    /* ExtendedEphCheck */
312 static int hf_ulp_ganssReferenceTime = -1;        /* BOOLEAN */
313 static int hf_ulp_ganssIonosphericModel = -1;     /* BOOLEAN */
314 static int hf_ulp_ganssAdditionalIonosphericModelForDataID00 = -1;  /* BOOLEAN */
315 static int hf_ulp_ganssAdditionalIonosphericModelForDataID11 = -1;  /* BOOLEAN */
316 static int hf_ulp_ganssEarthOrientationParameters = -1;  /* BOOLEAN */
317 static int hf_ulp_GanssRequestedGenericAssistanceDataList_item = -1;  /* GanssReqGenericData */
318 static int hf_ulp_ganssRealTimeIntegrity = -1;    /* BOOLEAN */
319 static int hf_ulp_ganssDifferentialCorrection = -1;  /* DGANSS_Sig_Id_Req */
320 static int hf_ulp_ganssAlmanac = -1;              /* BOOLEAN */
321 static int hf_ulp_ganssNavigationModelData = -1;  /* GanssNavigationModelData */
322 static int hf_ulp_ganssTimeModels = -1;           /* BIT_STRING_SIZE_16 */
323 static int hf_ulp_ganssReferenceMeasurementInfo = -1;  /* BOOLEAN */
324 static int hf_ulp_ganssDataBits = -1;             /* GanssDataBits */
325 static int hf_ulp_ganssUTCModel = -1;             /* BOOLEAN */
326 static int hf_ulp_ganssAdditionalDataChoices = -1;  /* GanssAdditionalDataChoices */
327 static int hf_ulp_ganssAuxiliaryInformation = -1;  /* BOOLEAN */
328 static int hf_ulp_ganssExtendedEphemeris = -1;    /* ExtendedEphemeris */
329 static int hf_ulp_ganssExtendedEphemerisCheck = -1;  /* GanssExtendedEphCheck */
330 static int hf_ulp_ganssWeek = -1;                 /* INTEGER_0_4095 */
331 static int hf_ulp_ganssToe = -1;                  /* INTEGER_0_167 */
332 static int hf_ulp_t_toeLimit = -1;                /* INTEGER_0_15 */
333 static int hf_ulp_satellitesListRelatedDataList = -1;  /* SatellitesListRelatedDataList */
334 static int hf_ulp_SatellitesListRelatedDataList_item = -1;  /* SatellitesListRelatedData */
335 static int hf_ulp_iod = -1;                       /* INTEGER_0_1023 */
336 static int hf_ulp_ganssTODmin = -1;               /* INTEGER_0_59 */
337 static int hf_ulp_reqDataBitAssistanceList = -1;  /* ReqDataBitAssistanceList */
338 static int hf_ulp_gnssSignals = -1;               /* GANSSSignals */
339 static int hf_ulp_ganssDataBitInterval = -1;      /* INTEGER_0_15 */
340 static int hf_ulp_ganssDataBitSatList = -1;       /* T_ganssDataBitSatList */
341 static int hf_ulp_ganssDataBitSatList_item = -1;  /* INTEGER_0_63 */
342 static int hf_ulp_orbitModelID = -1;              /* INTEGER_0_7 */
343 static int hf_ulp_clockModelID = -1;              /* INTEGER_0_7 */
344 static int hf_ulp_utcModelID = -1;                /* INTEGER_0_7 */
345 static int hf_ulp_almanacModelID = -1;            /* INTEGER_0_7 */
346 static int hf_ulp_validity = -1;                  /* INTEGER_1_256 */
347 static int hf_ulp_beginTime = -1;                 /* GPSTime */
348 static int hf_ulp_endTime = -1;                   /* GPSTime */
349 static int hf_ulp_beginTime_01 = -1;              /* GANSSextEphTime */
350 static int hf_ulp_endTime_01 = -1;                /* GANSSextEphTime */
351 static int hf_ulp_gPSWeek = -1;                   /* INTEGER_0_1023 */
352 static int hf_ulp_gPSTOWhour = -1;                /* INTEGER_0_167 */
353 static int hf_ulp_gANSSday = -1;                  /* INTEGER_0_8191 */
354 static int hf_ulp_gANSSTODhour = -1;              /* INTEGER_0_23 */
355 static int hf_ulp_lPPPayload = -1;                /* OCTET_STRING_SIZE_1_8192 */
356 static int hf_ulp_maj = -1;                       /* INTEGER_0_255 */
357 static int hf_ulp_min = -1;                       /* INTEGER_0_255 */
358 static int hf_ulp_servind = -1;                   /* INTEGER_0_255 */
359 static int hf_ulp_setSessionID = -1;              /* SetSessionID */
360 static int hf_ulp_slpSessionID = -1;              /* SlpSessionID */
361 static int hf_ulp_sessionId = -1;                 /* INTEGER_0_65535 */
362 static int hf_ulp_setId = -1;                     /* SETId */
363 static int hf_ulp_msisdn = -1;                    /* T_msisdn */
364 static int hf_ulp_mdn = -1;                       /* OCTET_STRING_SIZE_8 */
365 static int hf_ulp_minsi = -1;                     /* BIT_STRING_SIZE_34 */
366 static int hf_ulp_imsi = -1;                      /* T_imsi */
367 static int hf_ulp_nai = -1;                       /* IA5String_SIZE_1_1000 */
368 static int hf_ulp_iPAddress = -1;                 /* IPAddress */
369 static int hf_ulp_sessionSlpID = -1;              /* OCTET_STRING_SIZE_4 */
370 static int hf_ulp_slpId = -1;                     /* SLPAddress */
371 static int hf_ulp_ipv4Address = -1;               /* OCTET_STRING_SIZE_4 */
372 static int hf_ulp_ipv6Address = -1;               /* OCTET_STRING_SIZE_16 */
373 static int hf_ulp_fQDN = -1;                      /* FQDN */
374 static int hf_ulp_cellInfo = -1;                  /* CellInfo */
375 static int hf_ulp_status = -1;                    /* Status */
376 static int hf_ulp_gsmCell = -1;                   /* GsmCellInformation */
377 static int hf_ulp_wcdmaCell = -1;                 /* WcdmaCellInformation */
378 static int hf_ulp_cdmaCell = -1;                  /* CdmaCellInformation */
379 static int hf_ulp_ver2_CellInfo_extension = -1;   /* Ver2_CellInfo_extension */
380 static int hf_ulp_timestamp_01 = -1;              /* UTCTime */
381 static int hf_ulp_positionEstimate = -1;          /* PositionEstimate */
382 static int hf_ulp_latitudeSign = -1;              /* T_latitudeSign */
383 static int hf_ulp_latitude = -1;                  /* INTEGER_0_8388607 */
384 static int hf_ulp_longitude = -1;                 /* INTEGER_M8388608_8388607 */
385 static int hf_ulp_uncertainty = -1;               /* T_uncertainty */
386 static int hf_ulp_uncertaintySemiMajor = -1;      /* INTEGER_0_127 */
387 static int hf_ulp_uncertaintySemiMinor = -1;      /* INTEGER_0_127 */
388 static int hf_ulp_orientationMajorAxis = -1;      /* INTEGER_0_180 */
389 static int hf_ulp_confidence = -1;                /* INTEGER_0_100 */
390 static int hf_ulp_altitudeInfo = -1;              /* AltitudeInfo */
391 static int hf_ulp_altitudeDirection = -1;         /* T_altitudeDirection */
392 static int hf_ulp_altitude = -1;                  /* INTEGER_0_32767 */
393 static int hf_ulp_altUncertainty = -1;            /* INTEGER_0_127 */
394 static int hf_ulp_refNID_01 = -1;                 /* INTEGER_0_65535 */
395 static int hf_ulp_refSID_01 = -1;                 /* INTEGER_0_32767 */
396 static int hf_ulp_refBASELAT = -1;                /* INTEGER_0_4194303 */
397 static int hf_ulp_reBASELONG = -1;                /* INTEGER_0_8388607 */
398 static int hf_ulp_refREFPN = -1;                  /* INTEGER_0_511 */
399 static int hf_ulp_refWeekNumber = -1;             /* INTEGER_0_65535 */
400 static int hf_ulp_refSeconds = -1;                /* INTEGER_0_4194303 */
401 static int hf_ulp_nMR = -1;                       /* NMR */
402 static int hf_ulp_tA = -1;                        /* INTEGER_0_255 */
403 static int hf_ulp_frequencyInfo = -1;             /* FrequencyInfo */
404 static int hf_ulp_primaryScramblingCode = -1;     /* INTEGER_0_511 */
405 static int hf_ulp_measuredResultsList = -1;       /* MeasuredResultsList */
406 static int hf_ulp_cellParametersId = -1;          /* INTEGER_0_127 */
407 static int hf_ulp_timingAdvance = -1;             /* TimingAdvance */
408 static int hf_ulp_tA_01 = -1;                     /* INTEGER_0_8191 */
409 static int hf_ulp_tAResolution = -1;              /* TAResolution */
410 static int hf_ulp_chipRate = -1;                  /* ChipRate */
411 static int hf_ulp_modeSpecificFrequencyInfo = -1;  /* FrequencySpecificInfo */
412 static int hf_ulp_fdd_fr = -1;                    /* FrequencyInfoFDD */
413 static int hf_ulp_tdd_fr = -1;                    /* FrequencyInfoTDD */
414 static int hf_ulp_uarfcn_UL = -1;                 /* UARFCN */
415 static int hf_ulp_uarfcn_DL = -1;                 /* UARFCN */
416 static int hf_ulp_uarfcn_Nt = -1;                 /* UARFCN */
417 static int hf_ulp_NMR_item = -1;                  /* NMRelement */
418 static int hf_ulp_aRFCN = -1;                     /* INTEGER_0_1023 */
419 static int hf_ulp_bSIC = -1;                      /* INTEGER_0_63 */
420 static int hf_ulp_rxLev = -1;                     /* INTEGER_0_63 */
421 static int hf_ulp_MeasuredResultsList_item = -1;  /* MeasuredResults */
422 static int hf_ulp_utra_CarrierRSSI = -1;          /* UTRA_CarrierRSSI */
423 static int hf_ulp_cellMeasuredResultsList = -1;   /* CellMeasuredResultsList */
424 static int hf_ulp_CellMeasuredResultsList_item = -1;  /* CellMeasuredResults */
425 static int hf_ulp_cellIdentity = -1;              /* INTEGER_0_268435455 */
426 static int hf_ulp_modeSpecificInfo = -1;          /* T_modeSpecificInfo */
427 static int hf_ulp_fdd = -1;                       /* T_fdd */
428 static int hf_ulp_primaryCPICH_Info = -1;         /* PrimaryCPICH_Info */
429 static int hf_ulp_cpich_Ec_N0 = -1;               /* CPICH_Ec_N0 */
430 static int hf_ulp_cpich_RSCP = -1;                /* CPICH_RSCP */
431 static int hf_ulp_pathloss = -1;                  /* Pathloss */
432 static int hf_ulp_tdd = -1;                       /* T_tdd */
433 static int hf_ulp_cellParametersID = -1;          /* CellParametersID */
434 static int hf_ulp_proposedTGSN = -1;              /* TGSN */
435 static int hf_ulp_primaryCCPCH_RSCP = -1;         /* PrimaryCCPCH_RSCP */
436 static int hf_ulp_timeslotISCP_List = -1;         /* TimeslotISCP_List */
437 static int hf_ulp_TimeslotISCP_List_item = -1;    /* TimeslotISCP */
438 static int hf_ulp_horacc = -1;                    /* INTEGER_0_127 */
439 static int hf_ulp_veracc = -1;                    /* INTEGER_0_127 */
440 static int hf_ulp_maxLocAge = -1;                 /* INTEGER_0_65535 */
441 static int hf_ulp_delay = -1;                     /* INTEGER_0_7 */
442 static int hf_ulp_horvel = -1;                    /* Horvel */
443 static int hf_ulp_horandvervel = -1;              /* Horandvervel */
444 static int hf_ulp_horveluncert = -1;              /* Horveluncert */
445 static int hf_ulp_horandveruncert = -1;           /* Horandveruncert */
446 static int hf_ulp_bearing = -1;                   /* BIT_STRING_SIZE_9 */
447 static int hf_ulp_horspeed = -1;                  /* BIT_STRING_SIZE_16 */
448 static int hf_ulp_verdirect = -1;                 /* BIT_STRING_SIZE_1 */
449 static int hf_ulp_verspeed = -1;                  /* BIT_STRING_SIZE_8 */
450 static int hf_ulp_uncertspeed = -1;               /* BIT_STRING_SIZE_8 */
451 static int hf_ulp_horuncertspeed = -1;            /* BIT_STRING_SIZE_8 */
452 static int hf_ulp_veruncertspeed = -1;            /* BIT_STRING_SIZE_8 */
453 static int hf_ulp_MultipleLocationIds_item = -1;  /* LocationIdData */
454 static int hf_ulp_relativetimestamp = -1;         /* RelativeTime */
455 static int hf_ulp_servingFlag = -1;               /* BOOLEAN */
456 static int hf_ulp_wLAN = -1;                      /* BOOLEAN */
457 static int hf_ulp_supportedWLANInfo = -1;         /* SupportedWLANInfo */
458 static int hf_ulp_supportedWLANApsList = -1;      /* SupportedWLANApsList */
459 static int hf_ulp_gSM = -1;                       /* BOOLEAN */
460 static int hf_ulp_wCDMA = -1;                     /* BOOLEAN */
461 static int hf_ulp_supportedWCDMAInfo = -1;        /* SupportedWCDMAInfo */
462 static int hf_ulp_cDMA = -1;                      /* BOOLEAN */
463 static int hf_ulp_hRDP = -1;                      /* BOOLEAN */
464 static int hf_ulp_uMB = -1;                       /* BOOLEAN */
465 static int hf_ulp_lTE = -1;                       /* BOOLEAN */
466 static int hf_ulp_wIMAX = -1;                     /* BOOLEAN */
467 static int hf_ulp_historic = -1;                  /* BOOLEAN */
468 static int hf_ulp_nonServing = -1;                /* BOOLEAN */
469 static int hf_ulp_uTRANGPSReferenceTime = -1;     /* BOOLEAN */
470 static int hf_ulp_uTRANGANSSReferenceTime = -1;   /* BOOLEAN */
471 static int hf_ulp_apTP = -1;                      /* BOOLEAN */
472 static int hf_ulp_apAG = -1;                      /* BOOLEAN */
473 static int hf_ulp_apSN = -1;                      /* BOOLEAN */
474 static int hf_ulp_apDevType = -1;                 /* BOOLEAN */
475 static int hf_ulp_apRSSI = -1;                    /* BOOLEAN */
476 static int hf_ulp_apChanFreq = -1;                /* BOOLEAN */
477 static int hf_ulp_apRTD = -1;                     /* BOOLEAN */
478 static int hf_ulp_setTP = -1;                     /* BOOLEAN */
479 static int hf_ulp_setAG = -1;                     /* BOOLEAN */
480 static int hf_ulp_setSN = -1;                     /* BOOLEAN */
481 static int hf_ulp_setRSSI = -1;                   /* BOOLEAN */
482 static int hf_ulp_apRepLoc = -1;                  /* BOOLEAN */
483 static int hf_ulp_supportedWLANApDataList = -1;   /* SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData */
484 static int hf_ulp_supportedWLANApDataList_item = -1;  /* SupportedWLANApData */
485 static int hf_ulp_supportedWLANapsChannel11a = -1;  /* SupportedWLANApsChannel11a */
486 static int hf_ulp_supportedWLANapsChannel11bg = -1;  /* SupportedWLANApsChannel11bg */
487 static int hf_ulp_ch34 = -1;                      /* BOOLEAN */
488 static int hf_ulp_ch36 = -1;                      /* BOOLEAN */
489 static int hf_ulp_ch38 = -1;                      /* BOOLEAN */
490 static int hf_ulp_ch40 = -1;                      /* BOOLEAN */
491 static int hf_ulp_ch42 = -1;                      /* BOOLEAN */
492 static int hf_ulp_ch44 = -1;                      /* BOOLEAN */
493 static int hf_ulp_ch46 = -1;                      /* BOOLEAN */
494 static int hf_ulp_ch48 = -1;                      /* BOOLEAN */
495 static int hf_ulp_ch52 = -1;                      /* BOOLEAN */
496 static int hf_ulp_ch56 = -1;                      /* BOOLEAN */
497 static int hf_ulp_ch60 = -1;                      /* BOOLEAN */
498 static int hf_ulp_ch64 = -1;                      /* BOOLEAN */
499 static int hf_ulp_ch149 = -1;                     /* BOOLEAN */
500 static int hf_ulp_ch153 = -1;                     /* BOOLEAN */
501 static int hf_ulp_ch157 = -1;                     /* BOOLEAN */
502 static int hf_ulp_ch161 = -1;                     /* BOOLEAN */
503 static int hf_ulp_ch1 = -1;                       /* BOOLEAN */
504 static int hf_ulp_ch2 = -1;                       /* BOOLEAN */
505 static int hf_ulp_ch3 = -1;                       /* BOOLEAN */
506 static int hf_ulp_ch4 = -1;                       /* BOOLEAN */
507 static int hf_ulp_ch5 = -1;                       /* BOOLEAN */
508 static int hf_ulp_ch6 = -1;                       /* BOOLEAN */
509 static int hf_ulp_ch7 = -1;                       /* BOOLEAN */
510 static int hf_ulp_ch8 = -1;                       /* BOOLEAN */
511 static int hf_ulp_ch9 = -1;                       /* BOOLEAN */
512 static int hf_ulp_ch10 = -1;                      /* BOOLEAN */
513 static int hf_ulp_ch11 = -1;                      /* BOOLEAN */
514 static int hf_ulp_ch12 = -1;                      /* BOOLEAN */
515 static int hf_ulp_ch13 = -1;                      /* BOOLEAN */
516 static int hf_ulp_ch14 = -1;                      /* BOOLEAN */
517 static int hf_ulp_apDevType_01 = -1;              /* T_apDevType */
518 static int hf_ulp_mRL = -1;                       /* BOOLEAN */
519 static int hf_ulp_hrpdCell = -1;                  /* HrpdCellInformation */
520 static int hf_ulp_umbCell = -1;                   /* UmbCellInformation */
521 static int hf_ulp_lteCell = -1;                   /* LteCellInformation */
522 static int hf_ulp_wlanAP = -1;                    /* WlanAPInformation */
523 static int hf_ulp_wimaxBS = -1;                   /* WimaxBSInformation */
524 static int hf_ulp_cellGlobalIdEUTRA = -1;         /* CellGlobalIdEUTRA */
525 static int hf_ulp_physCellId = -1;                /* PhysCellId */
526 static int hf_ulp_trackingAreaCode = -1;          /* TrackingAreaCode */
527 static int hf_ulp_rsrpResult = -1;                /* RSRP_Range */
528 static int hf_ulp_rsrqResult = -1;                /* RSRQ_Range */
529 static int hf_ulp_tA_02 = -1;                     /* INTEGER_0_1282 */
530 static int hf_ulp_measResultListEUTRA = -1;       /* MeasResultListEUTRA */
531 static int hf_ulp_MeasResultListEUTRA_item = -1;  /* MeasResultEUTRA */
532 static int hf_ulp_cgi_Info = -1;                  /* T_cgi_Info */
533 static int hf_ulp_cellGlobalId = -1;              /* CellGlobalIdEUTRA */
534 static int hf_ulp_measResult = -1;                /* T_measResult */
535 static int hf_ulp_plmn_Identity = -1;             /* PLMN_Identity */
536 static int hf_ulp_cellIdentity_01 = -1;           /* CellIdentity */
537 static int hf_ulp_mcc = -1;                       /* MCC */
538 static int hf_ulp_mnc = -1;                       /* MNC */
539 static int hf_ulp_MCC_item = -1;                  /* MCC_MNC_Digit */
540 static int hf_ulp_MNC_item = -1;                  /* MCC_MNC_Digit */
541 static int hf_ulp_apTransmitPower = -1;           /* INTEGER_M127_128 */
542 static int hf_ulp_apAntennaGain = -1;             /* INTEGER_M127_128 */
543 static int hf_ulp_apSignaltoNoise = -1;           /* INTEGER_M127_128 */
544 static int hf_ulp_apDeviceType = -1;              /* T_apDeviceType */
545 static int hf_ulp_apSignalStrength = -1;          /* INTEGER_M127_128 */
546 static int hf_ulp_apChannelFrequency = -1;        /* INTEGER_0_256 */
547 static int hf_ulp_apRoundTripDelay = -1;          /* RTD */
548 static int hf_ulp_setTransmitPower = -1;          /* INTEGER_M127_128 */
549 static int hf_ulp_setAntennaGain = -1;            /* INTEGER_M127_128 */
550 static int hf_ulp_setSignaltoNoise = -1;          /* INTEGER_M127_128 */
551 static int hf_ulp_setSignalStrength = -1;         /* INTEGER_M127_128 */
552 static int hf_ulp_apReportedLocation = -1;        /* ReportedLocation */
553 static int hf_ulp_rTDValue = -1;                  /* INTEGER_0_16777216 */
554 static int hf_ulp_rTDUnits = -1;                  /* RTDUnits */
555 static int hf_ulp_rTDAccuracy = -1;               /* INTEGER_0_255 */
556 static int hf_ulp_locationEncodingDescriptor = -1;  /* LocationEncodingDescriptor */
557 static int hf_ulp_locationData = -1;              /* LocationData */
558 static int hf_ulp_locationAccuracy = -1;          /* INTEGER_0_4294967295 */
559 static int hf_ulp_locationValue = -1;             /* OCTET_STRING_SIZE_1_128 */
560 static int hf_ulp_wimaxBsID = -1;                 /* WimaxBsID */
561 static int hf_ulp_wimaxRTD = -1;                  /* WimaxRTD */
562 static int hf_ulp_wimaxNMRList = -1;              /* WimaxNMRList */
563 static int hf_ulp_rTD = -1;                       /* INTEGER_0_65535 */
564 static int hf_ulp_rTDstd = -1;                    /* INTEGER_0_1023 */
565 static int hf_ulp_WimaxNMRList_item = -1;         /* WimaxNMR */
566 static int hf_ulp_relDelay = -1;                  /* INTEGER_M32768_32767 */
567 static int hf_ulp_relDelaystd = -1;               /* INTEGER_0_1023 */
568 static int hf_ulp_rSSI = -1;                      /* INTEGER_0_255 */
569 static int hf_ulp_rSSIstd = -1;                   /* INTEGER_0_63 */
570 static int hf_ulp_bSTxPower = -1;                 /* INTEGER_0_255 */
571 static int hf_ulp_cINR = -1;                      /* INTEGER_0_255 */
572 static int hf_ulp_cINRstd = -1;                   /* INTEGER_0_63 */
573 static int hf_ulp_bSLocation = -1;                /* ReportedLocation */
574 static int hf_ulp_utran_GPSReferenceTime = -1;    /* UTRAN_GPSReferenceTime */
575 static int hf_ulp_gpsReferenceTimeUncertainty = -1;  /* INTEGER_0_127 */
576 static int hf_ulp_utranGPSDriftRate = -1;         /* UTRANGPSDriftRate */
577 static int hf_ulp_utran_GPSTimingOfCell = -1;     /* T_utran_GPSTimingOfCell */
578 static int hf_ulp_ms_part = -1;                   /* INTEGER_0_1023 */
579 static int hf_ulp_ls_part = -1;                   /* INTEGER_0_4294967295 */
580 static int hf_ulp_modeSpecificInfo_01 = -1;       /* T_modeSpecificInfo_01 */
581 static int hf_ulp_fdd_01 = -1;                    /* T_fdd_01 */
582 static int hf_ulp_referenceIdentity = -1;         /* PrimaryCPICH_Info */
583 static int hf_ulp_tdd_01 = -1;                    /* T_tdd_01 */
584 static int hf_ulp_referenceIdentity_01 = -1;      /* CellParametersID */
585 static int hf_ulp_sfn = -1;                       /* INTEGER_0_4095 */
586 static int hf_ulp_set_GPSTimingOfCell = -1;       /* T_set_GPSTimingOfCell */
587 static int hf_ulp_ms_part_01 = -1;                /* INTEGER_0_16383 */
588 static int hf_ulp_modeSpecificInfo_02 = -1;       /* T_modeSpecificInfo_02 */
589 static int hf_ulp_fdd_02 = -1;                    /* T_fdd_02 */
590 static int hf_ulp_tdd_02 = -1;                    /* T_tdd_02 */
591 static int hf_ulp_ganssDay = -1;                  /* INTEGER_0_8191 */
592 static int hf_ulp_ganssTimeID = -1;               /* INTEGER_0_15 */
593 static int hf_ulp_utran_GANSSReferenceTime = -1;  /* UTRAN_GANSSReferenceTime */
594 static int hf_ulp_utranGANSSDriftRate = -1;       /* UTRANGANSSDriftRate */
595 static int hf_ulp_ganssTOD = -1;                  /* INTEGER_0_86399 */
596 static int hf_ulp_utran_GANSSTimingOfCell = -1;   /* INTEGER_0_3999999 */
597 static int hf_ulp_modeSpecificInfo_03 = -1;       /* T_modeSpecificInfo_03 */
598 static int hf_ulp_fdd_03 = -1;                    /* T_fdd_03 */
599 static int hf_ulp_tdd_03 = -1;                    /* T_tdd_03 */
600 static int hf_ulp_ganss_TODUncertainty = -1;      /* INTEGER_0_127 */
601 static int hf_ulp_set_GANSSReferenceTime = -1;    /* SET_GANSSReferenceTime */
602 static int hf_ulp_set_GANSSTimingOfCell = -1;     /* T_set_GANSSTimingOfCell */
603 static int hf_ulp_ms_part_02 = -1;                /* INTEGER_0_80 */
604 static int hf_ulp_modeSpecificInfo_04 = -1;       /* T_modeSpecificInfo_04 */
605 static int hf_ulp_fdd_04 = -1;                    /* T_fdd_04 */
606 static int hf_ulp_tdd_04 = -1;                    /* T_tdd_04 */
607 static int hf_ulp_gps = -1;                       /* BOOLEAN */
608 static int hf_ulp_galileo = -1;                   /* BOOLEAN */
609 static int hf_ulp_sbas = -1;                      /* BOOLEAN */
610 static int hf_ulp_modernized_gps = -1;            /* BOOLEAN */
611 static int hf_ulp_qzss = -1;                      /* BOOLEAN */
612 static int hf_ulp_glonass = -1;                   /* BOOLEAN */
613 static int hf_ulp_rAND = -1;                      /* BIT_STRING_SIZE_128 */
614 static int hf_ulp_slpFQDN = -1;                   /* FQDN */
615 static int hf_ulp_ThirdParty_item = -1;           /* ThirdPartyID */
616 static int hf_ulp_logicalName = -1;               /* IA5String_SIZE_1_1000 */
617 static int hf_ulp_msisdn_01 = -1;                 /* OCTET_STRING_SIZE_8 */
618 static int hf_ulp_emailaddr = -1;                 /* IA5String_SIZE_1_1000 */
619 static int hf_ulp_sip_uri = -1;                   /* T_sip_uri */
620 static int hf_ulp_ims_public_identity = -1;       /* T_ims_public_identity */
621 static int hf_ulp_min_01 = -1;                    /* BIT_STRING_SIZE_34 */
622 static int hf_ulp_uri = -1;                       /* T_uri */
623 static int hf_ulp_appProvider = -1;               /* IA5String_SIZE_1_24 */
624 static int hf_ulp_appName = -1;                   /* IA5String_SIZE_1_32 */
625 static int hf_ulp_appVersion = -1;                /* IA5String_SIZE_1_8 */
626 static int hf_ulp_minInt = -1;                    /* INTEGER_1_3600 */
627 static int hf_ulp_maxInt = -1;                    /* INTEGER_1_1440 */
628 static int hf_ulp_repMode_01 = -1;                /* RepMode_cap */
629 static int hf_ulp_batchRepCap = -1;               /* BatchRepCap */
630 static int hf_ulp_realtime = -1;                  /* BOOLEAN */
631 static int hf_ulp_quasirealtime = -1;             /* BOOLEAN */
632 static int hf_ulp_batch = -1;                     /* BOOLEAN */
633 static int hf_ulp_report_position = -1;           /* BOOLEAN */
634 static int hf_ulp_report_measurements = -1;       /* BOOLEAN */
635 static int hf_ulp_max_num_positions = -1;         /* INTEGER_1_1024 */
636 static int hf_ulp_max_num_measurements = -1;      /* INTEGER_1_1024 */
637 static int hf_ulp_latitudeSign_01 = -1;           /* T_latitudeSign_01 */
638 static int hf_ulp_coordinate = -1;                /* Coordinate */
639 static int hf_ulp_radius = -1;                    /* INTEGER_1_1000000 */
640 static int hf_ulp_radius_min = -1;                /* INTEGER_1_1000000 */
641 static int hf_ulp_radius_max = -1;                /* INTEGER_1_1500000 */
642 static int hf_ulp_semiMajor = -1;                 /* INTEGER_1_1000000 */
643 static int hf_ulp_semiMajor_min = -1;             /* INTEGER_1_1000000 */
644 static int hf_ulp_semiMajor_max = -1;             /* INTEGER_1_1500000 */
645 static int hf_ulp_semiMinor = -1;                 /* INTEGER_1_1000000 */
646 static int hf_ulp_semiMinor_min = -1;             /* INTEGER_1_1000000 */
647 static int hf_ulp_semiMinor_max = -1;             /* INTEGER_1_1500000 */
648 static int hf_ulp_angle = -1;                     /* INTEGER_0_179 */
649 static int hf_ulp_polygonDescription = -1;        /* PolygonDescription */
650 static int hf_ulp_polygonHysteresis = -1;         /* INTEGER_1_100000 */
651 static int hf_ulp_PolygonDescription_item = -1;   /* Coordinate */
652 /* named bits */
653 static int hf_ulp_GANSSSignals_signal1 = -1;
654 static int hf_ulp_GANSSSignals_signal2 = -1;
655 static int hf_ulp_GANSSSignals_signal3 = -1;
656 static int hf_ulp_GANSSSignals_signal4 = -1;
657 static int hf_ulp_GANSSSignals_signal5 = -1;
658 static int hf_ulp_GANSSSignals_signal6 = -1;
659 static int hf_ulp_GANSSSignals_signal7 = -1;
660 static int hf_ulp_GANSSSignals_signal8 = -1;
661
662 /*--- End of included file: packet-ulp-hf.c ---*/
663 #line 65 "packet-ulp-template.c"
664
665 /* Initialize the subtree pointers */
666 static gint ett_ulp = -1;
667
668 /*--- Included file: packet-ulp-ett.c ---*/
669 #line 1 "packet-ulp-ett.c"
670 static gint ett_ulp_ULP_PDU = -1;
671 static gint ett_ulp_UlpMessage = -1;
672 static gint ett_ulp_SUPLINIT = -1;
673 static gint ett_ulp_Notification = -1;
674 static gint ett_ulp_SUPLSTART = -1;
675 static gint ett_ulp_SETCapabilities = -1;
676 static gint ett_ulp_PosTechnology = -1;
677 static gint ett_ulp_PosProtocol = -1;
678 static gint ett_ulp_SUPLRESPONSE = -1;
679 static gint ett_ulp_SETAuthKey = -1;
680 static gint ett_ulp_SUPLPOSINIT = -1;
681 static gint ett_ulp_RequestedAssistData = -1;
682 static gint ett_ulp_NavigationModel = -1;
683 static gint ett_ulp_SatelliteInfo = -1;
684 static gint ett_ulp_SatelliteInfoElement = -1;
685 static gint ett_ulp_SUPLPOS = -1;
686 static gint ett_ulp_PosPayLoad = -1;
687 static gint ett_ulp_SUPLEND = -1;
688 static gint ett_ulp_SUPLAUTHREQ = -1;
689 static gint ett_ulp_SUPLAUTHRESP = -1;
690 static gint ett_ulp_Ver2_SUPLNOTIFY = -1;
691 static gint ett_ulp_Ver2_SUPLNOTIFYRESPONSE = -1;
692 static gint ett_ulp_Ver2_SUPLSETINIT = -1;
693 static gint ett_ulp_Ver2_SUPLTRIGGEREDSTART = -1;
694 static gint ett_ulp_TriggerParams = -1;
695 static gint ett_ulp_PeriodicParams = -1;
696 static gint ett_ulp_AreaEventParams = -1;
697 static gint ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList = -1;
698 static gint ett_ulp_RepeatedReportingParams = -1;
699 static gint ett_ulp_GeographicTargetAreaList = -1;
700 static gint ett_ulp_GeographicTargetArea = -1;
701 static gint ett_ulp_AreaIdList = -1;
702 static gint ett_ulp_AreaIdSet = -1;
703 static gint ett_ulp_AreaId = -1;
704 static gint ett_ulp_GSMAreaId = -1;
705 static gint ett_ulp_WCDMAAreaId = -1;
706 static gint ett_ulp_CDMAAreaId = -1;
707 static gint ett_ulp_HRPDAreaId = -1;
708 static gint ett_ulp_UMBAreaId = -1;
709 static gint ett_ulp_LTEAreaId = -1;
710 static gint ett_ulp_WLANAreaId = -1;
711 static gint ett_ulp_WimaxAreaId = -1;
712 static gint ett_ulp_GeoAreaMappingList = -1;
713 static gint ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE = -1;
714 static gint ett_ulp_ReportingMode = -1;
715 static gint ett_ulp_BatchRepConditions = -1;
716 static gint ett_ulp_BatchRepType = -1;
717 static gint ett_ulp_Ver2_SUPLREPORT = -1;
718 static gint ett_ulp_SessionList = -1;
719 static gint ett_ulp_SessionInformation = -1;
720 static gint ett_ulp_ReportDataList = -1;
721 static gint ett_ulp_ReportData = -1;
722 static gint ett_ulp_PositionData = -1;
723 static gint ett_ulp_GANSSsignalsInfo = -1;
724 static gint ett_ulp_GANSSSignalsDescription = -1;
725 static gint ett_ulp_TimeStamp = -1;
726 static gint ett_ulp_Ver2_SUPLTRIGGEREDSTOP = -1;
727 static gint ett_ulp_Ver2_SUPL_INIT_extension = -1;
728 static gint ett_ulp_HistoricReporting = -1;
729 static gint ett_ulp_ReportingCriteria = -1;
730 static gint ett_ulp_TimeWindow = -1;
731 static gint ett_ulp_ProtectionLevel = -1;
732 static gint ett_ulp_BasicProtectionParams = -1;
733 static gint ett_ulp_Ver2_SUPL_START_extension = -1;
734 static gint ett_ulp_Ver2_SUPL_RESPONSE_extension = -1;
735 static gint ett_ulp_Ver2_SUPL_POS_INIT_extension = -1;
736 static gint ett_ulp_Ver2_SUPL_POS_extension = -1;
737 static gint ett_ulp_Ver2_SUPL_END_extension = -1;
738 static gint ett_ulp_Ver2_Notification_extension = -1;
739 static gint ett_ulp_Ver2_SETCapabilities_extension = -1;
740 static gint ett_ulp_ServiceCapabilities = -1;
741 static gint ett_ulp_ServicesSupported = -1;
742 static gint ett_ulp_EventTriggerCapabilities = -1;
743 static gint ett_ulp_GeoAreaShapesSupported = -1;
744 static gint ett_ulp_SessionCapabilities = -1;
745 static gint ett_ulp_Ver2_PosProtocol_extension = -1;
746 static gint ett_ulp_PosProtocolVersion3GPP = -1;
747 static gint ett_ulp_PosProtocolVersion3GPP2 = -1;
748 static gint ett_ulp_Supported3GPP2PosProtocolVersion = -1;
749 static gint ett_ulp_Ver2_PosTechnology_extension = -1;
750 static gint ett_ulp_GANSSPositionMethods = -1;
751 static gint ett_ulp_GANSSPositionMethod = -1;
752 static gint ett_ulp_GANSSPositioningMethodTypes = -1;
753 static gint ett_ulp_Ver2_RequestedAssistData_extension = -1;
754 static gint ett_ulp_GanssRequestedCommonAssistanceDataList = -1;
755 static gint ett_ulp_GanssRequestedGenericAssistanceDataList = -1;
756 static gint ett_ulp_GanssReqGenericData = -1;
757 static gint ett_ulp_GanssNavigationModelData = -1;
758 static gint ett_ulp_SatellitesListRelatedDataList = -1;
759 static gint ett_ulp_SatellitesListRelatedData = -1;
760 static gint ett_ulp_GanssDataBits = -1;
761 static gint ett_ulp_ReqDataBitAssistanceList = -1;
762 static gint ett_ulp_T_ganssDataBitSatList = -1;
763 static gint ett_ulp_GanssAdditionalDataChoices = -1;
764 static gint ett_ulp_ExtendedEphemeris = -1;
765 static gint ett_ulp_ExtendedEphCheck = -1;
766 static gint ett_ulp_GanssExtendedEphCheck = -1;
767 static gint ett_ulp_GPSTime = -1;
768 static gint ett_ulp_GANSSextEphTime = -1;
769 static gint ett_ulp_Ver2_PosPayLoad_extension = -1;
770 static gint ett_ulp_Version = -1;
771 static gint ett_ulp_SessionID = -1;
772 static gint ett_ulp_SetSessionID = -1;
773 static gint ett_ulp_SETId = -1;
774 static gint ett_ulp_SlpSessionID = -1;
775 static gint ett_ulp_IPAddress = -1;
776 static gint ett_ulp_SLPAddress = -1;
777 static gint ett_ulp_LocationId = -1;
778 static gint ett_ulp_CellInfo = -1;
779 static gint ett_ulp_Position = -1;
780 static gint ett_ulp_PositionEstimate = -1;
781 static gint ett_ulp_T_uncertainty = -1;
782 static gint ett_ulp_AltitudeInfo = -1;
783 static gint ett_ulp_CdmaCellInformation = -1;
784 static gint ett_ulp_GsmCellInformation = -1;
785 static gint ett_ulp_WcdmaCellInformation = -1;
786 static gint ett_ulp_TimingAdvance = -1;
787 static gint ett_ulp_FrequencyInfo = -1;
788 static gint ett_ulp_FrequencySpecificInfo = -1;
789 static gint ett_ulp_FrequencyInfoFDD = -1;
790 static gint ett_ulp_FrequencyInfoTDD = -1;
791 static gint ett_ulp_NMR = -1;
792 static gint ett_ulp_NMRelement = -1;
793 static gint ett_ulp_MeasuredResultsList = -1;
794 static gint ett_ulp_MeasuredResults = -1;
795 static gint ett_ulp_CellMeasuredResultsList = -1;
796 static gint ett_ulp_CellMeasuredResults = -1;
797 static gint ett_ulp_T_modeSpecificInfo = -1;
798 static gint ett_ulp_T_fdd = -1;
799 static gint ett_ulp_T_tdd = -1;
800 static gint ett_ulp_TimeslotISCP_List = -1;
801 static gint ett_ulp_PrimaryCPICH_Info = -1;
802 static gint ett_ulp_QoP = -1;
803 static gint ett_ulp_Velocity = -1;
804 static gint ett_ulp_Horvel = -1;
805 static gint ett_ulp_Horandvervel = -1;
806 static gint ett_ulp_Horveluncert = -1;
807 static gint ett_ulp_Horandveruncert = -1;
808 static gint ett_ulp_MultipleLocationIds = -1;
809 static gint ett_ulp_LocationIdData = -1;
810 static gint ett_ulp_SupportedNetworkInformation = -1;
811 static gint ett_ulp_SupportedWLANInfo = -1;
812 static gint ett_ulp_SupportedWLANApsList = -1;
813 static gint ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData = -1;
814 static gint ett_ulp_SupportedWLANApsChannel11a = -1;
815 static gint ett_ulp_SupportedWLANApsChannel11bg = -1;
816 static gint ett_ulp_SupportedWLANApData = -1;
817 static gint ett_ulp_SupportedWCDMAInfo = -1;
818 static gint ett_ulp_Ver2_CellInfo_extension = -1;
819 static gint ett_ulp_HrpdCellInformation = -1;
820 static gint ett_ulp_UmbCellInformation = -1;
821 static gint ett_ulp_LteCellInformation = -1;
822 static gint ett_ulp_MeasResultListEUTRA = -1;
823 static gint ett_ulp_MeasResultEUTRA = -1;
824 static gint ett_ulp_T_cgi_Info = -1;
825 static gint ett_ulp_T_measResult = -1;
826 static gint ett_ulp_CellGlobalIdEUTRA = -1;
827 static gint ett_ulp_PLMN_Identity = -1;
828 static gint ett_ulp_MCC = -1;
829 static gint ett_ulp_MNC = -1;
830 static gint ett_ulp_WlanAPInformation = -1;
831 static gint ett_ulp_RTD = -1;
832 static gint ett_ulp_ReportedLocation = -1;
833 static gint ett_ulp_LocationData = -1;
834 static gint ett_ulp_WimaxBSInformation = -1;
835 static gint ett_ulp_WimaxBsID = -1;
836 static gint ett_ulp_WimaxRTD = -1;
837 static gint ett_ulp_WimaxNMRList = -1;
838 static gint ett_ulp_WimaxNMR = -1;
839 static gint ett_ulp_UTRAN_GPSReferenceTimeAssistance = -1;
840 static gint ett_ulp_UTRAN_GPSReferenceTime = -1;
841 static gint ett_ulp_T_utran_GPSTimingOfCell = -1;
842 static gint ett_ulp_T_modeSpecificInfo_01 = -1;
843 static gint ett_ulp_T_fdd_01 = -1;
844 static gint ett_ulp_T_tdd_01 = -1;
845 static gint ett_ulp_UTRAN_GPSReferenceTimeResult = -1;
846 static gint ett_ulp_T_set_GPSTimingOfCell = -1;
847 static gint ett_ulp_T_modeSpecificInfo_02 = -1;
848 static gint ett_ulp_T_fdd_02 = -1;
849 static gint ett_ulp_T_tdd_02 = -1;
850 static gint ett_ulp_UTRAN_GANSSReferenceTimeAssistance = -1;
851 static gint ett_ulp_UTRAN_GANSSReferenceTime = -1;
852 static gint ett_ulp_T_modeSpecificInfo_03 = -1;
853 static gint ett_ulp_T_fdd_03 = -1;
854 static gint ett_ulp_T_tdd_03 = -1;
855 static gint ett_ulp_UTRAN_GANSSReferenceTimeResult = -1;
856 static gint ett_ulp_SET_GANSSReferenceTime = -1;
857 static gint ett_ulp_T_set_GANSSTimingOfCell = -1;
858 static gint ett_ulp_T_modeSpecificInfo_04 = -1;
859 static gint ett_ulp_T_fdd_04 = -1;
860 static gint ett_ulp_T_tdd_04 = -1;
861 static gint ett_ulp_GNSSPosTechnology = -1;
862 static gint ett_ulp_GANSSSignals = -1;
863 static gint ett_ulp_SPCTID = -1;
864 static gint ett_ulp_ThirdParty = -1;
865 static gint ett_ulp_ThirdPartyID = -1;
866 static gint ett_ulp_ApplicationID = -1;
867 static gint ett_ulp_ReportingCap = -1;
868 static gint ett_ulp_RepMode_cap = -1;
869 static gint ett_ulp_BatchRepCap = -1;
870 static gint ett_ulp_Coordinate = -1;
871 static gint ett_ulp_CircularArea = -1;
872 static gint ett_ulp_EllipticalArea = -1;
873 static gint ett_ulp_PolygonArea = -1;
874 static gint ett_ulp_PolygonDescription = -1;
875
876 /*--- End of included file: packet-ulp-ett.c ---*/
877 #line 69 "packet-ulp-template.c"
878
879 /* Include constants */
880
881 /*--- Included file: packet-ulp-val.h ---*/
882 #line 1 "packet-ulp-val.h"
883 #define maxReqLength                   50
884 #define maxClientLength                50
885 #define maxNumGeoArea                  32
886 #define maxAreaId                      256
887 #define maxAreaIdList                  32
888 #define maxnumSessions                 64
889 #define maxGANSS                       16
890 #define maxGANSSSat                    32
891 #define maxCellMeas                    32
892 #define maxFreq                        8
893 #define maxTS                          14
894 #define maxLidSize                     64
895 #define maxWLANApDataSize              128
896 #define maxCellReport                  8
897 #define maxWimaxBSMeas                 32
898
899 /*--- End of included file: packet-ulp-val.h ---*/
900 #line 72 "packet-ulp-template.c"
901
902
903
904 /*--- Included file: packet-ulp-fn.c ---*/
905 #line 1 "packet-ulp-fn.c"
906
907
908 static int
909 dissect_ulp_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
910   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
911                                                             0U, 65535U, NULL, FALSE);
912
913   return offset;
914 }
915
916
917
918 static int
919 dissect_ulp_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
920   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
921                                                             0U, 255U, NULL, FALSE);
922
923   return offset;
924 }
925
926
927 static const per_sequence_t Version_sequence[] = {
928   { &hf_ulp_maj             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
929   { &hf_ulp_min             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
930   { &hf_ulp_servind         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
931   { NULL, 0, 0, NULL }
932 };
933
934 static int
935 dissect_ulp_Version(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
936   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
937                                    ett_ulp_Version, Version_sequence);
938
939   return offset;
940 }
941
942
943
944 static int
945 dissect_ulp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
946 #line 57 "ulp.cnf"
947  tvbuff_t *parameter_tvb;
948  asn1_ctx_t             asn1_ctx;
949
950  /* "Hide" the first dissection to avoid double tree entries */
951  hf_index = -1;
952   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
953                                        8, 8, FALSE, &parameter_tvb);
954
955
956 if(!parameter_tvb)
957         return offset;
958 /* msisdn is ISDN-addressstring */
959         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
960         dissect_gsm_map_ISDN_AddressString(TRUE, parameter_tvb, 0, &asn1_ctx, tree, hf_ulp_msisdn);
961
962
963
964   return offset;
965 }
966
967
968
969 static int
970 dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
971   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
972                                        8, 8, FALSE, NULL);
973
974   return offset;
975 }
976
977
978
979 static int
980 dissect_ulp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
981   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
982                                      34, 34, FALSE, NULL);
983
984   return offset;
985 }
986
987
988
989 static int
990 dissect_ulp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
991 #line 71 "ulp.cnf"
992  tvbuff_t *parameter_tvb;
993  asn1_ctx_t             asn1_ctx;
994
995  /* "Hide" the first dissection to avoid double tree entries */
996  hf_index = -1;
997   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
998                                        8, 8, FALSE, &parameter_tvb);
999
1000
1001 if(!parameter_tvb)
1002         return offset;
1003         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
1004         dissect_gsm_map_IMSI(TRUE, parameter_tvb, 0, &asn1_ctx, tree, hf_ulp_imsi);
1005
1006
1007
1008
1009   return offset;
1010 }
1011
1012
1013
1014 static int
1015 dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1016   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1017                                           1, 1000, FALSE);
1018
1019   return offset;
1020 }
1021
1022
1023
1024 static int
1025 dissect_ulp_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1026   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1027                                        4, 4, FALSE, NULL);
1028
1029   return offset;
1030 }
1031
1032
1033
1034 static int
1035 dissect_ulp_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1036   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1037                                        16, 16, FALSE, NULL);
1038
1039   return offset;
1040 }
1041
1042
1043 static const value_string ulp_IPAddress_vals[] = {
1044   {   0, "ipv4Address" },
1045   {   1, "ipv6Address" },
1046   { 0, NULL }
1047 };
1048
1049 static const per_choice_t IPAddress_choice[] = {
1050   {   0, &hf_ulp_ipv4Address     , ASN1_NO_EXTENSIONS     , dissect_ulp_OCTET_STRING_SIZE_4 },
1051   {   1, &hf_ulp_ipv6Address     , ASN1_NO_EXTENSIONS     , dissect_ulp_OCTET_STRING_SIZE_16 },
1052   { 0, NULL, 0, NULL }
1053 };
1054
1055 static int
1056 dissect_ulp_IPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1057   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1058                                  ett_ulp_IPAddress, IPAddress_choice,
1059                                  NULL);
1060
1061   return offset;
1062 }
1063
1064
1065 static const value_string ulp_SETId_vals[] = {
1066   {   0, "msisdn" },
1067   {   1, "mdn" },
1068   {   2, "min" },
1069   {   3, "imsi" },
1070   {   4, "nai" },
1071   {   5, "iPAddress" },
1072   { 0, NULL }
1073 };
1074
1075 static const per_choice_t SETId_choice[] = {
1076   {   0, &hf_ulp_msisdn          , ASN1_EXTENSION_ROOT    , dissect_ulp_T_msisdn },
1077   {   1, &hf_ulp_mdn             , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_8 },
1078   {   2, &hf_ulp_minsi           , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_34 },
1079   {   3, &hf_ulp_imsi            , ASN1_EXTENSION_ROOT    , dissect_ulp_T_imsi },
1080   {   4, &hf_ulp_nai             , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
1081   {   5, &hf_ulp_iPAddress       , ASN1_EXTENSION_ROOT    , dissect_ulp_IPAddress },
1082   { 0, NULL, 0, NULL }
1083 };
1084
1085 static int
1086 dissect_ulp_SETId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1087   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1088                                  ett_ulp_SETId, SETId_choice,
1089                                  NULL);
1090
1091   return offset;
1092 }
1093
1094
1095 static const per_sequence_t SetSessionID_sequence[] = {
1096   { &hf_ulp_sessionId       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
1097   { &hf_ulp_setId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SETId },
1098   { NULL, 0, 0, NULL }
1099 };
1100
1101 static int
1102 dissect_ulp_SetSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1103   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1104                                    ett_ulp_SetSessionID, SetSessionID_sequence);
1105
1106   return offset;
1107 }
1108
1109
1110
1111 static int
1112 dissect_ulp_FQDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1113   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1114                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-", 64,
1115                                                       NULL);
1116
1117   return offset;
1118 }
1119
1120
1121 static const value_string ulp_SLPAddress_vals[] = {
1122   {   0, "iPAddress" },
1123   {   1, "fQDN" },
1124   { 0, NULL }
1125 };
1126
1127 static const per_choice_t SLPAddress_choice[] = {
1128   {   0, &hf_ulp_iPAddress       , ASN1_EXTENSION_ROOT    , dissect_ulp_IPAddress },
1129   {   1, &hf_ulp_fQDN            , ASN1_EXTENSION_ROOT    , dissect_ulp_FQDN },
1130   { 0, NULL, 0, NULL }
1131 };
1132
1133 static int
1134 dissect_ulp_SLPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1135   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1136                                  ett_ulp_SLPAddress, SLPAddress_choice,
1137                                  NULL);
1138
1139   return offset;
1140 }
1141
1142
1143 static const per_sequence_t SlpSessionID_sequence[] = {
1144   { &hf_ulp_sessionSlpID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_4 },
1145   { &hf_ulp_slpId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SLPAddress },
1146   { NULL, 0, 0, NULL }
1147 };
1148
1149 static int
1150 dissect_ulp_SlpSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1151   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1152                                    ett_ulp_SlpSessionID, SlpSessionID_sequence);
1153
1154   return offset;
1155 }
1156
1157
1158 static const per_sequence_t SessionID_sequence[] = {
1159   { &hf_ulp_setSessionID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_SetSessionID },
1160   { &hf_ulp_slpSessionID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_SlpSessionID },
1161   { NULL, 0, 0, NULL }
1162 };
1163
1164 static int
1165 dissect_ulp_SessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1166   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1167                                    ett_ulp_SessionID, SessionID_sequence);
1168
1169   return offset;
1170 }
1171
1172
1173 static const value_string ulp_PosMethod_vals[] = {
1174   {   0, "agpsSETassisted" },
1175   {   1, "agpsSETbased" },
1176   {   2, "agpsSETassistedpref" },
1177   {   3, "agpsSETbasedpref" },
1178   {   4, "autonomousGPS" },
1179   {   5, "aFLT" },
1180   {   6, "eCID" },
1181   {   7, "eOTD" },
1182   {   8, "oTDOA" },
1183   {   9, "noPosition" },
1184   {  10, "ver2-historicalDataRetrieval" },
1185   {  11, "ver2-agnssSETassisted" },
1186   {  12, "ver2-agnssSETbased" },
1187   {  13, "ver2-agnssSETassistedpref" },
1188   {  14, "ver2-agnssSETbasedpref" },
1189   {  15, "ver2-autonomousGNSS" },
1190   {  16, "ver2-sessioninfoquery" },
1191   { 0, NULL }
1192 };
1193
1194
1195 static int
1196 dissect_ulp_PosMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1197   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1198                                      10, NULL, TRUE, 7, NULL);
1199
1200   return offset;
1201 }
1202
1203
1204 static const value_string ulp_NotificationType_vals[] = {
1205   {   0, "noNotificationNoVerification" },
1206   {   1, "notificationOnly" },
1207   {   2, "notificationAndVerficationAllowedNA" },
1208   {   3, "notificationAndVerficationDeniedNA" },
1209   {   4, "privacyOverride" },
1210   { 0, NULL }
1211 };
1212
1213
1214 static int
1215 dissect_ulp_NotificationType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1216   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1217                                      5, NULL, TRUE, 0, NULL);
1218
1219   return offset;
1220 }
1221
1222
1223 static const value_string ulp_EncodingType_vals[] = {
1224   {   0, "ucs2" },
1225   {   1, "gsmDefault" },
1226   {   2, "utf8" },
1227   { 0, NULL }
1228 };
1229
1230
1231 static int
1232 dissect_ulp_EncodingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1233   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1234                                      3, NULL, TRUE, 0, NULL);
1235
1236   return offset;
1237 }
1238
1239
1240
1241 static int
1242 dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1243   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1244                                        1, maxReqLength, FALSE, NULL);
1245
1246   return offset;
1247 }
1248
1249
1250 static const value_string ulp_FormatIndicator_vals[] = {
1251   {   0, "logicalName" },
1252   {   1, "e-mailAddress" },
1253   {   2, "msisdn" },
1254   {   3, "url" },
1255   {   4, "sipUrl" },
1256   {   5, "min" },
1257   {   6, "mdn" },
1258   {   7, "iMSPublicidentity" },
1259   { 0, NULL }
1260 };
1261
1262
1263 static int
1264 dissect_ulp_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1265   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1266                                      8, NULL, TRUE, 0, NULL);
1267
1268   return offset;
1269 }
1270
1271
1272
1273 static int
1274 dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1275   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1276                                        1, maxClientLength, FALSE, NULL);
1277
1278   return offset;
1279 }
1280
1281
1282
1283 static int
1284 dissect_ulp_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1285   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1286
1287   return offset;
1288 }
1289
1290
1291 static const per_sequence_t Ver2_Notification_extension_sequence[] = {
1292   { &hf_ulp_emergencyCallLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NULL },
1293   { NULL, 0, 0, NULL }
1294 };
1295
1296 static int
1297 dissect_ulp_Ver2_Notification_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1298   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1299                                    ett_ulp_Ver2_Notification_extension, Ver2_Notification_extension_sequence);
1300
1301   return offset;
1302 }
1303
1304
1305 static const per_sequence_t Notification_sequence[] = {
1306   { &hf_ulp_notificationType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_NotificationType },
1307   { &hf_ulp_encodingType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_EncodingType },
1308   { &hf_ulp_requestorId     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength },
1309   { &hf_ulp_requestorIdType , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_FormatIndicator },
1310   { &hf_ulp_clientName      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength },
1311   { &hf_ulp_clientNameType  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_FormatIndicator },
1312   { &hf_ulp_ver2_Notification_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_Notification_extension },
1313   { NULL, 0, 0, NULL }
1314 };
1315
1316 static int
1317 dissect_ulp_Notification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1318   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1319                                    ett_ulp_Notification, Notification_sequence);
1320
1321   return offset;
1322 }
1323
1324
1325
1326 static int
1327 dissect_ulp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1328   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1329                                                             0U, 127U, NULL, FALSE);
1330
1331   return offset;
1332 }
1333
1334
1335
1336 static int
1337 dissect_ulp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1338   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1339                                                             0U, 7U, NULL, FALSE);
1340
1341   return offset;
1342 }
1343
1344
1345 static const per_sequence_t QoP_sequence[] = {
1346   { &hf_ulp_horacc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
1347   { &hf_ulp_veracc          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
1348   { &hf_ulp_maxLocAge       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
1349   { &hf_ulp_delay           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
1350   { NULL, 0, 0, NULL }
1351 };
1352
1353 static int
1354 dissect_ulp_QoP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1355   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1356                                    ett_ulp_QoP, QoP_sequence);
1357
1358   return offset;
1359 }
1360
1361
1362 static const value_string ulp_SLPMode_vals[] = {
1363   {   0, "proxy" },
1364   {   1, "nonProxy" },
1365   { 0, NULL }
1366 };
1367
1368
1369 static int
1370 dissect_ulp_SLPMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1371   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1372                                      2, NULL, FALSE, 0, NULL);
1373
1374   return offset;
1375 }
1376
1377
1378
1379 static int
1380 dissect_ulp_MAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1381   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1382                                      64, 64, FALSE, NULL);
1383
1384   return offset;
1385 }
1386
1387
1388
1389 static int
1390 dissect_ulp_KeyIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1391   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1392                                      128, 128, FALSE, NULL);
1393
1394   return offset;
1395 }
1396
1397
1398 static const value_string ulp_NotificationMode_vals[] = {
1399   {   0, "normal" },
1400   {   1, "basedOnLocation" },
1401   { 0, NULL }
1402 };
1403
1404
1405 static int
1406 dissect_ulp_NotificationMode(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                                      2, NULL, TRUE, 0, NULL);
1409
1410   return offset;
1411 }
1412
1413
1414
1415 static int
1416 dissect_ulp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1417   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1418
1419   return offset;
1420 }
1421
1422
1423 static const per_sequence_t SupportedWLANInfo_sequence[] = {
1424   { &hf_ulp_apTP            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1425   { &hf_ulp_apAG            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1426   { &hf_ulp_apSN            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1427   { &hf_ulp_apDevType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1428   { &hf_ulp_apRSSI          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1429   { &hf_ulp_apChanFreq      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1430   { &hf_ulp_apRTD           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1431   { &hf_ulp_setTP           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1432   { &hf_ulp_setAG           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1433   { &hf_ulp_setSN           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1434   { &hf_ulp_setRSSI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1435   { &hf_ulp_apRepLoc        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1436   { NULL, 0, 0, NULL }
1437 };
1438
1439 static int
1440 dissect_ulp_SupportedWLANInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1441   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1442                                    ett_ulp_SupportedWLANInfo, SupportedWLANInfo_sequence);
1443
1444   return offset;
1445 }
1446
1447
1448
1449 static int
1450 dissect_ulp_BIT_STRING_SIZE_48(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1451   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1452                                      48, 48, FALSE, NULL);
1453
1454   return offset;
1455 }
1456
1457
1458 static const value_string ulp_T_apDevType_vals[] = {
1459   {   0, "wlan802-11a" },
1460   {   1, "wlan802-11b" },
1461   {   2, "wlan802-11g" },
1462   { 0, NULL }
1463 };
1464
1465
1466 static int
1467 dissect_ulp_T_apDevType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1468   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1469                                      3, NULL, TRUE, 0, NULL);
1470
1471   return offset;
1472 }
1473
1474
1475 static const per_sequence_t SupportedWLANApData_sequence[] = {
1476   { &hf_ulp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_48 },
1477   { &hf_ulp_apDevType_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_apDevType },
1478   { NULL, 0, 0, NULL }
1479 };
1480
1481 static int
1482 dissect_ulp_SupportedWLANApData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1483   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1484                                    ett_ulp_SupportedWLANApData, SupportedWLANApData_sequence);
1485
1486   return offset;
1487 }
1488
1489
1490 static const per_sequence_t SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData_sequence_of[1] = {
1491   { &hf_ulp_supportedWLANApDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SupportedWLANApData },
1492 };
1493
1494 static int
1495 dissect_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1496   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1497                                                   ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData, SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData_sequence_of,
1498                                                   1, maxWLANApDataSize, FALSE);
1499
1500   return offset;
1501 }
1502
1503
1504 static const per_sequence_t SupportedWLANApsChannel11a_sequence[] = {
1505   { &hf_ulp_ch34            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1506   { &hf_ulp_ch36            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1507   { &hf_ulp_ch38            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1508   { &hf_ulp_ch40            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1509   { &hf_ulp_ch42            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1510   { &hf_ulp_ch44            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1511   { &hf_ulp_ch46            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1512   { &hf_ulp_ch48            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1513   { &hf_ulp_ch52            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1514   { &hf_ulp_ch56            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1515   { &hf_ulp_ch60            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1516   { &hf_ulp_ch64            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1517   { &hf_ulp_ch149           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1518   { &hf_ulp_ch153           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1519   { &hf_ulp_ch157           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1520   { &hf_ulp_ch161           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1521   { NULL, 0, 0, NULL }
1522 };
1523
1524 static int
1525 dissect_ulp_SupportedWLANApsChannel11a(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1526   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1527                                    ett_ulp_SupportedWLANApsChannel11a, SupportedWLANApsChannel11a_sequence);
1528
1529   return offset;
1530 }
1531
1532
1533 static const per_sequence_t SupportedWLANApsChannel11bg_sequence[] = {
1534   { &hf_ulp_ch1             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1535   { &hf_ulp_ch2             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1536   { &hf_ulp_ch3             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1537   { &hf_ulp_ch4             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1538   { &hf_ulp_ch5             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1539   { &hf_ulp_ch6             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1540   { &hf_ulp_ch7             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1541   { &hf_ulp_ch8             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1542   { &hf_ulp_ch9             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1543   { &hf_ulp_ch10            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1544   { &hf_ulp_ch11            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1545   { &hf_ulp_ch12            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1546   { &hf_ulp_ch13            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1547   { &hf_ulp_ch14            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1548   { NULL, 0, 0, NULL }
1549 };
1550
1551 static int
1552 dissect_ulp_SupportedWLANApsChannel11bg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1553   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1554                                    ett_ulp_SupportedWLANApsChannel11bg, SupportedWLANApsChannel11bg_sequence);
1555
1556   return offset;
1557 }
1558
1559
1560 static const per_sequence_t SupportedWLANApsList_sequence[] = {
1561   { &hf_ulp_supportedWLANApDataList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData },
1562   { &hf_ulp_supportedWLANapsChannel11a, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANApsChannel11a },
1563   { &hf_ulp_supportedWLANapsChannel11bg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANApsChannel11bg },
1564   { NULL, 0, 0, NULL }
1565 };
1566
1567 static int
1568 dissect_ulp_SupportedWLANApsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1569   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1570                                    ett_ulp_SupportedWLANApsList, SupportedWLANApsList_sequence);
1571
1572   return offset;
1573 }
1574
1575
1576 static const per_sequence_t SupportedWCDMAInfo_sequence[] = {
1577   { &hf_ulp_mRL             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1578   { NULL, 0, 0, NULL }
1579 };
1580
1581 static int
1582 dissect_ulp_SupportedWCDMAInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1583   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1584                                    ett_ulp_SupportedWCDMAInfo, SupportedWCDMAInfo_sequence);
1585
1586   return offset;
1587 }
1588
1589
1590 static const per_sequence_t SupportedNetworkInformation_sequence[] = {
1591   { &hf_ulp_wLAN            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1592   { &hf_ulp_supportedWLANInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANInfo },
1593   { &hf_ulp_supportedWLANApsList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANApsList },
1594   { &hf_ulp_gSM             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1595   { &hf_ulp_wCDMA           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1596   { &hf_ulp_supportedWCDMAInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWCDMAInfo },
1597   { &hf_ulp_cDMA            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1598   { &hf_ulp_hRDP            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1599   { &hf_ulp_uMB             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1600   { &hf_ulp_lTE             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1601   { &hf_ulp_wIMAX           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1602   { &hf_ulp_historic        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1603   { &hf_ulp_nonServing      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1604   { &hf_ulp_uTRANGPSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1605   { &hf_ulp_uTRANGANSSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1606   { NULL, 0, 0, NULL }
1607 };
1608
1609 static int
1610 dissect_ulp_SupportedNetworkInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1611   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1612                                    ett_ulp_SupportedNetworkInformation, SupportedNetworkInformation_sequence);
1613
1614   return offset;
1615 }
1616
1617
1618 static const value_string ulp_TriggerType_vals[] = {
1619   {   0, "periodic" },
1620   {   1, "areaEvent" },
1621   { 0, NULL }
1622 };
1623
1624
1625 static int
1626 dissect_ulp_TriggerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1627   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1628                                      2, NULL, TRUE, 0, NULL);
1629
1630   return offset;
1631 }
1632
1633
1634 static const value_string ulp_AllowedReportingType_vals[] = {
1635   {   0, "positionsOnly" },
1636   {   1, "measurementsOnly" },
1637   {   2, "positionsAndMeasurements" },
1638   { 0, NULL }
1639 };
1640
1641
1642 static int
1643 dissect_ulp_AllowedReportingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1644   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1645                                      3, NULL, TRUE, 0, NULL);
1646
1647   return offset;
1648 }
1649
1650
1651
1652 static int
1653 dissect_ulp_INTEGER_M525600_M1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1654   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1655                                                             -525600, -1, NULL, FALSE);
1656
1657   return offset;
1658 }
1659
1660
1661
1662 static int
1663 dissect_ulp_INTEGER_M525599_0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1664   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1665                                                             -525599, 0U, NULL, FALSE);
1666
1667   return offset;
1668 }
1669
1670
1671 static const per_sequence_t TimeWindow_sequence[] = {
1672   { &hf_ulp_startTime_01    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M525600_M1 },
1673   { &hf_ulp_stopTime_01     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M525599_0 },
1674   { NULL, 0, 0, NULL }
1675 };
1676
1677 static int
1678 dissect_ulp_TimeWindow(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1679   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1680                                    ett_ulp_TimeWindow, TimeWindow_sequence);
1681
1682   return offset;
1683 }
1684
1685
1686
1687 static int
1688 dissect_ulp_INTEGER_1_65536(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1689   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1690                                                             1U, 65536U, NULL, FALSE);
1691
1692   return offset;
1693 }
1694
1695
1696
1697 static int
1698 dissect_ulp_INTEGER_1_86400(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1699   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1700                                                             1U, 86400U, NULL, FALSE);
1701
1702   return offset;
1703 }
1704
1705
1706 static const per_sequence_t ReportingCriteria_sequence[] = {
1707   { &hf_ulp_timeWindow      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TimeWindow },
1708   { &hf_ulp_maxNumberofReports, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_65536 },
1709   { &hf_ulp_minTimeInterval , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_86400 },
1710   { NULL, 0, 0, NULL }
1711 };
1712
1713 static int
1714 dissect_ulp_ReportingCriteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1715   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1716                                    ett_ulp_ReportingCriteria, ReportingCriteria_sequence);
1717
1718   return offset;
1719 }
1720
1721
1722 static const per_sequence_t HistoricReporting_sequence[] = {
1723   { &hf_ulp_allowedReportingType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_AllowedReportingType },
1724   { &hf_ulp_reportingCriteria, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCriteria },
1725   { NULL, 0, 0, NULL }
1726 };
1727
1728 static int
1729 dissect_ulp_HistoricReporting(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1730   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1731                                    ett_ulp_HistoricReporting, HistoricReporting_sequence);
1732
1733   return offset;
1734 }
1735
1736
1737 static const value_string ulp_ProtLevel_vals[] = {
1738   {   0, "nullProtection" },
1739   {   1, "basicProtection" },
1740   { 0, NULL }
1741 };
1742
1743
1744 static int
1745 dissect_ulp_ProtLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1746   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1747                                      2, NULL, TRUE, 0, NULL);
1748
1749   return offset;
1750 }
1751
1752
1753
1754 static int
1755 dissect_ulp_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1756   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1757                                      32, 32, FALSE, NULL);
1758
1759   return offset;
1760 }
1761
1762
1763 static const per_sequence_t BasicProtectionParams_sequence[] = {
1764   { &hf_ulp_keyIdentifier   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_8 },
1765   { &hf_ulp_basicReplayCounter, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
1766   { &hf_ulp_basicMAC        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_32 },
1767   { NULL, 0, 0, NULL }
1768 };
1769
1770 static int
1771 dissect_ulp_BasicProtectionParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1772   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1773                                    ett_ulp_BasicProtectionParams, BasicProtectionParams_sequence);
1774
1775   return offset;
1776 }
1777
1778
1779 static const per_sequence_t ProtectionLevel_sequence[] = {
1780   { &hf_ulp_protlevel       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ProtLevel },
1781   { &hf_ulp_basicProtectionParams, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BasicProtectionParams },
1782   { NULL, 0, 0, NULL }
1783 };
1784
1785 static int
1786 dissect_ulp_ProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1787   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1788                                    ett_ulp_ProtectionLevel, ProtectionLevel_sequence);
1789
1790   return offset;
1791 }
1792
1793
1794 static const per_sequence_t GNSSPosTechnology_sequence[] = {
1795   { &hf_ulp_gps             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1796   { &hf_ulp_galileo         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1797   { &hf_ulp_sbas            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1798   { &hf_ulp_modernized_gps  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1799   { &hf_ulp_qzss            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1800   { &hf_ulp_glonass         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1801   { NULL, 0, 0, NULL }
1802 };
1803
1804 static int
1805 dissect_ulp_GNSSPosTechnology(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1806   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1807                                    ett_ulp_GNSSPosTechnology, GNSSPosTechnology_sequence);
1808
1809   return offset;
1810 }
1811
1812
1813 static const per_sequence_t Ver2_SUPL_INIT_extension_sequence[] = {
1814   { &hf_ulp_notificationMode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NotificationMode },
1815   { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
1816   { &hf_ulp_triggerType     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerType },
1817   { &hf_ulp_e_SLPAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
1818   { &hf_ulp_historicReporting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_HistoricReporting },
1819   { &hf_ulp_protectionLevel , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ProtectionLevel },
1820   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
1821   { &hf_ulp_minimumMajorVersion, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
1822   { NULL, 0, 0, NULL }
1823 };
1824
1825 static int
1826 dissect_ulp_Ver2_SUPL_INIT_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1827   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1828                                    ett_ulp_Ver2_SUPL_INIT_extension, Ver2_SUPL_INIT_extension_sequence);
1829
1830   return offset;
1831 }
1832
1833
1834 static const per_sequence_t SUPLINIT_sequence[] = {
1835   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
1836   { &hf_ulp_notification    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Notification },
1837   { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
1838   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
1839   { &hf_ulp_sLPMode         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SLPMode },
1840   { &hf_ulp_mAC             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MAC },
1841   { &hf_ulp_keyIdentity     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_KeyIdentity },
1842   { &hf_ulp_ver2_SUPL_INIT_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_INIT_extension },
1843   { NULL, 0, 0, NULL }
1844 };
1845
1846 static int
1847 dissect_ulp_SUPLINIT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1848   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1849                                    ett_ulp_SUPLINIT, SUPLINIT_sequence);
1850
1851   return offset;
1852 }
1853
1854
1855
1856 static int
1857 dissect_ulp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1858   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1859                                                             0U, 15U, NULL, FALSE);
1860
1861   return offset;
1862 }
1863
1864
1865
1866 static int
1867 dissect_ulp_BIT_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1868   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1869                                      3, 3, FALSE, NULL);
1870
1871   return offset;
1872 }
1873
1874
1875 static const per_sequence_t GANSSPositioningMethodTypes_sequence[] = {
1876   { &hf_ulp_setAssisted     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1877   { &hf_ulp_setBased        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1878   { &hf_ulp_autonomous      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1879   { NULL, 0, 0, NULL }
1880 };
1881
1882 static int
1883 dissect_ulp_GANSSPositioningMethodTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1884   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1885                                    ett_ulp_GANSSPositioningMethodTypes, GANSSPositioningMethodTypes_sequence);
1886
1887   return offset;
1888 }
1889
1890
1891
1892 static int
1893 dissect_ulp_GANSSSignals(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1894   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1895                                      1, 8, FALSE, NULL);
1896
1897   return offset;
1898 }
1899
1900
1901 static const per_sequence_t GANSSPositionMethod_sequence[] = {
1902   { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
1903   { &hf_ulp_ganssSBASid     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_3 },
1904   { &hf_ulp_gANSSPositioningMethodTypes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSPositioningMethodTypes },
1905   { &hf_ulp_gANSSSignals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
1906   { NULL, 0, 0, NULL }
1907 };
1908
1909 static int
1910 dissect_ulp_GANSSPositionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1911   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1912                                    ett_ulp_GANSSPositionMethod, GANSSPositionMethod_sequence);
1913
1914   return offset;
1915 }
1916
1917
1918 static const per_sequence_t GANSSPositionMethods_sequence_of[1] = {
1919   { &hf_ulp_GANSSPositionMethods_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSPositionMethod },
1920 };
1921
1922 static int
1923 dissect_ulp_GANSSPositionMethods(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1924   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1925                                                   ett_ulp_GANSSPositionMethods, GANSSPositionMethods_sequence_of,
1926                                                   1, 16, FALSE);
1927
1928   return offset;
1929 }
1930
1931
1932 static const per_sequence_t Ver2_PosTechnology_extension_sequence[] = {
1933   { &hf_ulp_gANSSPositionMethods, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GANSSPositionMethods },
1934   { NULL, 0, 0, NULL }
1935 };
1936
1937 static int
1938 dissect_ulp_Ver2_PosTechnology_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1939   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1940                                    ett_ulp_Ver2_PosTechnology_extension, Ver2_PosTechnology_extension_sequence);
1941
1942   return offset;
1943 }
1944
1945
1946 static const per_sequence_t PosTechnology_sequence[] = {
1947   { &hf_ulp_agpsSETassisted , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1948   { &hf_ulp_agpsSETBased    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1949   { &hf_ulp_autonomousGPS   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1950   { &hf_ulp_aFLT            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1951   { &hf_ulp_eCID            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1952   { &hf_ulp_eOTD            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1953   { &hf_ulp_oTDOA           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1954   { &hf_ulp_ver2_PosTechnology_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_PosTechnology_extension },
1955   { NULL, 0, 0, NULL }
1956 };
1957
1958 static int
1959 dissect_ulp_PosTechnology(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1960   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1961                                    ett_ulp_PosTechnology, PosTechnology_sequence);
1962
1963   return offset;
1964 }
1965
1966
1967 static const value_string ulp_PrefMethod_vals[] = {
1968   {   0, "agpsSETassistedPreferred" },
1969   {   1, "agpsSETBasedPreferred" },
1970   {   2, "noPreference" },
1971   { 0, NULL }
1972 };
1973
1974
1975 static int
1976 dissect_ulp_PrefMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1977   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1978                                      3, NULL, FALSE, 0, NULL);
1979
1980   return offset;
1981 }
1982
1983
1984 static const per_sequence_t PosProtocolVersion3GPP_sequence[] = {
1985   { &hf_ulp_majorVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1986   { &hf_ulp_technicalVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1987   { &hf_ulp_editorialVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1988   { NULL, 0, 0, NULL }
1989 };
1990
1991 static int
1992 dissect_ulp_PosProtocolVersion3GPP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1993   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1994                                    ett_ulp_PosProtocolVersion3GPP, PosProtocolVersion3GPP_sequence);
1995
1996   return offset;
1997 }
1998
1999
2000
2001 static int
2002 dissect_ulp_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2003   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2004                                      6, 6, FALSE, NULL);
2005
2006   return offset;
2007 }
2008
2009
2010 static const per_sequence_t Supported3GPP2PosProtocolVersion_sequence[] = {
2011   { &hf_ulp_revisionNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_6 },
2012   { &hf_ulp_pointReleaseNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2013   { &hf_ulp_internalEditLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2014   { NULL, 0, 0, NULL }
2015 };
2016
2017 static int
2018 dissect_ulp_Supported3GPP2PosProtocolVersion(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2019   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2020                                    ett_ulp_Supported3GPP2PosProtocolVersion, Supported3GPP2PosProtocolVersion_sequence);
2021
2022   return offset;
2023 }
2024
2025
2026 static const per_sequence_t PosProtocolVersion3GPP2_sequence_of[1] = {
2027   { &hf_ulp_PosProtocolVersion3GPP2_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Supported3GPP2PosProtocolVersion },
2028 };
2029
2030 static int
2031 dissect_ulp_PosProtocolVersion3GPP2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2032   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2033                                                   ett_ulp_PosProtocolVersion3GPP2, PosProtocolVersion3GPP2_sequence_of,
2034                                                   1, 8, FALSE);
2035
2036   return offset;
2037 }
2038
2039
2040 static const per_sequence_t Ver2_PosProtocol_extension_sequence[] = {
2041   { &hf_ulp_lpp             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2042   { &hf_ulp_posProtocolVersionRRLP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP },
2043   { &hf_ulp_posProtocolVersionRRC, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP },
2044   { &hf_ulp_posProtocolVersionTIA801, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP2 },
2045   { &hf_ulp_posProtocolVersionLPP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP },
2046   { NULL, 0, 0, NULL }
2047 };
2048
2049 static int
2050 dissect_ulp_Ver2_PosProtocol_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2051   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2052                                    ett_ulp_Ver2_PosProtocol_extension, Ver2_PosProtocol_extension_sequence);
2053
2054   return offset;
2055 }
2056
2057
2058 static const per_sequence_t PosProtocol_sequence[] = {
2059   { &hf_ulp_tia801          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2060   { &hf_ulp_rrlp            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2061   { &hf_ulp_rrc             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2062   { &hf_ulp_ver2_PosProtocol_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_PosProtocol_extension },
2063   { NULL, 0, 0, NULL }
2064 };
2065
2066 static int
2067 dissect_ulp_PosProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2068   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2069                                    ett_ulp_PosProtocol, PosProtocol_sequence);
2070
2071   return offset;
2072 }
2073
2074
2075 static const per_sequence_t ServicesSupported_sequence[] = {
2076   { &hf_ulp_periodicTrigger , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2077   { &hf_ulp_areaEventTrigger, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2078   { NULL, 0, 0, NULL }
2079 };
2080
2081 static int
2082 dissect_ulp_ServicesSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2083   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2084                                    ett_ulp_ServicesSupported, ServicesSupported_sequence);
2085
2086   return offset;
2087 }
2088
2089
2090
2091 static int
2092 dissect_ulp_INTEGER_1_3600(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2093   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2094                                                             1U, 3600U, NULL, FALSE);
2095
2096   return offset;
2097 }
2098
2099
2100
2101 static int
2102 dissect_ulp_INTEGER_1_1440(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2103   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2104                                                             1U, 1440U, NULL, FALSE);
2105
2106   return offset;
2107 }
2108
2109
2110 static const per_sequence_t RepMode_cap_sequence[] = {
2111   { &hf_ulp_realtime        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2112   { &hf_ulp_quasirealtime   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2113   { &hf_ulp_batch           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2114   { NULL, 0, 0, NULL }
2115 };
2116
2117 static int
2118 dissect_ulp_RepMode_cap(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2119   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2120                                    ett_ulp_RepMode_cap, RepMode_cap_sequence);
2121
2122   return offset;
2123 }
2124
2125
2126
2127 static int
2128 dissect_ulp_INTEGER_1_1024(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2129   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2130                                                             1U, 1024U, NULL, FALSE);
2131
2132   return offset;
2133 }
2134
2135
2136 static const per_sequence_t BatchRepCap_sequence[] = {
2137   { &hf_ulp_report_position , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2138   { &hf_ulp_report_measurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2139   { &hf_ulp_max_num_positions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1024 },
2140   { &hf_ulp_max_num_measurements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1024 },
2141   { NULL, 0, 0, NULL }
2142 };
2143
2144 static int
2145 dissect_ulp_BatchRepCap(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2146   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2147                                    ett_ulp_BatchRepCap, BatchRepCap_sequence);
2148
2149   return offset;
2150 }
2151
2152
2153 static const per_sequence_t ReportingCap_sequence[] = {
2154   { &hf_ulp_minInt          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_3600 },
2155   { &hf_ulp_maxInt          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1440 },
2156   { &hf_ulp_repMode_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RepMode_cap },
2157   { &hf_ulp_batchRepCap     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepCap },
2158   { NULL, 0, 0, NULL }
2159 };
2160
2161 static int
2162 dissect_ulp_ReportingCap(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2163   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2164                                    ett_ulp_ReportingCap, ReportingCap_sequence);
2165
2166   return offset;
2167 }
2168
2169
2170 static const per_sequence_t GeoAreaShapesSupported_sequence[] = {
2171   { &hf_ulp_ellipticalArea_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2172   { &hf_ulp_polygonArea_01  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2173   { NULL, 0, 0, NULL }
2174 };
2175
2176 static int
2177 dissect_ulp_GeoAreaShapesSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2178   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2179                                    ett_ulp_GeoAreaShapesSupported, GeoAreaShapesSupported_sequence);
2180
2181   return offset;
2182 }
2183
2184
2185
2186 static int
2187 dissect_ulp_INTEGER_0_maxNumGeoArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2188   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2189                                                             0U, maxNumGeoArea, NULL, FALSE);
2190
2191   return offset;
2192 }
2193
2194
2195
2196 static int
2197 dissect_ulp_INTEGER_0_maxAreaIdList(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                                                             0U, maxAreaIdList, NULL, FALSE);
2200
2201   return offset;
2202 }
2203
2204
2205
2206 static int
2207 dissect_ulp_INTEGER_0_maxAreaId(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, maxAreaId, NULL, FALSE);
2210
2211   return offset;
2212 }
2213
2214
2215 static const per_sequence_t EventTriggerCapabilities_sequence[] = {
2216   { &hf_ulp_geoAreaShapesSupported, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GeoAreaShapesSupported },
2217   { &hf_ulp_maxNumGeoAreaSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_maxNumGeoArea },
2218   { &hf_ulp_maxAreaIdListSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_maxAreaIdList },
2219   { &hf_ulp_maxAreaIdSupportedPerList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_maxAreaId },
2220   { NULL, 0, 0, NULL }
2221 };
2222
2223 static int
2224 dissect_ulp_EventTriggerCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2225   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2226                                    ett_ulp_EventTriggerCapabilities, EventTriggerCapabilities_sequence);
2227
2228   return offset;
2229 }
2230
2231
2232
2233 static int
2234 dissect_ulp_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2235   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2236                                                             1U, 128U, NULL, FALSE);
2237
2238   return offset;
2239 }
2240
2241
2242
2243 static int
2244 dissect_ulp_INTEGER_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2245   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2246                                                             1U, 32U, NULL, FALSE);
2247
2248   return offset;
2249 }
2250
2251
2252 static const per_sequence_t SessionCapabilities_sequence[] = {
2253   { &hf_ulp_maxNumberTotalSessions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_128 },
2254   { &hf_ulp_maxNumberPeriodicSessions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_32 },
2255   { &hf_ulp_maxNumberTriggeredSessions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_32 },
2256   { NULL, 0, 0, NULL }
2257 };
2258
2259 static int
2260 dissect_ulp_SessionCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2261   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2262                                    ett_ulp_SessionCapabilities, SessionCapabilities_sequence);
2263
2264   return offset;
2265 }
2266
2267
2268 static const per_sequence_t ServiceCapabilities_sequence[] = {
2269   { &hf_ulp_servicesSupported, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ServicesSupported },
2270   { &hf_ulp_reportingCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCap },
2271   { &hf_ulp_eventTriggerCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_EventTriggerCapabilities },
2272   { &hf_ulp_sessionCapabilities, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SessionCapabilities },
2273   { NULL, 0, 0, NULL }
2274 };
2275
2276 static int
2277 dissect_ulp_ServiceCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2278   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2279                                    ett_ulp_ServiceCapabilities, ServiceCapabilities_sequence);
2280
2281   return offset;
2282 }
2283
2284
2285 static const per_sequence_t Ver2_SETCapabilities_extension_sequence[] = {
2286   { &hf_ulp_serviceCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ServiceCapabilities },
2287   { NULL, 0, 0, NULL }
2288 };
2289
2290 static int
2291 dissect_ulp_Ver2_SETCapabilities_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2292   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2293                                    ett_ulp_Ver2_SETCapabilities_extension, Ver2_SETCapabilities_extension_sequence);
2294
2295   return offset;
2296 }
2297
2298
2299 static const per_sequence_t SETCapabilities_sequence[] = {
2300   { &hf_ulp_posTechnology   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosTechnology },
2301   { &hf_ulp_prefMethod      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PrefMethod },
2302   { &hf_ulp_posProtocol     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosProtocol },
2303   { &hf_ulp_ver2_SETCapabilities_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SETCapabilities_extension },
2304   { NULL, 0, 0, NULL }
2305 };
2306
2307 static int
2308 dissect_ulp_SETCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2309   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2310                                    ett_ulp_SETCapabilities, SETCapabilities_sequence);
2311
2312   return offset;
2313 }
2314
2315
2316
2317 static int
2318 dissect_ulp_INTEGER_0_999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2319   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2320                                                             0U, 999U, NULL, FALSE);
2321
2322   return offset;
2323 }
2324
2325
2326
2327 static int
2328 dissect_ulp_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2329   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2330                                                             0U, 1023U, NULL, FALSE);
2331
2332   return offset;
2333 }
2334
2335
2336
2337 static int
2338 dissect_ulp_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2339   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2340                                                             0U, 63U, NULL, FALSE);
2341
2342   return offset;
2343 }
2344
2345
2346 static const per_sequence_t NMRelement_sequence[] = {
2347   { &hf_ulp_aRFCN           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
2348   { &hf_ulp_bSIC            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
2349   { &hf_ulp_rxLev           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
2350   { NULL, 0, 0, NULL }
2351 };
2352
2353 static int
2354 dissect_ulp_NMRelement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2355   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2356                                    ett_ulp_NMRelement, NMRelement_sequence);
2357
2358   return offset;
2359 }
2360
2361
2362 static const per_sequence_t NMR_sequence_of[1] = {
2363   { &hf_ulp_NMR_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_NMRelement },
2364 };
2365
2366 static int
2367 dissect_ulp_NMR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2368   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2369                                                   ett_ulp_NMR, NMR_sequence_of,
2370                                                   1, 15, FALSE);
2371
2372   return offset;
2373 }
2374
2375
2376 static const per_sequence_t GsmCellInformation_sequence[] = {
2377   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2378   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2379   { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2380   { &hf_ulp_refCI           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2381   { &hf_ulp_nMR             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NMR },
2382   { &hf_ulp_tA              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
2383   { NULL, 0, 0, NULL }
2384 };
2385
2386 static int
2387 dissect_ulp_GsmCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2388   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2389                                    ett_ulp_GsmCellInformation, GsmCellInformation_sequence);
2390
2391   return offset;
2392 }
2393
2394
2395
2396 static int
2397 dissect_ulp_INTEGER_0_268435455(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2398   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2399                                                             0U, 268435455U, NULL, FALSE);
2400
2401   return offset;
2402 }
2403
2404
2405
2406 static int
2407 dissect_ulp_UARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2408   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2409                                                             0U, 16383U, NULL, FALSE);
2410
2411   return offset;
2412 }
2413
2414
2415 static const per_sequence_t FrequencyInfoFDD_sequence[] = {
2416   { &hf_ulp_uarfcn_UL       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UARFCN },
2417   { &hf_ulp_uarfcn_DL       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UARFCN },
2418   { NULL, 0, 0, NULL }
2419 };
2420
2421 static int
2422 dissect_ulp_FrequencyInfoFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2423   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2424                                    ett_ulp_FrequencyInfoFDD, FrequencyInfoFDD_sequence);
2425
2426   return offset;
2427 }
2428
2429
2430 static const per_sequence_t FrequencyInfoTDD_sequence[] = {
2431   { &hf_ulp_uarfcn_Nt       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UARFCN },
2432   { NULL, 0, 0, NULL }
2433 };
2434
2435 static int
2436 dissect_ulp_FrequencyInfoTDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2437   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2438                                    ett_ulp_FrequencyInfoTDD, FrequencyInfoTDD_sequence);
2439
2440   return offset;
2441 }
2442
2443
2444 static const value_string ulp_FrequencySpecificInfo_vals[] = {
2445   {   0, "fdd" },
2446   {   1, "tdd" },
2447   { 0, NULL }
2448 };
2449
2450 static const per_choice_t FrequencySpecificInfo_choice[] = {
2451   {   0, &hf_ulp_fdd_fr          , ASN1_EXTENSION_ROOT    , dissect_ulp_FrequencyInfoFDD },
2452   {   1, &hf_ulp_tdd_fr          , ASN1_EXTENSION_ROOT    , dissect_ulp_FrequencyInfoTDD },
2453   { 0, NULL, 0, NULL }
2454 };
2455
2456 static int
2457 dissect_ulp_FrequencySpecificInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2458   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2459                                  ett_ulp_FrequencySpecificInfo, FrequencySpecificInfo_choice,
2460                                  NULL);
2461
2462   return offset;
2463 }
2464
2465
2466 static const per_sequence_t FrequencyInfo_sequence[] = {
2467   { &hf_ulp_modeSpecificFrequencyInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_FrequencySpecificInfo },
2468   { NULL, 0, 0, NULL }
2469 };
2470
2471 static int
2472 dissect_ulp_FrequencyInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2473   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2474                                    ett_ulp_FrequencyInfo, FrequencyInfo_sequence);
2475
2476   return offset;
2477 }
2478
2479
2480
2481 static int
2482 dissect_ulp_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2483   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2484                                                             0U, 511U, NULL, FALSE);
2485
2486   return offset;
2487 }
2488
2489
2490
2491 static int
2492 dissect_ulp_UTRA_CarrierRSSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2493   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2494                                                             0U, 127U, NULL, FALSE);
2495
2496   return offset;
2497 }
2498
2499
2500 static const per_sequence_t PrimaryCPICH_Info_sequence[] = {
2501   { &hf_ulp_primaryScramblingCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_511 },
2502   { NULL, 0, 0, NULL }
2503 };
2504
2505 static int
2506 dissect_ulp_PrimaryCPICH_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2507   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2508                                    ett_ulp_PrimaryCPICH_Info, PrimaryCPICH_Info_sequence);
2509
2510   return offset;
2511 }
2512
2513
2514
2515 static int
2516 dissect_ulp_CPICH_Ec_N0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2517   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2518                                                             0U, 63U, NULL, FALSE);
2519
2520   return offset;
2521 }
2522
2523
2524
2525 static int
2526 dissect_ulp_CPICH_RSCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2527   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2528                                                             0U, 127U, NULL, FALSE);
2529
2530   return offset;
2531 }
2532
2533
2534
2535 static int
2536 dissect_ulp_Pathloss(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2537   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2538                                                             46U, 173U, NULL, FALSE);
2539
2540   return offset;
2541 }
2542
2543
2544 static const per_sequence_t T_fdd_sequence[] = {
2545   { &hf_ulp_primaryCPICH_Info, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
2546   { &hf_ulp_cpich_Ec_N0     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_CPICH_Ec_N0 },
2547   { &hf_ulp_cpich_RSCP      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_CPICH_RSCP },
2548   { &hf_ulp_pathloss        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_Pathloss },
2549   { NULL, 0, 0, NULL }
2550 };
2551
2552 static int
2553 dissect_ulp_T_fdd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2554   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2555                                    ett_ulp_T_fdd, T_fdd_sequence);
2556
2557   return offset;
2558 }
2559
2560
2561
2562 static int
2563 dissect_ulp_CellParametersID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2564   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2565                                                             0U, 127U, NULL, FALSE);
2566
2567   return offset;
2568 }
2569
2570
2571
2572 static int
2573 dissect_ulp_TGSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2574   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2575                                                             0U, 14U, NULL, FALSE);
2576
2577   return offset;
2578 }
2579
2580
2581
2582 static int
2583 dissect_ulp_PrimaryCCPCH_RSCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2584   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2585                                                             0U, 127U, NULL, FALSE);
2586
2587   return offset;
2588 }
2589
2590
2591
2592 static int
2593 dissect_ulp_TimeslotISCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2594   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2595                                                             0U, 127U, NULL, FALSE);
2596
2597   return offset;
2598 }
2599
2600
2601 static const per_sequence_t TimeslotISCP_List_sequence_of[1] = {
2602   { &hf_ulp_TimeslotISCP_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_TimeslotISCP },
2603 };
2604
2605 static int
2606 dissect_ulp_TimeslotISCP_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2607   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2608                                                   ett_ulp_TimeslotISCP_List, TimeslotISCP_List_sequence_of,
2609                                                   1, maxTS, FALSE);
2610
2611   return offset;
2612 }
2613
2614
2615 static const per_sequence_t T_tdd_sequence[] = {
2616   { &hf_ulp_cellParametersID, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
2617   { &hf_ulp_proposedTGSN    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_TGSN },
2618   { &hf_ulp_primaryCCPCH_RSCP, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_PrimaryCCPCH_RSCP },
2619   { &hf_ulp_pathloss        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_Pathloss },
2620   { &hf_ulp_timeslotISCP_List, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_TimeslotISCP_List },
2621   { NULL, 0, 0, NULL }
2622 };
2623
2624 static int
2625 dissect_ulp_T_tdd(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2626   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2627                                    ett_ulp_T_tdd, T_tdd_sequence);
2628
2629   return offset;
2630 }
2631
2632
2633 static const value_string ulp_T_modeSpecificInfo_vals[] = {
2634   {   0, "fdd" },
2635   {   1, "tdd" },
2636   { 0, NULL }
2637 };
2638
2639 static const per_choice_t T_modeSpecificInfo_choice[] = {
2640   {   0, &hf_ulp_fdd             , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd },
2641   {   1, &hf_ulp_tdd             , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd },
2642   { 0, NULL, 0, NULL }
2643 };
2644
2645 static int
2646 dissect_ulp_T_modeSpecificInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2647   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2648                                  ett_ulp_T_modeSpecificInfo, T_modeSpecificInfo_choice,
2649                                  NULL);
2650
2651   return offset;
2652 }
2653
2654
2655 static const per_sequence_t CellMeasuredResults_sequence[] = {
2656   { &hf_ulp_cellIdentity    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_268435455 },
2657   { &hf_ulp_modeSpecificInfo, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_modeSpecificInfo },
2658   { NULL, 0, 0, NULL }
2659 };
2660
2661 static int
2662 dissect_ulp_CellMeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2663   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2664                                    ett_ulp_CellMeasuredResults, CellMeasuredResults_sequence);
2665
2666   return offset;
2667 }
2668
2669
2670 static const per_sequence_t CellMeasuredResultsList_sequence_of[1] = {
2671   { &hf_ulp_CellMeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellMeasuredResults },
2672 };
2673
2674 static int
2675 dissect_ulp_CellMeasuredResultsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2676   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2677                                                   ett_ulp_CellMeasuredResultsList, CellMeasuredResultsList_sequence_of,
2678                                                   1, maxCellMeas, FALSE);
2679
2680   return offset;
2681 }
2682
2683
2684 static const per_sequence_t MeasuredResults_sequence[] = {
2685   { &hf_ulp_frequencyInfo   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_FrequencyInfo },
2686   { &hf_ulp_utra_CarrierRSSI, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRA_CarrierRSSI },
2687   { &hf_ulp_cellMeasuredResultsList, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_CellMeasuredResultsList },
2688   { NULL, 0, 0, NULL }
2689 };
2690
2691 static int
2692 dissect_ulp_MeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2693   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2694                                    ett_ulp_MeasuredResults, MeasuredResults_sequence);
2695
2696   return offset;
2697 }
2698
2699
2700 static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
2701   { &hf_ulp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MeasuredResults },
2702 };
2703
2704 static int
2705 dissect_ulp_MeasuredResultsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2706   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2707                                                   ett_ulp_MeasuredResultsList, MeasuredResultsList_sequence_of,
2708                                                   1, maxFreq, FALSE);
2709
2710   return offset;
2711 }
2712
2713
2714
2715 static int
2716 dissect_ulp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2717   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2718                                                             0U, 8191U, NULL, FALSE);
2719
2720   return offset;
2721 }
2722
2723
2724 static const value_string ulp_TAResolution_vals[] = {
2725   {   0, "res1-0chip" },
2726   {   1, "res0-5chip" },
2727   {   2, "res0-125chip" },
2728   { 0, NULL }
2729 };
2730
2731
2732 static int
2733 dissect_ulp_TAResolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2734   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2735                                      3, NULL, TRUE, 0, NULL);
2736
2737   return offset;
2738 }
2739
2740
2741 static const value_string ulp_ChipRate_vals[] = {
2742   {   0, "tdd128" },
2743   {   1, "tdd384" },
2744   {   2, "tdd768" },
2745   { 0, NULL }
2746 };
2747
2748
2749 static int
2750 dissect_ulp_ChipRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2751   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2752                                      3, NULL, TRUE, 0, NULL);
2753
2754   return offset;
2755 }
2756
2757
2758 static const per_sequence_t TimingAdvance_sequence[] = {
2759   { &hf_ulp_tA_01           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8191 },
2760   { &hf_ulp_tAResolution    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TAResolution },
2761   { &hf_ulp_chipRate        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ChipRate },
2762   { NULL, 0, 0, NULL }
2763 };
2764
2765 static int
2766 dissect_ulp_TimingAdvance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2767   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2768                                    ett_ulp_TimingAdvance, TimingAdvance_sequence);
2769
2770   return offset;
2771 }
2772
2773
2774 static const per_sequence_t WcdmaCellInformation_sequence[] = {
2775   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2776   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2777   { &hf_ulp_refUC           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_268435455 },
2778   { &hf_ulp_frequencyInfo   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_FrequencyInfo },
2779   { &hf_ulp_primaryScramblingCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_511 },
2780   { &hf_ulp_measuredResultsList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MeasuredResultsList },
2781   { &hf_ulp_cellParametersId, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
2782   { &hf_ulp_timingAdvance   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_TimingAdvance },
2783   { NULL, 0, 0, NULL }
2784 };
2785
2786 static int
2787 dissect_ulp_WcdmaCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2788   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2789                                    ett_ulp_WcdmaCellInformation, WcdmaCellInformation_sequence);
2790
2791   return offset;
2792 }
2793
2794
2795
2796 static int
2797 dissect_ulp_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2798   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2799                                                             0U, 32767U, NULL, FALSE);
2800
2801   return offset;
2802 }
2803
2804
2805
2806 static int
2807 dissect_ulp_INTEGER_0_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2808   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2809                                                             0U, 4194303U, NULL, FALSE);
2810
2811   return offset;
2812 }
2813
2814
2815
2816 static int
2817 dissect_ulp_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2818   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2819                                                             0U, 8388607U, NULL, FALSE);
2820
2821   return offset;
2822 }
2823
2824
2825 static const per_sequence_t CdmaCellInformation_sequence[] = {
2826   { &hf_ulp_refNID_01       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2827   { &hf_ulp_refSID_01       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
2828   { &hf_ulp_refBASEID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2829   { &hf_ulp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
2830   { &hf_ulp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
2831   { &hf_ulp_refREFPN        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_511 },
2832   { &hf_ulp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2833   { &hf_ulp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
2834   { NULL, 0, 0, NULL }
2835 };
2836
2837 static int
2838 dissect_ulp_CdmaCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2839   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2840                                    ett_ulp_CdmaCellInformation, CdmaCellInformation_sequence);
2841
2842   return offset;
2843 }
2844
2845
2846
2847 static int
2848 dissect_ulp_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2850                                      128, 128, FALSE, NULL);
2851
2852   return offset;
2853 }
2854
2855
2856 static const per_sequence_t HrpdCellInformation_sequence[] = {
2857   { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_128 },
2858   { &hf_ulp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
2859   { &hf_ulp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
2860   { &hf_ulp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2861   { &hf_ulp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
2862   { NULL, 0, 0, NULL }
2863 };
2864
2865 static int
2866 dissect_ulp_HrpdCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2867   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2868                                    ett_ulp_HrpdCellInformation, HrpdCellInformation_sequence);
2869
2870   return offset;
2871 }
2872
2873
2874 static const per_sequence_t UmbCellInformation_sequence[] = {
2875   { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
2876   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2877   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2878   { &hf_ulp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
2879   { &hf_ulp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
2880   { &hf_ulp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2881   { &hf_ulp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
2882   { NULL, 0, 0, NULL }
2883 };
2884
2885 static int
2886 dissect_ulp_UmbCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2887   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2888                                    ett_ulp_UmbCellInformation, UmbCellInformation_sequence);
2889
2890   return offset;
2891 }
2892
2893
2894
2895 static int
2896 dissect_ulp_MCC_MNC_Digit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2897   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2898                                                             0U, 9U, NULL, FALSE);
2899
2900   return offset;
2901 }
2902
2903
2904 static const per_sequence_t MCC_sequence_of[1] = {
2905   { &hf_ulp_MCC_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MCC_MNC_Digit },
2906 };
2907
2908 static int
2909 dissect_ulp_MCC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2910   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2911                                                   ett_ulp_MCC, MCC_sequence_of,
2912                                                   3, 3, FALSE);
2913
2914   return offset;
2915 }
2916
2917
2918 static const per_sequence_t MNC_sequence_of[1] = {
2919   { &hf_ulp_MNC_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MCC_MNC_Digit },
2920 };
2921
2922 static int
2923 dissect_ulp_MNC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2924   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2925                                                   ett_ulp_MNC, MNC_sequence_of,
2926                                                   2, 3, FALSE);
2927
2928   return offset;
2929 }
2930
2931
2932 static const per_sequence_t PLMN_Identity_sequence[] = {
2933   { &hf_ulp_mcc             , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_MCC },
2934   { &hf_ulp_mnc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MNC },
2935   { NULL, 0, 0, NULL }
2936 };
2937
2938 static int
2939 dissect_ulp_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2940   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2941                                    ett_ulp_PLMN_Identity, PLMN_Identity_sequence);
2942
2943   return offset;
2944 }
2945
2946
2947
2948 static int
2949 dissect_ulp_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2950   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2951                                      28, 28, FALSE, NULL);
2952
2953   return offset;
2954 }
2955
2956
2957 static const per_sequence_t CellGlobalIdEUTRA_sequence[] = {
2958   { &hf_ulp_plmn_Identity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PLMN_Identity },
2959   { &hf_ulp_cellIdentity_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellIdentity },
2960   { NULL, 0, 0, NULL }
2961 };
2962
2963 static int
2964 dissect_ulp_CellGlobalIdEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2965   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2966                                    ett_ulp_CellGlobalIdEUTRA, CellGlobalIdEUTRA_sequence);
2967
2968   return offset;
2969 }
2970
2971
2972
2973 static int
2974 dissect_ulp_PhysCellId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2975   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2976                                                             0U, 503U, NULL, FALSE);
2977
2978   return offset;
2979 }
2980
2981
2982
2983 static int
2984 dissect_ulp_TrackingAreaCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2985   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2986                                      16, 16, FALSE, NULL);
2987
2988   return offset;
2989 }
2990
2991
2992
2993 static int
2994 dissect_ulp_RSRP_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2995   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2996                                                             0U, 97U, NULL, FALSE);
2997
2998   return offset;
2999 }
3000
3001
3002
3003 static int
3004 dissect_ulp_RSRQ_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3005   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3006                                                             0U, 34U, NULL, FALSE);
3007
3008   return offset;
3009 }
3010
3011
3012
3013 static int
3014 dissect_ulp_INTEGER_0_1282(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3015   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3016                                                             0U, 1282U, NULL, FALSE);
3017
3018   return offset;
3019 }
3020
3021
3022 static const per_sequence_t T_cgi_Info_sequence[] = {
3023   { &hf_ulp_cellGlobalId    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellGlobalIdEUTRA },
3024   { &hf_ulp_trackingAreaCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCode },
3025   { NULL, 0, 0, NULL }
3026 };
3027
3028 static int
3029 dissect_ulp_T_cgi_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3030   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3031                                    ett_ulp_T_cgi_Info, T_cgi_Info_sequence);
3032
3033   return offset;
3034 }
3035
3036
3037 static const per_sequence_t T_measResult_sequence[] = {
3038   { &hf_ulp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRP_Range },
3039   { &hf_ulp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range },
3040   { NULL, 0, 0, NULL }
3041 };
3042
3043 static int
3044 dissect_ulp_T_measResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3045   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3046                                    ett_ulp_T_measResult, T_measResult_sequence);
3047
3048   return offset;
3049 }
3050
3051
3052 static const per_sequence_t MeasResultEUTRA_sequence[] = {
3053   { &hf_ulp_physCellId      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellId },
3054   { &hf_ulp_cgi_Info        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_T_cgi_Info },
3055   { &hf_ulp_measResult      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_measResult },
3056   { NULL, 0, 0, NULL }
3057 };
3058
3059 static int
3060 dissect_ulp_MeasResultEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3061   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3062                                    ett_ulp_MeasResultEUTRA, MeasResultEUTRA_sequence);
3063
3064   return offset;
3065 }
3066
3067
3068 static const per_sequence_t MeasResultListEUTRA_sequence_of[1] = {
3069   { &hf_ulp_MeasResultListEUTRA_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MeasResultEUTRA },
3070 };
3071
3072 static int
3073 dissect_ulp_MeasResultListEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3074   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3075                                                   ett_ulp_MeasResultListEUTRA, MeasResultListEUTRA_sequence_of,
3076                                                   1, maxCellReport, FALSE);
3077
3078   return offset;
3079 }
3080
3081
3082 static const per_sequence_t LteCellInformation_sequence[] = {
3083   { &hf_ulp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellGlobalIdEUTRA },
3084   { &hf_ulp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellId },
3085   { &hf_ulp_trackingAreaCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCode },
3086   { &hf_ulp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRP_Range },
3087   { &hf_ulp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range },
3088   { &hf_ulp_tA_02           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1282 },
3089   { &hf_ulp_measResultListEUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MeasResultListEUTRA },
3090   { NULL, 0, 0, NULL }
3091 };
3092
3093 static int
3094 dissect_ulp_LteCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3095   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3096                                    ett_ulp_LteCellInformation, LteCellInformation_sequence);
3097
3098   return offset;
3099 }
3100
3101
3102
3103 static int
3104 dissect_ulp_INTEGER_M127_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3105   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3106                                                             -127, 128U, NULL, FALSE);
3107
3108   return offset;
3109 }
3110
3111
3112 static const value_string ulp_T_apDeviceType_vals[] = {
3113   {   0, "wlan802-11a" },
3114   {   1, "wlan802-11b" },
3115   {   2, "wlan802-11g" },
3116   { 0, NULL }
3117 };
3118
3119
3120 static int
3121 dissect_ulp_T_apDeviceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3122   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3123                                      3, NULL, TRUE, 0, NULL);
3124
3125   return offset;
3126 }
3127
3128
3129
3130 static int
3131 dissect_ulp_INTEGER_0_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3132   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3133                                                             0U, 256U, NULL, FALSE);
3134
3135   return offset;
3136 }
3137
3138
3139
3140 static int
3141 dissect_ulp_INTEGER_0_16777216(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3142   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3143                                                             0U, 16777216U, NULL, FALSE);
3144
3145   return offset;
3146 }
3147
3148
3149 static const value_string ulp_RTDUnits_vals[] = {
3150   {   0, "microseconds" },
3151   {   1, "hundredsofnanoseconds" },
3152   {   2, "tensofnanoseconds" },
3153   {   3, "nanoseconds" },
3154   {   4, "tenthsofnanoseconds" },
3155   { 0, NULL }
3156 };
3157
3158
3159 static int
3160 dissect_ulp_RTDUnits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3161   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3162                                      5, NULL, TRUE, 0, NULL);
3163
3164   return offset;
3165 }
3166
3167
3168 static const per_sequence_t RTD_sequence[] = {
3169   { &hf_ulp_rTDValue        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_16777216 },
3170   { &hf_ulp_rTDUnits        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RTDUnits },
3171   { &hf_ulp_rTDAccuracy     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3172   { NULL, 0, 0, NULL }
3173 };
3174
3175 static int
3176 dissect_ulp_RTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3177   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3178                                    ett_ulp_RTD, RTD_sequence);
3179
3180   return offset;
3181 }
3182
3183
3184 static const value_string ulp_LocationEncodingDescriptor_vals[] = {
3185   {   0, "lCI" },
3186   {   1, "aSN1" },
3187   { 0, NULL }
3188 };
3189
3190
3191 static int
3192 dissect_ulp_LocationEncodingDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3193   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3194                                      2, NULL, TRUE, 0, NULL);
3195
3196   return offset;
3197 }
3198
3199
3200
3201 static int
3202 dissect_ulp_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3203   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3204                                                             0U, 4294967295U, NULL, FALSE);
3205
3206   return offset;
3207 }
3208
3209
3210
3211 static int
3212 dissect_ulp_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_) {
3213   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3214                                        1, 128, FALSE, NULL);
3215
3216   return offset;
3217 }
3218
3219
3220 static const per_sequence_t LocationData_sequence[] = {
3221   { &hf_ulp_locationAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_4294967295 },
3222   { &hf_ulp_locationValue   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_1_128 },
3223   { NULL, 0, 0, NULL }
3224 };
3225
3226 static int
3227 dissect_ulp_LocationData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3228   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3229                                    ett_ulp_LocationData, LocationData_sequence);
3230
3231   return offset;
3232 }
3233
3234
3235 static const per_sequence_t ReportedLocation_sequence[] = {
3236   { &hf_ulp_locationEncodingDescriptor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationEncodingDescriptor },
3237   { &hf_ulp_locationData    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationData },
3238   { NULL, 0, 0, NULL }
3239 };
3240
3241 static int
3242 dissect_ulp_ReportedLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3243   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3244                                    ett_ulp_ReportedLocation, ReportedLocation_sequence);
3245
3246   return offset;
3247 }
3248
3249
3250 static const per_sequence_t WlanAPInformation_sequence[] = {
3251   { &hf_ulp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_48 },
3252   { &hf_ulp_apTransmitPower , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3253   { &hf_ulp_apAntennaGain   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3254   { &hf_ulp_apSignaltoNoise , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3255   { &hf_ulp_apDeviceType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_apDeviceType },
3256   { &hf_ulp_apSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3257   { &hf_ulp_apChannelFrequency, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_256 },
3258   { &hf_ulp_apRoundTripDelay, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RTD },
3259   { &hf_ulp_setTransmitPower, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3260   { &hf_ulp_setAntennaGain  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3261   { &hf_ulp_setSignaltoNoise, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3262   { &hf_ulp_setSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3263   { &hf_ulp_apReportedLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportedLocation },
3264   { NULL, 0, 0, NULL }
3265 };
3266
3267 static int
3268 dissect_ulp_WlanAPInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3269   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3270                                    ett_ulp_WlanAPInformation, WlanAPInformation_sequence);
3271
3272   return offset;
3273 }
3274
3275
3276
3277 static int
3278 dissect_ulp_BIT_STRING_SIZE_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3279   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3280                                      24, 24, FALSE, NULL);
3281
3282   return offset;
3283 }
3284
3285
3286 static const per_sequence_t WimaxBsID_sequence[] = {
3287   { &hf_ulp_bsID_MSB        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_24 },
3288   { &hf_ulp_bsID_LSB        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_24 },
3289   { NULL, 0, 0, NULL }
3290 };
3291
3292 static int
3293 dissect_ulp_WimaxBsID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3294   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3295                                    ett_ulp_WimaxBsID, WimaxBsID_sequence);
3296
3297   return offset;
3298 }
3299
3300
3301 static const per_sequence_t WimaxRTD_sequence[] = {
3302   { &hf_ulp_rTD             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3303   { &hf_ulp_rTDstd          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1023 },
3304   { NULL, 0, 0, NULL }
3305 };
3306
3307 static int
3308 dissect_ulp_WimaxRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3309   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3310                                    ett_ulp_WimaxRTD, WimaxRTD_sequence);
3311
3312   return offset;
3313 }
3314
3315
3316
3317 static int
3318 dissect_ulp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3319   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3320                                                             -32768, 32767U, NULL, FALSE);
3321
3322   return offset;
3323 }
3324
3325
3326 static const per_sequence_t WimaxNMR_sequence[] = {
3327   { &hf_ulp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxBsID },
3328   { &hf_ulp_relDelay        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M32768_32767 },
3329   { &hf_ulp_relDelaystd     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1023 },
3330   { &hf_ulp_rSSI            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3331   { &hf_ulp_rSSIstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_63 },
3332   { &hf_ulp_bSTxPower       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3333   { &hf_ulp_cINR            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3334   { &hf_ulp_cINRstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_63 },
3335   { &hf_ulp_bSLocation      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportedLocation },
3336   { NULL, 0, 0, NULL }
3337 };
3338
3339 static int
3340 dissect_ulp_WimaxNMR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3341   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3342                                    ett_ulp_WimaxNMR, WimaxNMR_sequence);
3343
3344   return offset;
3345 }
3346
3347
3348 static const per_sequence_t WimaxNMRList_sequence_of[1] = {
3349   { &hf_ulp_WimaxNMRList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxNMR },
3350 };
3351
3352 static int
3353 dissect_ulp_WimaxNMRList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3354   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3355                                                   ett_ulp_WimaxNMRList, WimaxNMRList_sequence_of,
3356                                                   1, maxWimaxBSMeas, FALSE);
3357
3358   return offset;
3359 }
3360
3361
3362 static const per_sequence_t WimaxBSInformation_sequence[] = {
3363   { &hf_ulp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxBsID },
3364   { &hf_ulp_wimaxRTD        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_WimaxRTD },
3365   { &hf_ulp_wimaxNMRList    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_WimaxNMRList },
3366   { NULL, 0, 0, NULL }
3367 };
3368
3369 static int
3370 dissect_ulp_WimaxBSInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3371   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3372                                    ett_ulp_WimaxBSInformation, WimaxBSInformation_sequence);
3373
3374   return offset;
3375 }
3376
3377
3378 static const value_string ulp_Ver2_CellInfo_extension_vals[] = {
3379   {   0, "hrpdCell" },
3380   {   1, "umbCell" },
3381   {   2, "lteCell" },
3382   {   3, "wlanAP" },
3383   {   4, "wimaxBS" },
3384   { 0, NULL }
3385 };
3386
3387 static const per_choice_t Ver2_CellInfo_extension_choice[] = {
3388   {   0, &hf_ulp_hrpdCell        , ASN1_EXTENSION_ROOT    , dissect_ulp_HrpdCellInformation },
3389   {   1, &hf_ulp_umbCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_UmbCellInformation },
3390   {   2, &hf_ulp_lteCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_LteCellInformation },
3391   {   3, &hf_ulp_wlanAP          , ASN1_EXTENSION_ROOT    , dissect_ulp_WlanAPInformation },
3392   {   4, &hf_ulp_wimaxBS         , ASN1_EXTENSION_ROOT    , dissect_ulp_WimaxBSInformation },
3393   { 0, NULL, 0, NULL }
3394 };
3395
3396 static int
3397 dissect_ulp_Ver2_CellInfo_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3398   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3399                                  ett_ulp_Ver2_CellInfo_extension, Ver2_CellInfo_extension_choice,
3400                                  NULL);
3401
3402   return offset;
3403 }
3404
3405
3406 static const value_string ulp_CellInfo_vals[] = {
3407   {   0, "gsmCell" },
3408   {   1, "wcdmaCell" },
3409   {   2, "cdmaCell" },
3410   {   3, "ver2-CellInfo-extension" },
3411   { 0, NULL }
3412 };
3413
3414 static const per_choice_t CellInfo_choice[] = {
3415   {   0, &hf_ulp_gsmCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_GsmCellInformation },
3416   {   1, &hf_ulp_wcdmaCell       , ASN1_EXTENSION_ROOT    , dissect_ulp_WcdmaCellInformation },
3417   {   2, &hf_ulp_cdmaCell        , ASN1_EXTENSION_ROOT    , dissect_ulp_CdmaCellInformation },
3418   {   3, &hf_ulp_ver2_CellInfo_extension, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_CellInfo_extension },
3419   { 0, NULL, 0, NULL }
3420 };
3421
3422 static int
3423 dissect_ulp_CellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3424   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3425                                  ett_ulp_CellInfo, CellInfo_choice,
3426                                  NULL);
3427
3428   return offset;
3429 }
3430
3431
3432 static const value_string ulp_Status_vals[] = {
3433   {   0, "stale" },
3434   {   1, "current" },
3435   {   2, "unknown" },
3436   { 0, NULL }
3437 };
3438
3439
3440 static int
3441 dissect_ulp_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3442   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3443                                      3, NULL, TRUE, 0, NULL);
3444
3445   return offset;
3446 }
3447
3448
3449 static const per_sequence_t LocationId_sequence[] = {
3450   { &hf_ulp_cellInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellInfo },
3451   { &hf_ulp_status          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Status },
3452   { NULL, 0, 0, NULL }
3453 };
3454
3455 static int
3456 dissect_ulp_LocationId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3457   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3458                                    ett_ulp_LocationId, LocationId_sequence);
3459
3460   return offset;
3461 }
3462
3463
3464
3465 static int
3466 dissect_ulp_RelativeTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3467   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3468                                                             0U, 65535U, NULL, FALSE);
3469
3470   return offset;
3471 }
3472
3473
3474 static const per_sequence_t LocationIdData_sequence[] = {
3475   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
3476   { &hf_ulp_relativetimestamp, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RelativeTime },
3477   { &hf_ulp_servingFlag     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
3478   { NULL, 0, 0, NULL }
3479 };
3480
3481 static int
3482 dissect_ulp_LocationIdData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3483   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3484                                    ett_ulp_LocationIdData, LocationIdData_sequence);
3485
3486   return offset;
3487 }
3488
3489
3490 static const per_sequence_t MultipleLocationIds_sequence_of[1] = {
3491   { &hf_ulp_MultipleLocationIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_LocationIdData },
3492 };
3493
3494 static int
3495 dissect_ulp_MultipleLocationIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3496   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3497                                                   ett_ulp_MultipleLocationIds, MultipleLocationIds_sequence_of,
3498                                                   1, maxLidSize, FALSE);
3499
3500   return offset;
3501 }
3502
3503
3504
3505 static int
3506 dissect_ulp_T_sip_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3507 #line 86 "ulp.cnf"
3508   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
3509                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
3510                                                       NULL);
3511
3512
3513   return offset;
3514 }
3515
3516
3517
3518 static int
3519 dissect_ulp_T_ims_public_identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3520 #line 91 "ulp.cnf"
3521   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
3522                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
3523                                                       NULL);
3524
3525
3526   return offset;
3527 }
3528
3529
3530
3531 static int
3532 dissect_ulp_T_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3533 #line 96 "ulp.cnf"
3534   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
3535                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%#", 69,
3536                                                       NULL);
3537
3538
3539
3540
3541   return offset;
3542 }
3543
3544
3545 static const value_string ulp_ThirdPartyID_vals[] = {
3546   {   0, "logicalName" },
3547   {   1, "msisdn" },
3548   {   2, "emailaddr" },
3549   {   3, "sip-uri" },
3550   {   4, "ims-public-identity" },
3551   {   5, "min" },
3552   {   6, "mdn" },
3553   {   7, "uri" },
3554   { 0, NULL }
3555 };
3556
3557 static const per_choice_t ThirdPartyID_choice[] = {
3558   {   0, &hf_ulp_logicalName     , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
3559   {   1, &hf_ulp_msisdn_01       , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_8 },
3560   {   2, &hf_ulp_emailaddr       , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
3561   {   3, &hf_ulp_sip_uri         , ASN1_EXTENSION_ROOT    , dissect_ulp_T_sip_uri },
3562   {   4, &hf_ulp_ims_public_identity, ASN1_EXTENSION_ROOT    , dissect_ulp_T_ims_public_identity },
3563   {   5, &hf_ulp_min_01          , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_34 },
3564   {   6, &hf_ulp_mdn             , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_8 },
3565   {   7, &hf_ulp_uri             , ASN1_EXTENSION_ROOT    , dissect_ulp_T_uri },
3566   { 0, NULL, 0, NULL }
3567 };
3568
3569 static int
3570 dissect_ulp_ThirdPartyID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3571   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3572                                  ett_ulp_ThirdPartyID, ThirdPartyID_choice,
3573                                  NULL);
3574
3575   return offset;
3576 }
3577
3578
3579 static const per_sequence_t ThirdParty_sequence_of[1] = {
3580   { &hf_ulp_ThirdParty_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ThirdPartyID },
3581 };
3582
3583 static int
3584 dissect_ulp_ThirdParty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3585   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3586                                                   ett_ulp_ThirdParty, ThirdParty_sequence_of,
3587                                                   1, 64, FALSE);
3588
3589   return offset;
3590 }
3591
3592
3593
3594 static int
3595 dissect_ulp_IA5String_SIZE_1_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3596   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3597                                           1, 24, FALSE);
3598
3599   return offset;
3600 }
3601
3602
3603
3604 static int
3605 dissect_ulp_IA5String_SIZE_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3606   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3607                                           1, 32, FALSE);
3608
3609   return offset;
3610 }
3611
3612
3613
3614 static int
3615 dissect_ulp_IA5String_SIZE_1_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3616   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3617                                           1, 8, FALSE);
3618
3619   return offset;
3620 }
3621
3622
3623 static const per_sequence_t ApplicationID_sequence[] = {
3624   { &hf_ulp_appProvider     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_IA5String_SIZE_1_24 },
3625   { &hf_ulp_appName         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_IA5String_SIZE_1_32 },
3626   { &hf_ulp_appVersion      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_IA5String_SIZE_1_8 },
3627   { NULL, 0, 0, NULL }
3628 };
3629
3630 static int
3631 dissect_ulp_ApplicationID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3632   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3633                                    ett_ulp_ApplicationID, ApplicationID_sequence);
3634
3635   return offset;
3636 }
3637
3638
3639
3640 static int
3641 dissect_ulp_UTCTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3642   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
3643                                         NO_BOUND, NO_BOUND, FALSE);
3644
3645   return offset;
3646 }
3647
3648
3649 static const value_string ulp_T_latitudeSign_vals[] = {
3650   {   0, "north" },
3651   {   1, "south" },
3652   { 0, NULL }
3653 };
3654
3655
3656 static int
3657 dissect_ulp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3658   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3659                                      2, NULL, FALSE, 0, NULL);
3660
3661   return offset;
3662 }
3663
3664
3665
3666 static int
3667 dissect_ulp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3668   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3669                                                             -8388608, 8388607U, NULL, FALSE);
3670
3671   return offset;
3672 }
3673
3674
3675
3676 static int
3677 dissect_ulp_INTEGER_0_180(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3678   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3679                                                             0U, 180U, NULL, FALSE);
3680
3681   return offset;
3682 }
3683
3684
3685 static const per_sequence_t T_uncertainty_sequence[] = {
3686   { &hf_ulp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
3687   { &hf_ulp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
3688   { &hf_ulp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_180 },
3689   { NULL, 0, 0, NULL }
3690 };
3691
3692 static int
3693 dissect_ulp_T_uncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3694   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3695                                    ett_ulp_T_uncertainty, T_uncertainty_sequence);
3696
3697   return offset;
3698 }
3699
3700
3701
3702 static int
3703 dissect_ulp_INTEGER_0_100(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3704   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3705                                                             0U, 100U, NULL, FALSE);
3706
3707   return offset;
3708 }
3709
3710
3711 static const value_string ulp_T_altitudeDirection_vals[] = {
3712   {   0, "height" },
3713   {   1, "depth" },
3714   { 0, NULL }
3715 };
3716
3717
3718 static int
3719 dissect_ulp_T_altitudeDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3720   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3721                                      2, NULL, FALSE, 0, NULL);
3722
3723   return offset;
3724 }
3725
3726
3727 static const per_sequence_t AltitudeInfo_sequence[] = {
3728   { &hf_ulp_altitudeDirection, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_altitudeDirection },
3729   { &hf_ulp_altitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
3730   { &hf_ulp_altUncertainty  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
3731   { NULL, 0, 0, NULL }
3732 };
3733
3734 static int
3735 dissect_ulp_AltitudeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3737                                    ett_ulp_AltitudeInfo, AltitudeInfo_sequence);
3738
3739   return offset;
3740 }
3741
3742
3743 static const per_sequence_t PositionEstimate_sequence[] = {
3744   { &hf_ulp_latitudeSign    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign },
3745   { &hf_ulp_latitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
3746   { &hf_ulp_longitude       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
3747   { &hf_ulp_uncertainty     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_uncertainty },
3748   { &hf_ulp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_100 },
3749   { &hf_ulp_altitudeInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_AltitudeInfo },
3750   { NULL, 0, 0, NULL }
3751 };
3752
3753 static int
3754 dissect_ulp_PositionEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3755   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3756                                    ett_ulp_PositionEstimate, PositionEstimate_sequence);
3757
3758   return offset;
3759 }
3760
3761
3762
3763 static int
3764 dissect_ulp_BIT_STRING_SIZE_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3765   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3766                                      9, 9, FALSE, NULL);
3767
3768   return offset;
3769 }
3770
3771
3772
3773 static int
3774 dissect_ulp_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3775   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3776                                      16, 16, FALSE, NULL);
3777
3778   return offset;
3779 }
3780
3781
3782 static const per_sequence_t Horvel_sequence[] = {
3783   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3784   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3785   { NULL, 0, 0, NULL }
3786 };
3787
3788 static int
3789 dissect_ulp_Horvel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3790   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3791                                    ett_ulp_Horvel, Horvel_sequence);
3792
3793   return offset;
3794 }
3795
3796
3797
3798 static int
3799 dissect_ulp_BIT_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3800   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3801                                      1, 1, FALSE, NULL);
3802
3803   return offset;
3804 }
3805
3806
3807
3808 static int
3809 dissect_ulp_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3810   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3811                                      8, 8, FALSE, NULL);
3812
3813   return offset;
3814 }
3815
3816
3817 static const per_sequence_t Horandvervel_sequence[] = {
3818   { &hf_ulp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_1 },
3819   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3820   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3821   { &hf_ulp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3822   { NULL, 0, 0, NULL }
3823 };
3824
3825 static int
3826 dissect_ulp_Horandvervel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3827   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3828                                    ett_ulp_Horandvervel, Horandvervel_sequence);
3829
3830   return offset;
3831 }
3832
3833
3834 static const per_sequence_t Horveluncert_sequence[] = {
3835   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3836   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3837   { &hf_ulp_uncertspeed     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3838   { NULL, 0, 0, NULL }
3839 };
3840
3841 static int
3842 dissect_ulp_Horveluncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3843   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3844                                    ett_ulp_Horveluncert, Horveluncert_sequence);
3845
3846   return offset;
3847 }
3848
3849
3850 static const per_sequence_t Horandveruncert_sequence[] = {
3851   { &hf_ulp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_1 },
3852   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3853   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3854   { &hf_ulp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3855   { &hf_ulp_horuncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3856   { &hf_ulp_veruncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3857   { NULL, 0, 0, NULL }
3858 };
3859
3860 static int
3861 dissect_ulp_Horandveruncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3862   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3863                                    ett_ulp_Horandveruncert, Horandveruncert_sequence);
3864
3865   return offset;
3866 }
3867
3868
3869 static const value_string ulp_Velocity_vals[] = {
3870   {   0, "horvel" },
3871   {   1, "horandvervel" },
3872   {   2, "horveluncert" },
3873   {   3, "horandveruncert" },
3874   { 0, NULL }
3875 };
3876
3877 static const per_choice_t Velocity_choice[] = {
3878   {   0, &hf_ulp_horvel          , ASN1_EXTENSION_ROOT    , dissect_ulp_Horvel },
3879   {   1, &hf_ulp_horandvervel    , ASN1_EXTENSION_ROOT    , dissect_ulp_Horandvervel },
3880   {   2, &hf_ulp_horveluncert    , ASN1_EXTENSION_ROOT    , dissect_ulp_Horveluncert },
3881   {   3, &hf_ulp_horandveruncert , ASN1_EXTENSION_ROOT    , dissect_ulp_Horandveruncert },
3882   { 0, NULL, 0, NULL }
3883 };
3884
3885 static int
3886 dissect_ulp_Velocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3887   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3888                                  ett_ulp_Velocity, Velocity_choice,
3889                                  NULL);
3890
3891   return offset;
3892 }
3893
3894
3895 static const per_sequence_t Position_sequence[] = {
3896   { &hf_ulp_timestamp_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UTCTime },
3897   { &hf_ulp_positionEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PositionEstimate },
3898   { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
3899   { NULL, 0, 0, NULL }
3900 };
3901
3902 static int
3903 dissect_ulp_Position(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3904   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3905                                    ett_ulp_Position, Position_sequence);
3906
3907   return offset;
3908 }
3909
3910
3911 static const per_sequence_t Ver2_SUPL_START_extension_sequence[] = {
3912   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
3913   { &hf_ulp_thirdParty      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ThirdParty },
3914   { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
3915   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
3916   { NULL, 0, 0, NULL }
3917 };
3918
3919 static int
3920 dissect_ulp_Ver2_SUPL_START_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3921   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3922                                    ett_ulp_Ver2_SUPL_START_extension, Ver2_SUPL_START_extension_sequence);
3923
3924   return offset;
3925 }
3926
3927
3928 static const per_sequence_t SUPLSTART_sequence[] = {
3929   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
3930   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
3931   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
3932   { &hf_ulp_ver2_SUPL_START_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_START_extension },
3933   { NULL, 0, 0, NULL }
3934 };
3935
3936 static int
3937 dissect_ulp_SUPLSTART(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3938   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3939                                    ett_ulp_SUPLSTART, SUPLSTART_sequence);
3940
3941   return offset;
3942 }
3943
3944
3945
3946 static int
3947 dissect_ulp_BIT_STRING_SIZE_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3948   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3949                                      256, 256, FALSE, NULL);
3950
3951   return offset;
3952 }
3953
3954
3955 static const value_string ulp_SETAuthKey_vals[] = {
3956   {   0, "shortKey" },
3957   {   1, "longKey" },
3958   { 0, NULL }
3959 };
3960
3961 static const per_choice_t SETAuthKey_choice[] = {
3962   {   0, &hf_ulp_shortKey        , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_128 },
3963   {   1, &hf_ulp_longKey         , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_256 },
3964   { 0, NULL, 0, NULL }
3965 };
3966
3967 static int
3968 dissect_ulp_SETAuthKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3969   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3970                                  ett_ulp_SETAuthKey, SETAuthKey_choice,
3971                                  NULL);
3972
3973   return offset;
3974 }
3975
3976
3977
3978 static int
3979 dissect_ulp_KeyIdentity4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3980   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3981                                      128, 128, FALSE, NULL);
3982
3983   return offset;
3984 }
3985
3986
3987
3988 static int
3989 dissect_ulp_SPCSETKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3990   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3991                                      128, 128, FALSE, NULL);
3992
3993   return offset;
3994 }
3995
3996
3997 static const per_sequence_t SPCTID_sequence[] = {
3998   { &hf_ulp_rAND            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
3999   { &hf_ulp_slpFQDN         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_FQDN },
4000   { NULL, 0, 0, NULL }
4001 };
4002
4003 static int
4004 dissect_ulp_SPCTID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4005   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4006                                    ett_ulp_SPCTID, SPCTID_sequence);
4007
4008   return offset;
4009 }
4010
4011
4012
4013 static int
4014 dissect_ulp_SPCSETKeylifetime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4015   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4016                                                             1U, 24U, NULL, FALSE);
4017
4018   return offset;
4019 }
4020
4021
4022 static const per_sequence_t Ver2_SUPL_RESPONSE_extension_sequence[] = {
4023   { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
4024   { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKey },
4025   { &hf_ulp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCTID },
4026   { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
4027   { &hf_ulp_initialApproximateposition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
4028   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
4029   { NULL, 0, 0, NULL }
4030 };
4031
4032 static int
4033 dissect_ulp_Ver2_SUPL_RESPONSE_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4034   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4035                                    ett_ulp_Ver2_SUPL_RESPONSE_extension, Ver2_SUPL_RESPONSE_extension_sequence);
4036
4037   return offset;
4038 }
4039
4040
4041 static const per_sequence_t SUPLRESPONSE_sequence[] = {
4042   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
4043   { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
4044   { &hf_ulp_sETAuthKey      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETAuthKey },
4045   { &hf_ulp_keyIdentity4    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_KeyIdentity4 },
4046   { &hf_ulp_ver2_SUPL_RESPONSE_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_RESPONSE_extension },
4047   { NULL, 0, 0, NULL }
4048 };
4049
4050 static int
4051 dissect_ulp_SUPLRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4052   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4053                                    ett_ulp_SUPLRESPONSE, SUPLRESPONSE_sequence);
4054
4055   return offset;
4056 }
4057
4058
4059
4060 static int
4061 dissect_ulp_INTEGER_0_167(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4062   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4063                                                             0U, 167U, NULL, FALSE);
4064
4065   return offset;
4066 }
4067
4068
4069
4070 static int
4071 dissect_ulp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4072   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4073                                                             0U, 31U, NULL, FALSE);
4074
4075   return offset;
4076 }
4077
4078
4079
4080 static int
4081 dissect_ulp_INTEGER_0_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4082   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4083                                                             0U, 10U, NULL, FALSE);
4084
4085   return offset;
4086 }
4087
4088
4089 static const per_sequence_t SatelliteInfoElement_sequence[] = {
4090   { &hf_ulp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
4091   { &hf_ulp_iODE            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
4092   { NULL, 0, 0, NULL }
4093 };
4094
4095 static int
4096 dissect_ulp_SatelliteInfoElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4097   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4098                                    ett_ulp_SatelliteInfoElement, SatelliteInfoElement_sequence);
4099
4100   return offset;
4101 }
4102
4103
4104 static const per_sequence_t SatelliteInfo_sequence_of[1] = {
4105   { &hf_ulp_SatelliteInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SatelliteInfoElement },
4106 };
4107
4108 static int
4109 dissect_ulp_SatelliteInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4110   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4111                                                   ett_ulp_SatelliteInfo, SatelliteInfo_sequence_of,
4112                                                   1, 31, FALSE);
4113
4114   return offset;
4115 }
4116
4117
4118 static const per_sequence_t NavigationModel_sequence[] = {
4119   { &hf_ulp_gpsWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4120   { &hf_ulp_gpsToe          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
4121   { &hf_ulp_nSAT            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_31 },
4122   { &hf_ulp_toeLimit        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_10 },
4123   { &hf_ulp_satInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SatelliteInfo },
4124   { NULL, 0, 0, NULL }
4125 };
4126
4127 static int
4128 dissect_ulp_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4129   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4130                                    ett_ulp_NavigationModel, NavigationModel_sequence);
4131
4132   return offset;
4133 }
4134
4135
4136 static const per_sequence_t GanssRequestedCommonAssistanceDataList_sequence[] = {
4137   { &hf_ulp_ganssReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4138   { &hf_ulp_ganssIonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4139   { &hf_ulp_ganssAdditionalIonosphericModelForDataID00, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4140   { &hf_ulp_ganssAdditionalIonosphericModelForDataID11, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4141   { &hf_ulp_ganssEarthOrientationParameters, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4142   { NULL, 0, 0, NULL }
4143 };
4144
4145 static int
4146 dissect_ulp_GanssRequestedCommonAssistanceDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4147   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4148                                    ett_ulp_GanssRequestedCommonAssistanceDataList, GanssRequestedCommonAssistanceDataList_sequence);
4149
4150   return offset;
4151 }
4152
4153
4154
4155 static int
4156 dissect_ulp_DGANSS_Sig_Id_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4157   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4158                                      8, 8, FALSE, NULL);
4159
4160   return offset;
4161 }
4162
4163
4164
4165 static int
4166 dissect_ulp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4167   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4168                                                             0U, 4095U, NULL, FALSE);
4169
4170   return offset;
4171 }
4172
4173
4174 static const per_sequence_t SatellitesListRelatedData_sequence[] = {
4175   { &hf_ulp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
4176   { &hf_ulp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4177   { NULL, 0, 0, NULL }
4178 };
4179
4180 static int
4181 dissect_ulp_SatellitesListRelatedData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4182   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4183                                    ett_ulp_SatellitesListRelatedData, SatellitesListRelatedData_sequence);
4184
4185   return offset;
4186 }
4187
4188
4189 static const per_sequence_t SatellitesListRelatedDataList_sequence_of[1] = {
4190   { &hf_ulp_SatellitesListRelatedDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SatellitesListRelatedData },
4191 };
4192
4193 static int
4194 dissect_ulp_SatellitesListRelatedDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4195   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4196                                                   ett_ulp_SatellitesListRelatedDataList, SatellitesListRelatedDataList_sequence_of,
4197                                                   0, maxGANSSSat, FALSE);
4198
4199   return offset;
4200 }
4201
4202
4203 static const per_sequence_t GanssNavigationModelData_sequence[] = {
4204   { &hf_ulp_ganssWeek       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4205   { &hf_ulp_ganssToe        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
4206   { &hf_ulp_t_toeLimit      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4207   { &hf_ulp_satellitesListRelatedDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SatellitesListRelatedDataList },
4208   { NULL, 0, 0, NULL }
4209 };
4210
4211 static int
4212 dissect_ulp_GanssNavigationModelData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4213   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4214                                    ett_ulp_GanssNavigationModelData, GanssNavigationModelData_sequence);
4215
4216   return offset;
4217 }
4218
4219
4220
4221 static int
4222 dissect_ulp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4223   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4224                                                             0U, 59U, NULL, FALSE);
4225
4226   return offset;
4227 }
4228
4229
4230 static const per_sequence_t T_ganssDataBitSatList_sequence_of[1] = {
4231   { &hf_ulp_ganssDataBitSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
4232 };
4233
4234 static int
4235 dissect_ulp_T_ganssDataBitSatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4236   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4237                                                   ett_ulp_T_ganssDataBitSatList, T_ganssDataBitSatList_sequence_of,
4238                                                   1, maxGANSSSat, FALSE);
4239
4240   return offset;
4241 }
4242
4243
4244 static const per_sequence_t ReqDataBitAssistanceList_sequence[] = {
4245   { &hf_ulp_gnssSignals     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
4246   { &hf_ulp_ganssDataBitInterval, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4247   { &hf_ulp_ganssDataBitSatList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_ganssDataBitSatList },
4248   { NULL, 0, 0, NULL }
4249 };
4250
4251 static int
4252 dissect_ulp_ReqDataBitAssistanceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4253   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4254                                    ett_ulp_ReqDataBitAssistanceList, ReqDataBitAssistanceList_sequence);
4255
4256   return offset;
4257 }
4258
4259
4260 static const per_sequence_t GanssDataBits_sequence[] = {
4261   { &hf_ulp_ganssTODmin     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_59 },
4262   { &hf_ulp_reqDataBitAssistanceList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ReqDataBitAssistanceList },
4263   { NULL, 0, 0, NULL }
4264 };
4265
4266 static int
4267 dissect_ulp_GanssDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4268   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4269                                    ett_ulp_GanssDataBits, GanssDataBits_sequence);
4270
4271   return offset;
4272 }
4273
4274
4275 static const per_sequence_t GanssAdditionalDataChoices_sequence[] = {
4276   { &hf_ulp_orbitModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4277   { &hf_ulp_clockModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4278   { &hf_ulp_utcModelID      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4279   { &hf_ulp_almanacModelID  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4280   { NULL, 0, 0, NULL }
4281 };
4282
4283 static int
4284 dissect_ulp_GanssAdditionalDataChoices(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4285   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4286                                    ett_ulp_GanssAdditionalDataChoices, GanssAdditionalDataChoices_sequence);
4287
4288   return offset;
4289 }
4290
4291
4292
4293 static int
4294 dissect_ulp_INTEGER_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4295   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4296                                                             1U, 256U, NULL, FALSE);
4297
4298   return offset;
4299 }
4300
4301
4302 static const per_sequence_t ExtendedEphemeris_sequence[] = {
4303   { &hf_ulp_validity        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_256 },
4304   { NULL, 0, 0, NULL }
4305 };
4306
4307 static int
4308 dissect_ulp_ExtendedEphemeris(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4309   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4310                                    ett_ulp_ExtendedEphemeris, ExtendedEphemeris_sequence);
4311
4312   return offset;
4313 }
4314
4315
4316
4317 static int
4318 dissect_ulp_INTEGER_0_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4319   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4320                                                             0U, 23U, NULL, FALSE);
4321
4322   return offset;
4323 }
4324
4325
4326 static const per_sequence_t GANSSextEphTime_sequence[] = {
4327   { &hf_ulp_gANSSday        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8191 },
4328   { &hf_ulp_gANSSTODhour    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_23 },
4329   { NULL, 0, 0, NULL }
4330 };
4331
4332 static int
4333 dissect_ulp_GANSSextEphTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4334   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4335                                    ett_ulp_GANSSextEphTime, GANSSextEphTime_sequence);
4336
4337   return offset;
4338 }
4339
4340
4341 static const per_sequence_t GanssExtendedEphCheck_sequence[] = {
4342   { &hf_ulp_beginTime_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSextEphTime },
4343   { &hf_ulp_endTime_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSextEphTime },
4344   { NULL, 0, 0, NULL }
4345 };
4346
4347 static int
4348 dissect_ulp_GanssExtendedEphCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4349   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4350                                    ett_ulp_GanssExtendedEphCheck, GanssExtendedEphCheck_sequence);
4351
4352   return offset;
4353 }
4354
4355
4356 static const per_sequence_t GanssReqGenericData_sequence[] = {
4357   { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4358   { &hf_ulp_ganssSBASid     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_3 },
4359   { &hf_ulp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4360   { &hf_ulp_ganssDifferentialCorrection, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_DGANSS_Sig_Id_Req },
4361   { &hf_ulp_ganssAlmanac    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4362   { &hf_ulp_ganssNavigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssNavigationModelData },
4363   { &hf_ulp_ganssTimeModels , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_16 },
4364   { &hf_ulp_ganssReferenceMeasurementInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4365   { &hf_ulp_ganssDataBits   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssDataBits },
4366   { &hf_ulp_ganssUTCModel   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4367   { &hf_ulp_ganssAdditionalDataChoices, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssAdditionalDataChoices },
4368   { &hf_ulp_ganssAuxiliaryInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4369   { &hf_ulp_ganssExtendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphemeris },
4370   { &hf_ulp_ganssExtendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssExtendedEphCheck },
4371   { NULL, 0, 0, NULL }
4372 };
4373
4374 static int
4375 dissect_ulp_GanssReqGenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4376   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4377                                    ett_ulp_GanssReqGenericData, GanssReqGenericData_sequence);
4378
4379   return offset;
4380 }
4381
4382
4383 static const per_sequence_t GanssRequestedGenericAssistanceDataList_sequence_of[1] = {
4384   { &hf_ulp_GanssRequestedGenericAssistanceDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GanssReqGenericData },
4385 };
4386
4387 static int
4388 dissect_ulp_GanssRequestedGenericAssistanceDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4389   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4390                                                   ett_ulp_GanssRequestedGenericAssistanceDataList, GanssRequestedGenericAssistanceDataList_sequence_of,
4391                                                   1, maxGANSS, FALSE);
4392
4393   return offset;
4394 }
4395
4396
4397 static const per_sequence_t GPSTime_sequence[] = {
4398   { &hf_ulp_gPSWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4399   { &hf_ulp_gPSTOWhour      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
4400   { NULL, 0, 0, NULL }
4401 };
4402
4403 static int
4404 dissect_ulp_GPSTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4405   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4406                                    ett_ulp_GPSTime, GPSTime_sequence);
4407
4408   return offset;
4409 }
4410
4411
4412 static const per_sequence_t ExtendedEphCheck_sequence[] = {
4413   { &hf_ulp_beginTime       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GPSTime },
4414   { &hf_ulp_endTime         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GPSTime },
4415   { NULL, 0, 0, NULL }
4416 };
4417
4418 static int
4419 dissect_ulp_ExtendedEphCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4420   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4421                                    ett_ulp_ExtendedEphCheck, ExtendedEphCheck_sequence);
4422
4423   return offset;
4424 }
4425
4426
4427 static const per_sequence_t Ver2_RequestedAssistData_extension_sequence[] = {
4428   { &hf_ulp_ganssRequestedCommonAssistanceDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssRequestedCommonAssistanceDataList },
4429   { &hf_ulp_ganssRequestedGenericAssistanceDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssRequestedGenericAssistanceDataList },
4430   { &hf_ulp_extendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphemeris },
4431   { &hf_ulp_extendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphCheck },
4432   { NULL, 0, 0, NULL }
4433 };
4434
4435 static int
4436 dissect_ulp_Ver2_RequestedAssistData_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4437   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4438                                    ett_ulp_Ver2_RequestedAssistData_extension, Ver2_RequestedAssistData_extension_sequence);
4439
4440   return offset;
4441 }
4442
4443
4444 static const per_sequence_t RequestedAssistData_sequence[] = {
4445   { &hf_ulp_almanacRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4446   { &hf_ulp_utcModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4447   { &hf_ulp_ionosphericModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4448   { &hf_ulp_dgpsCorrectionsRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4449   { &hf_ulp_referenceLocationRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4450   { &hf_ulp_referenceTimeRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4451   { &hf_ulp_acquisitionAssistanceRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4452   { &hf_ulp_realTimeIntegrityRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4453   { &hf_ulp_navigationModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4454   { &hf_ulp_navigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NavigationModel },
4455   { &hf_ulp_ver2_RequestedAssistData_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_RequestedAssistData_extension },
4456   { NULL, 0, 0, NULL }
4457 };
4458
4459 static int
4460 dissect_ulp_RequestedAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4461   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4462                                    ett_ulp_RequestedAssistData, RequestedAssistData_sequence);
4463
4464   return offset;
4465 }
4466
4467
4468
4469 static int
4470 dissect_ulp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4471   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4472                                        1, 8192, FALSE, NULL);
4473
4474   return offset;
4475 }
4476
4477
4478
4479 static int
4480 dissect_ulp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4481 #line 48 "ulp.cnf"
4482  tvbuff_t *rrlp_tvb;
4483
4484   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4485                                        1, 8192, FALSE, &rrlp_tvb);
4486
4487
4488   if (rrlp_tvb && rrlp_handle) {
4489         call_dissector(rrlp_handle, rrlp_tvb, actx->pinfo, tree);
4490   }
4491
4492
4493
4494   return offset;
4495 }
4496
4497
4498 static const per_sequence_t Ver2_PosPayLoad_extension_sequence[] = {
4499   { &hf_ulp_lPPPayload      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_1_8192 },
4500   { NULL, 0, 0, NULL }
4501 };
4502
4503 static int
4504 dissect_ulp_Ver2_PosPayLoad_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4505   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4506                                    ett_ulp_Ver2_PosPayLoad_extension, Ver2_PosPayLoad_extension_sequence);
4507
4508   return offset;
4509 }
4510
4511
4512 static const value_string ulp_PosPayLoad_vals[] = {
4513   {   0, "tia801payload" },
4514   {   1, "rrcPayload" },
4515   {   2, "rrlpPayload" },
4516   {   3, "ver2-PosPayLoad-extension" },
4517   { 0, NULL }
4518 };
4519
4520 static const per_choice_t PosPayLoad_choice[] = {
4521   {   0, &hf_ulp_tia801payload   , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
4522   {   1, &hf_ulp_rrcPayload      , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
4523   {   2, &hf_ulp_rrlpPayload     , ASN1_EXTENSION_ROOT    , dissect_ulp_T_rrlpPayload },
4524   {   3, &hf_ulp_ver2_PosPayLoad_extension, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_PosPayLoad_extension },
4525   { 0, NULL, 0, NULL }
4526 };
4527
4528 static int
4529 dissect_ulp_PosPayLoad(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4530   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4531                                  ett_ulp_PosPayLoad, PosPayLoad_choice,
4532                                  NULL);
4533
4534   return offset;
4535 }
4536
4537
4538 static const per_sequence_t T_utran_GPSTimingOfCell_sequence[] = {
4539   { &hf_ulp_ms_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4540   { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
4541   { NULL, 0, 0, NULL }
4542 };
4543
4544 static int
4545 dissect_ulp_T_utran_GPSTimingOfCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4546   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4547                                    ett_ulp_T_utran_GPSTimingOfCell, T_utran_GPSTimingOfCell_sequence);
4548
4549   return offset;
4550 }
4551
4552
4553 static const per_sequence_t T_fdd_01_sequence[] = {
4554   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4555   { NULL, 0, 0, NULL }
4556 };
4557
4558 static int
4559 dissect_ulp_T_fdd_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4560   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4561                                    ett_ulp_T_fdd_01, T_fdd_01_sequence);
4562
4563   return offset;
4564 }
4565
4566
4567 static const per_sequence_t T_tdd_01_sequence[] = {
4568   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4569   { NULL, 0, 0, NULL }
4570 };
4571
4572 static int
4573 dissect_ulp_T_tdd_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4574   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4575                                    ett_ulp_T_tdd_01, T_tdd_01_sequence);
4576
4577   return offset;
4578 }
4579
4580
4581 static const value_string ulp_T_modeSpecificInfo_01_vals[] = {
4582   {   0, "fdd" },
4583   {   1, "tdd" },
4584   { 0, NULL }
4585 };
4586
4587 static const per_choice_t T_modeSpecificInfo_01_choice[] = {
4588   {   0, &hf_ulp_fdd_01          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_01 },
4589   {   1, &hf_ulp_tdd_01          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_01 },
4590   { 0, NULL, 0, NULL }
4591 };
4592
4593 static int
4594 dissect_ulp_T_modeSpecificInfo_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4595   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4596                                  ett_ulp_T_modeSpecificInfo_01, T_modeSpecificInfo_01_choice,
4597                                  NULL);
4598
4599   return offset;
4600 }
4601
4602
4603 static const per_sequence_t UTRAN_GPSReferenceTime_sequence[] = {
4604   { &hf_ulp_utran_GPSTimingOfCell, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_utran_GPSTimingOfCell },
4605   { &hf_ulp_modeSpecificInfo_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_01 },
4606   { &hf_ulp_sfn             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4607   { NULL, 0, 0, NULL }
4608 };
4609
4610 static int
4611 dissect_ulp_UTRAN_GPSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4612   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4613                                    ett_ulp_UTRAN_GPSReferenceTime, UTRAN_GPSReferenceTime_sequence);
4614
4615   return offset;
4616 }
4617
4618
4619 static const value_string ulp_UTRANGPSDriftRate_vals[] = {
4620   {   0, "utran-GPSDrift0" },
4621   {   1, "utran-GPSDrift1" },
4622   {   2, "utran-GPSDrift2" },
4623   {   3, "utran-GPSDrift5" },
4624   {   4, "utran-GPSDrift10" },
4625   {   5, "utran-GPSDrift15" },
4626   {   6, "utran-GPSDrift25" },
4627   {   7, "utran-GPSDrift50" },
4628   {   8, "utran-GPSDrift-1" },
4629   {   9, "utran-GPSDrift-2" },
4630   {  10, "utran-GPSDrift-5" },
4631   {  11, "utran-GPSDrift-10" },
4632   {  12, "utran-GPSDrift-15" },
4633   {  13, "utran-GPSDrift-25" },
4634   {  14, "utran-GPSDrift-50" },
4635   { 0, NULL }
4636 };
4637
4638
4639 static int
4640 dissect_ulp_UTRANGPSDriftRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4641   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4642                                      15, NULL, FALSE, 0, NULL);
4643
4644   return offset;
4645 }
4646
4647
4648 static const per_sequence_t UTRAN_GPSReferenceTimeAssistance_sequence[] = {
4649   { &hf_ulp_utran_GPSReferenceTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UTRAN_GPSReferenceTime },
4650   { &hf_ulp_gpsReferenceTimeUncertainty, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4651   { &hf_ulp_utranGPSDriftRate, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRANGPSDriftRate },
4652   { NULL, 0, 0, NULL }
4653 };
4654
4655 static int
4656 dissect_ulp_UTRAN_GPSReferenceTimeAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4657   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4658                                    ett_ulp_UTRAN_GPSReferenceTimeAssistance, UTRAN_GPSReferenceTimeAssistance_sequence);
4659
4660   return offset;
4661 }
4662
4663
4664
4665 static int
4666 dissect_ulp_INTEGER_0_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4667   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4668                                                             0U, 16383U, NULL, FALSE);
4669
4670   return offset;
4671 }
4672
4673
4674 static const per_sequence_t T_set_GPSTimingOfCell_sequence[] = {
4675   { &hf_ulp_ms_part_01      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_16383 },
4676   { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
4677   { NULL, 0, 0, NULL }
4678 };
4679
4680 static int
4681 dissect_ulp_T_set_GPSTimingOfCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4682   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4683                                    ett_ulp_T_set_GPSTimingOfCell, T_set_GPSTimingOfCell_sequence);
4684
4685   return offset;
4686 }
4687
4688
4689 static const per_sequence_t T_fdd_02_sequence[] = {
4690   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4691   { NULL, 0, 0, NULL }
4692 };
4693
4694 static int
4695 dissect_ulp_T_fdd_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4696   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4697                                    ett_ulp_T_fdd_02, T_fdd_02_sequence);
4698
4699   return offset;
4700 }
4701
4702
4703 static const per_sequence_t T_tdd_02_sequence[] = {
4704   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4705   { NULL, 0, 0, NULL }
4706 };
4707
4708 static int
4709 dissect_ulp_T_tdd_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4710   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4711                                    ett_ulp_T_tdd_02, T_tdd_02_sequence);
4712
4713   return offset;
4714 }
4715
4716
4717 static const value_string ulp_T_modeSpecificInfo_02_vals[] = {
4718   {   0, "fdd" },
4719   {   1, "tdd" },
4720   { 0, NULL }
4721 };
4722
4723 static const per_choice_t T_modeSpecificInfo_02_choice[] = {
4724   {   0, &hf_ulp_fdd_02          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_02 },
4725   {   1, &hf_ulp_tdd_02          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_02 },
4726   { 0, NULL, 0, NULL }
4727 };
4728
4729 static int
4730 dissect_ulp_T_modeSpecificInfo_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4731   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4732                                  ett_ulp_T_modeSpecificInfo_02, T_modeSpecificInfo_02_choice,
4733                                  NULL);
4734
4735   return offset;
4736 }
4737
4738
4739 static const per_sequence_t UTRAN_GPSReferenceTimeResult_sequence[] = {
4740   { &hf_ulp_set_GPSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_set_GPSTimingOfCell },
4741   { &hf_ulp_modeSpecificInfo_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_02 },
4742   { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4743   { &hf_ulp_gpsReferenceTimeUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4744   { NULL, 0, 0, NULL }
4745 };
4746
4747 static int
4748 dissect_ulp_UTRAN_GPSReferenceTimeResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4749   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4750                                    ett_ulp_UTRAN_GPSReferenceTimeResult, UTRAN_GPSReferenceTimeResult_sequence);
4751
4752   return offset;
4753 }
4754
4755
4756
4757 static int
4758 dissect_ulp_INTEGER_0_86399(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4759   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4760                                                             0U, 86399U, NULL, FALSE);
4761
4762   return offset;
4763 }
4764
4765
4766
4767 static int
4768 dissect_ulp_INTEGER_0_3999999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4769   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4770                                                             0U, 3999999U, NULL, FALSE);
4771
4772   return offset;
4773 }
4774
4775
4776 static const per_sequence_t T_fdd_03_sequence[] = {
4777   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4778   { NULL, 0, 0, NULL }
4779 };
4780
4781 static int
4782 dissect_ulp_T_fdd_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4783   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4784                                    ett_ulp_T_fdd_03, T_fdd_03_sequence);
4785
4786   return offset;
4787 }
4788
4789
4790 static const per_sequence_t T_tdd_03_sequence[] = {
4791   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4792   { NULL, 0, 0, NULL }
4793 };
4794
4795 static int
4796 dissect_ulp_T_tdd_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4797   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4798                                    ett_ulp_T_tdd_03, T_tdd_03_sequence);
4799
4800   return offset;
4801 }
4802
4803
4804 static const value_string ulp_T_modeSpecificInfo_03_vals[] = {
4805   {   0, "fdd" },
4806   {   1, "tdd" },
4807   { 0, NULL }
4808 };
4809
4810 static const per_choice_t T_modeSpecificInfo_03_choice[] = {
4811   {   0, &hf_ulp_fdd_03          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_03 },
4812   {   1, &hf_ulp_tdd_03          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_03 },
4813   { 0, NULL, 0, NULL }
4814 };
4815
4816 static int
4817 dissect_ulp_T_modeSpecificInfo_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4818   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4819                                  ett_ulp_T_modeSpecificInfo_03, T_modeSpecificInfo_03_choice,
4820                                  NULL);
4821
4822   return offset;
4823 }
4824
4825
4826 static const per_sequence_t UTRAN_GANSSReferenceTime_sequence[] = {
4827   { &hf_ulp_ganssTOD        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_86399 },
4828   { &hf_ulp_utran_GANSSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_3999999 },
4829   { &hf_ulp_modeSpecificInfo_03, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_03 },
4830   { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4831   { &hf_ulp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4832   { NULL, 0, 0, NULL }
4833 };
4834
4835 static int
4836 dissect_ulp_UTRAN_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4837   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4838                                    ett_ulp_UTRAN_GANSSReferenceTime, UTRAN_GANSSReferenceTime_sequence);
4839
4840   return offset;
4841 }
4842
4843
4844 static const value_string ulp_UTRANGANSSDriftRate_vals[] = {
4845   {   0, "utran-GANSSDrift0" },
4846   {   1, "utran-GANSSDrift1" },
4847   {   2, "utran-GANSSDrift2" },
4848   {   3, "utran-GANSSDrift5" },
4849   {   4, "utran-GANSSDrift10" },
4850   {   5, "utran-GANSSDrift15" },
4851   {   6, "utran-GANSSDrift25" },
4852   {   7, "utran-GANSSDrift50" },
4853   {   8, "utran-GANSSDrift-1" },
4854   {   9, "utran-GANSSDrift-2" },
4855   {  10, "utran-GANSSDrift-5" },
4856   {  11, "utran-GANSSDrift-10" },
4857   {  12, "utran-GANSSDrift-15" },
4858   {  13, "utran-GANSSDrift-25" },
4859   {  14, "utran-GANSSDrift-50" },
4860   { 0, NULL }
4861 };
4862
4863
4864 static int
4865 dissect_ulp_UTRANGANSSDriftRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4866   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4867                                      15, NULL, FALSE, 0, NULL);
4868
4869   return offset;
4870 }
4871
4872
4873 static const per_sequence_t UTRAN_GANSSReferenceTimeAssistance_sequence[] = {
4874   { &hf_ulp_ganssDay        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_8191 },
4875   { &hf_ulp_ganssTimeID     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4876   { &hf_ulp_utran_GANSSReferenceTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UTRAN_GANSSReferenceTime },
4877   { &hf_ulp_utranGANSSDriftRate, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRANGANSSDriftRate },
4878   { NULL, 0, 0, NULL }
4879 };
4880
4881 static int
4882 dissect_ulp_UTRAN_GANSSReferenceTimeAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4883   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4884                                    ett_ulp_UTRAN_GANSSReferenceTimeAssistance, UTRAN_GANSSReferenceTimeAssistance_sequence);
4885
4886   return offset;
4887 }
4888
4889
4890
4891 static int
4892 dissect_ulp_INTEGER_0_80(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4893   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4894                                                             0U, 80U, NULL, FALSE);
4895
4896   return offset;
4897 }
4898
4899
4900 static const per_sequence_t T_set_GANSSTimingOfCell_sequence[] = {
4901   { &hf_ulp_ms_part_02      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_80 },
4902   { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
4903   { NULL, 0, 0, NULL }
4904 };
4905
4906 static int
4907 dissect_ulp_T_set_GANSSTimingOfCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4908   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4909                                    ett_ulp_T_set_GANSSTimingOfCell, T_set_GANSSTimingOfCell_sequence);
4910
4911   return offset;
4912 }
4913
4914
4915 static const per_sequence_t T_fdd_04_sequence[] = {
4916   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4917   { NULL, 0, 0, NULL }
4918 };
4919
4920 static int
4921 dissect_ulp_T_fdd_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4922   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4923                                    ett_ulp_T_fdd_04, T_fdd_04_sequence);
4924
4925   return offset;
4926 }
4927
4928
4929 static const per_sequence_t T_tdd_04_sequence[] = {
4930   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4931   { NULL, 0, 0, NULL }
4932 };
4933
4934 static int
4935 dissect_ulp_T_tdd_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4936   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4937                                    ett_ulp_T_tdd_04, T_tdd_04_sequence);
4938
4939   return offset;
4940 }
4941
4942
4943 static const value_string ulp_T_modeSpecificInfo_04_vals[] = {
4944   {   0, "fdd" },
4945   {   1, "tdd" },
4946   { 0, NULL }
4947 };
4948
4949 static const per_choice_t T_modeSpecificInfo_04_choice[] = {
4950   {   0, &hf_ulp_fdd_04          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_04 },
4951   {   1, &hf_ulp_tdd_04          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_04 },
4952   { 0, NULL, 0, NULL }
4953 };
4954
4955 static int
4956 dissect_ulp_T_modeSpecificInfo_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4957   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4958                                  ett_ulp_T_modeSpecificInfo_04, T_modeSpecificInfo_04_choice,
4959                                  NULL);
4960
4961   return offset;
4962 }
4963
4964
4965 static const per_sequence_t SET_GANSSReferenceTime_sequence[] = {
4966   { &hf_ulp_set_GANSSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_set_GANSSTimingOfCell },
4967   { &hf_ulp_modeSpecificInfo_04, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_04 },
4968   { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4969   { &hf_ulp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4970   { NULL, 0, 0, NULL }
4971 };
4972
4973 static int
4974 dissect_ulp_SET_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4975   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4976                                    ett_ulp_SET_GANSSReferenceTime, SET_GANSSReferenceTime_sequence);
4977
4978   return offset;
4979 }
4980
4981
4982 static const per_sequence_t UTRAN_GANSSReferenceTimeResult_sequence[] = {
4983   { &hf_ulp_ganssTimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4984   { &hf_ulp_set_GANSSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SET_GANSSReferenceTime },
4985   { NULL, 0, 0, NULL }
4986 };
4987
4988 static int
4989 dissect_ulp_UTRAN_GANSSReferenceTimeResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4990   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4991                                    ett_ulp_UTRAN_GANSSReferenceTimeResult, UTRAN_GANSSReferenceTimeResult_sequence);
4992
4993   return offset;
4994 }
4995
4996
4997 static const per_sequence_t Ver2_SUPL_POS_extension_sequence[] = {
4998   { &hf_ulp_utran_GPSReferenceTimeAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeAssistance },
4999   { &hf_ulp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeResult },
5000   { &hf_ulp_utran_GANSSReferenceTimeAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeAssistance },
5001   { &hf_ulp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeResult },
5002   { NULL, 0, 0, NULL }
5003 };
5004
5005 static int
5006 dissect_ulp_Ver2_SUPL_POS_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5007   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5008                                    ett_ulp_Ver2_SUPL_POS_extension, Ver2_SUPL_POS_extension_sequence);
5009
5010   return offset;
5011 }
5012
5013
5014 static const per_sequence_t SUPLPOS_sequence[] = {
5015   { &hf_ulp_posPayLoad      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosPayLoad },
5016   { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
5017   { &hf_ulp_ver2_SUPL_POS_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_POS_extension },
5018   { NULL, 0, 0, NULL }
5019 };
5020
5021 static int
5022 dissect_ulp_SUPLPOS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5023   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5024                                    ett_ulp_SUPLPOS, SUPLPOS_sequence);
5025
5026   return offset;
5027 }
5028
5029
5030
5031 static int
5032 dissect_ulp_Ver(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5033   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5034                                      64, 64, FALSE, NULL);
5035
5036   return offset;
5037 }
5038
5039
5040 static const per_sequence_t Ver2_SUPL_POS_INIT_extension_sequence[] = {
5041   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
5042   { &hf_ulp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeResult },
5043   { &hf_ulp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeResult },
5044   { NULL, 0, 0, NULL }
5045 };
5046
5047 static int
5048 dissect_ulp_Ver2_SUPL_POS_INIT_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5049   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5050                                    ett_ulp_Ver2_SUPL_POS_INIT_extension, Ver2_SUPL_POS_INIT_extension_sequence);
5051
5052   return offset;
5053 }
5054
5055
5056 static const per_sequence_t SUPLPOSINIT_sequence[] = {
5057   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
5058   { &hf_ulp_requestedAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RequestedAssistData },
5059   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
5060   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5061   { &hf_ulp_sUPLPOS         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SUPLPOS },
5062   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5063   { &hf_ulp_ver2_SUPL_POS_INIT_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_POS_INIT_extension },
5064   { NULL, 0, 0, NULL }
5065 };
5066
5067 static int
5068 dissect_ulp_SUPLPOSINIT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5069   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5070                                    ett_ulp_SUPLPOSINIT, SUPLPOSINIT_sequence);
5071
5072   return offset;
5073 }
5074
5075
5076 static const value_string ulp_StatusCode_vals[] = {
5077   {   0, "unspecified" },
5078   {   1, "systemFailure" },
5079   {   2, "unexpectedMessage" },
5080   {   3, "protocolError" },
5081   {   4, "dataMissing" },
5082   {   5, "unexpectedDataValue" },
5083   {   6, "posMethodFailure" },
5084   {   7, "posMethodMismatch" },
5085   {   8, "posProtocolMismatch" },
5086   {   9, "targetSETnotReachable" },
5087   {  10, "versionNotSupported" },
5088   {  11, "resourceShortage" },
5089   {  12, "invalidSessionId" },
5090   {  13, "nonProxyModeNotSupported" },
5091   {  14, "proxyModeNotSupported" },
5092   {  15, "positioningNotPermitted" },
5093   {  16, "authNetFailure" },
5094   {  17, "authSuplinitFailure" },
5095   { 100, "consentDeniedByUser" },
5096   { 101, "consentGrantedByUser" },
5097   {  18, "ver2-incompatibleProtectionLevel" },
5098   {  19, "ver2-serviceNotSupported" },
5099   {  20, "ver2-insufficientInterval" },
5100   {  21, "ver2-noSUPLCoverage" },
5101   { 102, "ver2-sessionStopped" },
5102   { 0, NULL }
5103 };
5104
5105 static guint32 StatusCode_value_map[20+5] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 100, 101, 18, 19, 20, 21, 102};
5106
5107 static int
5108 dissect_ulp_StatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5109   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5110                                      20, NULL, TRUE, 5, StatusCode_value_map);
5111
5112   return offset;
5113 }
5114
5115
5116 static const per_sequence_t Ver2_SUPL_END_extension_sequence[] = {
5117   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
5118   { NULL, 0, 0, NULL }
5119 };
5120
5121 static int
5122 dissect_ulp_Ver2_SUPL_END_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5123   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5124                                    ett_ulp_Ver2_SUPL_END_extension, Ver2_SUPL_END_extension_sequence);
5125
5126   return offset;
5127 }
5128
5129
5130 static const per_sequence_t SUPLEND_sequence[] = {
5131   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5132   { &hf_ulp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_StatusCode },
5133   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5134   { &hf_ulp_ver2_SUPL_END_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_END_extension },
5135   { NULL, 0, 0, NULL }
5136 };
5137
5138 static int
5139 dissect_ulp_SUPLEND(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5140   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5141                                    ett_ulp_SUPLEND, SUPLEND_sequence);
5142
5143   return offset;
5144 }
5145
5146
5147 static const per_sequence_t SUPLAUTHREQ_sequence[] = {
5148   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5149   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
5150   { NULL, 0, 0, NULL }
5151 };
5152
5153 static int
5154 dissect_ulp_SUPLAUTHREQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5155   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5156                                    ett_ulp_SUPLAUTHREQ, SUPLAUTHREQ_sequence);
5157
5158   return offset;
5159 }
5160
5161
5162 static const per_sequence_t SUPLAUTHRESP_sequence[] = {
5163   { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SPCSETKey },
5164   { &hf_ulp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SPCTID },
5165   { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
5166   { NULL, 0, 0, NULL }
5167 };
5168
5169 static int
5170 dissect_ulp_SUPLAUTHRESP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5171   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5172                                    ett_ulp_SUPLAUTHRESP, SUPLAUTHRESP_sequence);
5173
5174   return offset;
5175 }
5176
5177
5178
5179 static int
5180 dissect_ulp_INTEGER_1_8639999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5181   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5182                                                             1U, 8639999U, NULL, FALSE);
5183
5184   return offset;
5185 }
5186
5187
5188
5189 static int
5190 dissect_ulp_INTEGER_0_2678400(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5191   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5192                                                             0U, 2678400U, NULL, FALSE);
5193
5194   return offset;
5195 }
5196
5197
5198 static const per_sequence_t PeriodicParams_sequence[] = {
5199   { &hf_ulp_numberOfFixes   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_8639999 },
5200   { &hf_ulp_intervalBetweenFixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_8639999 },
5201   { &hf_ulp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_2678400 },
5202   { NULL, 0, 0, NULL }
5203 };
5204
5205 static int
5206 dissect_ulp_PeriodicParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5207   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5208                                    ett_ulp_PeriodicParams, PeriodicParams_sequence);
5209
5210   return offset;
5211 }
5212
5213
5214 static const value_string ulp_AreaEventType_vals[] = {
5215   {   0, "enteringArea" },
5216   {   1, "insideArea" },
5217   {   2, "outsideArea" },
5218   {   3, "leavingArea" },
5219   { 0, NULL }
5220 };
5221
5222
5223 static int
5224 dissect_ulp_AreaEventType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5225   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5226                                      4, NULL, TRUE, 0, NULL);
5227
5228   return offset;
5229 }
5230
5231
5232
5233 static int
5234 dissect_ulp_INTEGER_1_604800(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5235   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5236                                                             1U, 604800U, NULL, FALSE);
5237
5238   return offset;
5239 }
5240
5241
5242 static const per_sequence_t RepeatedReportingParams_sequence[] = {
5243   { &hf_ulp_minimumIntervalTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_604800 },
5244   { &hf_ulp_maximumNumberOfReports, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1024 },
5245   { NULL, 0, 0, NULL }
5246 };
5247
5248 static int
5249 dissect_ulp_RepeatedReportingParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5250   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5251                                    ett_ulp_RepeatedReportingParams, RepeatedReportingParams_sequence);
5252
5253   return offset;
5254 }
5255
5256
5257
5258 static int
5259 dissect_ulp_INTEGER_0_11318399(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5260   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5261                                                             0U, 11318399U, NULL, FALSE);
5262
5263   return offset;
5264 }
5265
5266
5267 static const value_string ulp_T_latitudeSign_01_vals[] = {
5268   {   0, "north" },
5269   {   1, "south" },
5270   { 0, NULL }
5271 };
5272
5273
5274 static int
5275 dissect_ulp_T_latitudeSign_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5276   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5277                                      2, NULL, FALSE, 0, NULL);
5278
5279   return offset;
5280 }
5281
5282
5283 static const per_sequence_t Coordinate_sequence[] = {
5284   { &hf_ulp_latitudeSign_01 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign_01 },
5285   { &hf_ulp_latitude        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
5286   { &hf_ulp_longitude       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
5287   { NULL, 0, 0, NULL }
5288 };
5289
5290 static int
5291 dissect_ulp_Coordinate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5292   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5293                                    ett_ulp_Coordinate, Coordinate_sequence);
5294
5295   return offset;
5296 }
5297
5298
5299
5300 static int
5301 dissect_ulp_INTEGER_1_1000000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5302   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5303                                                             1U, 1000000U, NULL, FALSE);
5304
5305   return offset;
5306 }
5307
5308
5309
5310 static int
5311 dissect_ulp_INTEGER_1_1500000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5312   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5313                                                             1U, 1500000U, NULL, FALSE);
5314
5315   return offset;
5316 }
5317
5318
5319 static const per_sequence_t CircularArea_sequence[] = {
5320   { &hf_ulp_coordinate      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
5321   { &hf_ulp_radius          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
5322   { &hf_ulp_radius_min      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
5323   { &hf_ulp_radius_max      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
5324   { NULL, 0, 0, NULL }
5325 };
5326
5327 static int
5328 dissect_ulp_CircularArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5329   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5330                                    ett_ulp_CircularArea, CircularArea_sequence);
5331
5332   return offset;
5333 }
5334
5335
5336
5337 static int
5338 dissect_ulp_INTEGER_0_179(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5339   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5340                                                             0U, 179U, NULL, FALSE);
5341
5342   return offset;
5343 }
5344
5345
5346 static const per_sequence_t EllipticalArea_sequence[] = {
5347   { &hf_ulp_coordinate      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
5348   { &hf_ulp_semiMajor       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
5349   { &hf_ulp_semiMajor_min   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
5350   { &hf_ulp_semiMajor_max   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
5351   { &hf_ulp_semiMinor       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
5352   { &hf_ulp_semiMinor_min   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
5353   { &hf_ulp_semiMinor_max   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
5354   { &hf_ulp_angle           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_179 },
5355   { NULL, 0, 0, NULL }
5356 };
5357
5358 static int
5359 dissect_ulp_EllipticalArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5360   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5361                                    ett_ulp_EllipticalArea, EllipticalArea_sequence);
5362
5363   return offset;
5364 }
5365
5366
5367 static const per_sequence_t PolygonDescription_sequence_of[1] = {
5368   { &hf_ulp_PolygonDescription_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
5369 };
5370
5371 static int
5372 dissect_ulp_PolygonDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5373   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5374                                                   ett_ulp_PolygonDescription, PolygonDescription_sequence_of,
5375                                                   3, 15, FALSE);
5376
5377   return offset;
5378 }
5379
5380
5381
5382 static int
5383 dissect_ulp_INTEGER_1_100000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5384   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5385                                                             1U, 100000U, NULL, FALSE);
5386
5387   return offset;
5388 }
5389
5390
5391 static const per_sequence_t PolygonArea_sequence[] = {
5392   { &hf_ulp_polygonDescription, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PolygonDescription },
5393   { &hf_ulp_polygonHysteresis, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_100000 },
5394   { NULL, 0, 0, NULL }
5395 };
5396
5397 static int
5398 dissect_ulp_PolygonArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5399   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5400                                    ett_ulp_PolygonArea, PolygonArea_sequence);
5401
5402   return offset;
5403 }
5404
5405
5406 static const value_string ulp_GeographicTargetArea_vals[] = {
5407   {   0, "circularArea" },
5408   {   1, "ellipticalArea" },
5409   {   2, "polygonArea" },
5410   { 0, NULL }
5411 };
5412
5413 static const per_choice_t GeographicTargetArea_choice[] = {
5414   {   0, &hf_ulp_circularArea    , ASN1_EXTENSION_ROOT    , dissect_ulp_CircularArea },
5415   {   1, &hf_ulp_ellipticalArea  , ASN1_EXTENSION_ROOT    , dissect_ulp_EllipticalArea },
5416   {   2, &hf_ulp_polygonArea     , ASN1_EXTENSION_ROOT    , dissect_ulp_PolygonArea },
5417   { 0, NULL, 0, NULL }
5418 };
5419
5420 static int
5421 dissect_ulp_GeographicTargetArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5422   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5423                                  ett_ulp_GeographicTargetArea, GeographicTargetArea_choice,
5424                                  NULL);
5425
5426   return offset;
5427 }
5428
5429
5430 static const per_sequence_t GeographicTargetAreaList_sequence_of[1] = {
5431   { &hf_ulp_GeographicTargetAreaList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GeographicTargetArea },
5432 };
5433
5434 static int
5435 dissect_ulp_GeographicTargetAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5436   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5437                                                   ett_ulp_GeographicTargetAreaList, GeographicTargetAreaList_sequence_of,
5438                                                   1, maxNumGeoArea, FALSE);
5439
5440   return offset;
5441 }
5442
5443
5444 static const per_sequence_t GSMAreaId_sequence[] = {
5445   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5446   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5447   { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5448   { &hf_ulp_refCI           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5449   { NULL, 0, 0, NULL }
5450 };
5451
5452 static int
5453 dissect_ulp_GSMAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5454   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5455                                    ett_ulp_GSMAreaId, GSMAreaId_sequence);
5456
5457   return offset;
5458 }
5459
5460
5461 static const per_sequence_t WCDMAAreaId_sequence[] = {
5462   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5463   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5464   { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5465   { &hf_ulp_refUC           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_268435455 },
5466   { NULL, 0, 0, NULL }
5467 };
5468
5469 static int
5470 dissect_ulp_WCDMAAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5471   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5472                                    ett_ulp_WCDMAAreaId, WCDMAAreaId_sequence);
5473
5474   return offset;
5475 }
5476
5477
5478 static const per_sequence_t CDMAAreaId_sequence[] = {
5479   { &hf_ulp_refSID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5480   { &hf_ulp_refNID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_32767 },
5481   { &hf_ulp_refBASEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5482   { NULL, 0, 0, NULL }
5483 };
5484
5485 static int
5486 dissect_ulp_CDMAAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5487   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5488                                    ett_ulp_CDMAAreaId, CDMAAreaId_sequence);
5489
5490   return offset;
5491 }
5492
5493
5494 static const per_sequence_t HRPDAreaId_sequence[] = {
5495   { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
5496   { NULL, 0, 0, NULL }
5497 };
5498
5499 static int
5500 dissect_ulp_HRPDAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5501   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5502                                    ett_ulp_HRPDAreaId, HRPDAreaId_sequence);
5503
5504   return offset;
5505 }
5506
5507
5508 static const per_sequence_t UMBAreaId_sequence[] = {
5509   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5510   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5511   { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_128 },
5512   { NULL, 0, 0, NULL }
5513 };
5514
5515 static int
5516 dissect_ulp_UMBAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5517   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5518                                    ett_ulp_UMBAreaId, UMBAreaId_sequence);
5519
5520   return offset;
5521 }
5522
5523
5524
5525 static int
5526 dissect_ulp_BIT_STRING_SIZE_29(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5527   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5528                                      29, 29, FALSE, NULL);
5529
5530   return offset;
5531 }
5532
5533
5534 static const per_sequence_t LTEAreaId_sequence[] = {
5535   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5536   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5537   { &hf_ulp_refCI_01        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_29 },
5538   { NULL, 0, 0, NULL }
5539 };
5540
5541 static int
5542 dissect_ulp_LTEAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5543   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5544                                    ett_ulp_LTEAreaId, LTEAreaId_sequence);
5545
5546   return offset;
5547 }
5548
5549
5550 static const per_sequence_t WLANAreaId_sequence[] = {
5551   { &hf_ulp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_48 },
5552   { NULL, 0, 0, NULL }
5553 };
5554
5555 static int
5556 dissect_ulp_WLANAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5557   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5558                                    ett_ulp_WLANAreaId, WLANAreaId_sequence);
5559
5560   return offset;
5561 }
5562
5563
5564 static const per_sequence_t WimaxAreaId_sequence[] = {
5565   { &hf_ulp_bsID_MSB        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_24 },
5566   { &hf_ulp_bsID_LSB        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_24 },
5567   { NULL, 0, 0, NULL }
5568 };
5569
5570 static int
5571 dissect_ulp_WimaxAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5572   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5573                                    ett_ulp_WimaxAreaId, WimaxAreaId_sequence);
5574
5575   return offset;
5576 }
5577
5578
5579 static const value_string ulp_AreaId_vals[] = {
5580   {   0, "gSMAreaId" },
5581   {   1, "wCDMAAreaId" },
5582   {   2, "cDMAAreaId" },
5583   {   3, "hRPDAreaId" },
5584   {   4, "uMBAreaId" },
5585   {   5, "lTEAreaId" },
5586   {   6, "wLANAreaId" },
5587   {   7, "wiMAXAreaId" },
5588   { 0, NULL }
5589 };
5590
5591 static const per_choice_t AreaId_choice[] = {
5592   {   0, &hf_ulp_gSMAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_GSMAreaId },
5593   {   1, &hf_ulp_wCDMAAreaId     , ASN1_EXTENSION_ROOT    , dissect_ulp_WCDMAAreaId },
5594   {   2, &hf_ulp_cDMAAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_CDMAAreaId },
5595   {   3, &hf_ulp_hRPDAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_HRPDAreaId },
5596   {   4, &hf_ulp_uMBAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_UMBAreaId },
5597   {   5, &hf_ulp_lTEAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_LTEAreaId },
5598   {   6, &hf_ulp_wLANAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_WLANAreaId },
5599   {   7, &hf_ulp_wiMAXAreaId     , ASN1_EXTENSION_ROOT    , dissect_ulp_WimaxAreaId },
5600   { 0, NULL, 0, NULL }
5601 };
5602
5603 static int
5604 dissect_ulp_AreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5605   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5606                                  ett_ulp_AreaId, AreaId_choice,
5607                                  NULL);
5608
5609   return offset;
5610 }
5611
5612
5613 static const per_sequence_t AreaIdSet_sequence_of[1] = {
5614   { &hf_ulp_AreaIdSet_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaId },
5615 };
5616
5617 static int
5618 dissect_ulp_AreaIdSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5619   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5620                                                   ett_ulp_AreaIdSet, AreaIdSet_sequence_of,
5621                                                   1, maxAreaId, FALSE);
5622
5623   return offset;
5624 }
5625
5626
5627 static const value_string ulp_AreaIdSetType_vals[] = {
5628   {   0, "border" },
5629   {   1, "within" },
5630   { 0, NULL }
5631 };
5632
5633
5634 static int
5635 dissect_ulp_AreaIdSetType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5636   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5637                                      2, NULL, TRUE, 0, NULL);
5638
5639   return offset;
5640 }
5641
5642
5643
5644 static int
5645 dissect_ulp_GeoAreaIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5646   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5647                                                             1U, maxNumGeoArea, NULL, FALSE);
5648
5649   return offset;
5650 }
5651
5652
5653 static const per_sequence_t GeoAreaMappingList_sequence_of[1] = {
5654   { &hf_ulp_GeoAreaMappingList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GeoAreaIndex },
5655 };
5656
5657 static int
5658 dissect_ulp_GeoAreaMappingList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5659   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5660                                                   ett_ulp_GeoAreaMappingList, GeoAreaMappingList_sequence_of,
5661                                                   1, maxNumGeoArea, FALSE);
5662
5663   return offset;
5664 }
5665
5666
5667 static const per_sequence_t AreaIdList_sequence[] = {
5668   { &hf_ulp_areaIdSet       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaIdSet },
5669   { &hf_ulp_areaIdSetType   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_AreaIdSetType },
5670   { &hf_ulp_geoAreaMappingList, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_GeoAreaMappingList },
5671   { NULL, 0, 0, NULL }
5672 };
5673
5674 static int
5675 dissect_ulp_AreaIdList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5676   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5677                                    ett_ulp_AreaIdList, AreaIdList_sequence);
5678
5679   return offset;
5680 }
5681
5682
5683 static const per_sequence_t SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList_sequence_of[1] = {
5684   { &hf_ulp_areaIdLists_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaIdList },
5685 };
5686
5687 static int
5688 dissect_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5689   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5690                                                   ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList, SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList_sequence_of,
5691                                                   1, maxAreaIdList, FALSE);
5692
5693   return offset;
5694 }
5695
5696
5697 static const per_sequence_t AreaEventParams_sequence[] = {
5698   { &hf_ulp_areaEventType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_AreaEventType },
5699   { &hf_ulp_locationEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5700   { &hf_ulp_repeatedReportingParams, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RepeatedReportingParams },
5701   { &hf_ulp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_2678400 },
5702   { &hf_ulp_stopTime        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_11318399 },
5703   { &hf_ulp_geographicTargetAreaList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GeographicTargetAreaList },
5704   { &hf_ulp_areaIdLists     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList },
5705   { NULL, 0, 0, NULL }
5706 };
5707
5708 static int
5709 dissect_ulp_AreaEventParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5710   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5711                                    ett_ulp_AreaEventParams, AreaEventParams_sequence);
5712
5713   return offset;
5714 }
5715
5716
5717 static const value_string ulp_TriggerParams_vals[] = {
5718   {   0, "periodicParams" },
5719   {   1, "areaEventParams" },
5720   { 0, NULL }
5721 };
5722
5723 static const per_choice_t TriggerParams_choice[] = {
5724   {   0, &hf_ulp_periodicParams  , ASN1_EXTENSION_ROOT    , dissect_ulp_PeriodicParams },
5725   {   1, &hf_ulp_areaEventParams , ASN1_EXTENSION_ROOT    , dissect_ulp_AreaEventParams },
5726   { 0, NULL, 0, NULL }
5727 };
5728
5729 static int
5730 dissect_ulp_TriggerParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5731   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5732                                  ett_ulp_TriggerParams, TriggerParams_choice,
5733                                  NULL);
5734
5735   return offset;
5736 }
5737
5738
5739 static const value_string ulp_CauseCode_vals[] = {
5740   {   0, "servingNetWorkNotInAreaIdList" },
5741   {   1, "sETCapabilitiesChanged" },
5742   {   2, "noSUPLCoverage" },
5743   { 0, NULL }
5744 };
5745
5746
5747 static int
5748 dissect_ulp_CauseCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5749   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5750                                      3, NULL, TRUE, 0, NULL);
5751
5752   return offset;
5753 }
5754
5755
5756 static const per_sequence_t Ver2_SUPLTRIGGEREDSTART_sequence[] = {
5757   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
5758   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
5759   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5760   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
5761   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
5762   { &hf_ulp_thirdParty      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ThirdParty },
5763   { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
5764   { &hf_ulp_triggerType     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerType },
5765   { &hf_ulp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerParams },
5766   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5767   { &hf_ulp_reportingCap    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCap },
5768   { &hf_ulp_causeCode       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_CauseCode },
5769   { NULL, 0, 0, NULL }
5770 };
5771
5772 static int
5773 dissect_ulp_Ver2_SUPLTRIGGEREDSTART(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5774   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5775                                    ett_ulp_Ver2_SUPLTRIGGEREDSTART, Ver2_SUPLTRIGGEREDSTART_sequence);
5776
5777   return offset;
5778 }
5779
5780
5781 static const value_string ulp_RepMode_vals[] = {
5782   {   1, "realtime" },
5783   {   2, "quasirealtime" },
5784   {   3, "batch" },
5785   { 0, NULL }
5786 };
5787
5788 static guint32 RepMode_value_map[3+0] = {1, 2, 3};
5789
5790 static int
5791 dissect_ulp_RepMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5792   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5793                                      3, NULL, TRUE, 0, RepMode_value_map);
5794
5795   return offset;
5796 }
5797
5798
5799
5800 static int
5801 dissect_ulp_INTEGER_1_2048(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5802   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5803                                                             1U, 2048U, NULL, FALSE);
5804
5805   return offset;
5806 }
5807
5808
5809 static const value_string ulp_BatchRepConditions_vals[] = {
5810   {   0, "num-interval" },
5811   {   1, "num-minutes" },
5812   {   2, "endofsession" },
5813   { 0, NULL }
5814 };
5815
5816 static const per_choice_t BatchRepConditions_choice[] = {
5817   {   0, &hf_ulp_num_interval    , ASN1_EXTENSION_ROOT    , dissect_ulp_INTEGER_1_1024 },
5818   {   1, &hf_ulp_num_minutes     , ASN1_EXTENSION_ROOT    , dissect_ulp_INTEGER_1_2048 },
5819   {   2, &hf_ulp_endofsession    , ASN1_EXTENSION_ROOT    , dissect_ulp_NULL },
5820   { 0, NULL, 0, NULL }
5821 };
5822
5823 static int
5824 dissect_ulp_BatchRepConditions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5825   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5826                                  ett_ulp_BatchRepConditions, BatchRepConditions_choice,
5827                                  NULL);
5828
5829   return offset;
5830 }
5831
5832
5833 static const per_sequence_t BatchRepType_sequence[] = {
5834   { &hf_ulp_reportPosition  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5835   { &hf_ulp_reportMeasurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5836   { &hf_ulp_intermediateReports, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5837   { &hf_ulp_discardOldest   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
5838   { NULL, 0, 0, NULL }
5839 };
5840
5841 static int
5842 dissect_ulp_BatchRepType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5843   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5844                                    ett_ulp_BatchRepType, BatchRepType_sequence);
5845
5846   return offset;
5847 }
5848
5849
5850 static const per_sequence_t ReportingMode_sequence[] = {
5851   { &hf_ulp_repMode         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RepMode },
5852   { &hf_ulp_batchRepConditions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepConditions },
5853   { &hf_ulp_batchRepType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepType },
5854   { NULL, 0, 0, NULL }
5855 };
5856
5857 static int
5858 dissect_ulp_ReportingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5859   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5860                                    ett_ulp_ReportingMode, ReportingMode_sequence);
5861
5862   return offset;
5863 }
5864
5865
5866 static const per_sequence_t Ver2_SUPLTRIGGEREDRESPONSE_sequence[] = {
5867   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
5868   { &hf_ulp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerParams },
5869   { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
5870   { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
5871   { &hf_ulp_reportingMode   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingMode },
5872   { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKey },
5873   { &hf_ulp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCTID },
5874   { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
5875   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
5876   { NULL, 0, 0, NULL }
5877 };
5878
5879 static int
5880 dissect_ulp_Ver2_SUPLTRIGGEREDRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5881   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5882                                    ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE, Ver2_SUPLTRIGGEREDRESPONSE_sequence);
5883
5884   return offset;
5885 }
5886
5887
5888 static const per_sequence_t Ver2_SUPLTRIGGEREDSTOP_sequence[] = {
5889   { &hf_ulp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_StatusCode },
5890   { NULL, 0, 0, NULL }
5891 };
5892
5893 static int
5894 dissect_ulp_Ver2_SUPLTRIGGEREDSTOP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5895   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5896                                    ett_ulp_Ver2_SUPLTRIGGEREDSTOP, Ver2_SUPLTRIGGEREDSTOP_sequence);
5897
5898   return offset;
5899 }
5900
5901
5902 static const per_sequence_t Ver2_SUPLNOTIFY_sequence[] = {
5903   { &hf_ulp_notification    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Notification },
5904   { NULL, 0, 0, NULL }
5905 };
5906
5907 static int
5908 dissect_ulp_Ver2_SUPLNOTIFY(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5909   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5910                                    ett_ulp_Ver2_SUPLNOTIFY, Ver2_SUPLNOTIFY_sequence);
5911
5912   return offset;
5913 }
5914
5915
5916 static const value_string ulp_NotificationResponse_vals[] = {
5917   {   0, "allowed" },
5918   {   1, "notAllowed" },
5919   { 0, NULL }
5920 };
5921
5922
5923 static int
5924 dissect_ulp_NotificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5925   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5926                                      2, NULL, TRUE, 0, NULL);
5927
5928   return offset;
5929 }
5930
5931
5932 static const per_sequence_t Ver2_SUPLNOTIFYRESPONSE_sequence[] = {
5933   { &hf_ulp_notificationResponse, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NotificationResponse },
5934   { NULL, 0, 0, NULL }
5935 };
5936
5937 static int
5938 dissect_ulp_Ver2_SUPLNOTIFYRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5939   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5940                                    ett_ulp_Ver2_SUPLNOTIFYRESPONSE, Ver2_SUPLNOTIFYRESPONSE_sequence);
5941
5942   return offset;
5943 }
5944
5945
5946 static const per_sequence_t Ver2_SUPLSETINIT_sequence[] = {
5947   { &hf_ulp_targetSETID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETId },
5948   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
5949   { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
5950   { NULL, 0, 0, NULL }
5951 };
5952
5953 static int
5954 dissect_ulp_Ver2_SUPLSETINIT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5955   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5956                                    ett_ulp_Ver2_SUPLSETINIT, Ver2_SUPLSETINIT_sequence);
5957
5958   return offset;
5959 }
5960
5961
5962 static const per_sequence_t SessionInformation_sequence[] = {
5963   { &hf_ulp_sessionID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
5964   { NULL, 0, 0, NULL }
5965 };
5966
5967 static int
5968 dissect_ulp_SessionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5969   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5970                                    ett_ulp_SessionInformation, SessionInformation_sequence);
5971
5972   return offset;
5973 }
5974
5975
5976 static const per_sequence_t SessionList_sequence_of[1] = {
5977   { &hf_ulp_SessionList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SessionInformation },
5978 };
5979
5980 static int
5981 dissect_ulp_SessionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5982   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5983                                                   ett_ulp_SessionList, SessionList_sequence_of,
5984                                                   1, maxnumSessions, FALSE);
5985
5986   return offset;
5987 }
5988
5989
5990 static const per_sequence_t GANSSSignalsDescription_sequence[] = {
5991   { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
5992   { &hf_ulp_gANSSSignals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
5993   { NULL, 0, 0, NULL }
5994 };
5995
5996 static int
5997 dissect_ulp_GANSSSignalsDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5998   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5999                                    ett_ulp_GANSSSignalsDescription, GANSSSignalsDescription_sequence);
6000
6001   return offset;
6002 }
6003
6004
6005 static const per_sequence_t GANSSsignalsInfo_sequence_of[1] = {
6006   { &hf_ulp_GANSSsignalsInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignalsDescription },
6007 };
6008
6009 static int
6010 dissect_ulp_GANSSsignalsInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6011   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6012                                                   ett_ulp_GANSSsignalsInfo, GANSSsignalsInfo_sequence_of,
6013                                                   1, maxGANSS, FALSE);
6014
6015   return offset;
6016 }
6017
6018
6019 static const per_sequence_t PositionData_sequence[] = {
6020   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Position },
6021   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosMethod },
6022   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
6023   { &hf_ulp_ganssSignalsInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GANSSsignalsInfo },
6024   { NULL, 0, 0, NULL }
6025 };
6026
6027 static int
6028 dissect_ulp_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6029   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6030                                    ett_ulp_PositionData, PositionData_sequence);
6031
6032   return offset;
6033 }
6034
6035
6036 static const value_string ulp_ResultCode_vals[] = {
6037   {   1, "outofradiocoverage" },
6038   {   2, "noposition" },
6039   {   3, "nomeasurement" },
6040   {   4, "nopositionnomeasurement" },
6041   {   5, "outofmemory" },
6042   {   6, "outofmemoryintermediatereporting" },
6043   {   7, "other" },
6044   { 0, NULL }
6045 };
6046
6047 static guint32 ResultCode_value_map[7+0] = {1, 2, 3, 4, 5, 6, 7};
6048
6049 static int
6050 dissect_ulp_ResultCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6051   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6052                                      7, NULL, TRUE, 0, ResultCode_value_map);
6053
6054   return offset;
6055 }
6056
6057
6058
6059 static int
6060 dissect_ulp_INTEGER_0_31536000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6061   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6062                                                             0U, 31536000U, NULL, FALSE);
6063
6064   return offset;
6065 }
6066
6067
6068 static const value_string ulp_TimeStamp_vals[] = {
6069   {   0, "absoluteTime" },
6070   {   1, "relativeTime" },
6071   { 0, NULL }
6072 };
6073
6074 static const per_choice_t TimeStamp_choice[] = {
6075   {   0, &hf_ulp_absoluteTime    , ASN1_NO_EXTENSIONS     , dissect_ulp_UTCTime },
6076   {   1, &hf_ulp_relativeTime    , ASN1_NO_EXTENSIONS     , dissect_ulp_INTEGER_0_31536000 },
6077   { 0, NULL, 0, NULL }
6078 };
6079
6080 static int
6081 dissect_ulp_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6082   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6083                                  ett_ulp_TimeStamp, TimeStamp_choice,
6084                                  NULL);
6085
6086   return offset;
6087 }
6088
6089
6090 static const per_sequence_t ReportData_sequence[] = {
6091   { &hf_ulp_positionData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PositionData },
6092   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
6093   { &hf_ulp_resultCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ResultCode },
6094   { &hf_ulp_timestamp       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TimeStamp },
6095   { NULL, 0, 0, NULL }
6096 };
6097
6098 static int
6099 dissect_ulp_ReportData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6100   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6101                                    ett_ulp_ReportData, ReportData_sequence);
6102
6103   return offset;
6104 }
6105
6106
6107 static const per_sequence_t ReportDataList_sequence_of[1] = {
6108   { &hf_ulp_ReportDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ReportData },
6109 };
6110
6111 static int
6112 dissect_ulp_ReportDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6113   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6114                                                   ett_ulp_ReportDataList, ReportDataList_sequence_of,
6115                                                   1, 1024, FALSE);
6116
6117   return offset;
6118 }
6119
6120
6121 static const per_sequence_t Ver2_SUPLREPORT_sequence[] = {
6122   { &hf_ulp_sessionList     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SessionList },
6123   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
6124   { &hf_ulp_reportDataList  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportDataList },
6125   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
6126   { &hf_ulp_moreComponents  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NULL },
6127   { NULL, 0, 0, NULL }
6128 };
6129
6130 static int
6131 dissect_ulp_Ver2_SUPLREPORT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6132   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6133                                    ett_ulp_Ver2_SUPLREPORT, Ver2_SUPLREPORT_sequence);
6134
6135   return offset;
6136 }
6137
6138
6139 static const value_string ulp_UlpMessage_vals[] = {
6140   {   0, "msSUPLINIT" },
6141   {   1, "msSUPLSTART" },
6142   {   2, "msSUPLRESPONSE" },
6143   {   3, "msSUPLPOSINIT" },
6144   {   4, "msSUPLPOS" },
6145   {   5, "msSUPLEND" },
6146   {   6, "msSUPLAUTHREQ" },
6147   {   7, "msSUPLAUTHRESP" },
6148   {   8, "msSUPLTRIGGEREDSTART" },
6149   {   9, "msSUPLTRIGGEREDRESPONSE" },
6150   {  10, "msSUPLTRIGGEREDSTOP" },
6151   {  11, "msSUPLNOTIFY" },
6152   {  12, "msSUPLNOTIFYRESPONSE" },
6153   {  13, "msSUPLSETINIT" },
6154   {  14, "msSUPLREPORT" },
6155   { 0, NULL }
6156 };
6157
6158 static const per_choice_t UlpMessage_choice[] = {
6159   {   0, &hf_ulp_msSUPLINIT      , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLINIT },
6160   {   1, &hf_ulp_msSUPLSTART     , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLSTART },
6161   {   2, &hf_ulp_msSUPLRESPONSE  , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLRESPONSE },
6162   {   3, &hf_ulp_msSUPLPOSINIT   , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLPOSINIT },
6163   {   4, &hf_ulp_msSUPLPOS       , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLPOS },
6164   {   5, &hf_ulp_msSUPLEND       , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLEND },
6165   {   6, &hf_ulp_msSUPLAUTHREQ   , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLAUTHREQ },
6166   {   7, &hf_ulp_msSUPLAUTHRESP  , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLAUTHRESP },
6167   {   8, &hf_ulp_msSUPLTRIGGEREDSTART, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDSTART },
6168   {   9, &hf_ulp_msSUPLTRIGGEREDRESPONSE, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDRESPONSE },
6169   {  10, &hf_ulp_msSUPLTRIGGEREDSTOP, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDSTOP },
6170   {  11, &hf_ulp_msSUPLNOTIFY    , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLNOTIFY },
6171   {  12, &hf_ulp_msSUPLNOTIFYRESPONSE, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLNOTIFYRESPONSE },
6172   {  13, &hf_ulp_msSUPLSETINIT   , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLSETINIT },
6173   {  14, &hf_ulp_msSUPLREPORT    , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLREPORT },
6174   { 0, NULL, 0, NULL }
6175 };
6176
6177 static int
6178 dissect_ulp_UlpMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6179 #line 36 "ulp.cnf"
6180
6181 guint32 UlpMessage;
6182
6183     offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6184                                  ett_ulp_UlpMessage, UlpMessage_choice,
6185                                  &UlpMessage);
6186
6187
6188         if (check_col(actx->pinfo->cinfo, COL_INFO))
6189         {
6190             col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
6191         }
6192
6193
6194   return offset;
6195 }
6196
6197
6198 static const per_sequence_t ULP_PDU_sequence[] = {
6199   { &hf_ulp_length          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
6200   { &hf_ulp_version         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Version },
6201   { &hf_ulp_sessionID       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
6202   { &hf_ulp_message         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UlpMessage },
6203   { NULL, 0, 0, NULL }
6204 };
6205
6206 static int
6207 dissect_ulp_ULP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6208 #line 29 "ulp.cnf"
6209         proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, FALSE);
6210
6211         col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
6212         col_clear(actx->pinfo->cinfo, COL_INFO);
6213
6214   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6215                                    ett_ulp_ULP_PDU, ULP_PDU_sequence);
6216
6217   return offset;
6218 }
6219
6220 /*--- PDUs ---*/
6221
6222 static void dissect_ULP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6223   asn1_ctx_t asn1_ctx;
6224   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
6225   dissect_ulp_ULP_PDU(tvb, 0, &asn1_ctx, tree, hf_ulp_ULP_PDU_PDU);
6226 }
6227
6228
6229 /*--- End of included file: packet-ulp-fn.c ---*/
6230 #line 75 "packet-ulp-template.c"
6231
6232
6233 static guint
6234 get_ulp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset)
6235 {
6236         /* PDU length = Message length */
6237         return tvb_get_ntohs(tvb,offset);
6238 }
6239
6240 static void
6241 dissect_ulp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
6242 {
6243         tcp_dissect_pdus(tvb, pinfo, tree, ulp_desegment, ULP_HEADER_SIZE,
6244             get_ulp_pdu_len, dissect_ULP_PDU_PDU);
6245 }
6246
6247 void proto_reg_handoff_ulp(void);
6248
6249 /*--- proto_register_ulp -------------------------------------------*/
6250 void proto_register_ulp(void) {
6251
6252   /* List of fields */
6253   static hf_register_info hf[] = {
6254
6255
6256 /*--- Included file: packet-ulp-hfarr.c ---*/
6257 #line 1 "packet-ulp-hfarr.c"
6258     { &hf_ulp_ULP_PDU_PDU,
6259       { "ULP-PDU", "ulp.ULP_PDU",
6260         FT_NONE, BASE_NONE, NULL, 0,
6261         "ulp.ULP_PDU", HFILL }},
6262     { &hf_ulp_length,
6263       { "length", "ulp.length",
6264         FT_UINT32, BASE_DEC, NULL, 0,
6265         "ulp.INTEGER_0_65535", HFILL }},
6266     { &hf_ulp_version,
6267       { "version", "ulp.version",
6268         FT_NONE, BASE_NONE, NULL, 0,
6269         "ulp.Version", HFILL }},
6270     { &hf_ulp_sessionID,
6271       { "sessionID", "ulp.sessionID",
6272         FT_NONE, BASE_NONE, NULL, 0,
6273         "ulp.SessionID", HFILL }},
6274     { &hf_ulp_message,
6275       { "message", "ulp.message",
6276         FT_UINT32, BASE_DEC, VALS(ulp_UlpMessage_vals), 0,
6277         "ulp.UlpMessage", HFILL }},
6278     { &hf_ulp_msSUPLINIT,
6279       { "msSUPLINIT", "ulp.msSUPLINIT",
6280         FT_NONE, BASE_NONE, NULL, 0,
6281         "ulp.SUPLINIT", HFILL }},
6282     { &hf_ulp_msSUPLSTART,
6283       { "msSUPLSTART", "ulp.msSUPLSTART",
6284         FT_NONE, BASE_NONE, NULL, 0,
6285         "ulp.SUPLSTART", HFILL }},
6286     { &hf_ulp_msSUPLRESPONSE,
6287       { "msSUPLRESPONSE", "ulp.msSUPLRESPONSE",
6288         FT_NONE, BASE_NONE, NULL, 0,
6289         "ulp.SUPLRESPONSE", HFILL }},
6290     { &hf_ulp_msSUPLPOSINIT,
6291       { "msSUPLPOSINIT", "ulp.msSUPLPOSINIT",
6292         FT_NONE, BASE_NONE, NULL, 0,
6293         "ulp.SUPLPOSINIT", HFILL }},
6294     { &hf_ulp_msSUPLPOS,
6295       { "msSUPLPOS", "ulp.msSUPLPOS",
6296         FT_NONE, BASE_NONE, NULL, 0,
6297         "ulp.SUPLPOS", HFILL }},
6298     { &hf_ulp_msSUPLEND,
6299       { "msSUPLEND", "ulp.msSUPLEND",
6300         FT_NONE, BASE_NONE, NULL, 0,
6301         "ulp.SUPLEND", HFILL }},
6302     { &hf_ulp_msSUPLAUTHREQ,
6303       { "msSUPLAUTHREQ", "ulp.msSUPLAUTHREQ",
6304         FT_NONE, BASE_NONE, NULL, 0,
6305         "ulp.SUPLAUTHREQ", HFILL }},
6306     { &hf_ulp_msSUPLAUTHRESP,
6307       { "msSUPLAUTHRESP", "ulp.msSUPLAUTHRESP",
6308         FT_NONE, BASE_NONE, NULL, 0,
6309         "ulp.SUPLAUTHRESP", HFILL }},
6310     { &hf_ulp_msSUPLTRIGGEREDSTART,
6311       { "msSUPLTRIGGEREDSTART", "ulp.msSUPLTRIGGEREDSTART",
6312         FT_NONE, BASE_NONE, NULL, 0,
6313         "ulp.Ver2_SUPLTRIGGEREDSTART", HFILL }},
6314     { &hf_ulp_msSUPLTRIGGEREDRESPONSE,
6315       { "msSUPLTRIGGEREDRESPONSE", "ulp.msSUPLTRIGGEREDRESPONSE",
6316         FT_NONE, BASE_NONE, NULL, 0,
6317         "ulp.Ver2_SUPLTRIGGEREDRESPONSE", HFILL }},
6318     { &hf_ulp_msSUPLTRIGGEREDSTOP,
6319       { "msSUPLTRIGGEREDSTOP", "ulp.msSUPLTRIGGEREDSTOP",
6320         FT_NONE, BASE_NONE, NULL, 0,
6321         "ulp.Ver2_SUPLTRIGGEREDSTOP", HFILL }},
6322     { &hf_ulp_msSUPLNOTIFY,
6323       { "msSUPLNOTIFY", "ulp.msSUPLNOTIFY",
6324         FT_NONE, BASE_NONE, NULL, 0,
6325         "ulp.Ver2_SUPLNOTIFY", HFILL }},
6326     { &hf_ulp_msSUPLNOTIFYRESPONSE,
6327       { "msSUPLNOTIFYRESPONSE", "ulp.msSUPLNOTIFYRESPONSE",
6328         FT_NONE, BASE_NONE, NULL, 0,
6329         "ulp.Ver2_SUPLNOTIFYRESPONSE", HFILL }},
6330     { &hf_ulp_msSUPLSETINIT,
6331       { "msSUPLSETINIT", "ulp.msSUPLSETINIT",
6332         FT_NONE, BASE_NONE, NULL, 0,
6333         "ulp.Ver2_SUPLSETINIT", HFILL }},
6334     { &hf_ulp_msSUPLREPORT,
6335       { "msSUPLREPORT", "ulp.msSUPLREPORT",
6336         FT_NONE, BASE_NONE, NULL, 0,
6337         "ulp.Ver2_SUPLREPORT", HFILL }},
6338     { &hf_ulp_posMethod,
6339       { "posMethod", "ulp.posMethod",
6340         FT_UINT32, BASE_DEC, VALS(ulp_PosMethod_vals), 0,
6341         "ulp.PosMethod", HFILL }},
6342     { &hf_ulp_notification,
6343       { "notification", "ulp.notification",
6344         FT_NONE, BASE_NONE, NULL, 0,
6345         "ulp.Notification", HFILL }},
6346     { &hf_ulp_sLPAddress,
6347       { "sLPAddress", "ulp.sLPAddress",
6348         FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
6349         "ulp.SLPAddress", HFILL }},
6350     { &hf_ulp_qoP,
6351       { "qoP", "ulp.qoP",
6352         FT_NONE, BASE_NONE, NULL, 0,
6353         "ulp.QoP", HFILL }},
6354     { &hf_ulp_sLPMode,
6355       { "sLPMode", "ulp.sLPMode",
6356         FT_UINT32, BASE_DEC, VALS(ulp_SLPMode_vals), 0,
6357         "ulp.SLPMode", HFILL }},
6358     { &hf_ulp_mAC,
6359       { "mAC", "ulp.mAC",
6360         FT_BYTES, BASE_NONE, NULL, 0,
6361         "ulp.MAC", HFILL }},
6362     { &hf_ulp_keyIdentity,
6363       { "keyIdentity", "ulp.keyIdentity",
6364         FT_BYTES, BASE_NONE, NULL, 0,
6365         "ulp.KeyIdentity", HFILL }},
6366     { &hf_ulp_ver2_SUPL_INIT_extension,
6367       { "ver2-SUPL-INIT-extension", "ulp.ver2_SUPL_INIT_extension",
6368         FT_NONE, BASE_NONE, NULL, 0,
6369         "ulp.Ver2_SUPL_INIT_extension", HFILL }},
6370     { &hf_ulp_notificationType,
6371       { "notificationType", "ulp.notificationType",
6372         FT_UINT32, BASE_DEC, VALS(ulp_NotificationType_vals), 0,
6373         "ulp.NotificationType", HFILL }},
6374     { &hf_ulp_encodingType,
6375       { "encodingType", "ulp.encodingType",
6376         FT_UINT32, BASE_DEC, VALS(ulp_EncodingType_vals), 0,
6377         "ulp.EncodingType", HFILL }},
6378     { &hf_ulp_requestorId,
6379       { "requestorId", "ulp.requestorId",
6380         FT_BYTES, BASE_NONE, NULL, 0,
6381         "ulp.OCTET_STRING_SIZE_1_maxReqLength", HFILL }},
6382     { &hf_ulp_requestorIdType,
6383       { "requestorIdType", "ulp.requestorIdType",
6384         FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
6385         "ulp.FormatIndicator", HFILL }},
6386     { &hf_ulp_clientName,
6387       { "clientName", "ulp.clientName",
6388         FT_BYTES, BASE_NONE, NULL, 0,
6389         "ulp.OCTET_STRING_SIZE_1_maxClientLength", HFILL }},
6390     { &hf_ulp_clientNameType,
6391       { "clientNameType", "ulp.clientNameType",
6392         FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
6393         "ulp.FormatIndicator", HFILL }},
6394     { &hf_ulp_ver2_Notification_extension,
6395       { "ver2-Notification-extension", "ulp.ver2_Notification_extension",
6396         FT_NONE, BASE_NONE, NULL, 0,
6397         "ulp.Ver2_Notification_extension", HFILL }},
6398     { &hf_ulp_sETCapabilities,
6399       { "sETCapabilities", "ulp.sETCapabilities",
6400         FT_NONE, BASE_NONE, NULL, 0,
6401         "ulp.SETCapabilities", HFILL }},
6402     { &hf_ulp_locationId,
6403       { "locationId", "ulp.locationId",
6404         FT_NONE, BASE_NONE, NULL, 0,
6405         "ulp.LocationId", HFILL }},
6406     { &hf_ulp_ver2_SUPL_START_extension,
6407       { "ver2-SUPL-START-extension", "ulp.ver2_SUPL_START_extension",
6408         FT_NONE, BASE_NONE, NULL, 0,
6409         "ulp.Ver2_SUPL_START_extension", HFILL }},
6410     { &hf_ulp_posTechnology,
6411       { "posTechnology", "ulp.posTechnology",
6412         FT_NONE, BASE_NONE, NULL, 0,
6413         "ulp.PosTechnology", HFILL }},
6414     { &hf_ulp_prefMethod,
6415       { "prefMethod", "ulp.prefMethod",
6416         FT_UINT32, BASE_DEC, VALS(ulp_PrefMethod_vals), 0,
6417         "ulp.PrefMethod", HFILL }},
6418     { &hf_ulp_posProtocol,
6419       { "posProtocol", "ulp.posProtocol",
6420         FT_NONE, BASE_NONE, NULL, 0,
6421         "ulp.PosProtocol", HFILL }},
6422     { &hf_ulp_ver2_SETCapabilities_extension,
6423       { "ver2-SETCapabilities-extension", "ulp.ver2_SETCapabilities_extension",
6424         FT_NONE, BASE_NONE, NULL, 0,
6425         "ulp.Ver2_SETCapabilities_extension", HFILL }},
6426     { &hf_ulp_agpsSETassisted,
6427       { "agpsSETassisted", "ulp.agpsSETassisted",
6428         FT_BOOLEAN, BASE_NONE, NULL, 0,
6429         "ulp.BOOLEAN", HFILL }},
6430     { &hf_ulp_agpsSETBased,
6431       { "agpsSETBased", "ulp.agpsSETBased",
6432         FT_BOOLEAN, BASE_NONE, NULL, 0,
6433         "ulp.BOOLEAN", HFILL }},
6434     { &hf_ulp_autonomousGPS,
6435       { "autonomousGPS", "ulp.autonomousGPS",
6436         FT_BOOLEAN, BASE_NONE, NULL, 0,
6437         "ulp.BOOLEAN", HFILL }},
6438     { &hf_ulp_aFLT,
6439       { "aFLT", "ulp.aFLT",
6440         FT_BOOLEAN, BASE_NONE, NULL, 0,
6441         "ulp.BOOLEAN", HFILL }},
6442     { &hf_ulp_eCID,
6443       { "eCID", "ulp.eCID",
6444         FT_BOOLEAN, BASE_NONE, NULL, 0,
6445         "ulp.BOOLEAN", HFILL }},
6446     { &hf_ulp_eOTD,
6447       { "eOTD", "ulp.eOTD",
6448         FT_BOOLEAN, BASE_NONE, NULL, 0,
6449         "ulp.BOOLEAN", HFILL }},
6450     { &hf_ulp_oTDOA,
6451       { "oTDOA", "ulp.oTDOA",
6452         FT_BOOLEAN, BASE_NONE, NULL, 0,
6453         "ulp.BOOLEAN", HFILL }},
6454     { &hf_ulp_ver2_PosTechnology_extension,
6455       { "ver2-PosTechnology-extension", "ulp.ver2_PosTechnology_extension",
6456         FT_NONE, BASE_NONE, NULL, 0,
6457         "ulp.Ver2_PosTechnology_extension", HFILL }},
6458     { &hf_ulp_tia801,
6459       { "tia801", "ulp.tia801",
6460         FT_BOOLEAN, BASE_NONE, NULL, 0,
6461         "ulp.BOOLEAN", HFILL }},
6462     { &hf_ulp_rrlp,
6463       { "rrlp", "ulp.rrlp",
6464         FT_BOOLEAN, BASE_NONE, NULL, 0,
6465         "ulp.BOOLEAN", HFILL }},
6466     { &hf_ulp_rrc,
6467       { "rrc", "ulp.rrc",
6468         FT_BOOLEAN, BASE_NONE, NULL, 0,
6469         "ulp.BOOLEAN", HFILL }},
6470     { &hf_ulp_ver2_PosProtocol_extension,
6471       { "ver2-PosProtocol-extension", "ulp.ver2_PosProtocol_extension",
6472         FT_NONE, BASE_NONE, NULL, 0,
6473         "ulp.Ver2_PosProtocol_extension", HFILL }},
6474     { &hf_ulp_sETAuthKey,
6475       { "sETAuthKey", "ulp.sETAuthKey",
6476         FT_UINT32, BASE_DEC, VALS(ulp_SETAuthKey_vals), 0,
6477         "ulp.SETAuthKey", HFILL }},
6478     { &hf_ulp_keyIdentity4,
6479       { "keyIdentity4", "ulp.keyIdentity4",
6480         FT_BYTES, BASE_NONE, NULL, 0,
6481         "ulp.KeyIdentity4", HFILL }},
6482     { &hf_ulp_ver2_SUPL_RESPONSE_extension,
6483       { "ver2-SUPL-RESPONSE-extension", "ulp.ver2_SUPL_RESPONSE_extension",
6484         FT_NONE, BASE_NONE, NULL, 0,
6485         "ulp.Ver2_SUPL_RESPONSE_extension", HFILL }},
6486     { &hf_ulp_shortKey,
6487       { "shortKey", "ulp.shortKey",
6488         FT_BYTES, BASE_NONE, NULL, 0,
6489         "ulp.BIT_STRING_SIZE_128", HFILL }},
6490     { &hf_ulp_longKey,
6491       { "longKey", "ulp.longKey",
6492         FT_BYTES, BASE_NONE, NULL, 0,
6493         "ulp.BIT_STRING_SIZE_256", HFILL }},
6494     { &hf_ulp_requestedAssistData,
6495       { "requestedAssistData", "ulp.requestedAssistData",
6496         FT_NONE, BASE_NONE, NULL, 0,
6497         "ulp.RequestedAssistData", HFILL }},
6498     { &hf_ulp_position,
6499       { "position", "ulp.position",
6500         FT_NONE, BASE_NONE, NULL, 0,
6501         "ulp.Position", HFILL }},
6502     { &hf_ulp_sUPLPOS,
6503       { "sUPLPOS", "ulp.sUPLPOS",
6504         FT_NONE, BASE_NONE, NULL, 0,
6505         "ulp.SUPLPOS", HFILL }},
6506     { &hf_ulp_ver,
6507       { "ver", "ulp.ver",
6508         FT_BYTES, BASE_NONE, NULL, 0,
6509         "ulp.Ver", HFILL }},
6510     { &hf_ulp_ver2_SUPL_POS_INIT_extension,
6511       { "ver2-SUPL-POS-INIT-extension", "ulp.ver2_SUPL_POS_INIT_extension",
6512         FT_NONE, BASE_NONE, NULL, 0,
6513         "ulp.Ver2_SUPL_POS_INIT_extension", HFILL }},
6514     { &hf_ulp_almanacRequested,
6515       { "almanacRequested", "ulp.almanacRequested",
6516         FT_BOOLEAN, BASE_NONE, NULL, 0,
6517         "ulp.BOOLEAN", HFILL }},
6518     { &hf_ulp_utcModelRequested,
6519       { "utcModelRequested", "ulp.utcModelRequested",
6520         FT_BOOLEAN, BASE_NONE, NULL, 0,
6521         "ulp.BOOLEAN", HFILL }},
6522     { &hf_ulp_ionosphericModelRequested,
6523       { "ionosphericModelRequested", "ulp.ionosphericModelRequested",
6524         FT_BOOLEAN, BASE_NONE, NULL, 0,
6525         "ulp.BOOLEAN", HFILL }},
6526     { &hf_ulp_dgpsCorrectionsRequested,
6527       { "dgpsCorrectionsRequested", "ulp.dgpsCorrectionsRequested",
6528         FT_BOOLEAN, BASE_NONE, NULL, 0,
6529         "ulp.BOOLEAN", HFILL }},
6530     { &hf_ulp_referenceLocationRequested,
6531       { "referenceLocationRequested", "ulp.referenceLocationRequested",
6532         FT_BOOLEAN, BASE_NONE, NULL, 0,
6533         "ulp.BOOLEAN", HFILL }},
6534     { &hf_ulp_referenceTimeRequested,
6535       { "referenceTimeRequested", "ulp.referenceTimeRequested",
6536         FT_BOOLEAN, BASE_NONE, NULL, 0,
6537         "ulp.BOOLEAN", HFILL }},
6538     { &hf_ulp_acquisitionAssistanceRequested,
6539       { "acquisitionAssistanceRequested", "ulp.acquisitionAssistanceRequested",
6540         FT_BOOLEAN, BASE_NONE, NULL, 0,
6541         "ulp.BOOLEAN", HFILL }},
6542     { &hf_ulp_realTimeIntegrityRequested,
6543       { "realTimeIntegrityRequested", "ulp.realTimeIntegrityRequested",
6544         FT_BOOLEAN, BASE_NONE, NULL, 0,
6545         "ulp.BOOLEAN", HFILL }},
6546     { &hf_ulp_navigationModelRequested,
6547       { "navigationModelRequested", "ulp.navigationModelRequested",
6548         FT_BOOLEAN, BASE_NONE, NULL, 0,
6549         "ulp.BOOLEAN", HFILL }},
6550     { &hf_ulp_navigationModelData,
6551       { "navigationModelData", "ulp.navigationModelData",
6552         FT_NONE, BASE_NONE, NULL, 0,
6553         "ulp.NavigationModel", HFILL }},
6554     { &hf_ulp_ver2_RequestedAssistData_extension,
6555       { "ver2-RequestedAssistData-extension", "ulp.ver2_RequestedAssistData_extension",
6556         FT_NONE, BASE_NONE, NULL, 0,
6557         "ulp.Ver2_RequestedAssistData_extension", HFILL }},
6558     { &hf_ulp_gpsWeek,
6559       { "gpsWeek", "ulp.gpsWeek",
6560         FT_UINT32, BASE_DEC, NULL, 0,
6561         "ulp.INTEGER_0_1023", HFILL }},
6562     { &hf_ulp_gpsToe,
6563       { "gpsToe", "ulp.gpsToe",
6564         FT_UINT32, BASE_DEC, NULL, 0,
6565         "ulp.INTEGER_0_167", HFILL }},
6566     { &hf_ulp_nSAT,
6567       { "nSAT", "ulp.nSAT",
6568         FT_UINT32, BASE_DEC, NULL, 0,
6569         "ulp.INTEGER_0_31", HFILL }},
6570     { &hf_ulp_toeLimit,
6571       { "toeLimit", "ulp.toeLimit",
6572         FT_UINT32, BASE_DEC, NULL, 0,
6573         "ulp.INTEGER_0_10", HFILL }},
6574     { &hf_ulp_satInfo,
6575       { "satInfo", "ulp.satInfo",
6576         FT_UINT32, BASE_DEC, NULL, 0,
6577         "ulp.SatelliteInfo", HFILL }},
6578     { &hf_ulp_SatelliteInfo_item,
6579       { "SatelliteInfoElement", "ulp.SatelliteInfoElement",
6580         FT_NONE, BASE_NONE, NULL, 0,
6581         "ulp.SatelliteInfoElement", HFILL }},
6582     { &hf_ulp_satId,
6583       { "satId", "ulp.satId",
6584         FT_UINT32, BASE_DEC, NULL, 0,
6585         "ulp.INTEGER_0_63", HFILL }},
6586     { &hf_ulp_iODE,
6587       { "iODE", "ulp.iODE",
6588         FT_UINT32, BASE_DEC, NULL, 0,
6589         "ulp.INTEGER_0_255", HFILL }},
6590     { &hf_ulp_posPayLoad,
6591       { "posPayLoad", "ulp.posPayLoad",
6592         FT_UINT32, BASE_DEC, VALS(ulp_PosPayLoad_vals), 0,
6593         "ulp.PosPayLoad", HFILL }},
6594     { &hf_ulp_velocity,
6595       { "velocity", "ulp.velocity",
6596         FT_UINT32, BASE_DEC, VALS(ulp_Velocity_vals), 0,
6597         "ulp.Velocity", HFILL }},
6598     { &hf_ulp_ver2_SUPL_POS_extension,
6599       { "ver2-SUPL-POS-extension", "ulp.ver2_SUPL_POS_extension",
6600         FT_NONE, BASE_NONE, NULL, 0,
6601         "ulp.Ver2_SUPL_POS_extension", HFILL }},
6602     { &hf_ulp_tia801payload,
6603       { "tia801payload", "ulp.tia801payload",
6604         FT_BYTES, BASE_NONE, NULL, 0,
6605         "ulp.OCTET_STRING_SIZE_1_8192", HFILL }},
6606     { &hf_ulp_rrcPayload,
6607       { "rrcPayload", "ulp.rrcPayload",
6608         FT_BYTES, BASE_NONE, NULL, 0,
6609         "ulp.OCTET_STRING_SIZE_1_8192", HFILL }},
6610     { &hf_ulp_rrlpPayload,
6611       { "rrlpPayload", "ulp.rrlpPayload",
6612         FT_BYTES, BASE_NONE, NULL, 0,
6613         "ulp.T_rrlpPayload", HFILL }},
6614     { &hf_ulp_ver2_PosPayLoad_extension,
6615       { "ver2-PosPayLoad-extension", "ulp.ver2_PosPayLoad_extension",
6616         FT_NONE, BASE_NONE, NULL, 0,
6617         "ulp.Ver2_PosPayLoad_extension", HFILL }},
6618     { &hf_ulp_statusCode,
6619       { "statusCode", "ulp.statusCode",
6620         FT_UINT32, BASE_DEC, VALS(ulp_StatusCode_vals), 0,
6621         "ulp.StatusCode", HFILL }},
6622     { &hf_ulp_ver2_SUPL_END_extension,
6623       { "ver2-SUPL-END-extension", "ulp.ver2_SUPL_END_extension",
6624         FT_NONE, BASE_NONE, NULL, 0,
6625         "ulp.Ver2_SUPL_END_extension", HFILL }},
6626     { &hf_ulp_sPCSETKey,
6627       { "sPCSETKey", "ulp.sPCSETKey",
6628         FT_BYTES, BASE_NONE, NULL, 0,
6629         "ulp.SPCSETKey", HFILL }},
6630     { &hf_ulp_sPCTID,
6631       { "sPCTID", "ulp.sPCTID",
6632         FT_NONE, BASE_NONE, NULL, 0,
6633         "ulp.SPCTID", HFILL }},
6634     { &hf_ulp_sPCSETKeylifetime,
6635       { "sPCSETKeylifetime", "ulp.sPCSETKeylifetime",
6636         FT_UINT32, BASE_DEC, NULL, 0,
6637         "ulp.SPCSETKeylifetime", HFILL }},
6638     { &hf_ulp_notificationResponse,
6639       { "notificationResponse", "ulp.notificationResponse",
6640         FT_UINT32, BASE_DEC, VALS(ulp_NotificationResponse_vals), 0,
6641         "ulp.NotificationResponse", HFILL }},
6642     { &hf_ulp_targetSETID,
6643       { "targetSETID", "ulp.targetSETID",
6644         FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
6645         "ulp.SETId", HFILL }},
6646     { &hf_ulp_applicationID,
6647       { "applicationID", "ulp.applicationID",
6648         FT_NONE, BASE_NONE, NULL, 0,
6649         "ulp.ApplicationID", HFILL }},
6650     { &hf_ulp_multipleLocationIds,
6651       { "multipleLocationIds", "ulp.multipleLocationIds",
6652         FT_UINT32, BASE_DEC, NULL, 0,
6653         "ulp.MultipleLocationIds", HFILL }},
6654     { &hf_ulp_thirdParty,
6655       { "thirdParty", "ulp.thirdParty",
6656         FT_UINT32, BASE_DEC, NULL, 0,
6657         "ulp.ThirdParty", HFILL }},
6658     { &hf_ulp_triggerType,
6659       { "triggerType", "ulp.triggerType",
6660         FT_UINT32, BASE_DEC, VALS(ulp_TriggerType_vals), 0,
6661         "ulp.TriggerType", HFILL }},
6662     { &hf_ulp_triggerParams,
6663       { "triggerParams", "ulp.triggerParams",
6664         FT_UINT32, BASE_DEC, VALS(ulp_TriggerParams_vals), 0,
6665         "ulp.TriggerParams", HFILL }},
6666     { &hf_ulp_reportingCap,
6667       { "reportingCap", "ulp.reportingCap",
6668         FT_NONE, BASE_NONE, NULL, 0,
6669         "ulp.ReportingCap", HFILL }},
6670     { &hf_ulp_causeCode,
6671       { "causeCode", "ulp.causeCode",
6672         FT_UINT32, BASE_DEC, VALS(ulp_CauseCode_vals), 0,
6673         "ulp.CauseCode", HFILL }},
6674     { &hf_ulp_periodicParams,
6675       { "periodicParams", "ulp.periodicParams",
6676         FT_NONE, BASE_NONE, NULL, 0,
6677         "ulp.PeriodicParams", HFILL }},
6678     { &hf_ulp_areaEventParams,
6679       { "areaEventParams", "ulp.areaEventParams",
6680         FT_NONE, BASE_NONE, NULL, 0,
6681         "ulp.AreaEventParams", HFILL }},
6682     { &hf_ulp_numberOfFixes,
6683       { "numberOfFixes", "ulp.numberOfFixes",
6684         FT_UINT32, BASE_DEC, NULL, 0,
6685         "ulp.INTEGER_1_8639999", HFILL }},
6686     { &hf_ulp_intervalBetweenFixes,
6687       { "intervalBetweenFixes", "ulp.intervalBetweenFixes",
6688         FT_UINT32, BASE_DEC, NULL, 0,
6689         "ulp.INTEGER_1_8639999", HFILL }},
6690     { &hf_ulp_startTime,
6691       { "startTime", "ulp.startTime",
6692         FT_UINT32, BASE_DEC, NULL, 0,
6693         "ulp.INTEGER_0_2678400", HFILL }},
6694     { &hf_ulp_areaEventType,
6695       { "areaEventType", "ulp.areaEventType",
6696         FT_UINT32, BASE_DEC, VALS(ulp_AreaEventType_vals), 0,
6697         "ulp.AreaEventType", HFILL }},
6698     { &hf_ulp_locationEstimate,
6699       { "locationEstimate", "ulp.locationEstimate",
6700         FT_BOOLEAN, BASE_NONE, NULL, 0,
6701         "ulp.BOOLEAN", HFILL }},
6702     { &hf_ulp_repeatedReportingParams,
6703       { "repeatedReportingParams", "ulp.repeatedReportingParams",
6704         FT_NONE, BASE_NONE, NULL, 0,
6705         "ulp.RepeatedReportingParams", HFILL }},
6706     { &hf_ulp_stopTime,
6707       { "stopTime", "ulp.stopTime",
6708         FT_UINT32, BASE_DEC, NULL, 0,
6709         "ulp.INTEGER_0_11318399", HFILL }},
6710     { &hf_ulp_geographicTargetAreaList,
6711       { "geographicTargetAreaList", "ulp.geographicTargetAreaList",
6712         FT_UINT32, BASE_DEC, NULL, 0,
6713         "ulp.GeographicTargetAreaList", HFILL }},
6714     { &hf_ulp_areaIdLists,
6715       { "areaIdLists", "ulp.areaIdLists",
6716         FT_UINT32, BASE_DEC, NULL, 0,
6717         "ulp.SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList", HFILL }},
6718     { &hf_ulp_areaIdLists_item,
6719       { "AreaIdList", "ulp.AreaIdList",
6720         FT_NONE, BASE_NONE, NULL, 0,
6721         "ulp.AreaIdList", HFILL }},
6722     { &hf_ulp_minimumIntervalTime,
6723       { "minimumIntervalTime", "ulp.minimumIntervalTime",
6724         FT_UINT32, BASE_DEC, NULL, 0,
6725         "ulp.INTEGER_1_604800", HFILL }},
6726     { &hf_ulp_maximumNumberOfReports,
6727       { "maximumNumberOfReports", "ulp.maximumNumberOfReports",
6728         FT_UINT32, BASE_DEC, NULL, 0,
6729         "ulp.INTEGER_1_1024", HFILL }},
6730     { &hf_ulp_GeographicTargetAreaList_item,
6731       { "GeographicTargetArea", "ulp.GeographicTargetArea",
6732         FT_UINT32, BASE_DEC, VALS(ulp_GeographicTargetArea_vals), 0,
6733         "ulp.GeographicTargetArea", HFILL }},
6734     { &hf_ulp_circularArea,
6735       { "circularArea", "ulp.circularArea",
6736         FT_NONE, BASE_NONE, NULL, 0,
6737         "ulp.CircularArea", HFILL }},
6738     { &hf_ulp_ellipticalArea,
6739       { "ellipticalArea", "ulp.ellipticalArea",
6740         FT_NONE, BASE_NONE, NULL, 0,
6741         "ulp.EllipticalArea", HFILL }},
6742     { &hf_ulp_polygonArea,
6743       { "polygonArea", "ulp.polygonArea",
6744         FT_NONE, BASE_NONE, NULL, 0,
6745         "ulp.PolygonArea", HFILL }},
6746     { &hf_ulp_areaIdSet,
6747       { "areaIdSet", "ulp.areaIdSet",
6748         FT_UINT32, BASE_DEC, NULL, 0,
6749         "ulp.AreaIdSet", HFILL }},
6750     { &hf_ulp_areaIdSetType,
6751       { "areaIdSetType", "ulp.areaIdSetType",
6752         FT_UINT32, BASE_DEC, VALS(ulp_AreaIdSetType_vals), 0,
6753         "ulp.AreaIdSetType", HFILL }},
6754     { &hf_ulp_geoAreaMappingList,
6755       { "geoAreaMappingList", "ulp.geoAreaMappingList",
6756         FT_UINT32, BASE_DEC, NULL, 0,
6757         "ulp.GeoAreaMappingList", HFILL }},
6758     { &hf_ulp_AreaIdSet_item,
6759       { "AreaId", "ulp.AreaId",
6760         FT_UINT32, BASE_DEC, VALS(ulp_AreaId_vals), 0,
6761         "ulp.AreaId", HFILL }},
6762     { &hf_ulp_gSMAreaId,
6763       { "gSMAreaId", "ulp.gSMAreaId",
6764         FT_NONE, BASE_NONE, NULL, 0,
6765         "ulp.GSMAreaId", HFILL }},
6766     { &hf_ulp_wCDMAAreaId,
6767       { "wCDMAAreaId", "ulp.wCDMAAreaId",
6768         FT_NONE, BASE_NONE, NULL, 0,
6769         "ulp.WCDMAAreaId", HFILL }},
6770     { &hf_ulp_cDMAAreaId,
6771       { "cDMAAreaId", "ulp.cDMAAreaId",
6772         FT_NONE, BASE_NONE, NULL, 0,
6773         "ulp.CDMAAreaId", HFILL }},
6774     { &hf_ulp_hRPDAreaId,
6775       { "hRPDAreaId", "ulp.hRPDAreaId",
6776         FT_NONE, BASE_NONE, NULL, 0,
6777         "ulp.HRPDAreaId", HFILL }},
6778     { &hf_ulp_uMBAreaId,
6779       { "uMBAreaId", "ulp.uMBAreaId",
6780         FT_NONE, BASE_NONE, NULL, 0,
6781         "ulp.UMBAreaId", HFILL }},
6782     { &hf_ulp_lTEAreaId,
6783       { "lTEAreaId", "ulp.lTEAreaId",
6784         FT_NONE, BASE_NONE, NULL, 0,
6785         "ulp.LTEAreaId", HFILL }},
6786     { &hf_ulp_wLANAreaId,
6787       { "wLANAreaId", "ulp.wLANAreaId",
6788         FT_NONE, BASE_NONE, NULL, 0,
6789         "ulp.WLANAreaId", HFILL }},
6790     { &hf_ulp_wiMAXAreaId,
6791       { "wiMAXAreaId", "ulp.wiMAXAreaId",
6792         FT_NONE, BASE_NONE, NULL, 0,
6793         "ulp.WimaxAreaId", HFILL }},
6794     { &hf_ulp_refMCC,
6795       { "refMCC", "ulp.refMCC",
6796         FT_UINT32, BASE_DEC, NULL, 0,
6797         "ulp.INTEGER_0_999", HFILL }},
6798     { &hf_ulp_refMNC,
6799       { "refMNC", "ulp.refMNC",
6800         FT_UINT32, BASE_DEC, NULL, 0,
6801         "ulp.INTEGER_0_999", HFILL }},
6802     { &hf_ulp_refLAC,
6803       { "refLAC", "ulp.refLAC",
6804         FT_UINT32, BASE_DEC, NULL, 0,
6805         "ulp.INTEGER_0_65535", HFILL }},
6806     { &hf_ulp_refCI,
6807       { "refCI", "ulp.refCI",
6808         FT_UINT32, BASE_DEC, NULL, 0,
6809         "ulp.INTEGER_0_65535", HFILL }},
6810     { &hf_ulp_refUC,
6811       { "refUC", "ulp.refUC",
6812         FT_UINT32, BASE_DEC, NULL, 0,
6813         "ulp.INTEGER_0_268435455", HFILL }},
6814     { &hf_ulp_refSID,
6815       { "refSID", "ulp.refSID",
6816         FT_UINT32, BASE_DEC, NULL, 0,
6817         "ulp.INTEGER_0_65535", HFILL }},
6818     { &hf_ulp_refNID,
6819       { "refNID", "ulp.refNID",
6820         FT_UINT32, BASE_DEC, NULL, 0,
6821         "ulp.INTEGER_0_32767", HFILL }},
6822     { &hf_ulp_refBASEID,
6823       { "refBASEID", "ulp.refBASEID",
6824         FT_UINT32, BASE_DEC, NULL, 0,
6825         "ulp.INTEGER_0_65535", HFILL }},
6826     { &hf_ulp_refSECTORID,
6827       { "refSECTORID", "ulp.refSECTORID",
6828         FT_BYTES, BASE_NONE, NULL, 0,
6829         "ulp.BIT_STRING_SIZE_128", HFILL }},
6830     { &hf_ulp_refCI_01,
6831       { "refCI", "ulp.refCI",
6832         FT_BYTES, BASE_NONE, NULL, 0,
6833         "ulp.BIT_STRING_SIZE_29", HFILL }},
6834     { &hf_ulp_apMACAddress,
6835       { "apMACAddress", "ulp.apMACAddress",
6836         FT_BYTES, BASE_NONE, NULL, 0,
6837         "ulp.BIT_STRING_SIZE_48", HFILL }},
6838     { &hf_ulp_bsID_MSB,
6839       { "bsID-MSB", "ulp.bsID_MSB",
6840         FT_BYTES, BASE_NONE, NULL, 0,
6841         "ulp.BIT_STRING_SIZE_24", HFILL }},
6842     { &hf_ulp_bsID_LSB,
6843       { "bsID-LSB", "ulp.bsID_LSB",
6844         FT_BYTES, BASE_NONE, NULL, 0,
6845         "ulp.BIT_STRING_SIZE_24", HFILL }},
6846     { &hf_ulp_GeoAreaMappingList_item,
6847       { "GeoAreaIndex", "ulp.GeoAreaIndex",
6848         FT_UINT32, BASE_DEC, NULL, 0,
6849         "ulp.GeoAreaIndex", HFILL }},
6850     { &hf_ulp_supportedNetworkInformation,
6851       { "supportedNetworkInformation", "ulp.supportedNetworkInformation",
6852         FT_NONE, BASE_NONE, NULL, 0,
6853         "ulp.SupportedNetworkInformation", HFILL }},
6854     { &hf_ulp_reportingMode,
6855       { "reportingMode", "ulp.reportingMode",
6856         FT_NONE, BASE_NONE, NULL, 0,
6857         "ulp.ReportingMode", HFILL }},
6858     { &hf_ulp_gnssPosTechnology,
6859       { "gnssPosTechnology", "ulp.gnssPosTechnology",
6860         FT_NONE, BASE_NONE, NULL, 0,
6861         "ulp.GNSSPosTechnology", HFILL }},
6862     { &hf_ulp_repMode,
6863       { "repMode", "ulp.repMode",
6864         FT_UINT32, BASE_DEC, VALS(ulp_RepMode_vals), 0,
6865         "ulp.RepMode", HFILL }},
6866     { &hf_ulp_batchRepConditions,
6867       { "batchRepConditions", "ulp.batchRepConditions",
6868         FT_UINT32, BASE_DEC, VALS(ulp_BatchRepConditions_vals), 0,
6869         "ulp.BatchRepConditions", HFILL }},
6870     { &hf_ulp_batchRepType,
6871       { "batchRepType", "ulp.batchRepType",
6872         FT_NONE, BASE_NONE, NULL, 0,
6873         "ulp.BatchRepType", HFILL }},
6874     { &hf_ulp_num_interval,
6875       { "num-interval", "ulp.num_interval",
6876         FT_UINT32, BASE_DEC, NULL, 0,
6877         "ulp.INTEGER_1_1024", HFILL }},
6878     { &hf_ulp_num_minutes,
6879       { "num-minutes", "ulp.num_minutes",
6880         FT_UINT32, BASE_DEC, NULL, 0,
6881         "ulp.INTEGER_1_2048", HFILL }},
6882     { &hf_ulp_endofsession,
6883       { "endofsession", "ulp.endofsession",
6884         FT_NONE, BASE_NONE, NULL, 0,
6885         "ulp.NULL", HFILL }},
6886     { &hf_ulp_reportPosition,
6887       { "reportPosition", "ulp.reportPosition",
6888         FT_BOOLEAN, BASE_NONE, NULL, 0,
6889         "ulp.BOOLEAN", HFILL }},
6890     { &hf_ulp_reportMeasurements,
6891       { "reportMeasurements", "ulp.reportMeasurements",
6892         FT_BOOLEAN, BASE_NONE, NULL, 0,
6893         "ulp.BOOLEAN", HFILL }},
6894     { &hf_ulp_intermediateReports,
6895       { "intermediateReports", "ulp.intermediateReports",
6896         FT_BOOLEAN, BASE_NONE, NULL, 0,
6897         "ulp.BOOLEAN", HFILL }},
6898     { &hf_ulp_discardOldest,
6899       { "discardOldest", "ulp.discardOldest",
6900         FT_BOOLEAN, BASE_NONE, NULL, 0,
6901         "ulp.BOOLEAN", HFILL }},
6902     { &hf_ulp_sessionList,
6903       { "sessionList", "ulp.sessionList",
6904         FT_UINT32, BASE_DEC, NULL, 0,
6905         "ulp.SessionList", HFILL }},
6906     { &hf_ulp_reportDataList,
6907       { "reportDataList", "ulp.reportDataList",
6908         FT_UINT32, BASE_DEC, NULL, 0,
6909         "ulp.ReportDataList", HFILL }},
6910     { &hf_ulp_moreComponents,
6911       { "moreComponents", "ulp.moreComponents",
6912         FT_NONE, BASE_NONE, NULL, 0,
6913         "ulp.NULL", HFILL }},
6914     { &hf_ulp_SessionList_item,
6915       { "SessionInformation", "ulp.SessionInformation",
6916         FT_NONE, BASE_NONE, NULL, 0,
6917         "ulp.SessionInformation", HFILL }},
6918     { &hf_ulp_ReportDataList_item,
6919       { "ReportData", "ulp.ReportData",
6920         FT_NONE, BASE_NONE, NULL, 0,
6921         "ulp.ReportData", HFILL }},
6922     { &hf_ulp_positionData,
6923       { "positionData", "ulp.positionData",
6924         FT_NONE, BASE_NONE, NULL, 0,
6925         "ulp.PositionData", HFILL }},
6926     { &hf_ulp_resultCode,
6927       { "resultCode", "ulp.resultCode",
6928         FT_UINT32, BASE_DEC, VALS(ulp_ResultCode_vals), 0,
6929         "ulp.ResultCode", HFILL }},
6930     { &hf_ulp_timestamp,
6931       { "timestamp", "ulp.timestamp",
6932         FT_UINT32, BASE_DEC, VALS(ulp_TimeStamp_vals), 0,
6933         "ulp.TimeStamp", HFILL }},
6934     { &hf_ulp_ganssSignalsInfo,
6935       { "ganssSignalsInfo", "ulp.ganssSignalsInfo",
6936         FT_UINT32, BASE_DEC, NULL, 0,
6937         "ulp.GANSSsignalsInfo", HFILL }},
6938     { &hf_ulp_GANSSsignalsInfo_item,
6939       { "GANSSSignalsDescription", "ulp.GANSSSignalsDescription",
6940         FT_NONE, BASE_NONE, NULL, 0,
6941         "ulp.GANSSSignalsDescription", HFILL }},
6942     { &hf_ulp_ganssId,
6943       { "ganssId", "ulp.ganssId",
6944         FT_UINT32, BASE_DEC, NULL, 0,
6945         "ulp.INTEGER_0_15", HFILL }},
6946     { &hf_ulp_gANSSSignals,
6947       { "gANSSSignals", "ulp.gANSSSignals",
6948         FT_BYTES, BASE_NONE, NULL, 0,
6949         "ulp.GANSSSignals", HFILL }},
6950     { &hf_ulp_absoluteTime,
6951       { "absoluteTime", "ulp.absoluteTime",
6952         FT_STRING, BASE_NONE, NULL, 0,
6953         "ulp.UTCTime", HFILL }},
6954     { &hf_ulp_relativeTime,
6955       { "relativeTime", "ulp.relativeTime",
6956         FT_UINT32, BASE_DEC, NULL, 0,
6957         "ulp.INTEGER_0_31536000", HFILL }},
6958     { &hf_ulp_notificationMode,
6959       { "notificationMode", "ulp.notificationMode",
6960         FT_UINT32, BASE_DEC, VALS(ulp_NotificationMode_vals), 0,
6961         "ulp.NotificationMode", HFILL }},
6962     { &hf_ulp_e_SLPAddress,
6963       { "e-SLPAddress", "ulp.e_SLPAddress",
6964         FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
6965         "ulp.SLPAddress", HFILL }},
6966     { &hf_ulp_historicReporting,
6967       { "historicReporting", "ulp.historicReporting",
6968         FT_NONE, BASE_NONE, NULL, 0,
6969         "ulp.HistoricReporting", HFILL }},
6970     { &hf_ulp_protectionLevel,
6971       { "protectionLevel", "ulp.protectionLevel",
6972         FT_NONE, BASE_NONE, NULL, 0,
6973         "ulp.ProtectionLevel", HFILL }},
6974     { &hf_ulp_minimumMajorVersion,
6975       { "minimumMajorVersion", "ulp.minimumMajorVersion",
6976         FT_UINT32, BASE_DEC, NULL, 0,
6977         "ulp.INTEGER_0_255", HFILL }},
6978     { &hf_ulp_allowedReportingType,
6979       { "allowedReportingType", "ulp.allowedReportingType",
6980         FT_UINT32, BASE_DEC, VALS(ulp_AllowedReportingType_vals), 0,
6981         "ulp.AllowedReportingType", HFILL }},
6982     { &hf_ulp_reportingCriteria,
6983       { "reportingCriteria", "ulp.reportingCriteria",
6984         FT_NONE, BASE_NONE, NULL, 0,
6985         "ulp.ReportingCriteria", HFILL }},
6986     { &hf_ulp_timeWindow,
6987       { "timeWindow", "ulp.timeWindow",
6988         FT_NONE, BASE_NONE, NULL, 0,
6989         "ulp.TimeWindow", HFILL }},
6990     { &hf_ulp_maxNumberofReports,
6991       { "maxNumberofReports", "ulp.maxNumberofReports",
6992         FT_UINT32, BASE_DEC, NULL, 0,
6993         "ulp.INTEGER_1_65536", HFILL }},
6994     { &hf_ulp_minTimeInterval,
6995       { "minTimeInterval", "ulp.minTimeInterval",
6996         FT_UINT32, BASE_DEC, NULL, 0,
6997         "ulp.INTEGER_1_86400", HFILL }},
6998     { &hf_ulp_startTime_01,
6999       { "startTime", "ulp.startTime",
7000         FT_INT32, BASE_DEC, NULL, 0,
7001         "ulp.INTEGER_M525600_M1", HFILL }},
7002     { &hf_ulp_stopTime_01,
7003       { "stopTime", "ulp.stopTime",
7004         FT_INT32, BASE_DEC, NULL, 0,
7005         "ulp.INTEGER_M525599_0", HFILL }},
7006     { &hf_ulp_protlevel,
7007       { "protlevel", "ulp.protlevel",
7008         FT_UINT32, BASE_DEC, VALS(ulp_ProtLevel_vals), 0,
7009         "ulp.ProtLevel", HFILL }},
7010     { &hf_ulp_basicProtectionParams,
7011       { "basicProtectionParams", "ulp.basicProtectionParams",
7012         FT_NONE, BASE_NONE, NULL, 0,
7013         "ulp.BasicProtectionParams", HFILL }},
7014     { &hf_ulp_keyIdentifier,
7015       { "keyIdentifier", "ulp.keyIdentifier",
7016         FT_BYTES, BASE_NONE, NULL, 0,
7017         "ulp.OCTET_STRING_SIZE_8", HFILL }},
7018     { &hf_ulp_basicReplayCounter,
7019       { "basicReplayCounter", "ulp.basicReplayCounter",
7020         FT_UINT32, BASE_DEC, NULL, 0,
7021         "ulp.INTEGER_0_65535", HFILL }},
7022     { &hf_ulp_basicMAC,
7023       { "basicMAC", "ulp.basicMAC",
7024         FT_BYTES, BASE_NONE, NULL, 0,
7025         "ulp.BIT_STRING_SIZE_32", HFILL }},
7026     { &hf_ulp_initialApproximateposition,
7027       { "initialApproximateposition", "ulp.initialApproximateposition",
7028         FT_NONE, BASE_NONE, NULL, 0,
7029         "ulp.Position", HFILL }},
7030     { &hf_ulp_utran_GPSReferenceTimeResult,
7031       { "utran-GPSReferenceTimeResult", "ulp.utran_GPSReferenceTimeResult",
7032         FT_NONE, BASE_NONE, NULL, 0,
7033         "ulp.UTRAN_GPSReferenceTimeResult", HFILL }},
7034     { &hf_ulp_utran_GANSSReferenceTimeResult,
7035       { "utran-GANSSReferenceTimeResult", "ulp.utran_GANSSReferenceTimeResult",
7036         FT_NONE, BASE_NONE, NULL, 0,
7037         "ulp.UTRAN_GANSSReferenceTimeResult", HFILL }},
7038     { &hf_ulp_utran_GPSReferenceTimeAssistance,
7039       { "utran-GPSReferenceTimeAssistance", "ulp.utran_GPSReferenceTimeAssistance",
7040         FT_NONE, BASE_NONE, NULL, 0,
7041         "ulp.UTRAN_GPSReferenceTimeAssistance", HFILL }},
7042     { &hf_ulp_utran_GANSSReferenceTimeAssistance,
7043       { "utran-GANSSReferenceTimeAssistance", "ulp.utran_GANSSReferenceTimeAssistance",
7044         FT_NONE, BASE_NONE, NULL, 0,
7045         "ulp.UTRAN_GANSSReferenceTimeAssistance", HFILL }},
7046     { &hf_ulp_emergencyCallLocation,
7047       { "emergencyCallLocation", "ulp.emergencyCallLocation",
7048         FT_NONE, BASE_NONE, NULL, 0,
7049         "ulp.NULL", HFILL }},
7050     { &hf_ulp_serviceCapabilities,
7051       { "serviceCapabilities", "ulp.serviceCapabilities",
7052         FT_NONE, BASE_NONE, NULL, 0,
7053         "ulp.ServiceCapabilities", HFILL }},
7054     { &hf_ulp_servicesSupported,
7055       { "servicesSupported", "ulp.servicesSupported",
7056         FT_NONE, BASE_NONE, NULL, 0,
7057         "ulp.ServicesSupported", HFILL }},
7058     { &hf_ulp_reportingCapabilities,
7059       { "reportingCapabilities", "ulp.reportingCapabilities",
7060         FT_NONE, BASE_NONE, NULL, 0,
7061         "ulp.ReportingCap", HFILL }},
7062     { &hf_ulp_eventTriggerCapabilities,
7063       { "eventTriggerCapabilities", "ulp.eventTriggerCapabilities",
7064         FT_NONE, BASE_NONE, NULL, 0,
7065         "ulp.EventTriggerCapabilities", HFILL }},
7066     { &hf_ulp_sessionCapabilities,
7067       { "sessionCapabilities", "ulp.sessionCapabilities",
7068         FT_NONE, BASE_NONE, NULL, 0,
7069         "ulp.SessionCapabilities", HFILL }},
7070     { &hf_ulp_periodicTrigger,
7071       { "periodicTrigger", "ulp.periodicTrigger",
7072         FT_BOOLEAN, BASE_NONE, NULL, 0,
7073         "ulp.BOOLEAN", HFILL }},
7074     { &hf_ulp_areaEventTrigger,
7075       { "areaEventTrigger", "ulp.areaEventTrigger",
7076         FT_BOOLEAN, BASE_NONE, NULL, 0,
7077         "ulp.BOOLEAN", HFILL }},
7078     { &hf_ulp_geoAreaShapesSupported,
7079       { "geoAreaShapesSupported", "ulp.geoAreaShapesSupported",
7080         FT_NONE, BASE_NONE, NULL, 0,
7081         "ulp.GeoAreaShapesSupported", HFILL }},
7082     { &hf_ulp_maxNumGeoAreaSupported,
7083       { "maxNumGeoAreaSupported", "ulp.maxNumGeoAreaSupported",
7084         FT_UINT32, BASE_DEC, NULL, 0,
7085         "ulp.INTEGER_0_maxNumGeoArea", HFILL }},
7086     { &hf_ulp_maxAreaIdListSupported,
7087       { "maxAreaIdListSupported", "ulp.maxAreaIdListSupported",
7088         FT_UINT32, BASE_DEC, NULL, 0,
7089         "ulp.INTEGER_0_maxAreaIdList", HFILL }},
7090     { &hf_ulp_maxAreaIdSupportedPerList,
7091       { "maxAreaIdSupportedPerList", "ulp.maxAreaIdSupportedPerList",
7092         FT_UINT32, BASE_DEC, NULL, 0,
7093         "ulp.INTEGER_0_maxAreaId", HFILL }},
7094     { &hf_ulp_ellipticalArea_01,
7095       { "ellipticalArea", "ulp.ellipticalArea",
7096         FT_BOOLEAN, BASE_NONE, NULL, 0,
7097         "ulp.BOOLEAN", HFILL }},
7098     { &hf_ulp_polygonArea_01,
7099       { "polygonArea", "ulp.polygonArea",
7100         FT_BOOLEAN, BASE_NONE, NULL, 0,
7101         "ulp.BOOLEAN", HFILL }},
7102     { &hf_ulp_maxNumberTotalSessions,
7103       { "maxNumberTotalSessions", "ulp.maxNumberTotalSessions",
7104         FT_UINT32, BASE_DEC, NULL, 0,
7105         "ulp.INTEGER_1_128", HFILL }},
7106     { &hf_ulp_maxNumberPeriodicSessions,
7107       { "maxNumberPeriodicSessions", "ulp.maxNumberPeriodicSessions",
7108         FT_UINT32, BASE_DEC, NULL, 0,
7109         "ulp.INTEGER_1_32", HFILL }},
7110     { &hf_ulp_maxNumberTriggeredSessions,
7111       { "maxNumberTriggeredSessions", "ulp.maxNumberTriggeredSessions",
7112         FT_UINT32, BASE_DEC, NULL, 0,
7113         "ulp.INTEGER_1_32", HFILL }},
7114     { &hf_ulp_lpp,
7115       { "lpp", "ulp.lpp",
7116         FT_BOOLEAN, BASE_NONE, NULL, 0,
7117         "ulp.BOOLEAN", HFILL }},
7118     { &hf_ulp_posProtocolVersionRRLP,
7119       { "posProtocolVersionRRLP", "ulp.posProtocolVersionRRLP",
7120         FT_NONE, BASE_NONE, NULL, 0,
7121         "ulp.PosProtocolVersion3GPP", HFILL }},
7122     { &hf_ulp_posProtocolVersionRRC,
7123       { "posProtocolVersionRRC", "ulp.posProtocolVersionRRC",
7124         FT_NONE, BASE_NONE, NULL, 0,
7125         "ulp.PosProtocolVersion3GPP", HFILL }},
7126     { &hf_ulp_posProtocolVersionTIA801,
7127       { "posProtocolVersionTIA801", "ulp.posProtocolVersionTIA801",
7128         FT_UINT32, BASE_DEC, NULL, 0,
7129         "ulp.PosProtocolVersion3GPP2", HFILL }},
7130     { &hf_ulp_posProtocolVersionLPP,
7131       { "posProtocolVersionLPP", "ulp.posProtocolVersionLPP",
7132         FT_NONE, BASE_NONE, NULL, 0,
7133         "ulp.PosProtocolVersion3GPP", HFILL }},
7134     { &hf_ulp_majorVersionField,
7135       { "majorVersionField", "ulp.majorVersionField",
7136         FT_UINT32, BASE_DEC, NULL, 0,
7137         "ulp.INTEGER_0_255", HFILL }},
7138     { &hf_ulp_technicalVersionField,
7139       { "technicalVersionField", "ulp.technicalVersionField",
7140         FT_UINT32, BASE_DEC, NULL, 0,
7141         "ulp.INTEGER_0_255", HFILL }},
7142     { &hf_ulp_editorialVersionField,
7143       { "editorialVersionField", "ulp.editorialVersionField",
7144         FT_UINT32, BASE_DEC, NULL, 0,
7145         "ulp.INTEGER_0_255", HFILL }},
7146     { &hf_ulp_PosProtocolVersion3GPP2_item,
7147       { "Supported3GPP2PosProtocolVersion", "ulp.Supported3GPP2PosProtocolVersion",
7148         FT_NONE, BASE_NONE, NULL, 0,
7149         "ulp.Supported3GPP2PosProtocolVersion", HFILL }},
7150     { &hf_ulp_revisionNumber,
7151       { "revisionNumber", "ulp.revisionNumber",
7152         FT_BYTES, BASE_NONE, NULL, 0,
7153         "ulp.BIT_STRING_SIZE_6", HFILL }},
7154     { &hf_ulp_pointReleaseNumber,
7155       { "pointReleaseNumber", "ulp.pointReleaseNumber",
7156         FT_UINT32, BASE_DEC, NULL, 0,
7157         "ulp.INTEGER_0_255", HFILL }},
7158     { &hf_ulp_internalEditLevel,
7159       { "internalEditLevel", "ulp.internalEditLevel",
7160         FT_UINT32, BASE_DEC, NULL, 0,
7161         "ulp.INTEGER_0_255", HFILL }},
7162     { &hf_ulp_gANSSPositionMethods,
7163       { "gANSSPositionMethods", "ulp.gANSSPositionMethods",
7164         FT_UINT32, BASE_DEC, NULL, 0,
7165         "ulp.GANSSPositionMethods", HFILL }},
7166     { &hf_ulp_GANSSPositionMethods_item,
7167       { "GANSSPositionMethod", "ulp.GANSSPositionMethod",
7168         FT_NONE, BASE_NONE, NULL, 0,
7169         "ulp.GANSSPositionMethod", HFILL }},
7170     { &hf_ulp_ganssSBASid,
7171       { "ganssSBASid", "ulp.ganssSBASid",
7172         FT_BYTES, BASE_NONE, NULL, 0,
7173         "ulp.BIT_STRING_SIZE_3", HFILL }},
7174     { &hf_ulp_gANSSPositioningMethodTypes,
7175       { "gANSSPositioningMethodTypes", "ulp.gANSSPositioningMethodTypes",
7176         FT_NONE, BASE_NONE, NULL, 0,
7177         "ulp.GANSSPositioningMethodTypes", HFILL }},
7178     { &hf_ulp_setAssisted,
7179       { "setAssisted", "ulp.setAssisted",
7180         FT_BOOLEAN, BASE_NONE, NULL, 0,
7181         "ulp.BOOLEAN", HFILL }},
7182     { &hf_ulp_setBased,
7183       { "setBased", "ulp.setBased",
7184         FT_BOOLEAN, BASE_NONE, NULL, 0,
7185         "ulp.BOOLEAN", HFILL }},
7186     { &hf_ulp_autonomous,
7187       { "autonomous", "ulp.autonomous",
7188         FT_BOOLEAN, BASE_NONE, NULL, 0,
7189         "ulp.BOOLEAN", HFILL }},
7190     { &hf_ulp_ganssRequestedCommonAssistanceDataList,
7191       { "ganssRequestedCommonAssistanceDataList", "ulp.ganssRequestedCommonAssistanceDataList",
7192         FT_NONE, BASE_NONE, NULL, 0,
7193         "ulp.GanssRequestedCommonAssistanceDataList", HFILL }},
7194     { &hf_ulp_ganssRequestedGenericAssistanceDataList,
7195       { "ganssRequestedGenericAssistanceDataList", "ulp.ganssRequestedGenericAssistanceDataList",
7196         FT_UINT32, BASE_DEC, NULL, 0,
7197         "ulp.GanssRequestedGenericAssistanceDataList", HFILL }},
7198     { &hf_ulp_extendedEphemeris,
7199       { "extendedEphemeris", "ulp.extendedEphemeris",
7200         FT_NONE, BASE_NONE, NULL, 0,
7201         "ulp.ExtendedEphemeris", HFILL }},
7202     { &hf_ulp_extendedEphemerisCheck,
7203       { "extendedEphemerisCheck", "ulp.extendedEphemerisCheck",
7204         FT_NONE, BASE_NONE, NULL, 0,
7205         "ulp.ExtendedEphCheck", HFILL }},
7206     { &hf_ulp_ganssReferenceTime,
7207       { "ganssReferenceTime", "ulp.ganssReferenceTime",
7208         FT_BOOLEAN, BASE_NONE, NULL, 0,
7209         "ulp.BOOLEAN", HFILL }},
7210     { &hf_ulp_ganssIonosphericModel,
7211       { "ganssIonosphericModel", "ulp.ganssIonosphericModel",
7212         FT_BOOLEAN, BASE_NONE, NULL, 0,
7213         "ulp.BOOLEAN", HFILL }},
7214     { &hf_ulp_ganssAdditionalIonosphericModelForDataID00,
7215       { "ganssAdditionalIonosphericModelForDataID00", "ulp.ganssAdditionalIonosphericModelForDataID00",
7216         FT_BOOLEAN, BASE_NONE, NULL, 0,
7217         "ulp.BOOLEAN", HFILL }},
7218     { &hf_ulp_ganssAdditionalIonosphericModelForDataID11,
7219       { "ganssAdditionalIonosphericModelForDataID11", "ulp.ganssAdditionalIonosphericModelForDataID11",
7220         FT_BOOLEAN, BASE_NONE, NULL, 0,
7221         "ulp.BOOLEAN", HFILL }},
7222     { &hf_ulp_ganssEarthOrientationParameters,
7223       { "ganssEarthOrientationParameters", "ulp.ganssEarthOrientationParameters",
7224         FT_BOOLEAN, BASE_NONE, NULL, 0,
7225         "ulp.BOOLEAN", HFILL }},
7226     { &hf_ulp_GanssRequestedGenericAssistanceDataList_item,
7227       { "GanssReqGenericData", "ulp.GanssReqGenericData",
7228         FT_NONE, BASE_NONE, NULL, 0,
7229         "ulp.GanssReqGenericData", HFILL }},
7230     { &hf_ulp_ganssRealTimeIntegrity,
7231       { "ganssRealTimeIntegrity", "ulp.ganssRealTimeIntegrity",
7232         FT_BOOLEAN, BASE_NONE, NULL, 0,
7233         "ulp.BOOLEAN", HFILL }},
7234     { &hf_ulp_ganssDifferentialCorrection,
7235       { "ganssDifferentialCorrection", "ulp.ganssDifferentialCorrection",
7236         FT_BYTES, BASE_NONE, NULL, 0,
7237         "ulp.DGANSS_Sig_Id_Req", HFILL }},
7238     { &hf_ulp_ganssAlmanac,
7239       { "ganssAlmanac", "ulp.ganssAlmanac",
7240         FT_BOOLEAN, BASE_NONE, NULL, 0,
7241         "ulp.BOOLEAN", HFILL }},
7242     { &hf_ulp_ganssNavigationModelData,
7243       { "ganssNavigationModelData", "ulp.ganssNavigationModelData",
7244         FT_NONE, BASE_NONE, NULL, 0,
7245         "ulp.GanssNavigationModelData", HFILL }},
7246     { &hf_ulp_ganssTimeModels,
7247       { "ganssTimeModels", "ulp.ganssTimeModels",
7248         FT_BYTES, BASE_NONE, NULL, 0,
7249         "ulp.BIT_STRING_SIZE_16", HFILL }},
7250     { &hf_ulp_ganssReferenceMeasurementInfo,
7251       { "ganssReferenceMeasurementInfo", "ulp.ganssReferenceMeasurementInfo",
7252         FT_BOOLEAN, BASE_NONE, NULL, 0,
7253         "ulp.BOOLEAN", HFILL }},
7254     { &hf_ulp_ganssDataBits,
7255       { "ganssDataBits", "ulp.ganssDataBits",
7256         FT_NONE, BASE_NONE, NULL, 0,
7257         "ulp.GanssDataBits", HFILL }},
7258     { &hf_ulp_ganssUTCModel,
7259       { "ganssUTCModel", "ulp.ganssUTCModel",
7260         FT_BOOLEAN, BASE_NONE, NULL, 0,
7261         "ulp.BOOLEAN", HFILL }},
7262     { &hf_ulp_ganssAdditionalDataChoices,
7263       { "ganssAdditionalDataChoices", "ulp.ganssAdditionalDataChoices",
7264         FT_NONE, BASE_NONE, NULL, 0,
7265         "ulp.GanssAdditionalDataChoices", HFILL }},
7266     { &hf_ulp_ganssAuxiliaryInformation,
7267       { "ganssAuxiliaryInformation", "ulp.ganssAuxiliaryInformation",
7268         FT_BOOLEAN, BASE_NONE, NULL, 0,
7269         "ulp.BOOLEAN", HFILL }},
7270     { &hf_ulp_ganssExtendedEphemeris,
7271       { "ganssExtendedEphemeris", "ulp.ganssExtendedEphemeris",
7272         FT_NONE, BASE_NONE, NULL, 0,
7273         "ulp.ExtendedEphemeris", HFILL }},
7274     { &hf_ulp_ganssExtendedEphemerisCheck,
7275       { "ganssExtendedEphemerisCheck", "ulp.ganssExtendedEphemerisCheck",
7276         FT_NONE, BASE_NONE, NULL, 0,
7277         "ulp.GanssExtendedEphCheck", HFILL }},
7278     { &hf_ulp_ganssWeek,
7279       { "ganssWeek", "ulp.ganssWeek",
7280         FT_UINT32, BASE_DEC, NULL, 0,
7281         "ulp.INTEGER_0_4095", HFILL }},
7282     { &hf_ulp_ganssToe,
7283       { "ganssToe", "ulp.ganssToe",
7284         FT_UINT32, BASE_DEC, NULL, 0,
7285         "ulp.INTEGER_0_167", HFILL }},
7286     { &hf_ulp_t_toeLimit,
7287       { "t-toeLimit", "ulp.t_toeLimit",
7288         FT_UINT32, BASE_DEC, NULL, 0,
7289         "ulp.INTEGER_0_15", HFILL }},
7290     { &hf_ulp_satellitesListRelatedDataList,
7291       { "satellitesListRelatedDataList", "ulp.satellitesListRelatedDataList",
7292         FT_UINT32, BASE_DEC, NULL, 0,
7293         "ulp.SatellitesListRelatedDataList", HFILL }},
7294     { &hf_ulp_SatellitesListRelatedDataList_item,
7295       { "SatellitesListRelatedData", "ulp.SatellitesListRelatedData",
7296         FT_NONE, BASE_NONE, NULL, 0,
7297         "ulp.SatellitesListRelatedData", HFILL }},
7298     { &hf_ulp_iod,
7299       { "iod", "ulp.iod",
7300         FT_UINT32, BASE_DEC, NULL, 0,
7301         "ulp.INTEGER_0_1023", HFILL }},
7302     { &hf_ulp_ganssTODmin,
7303       { "ganssTODmin", "ulp.ganssTODmin",
7304         FT_UINT32, BASE_DEC, NULL, 0,
7305         "ulp.INTEGER_0_59", HFILL }},
7306     { &hf_ulp_reqDataBitAssistanceList,
7307       { "reqDataBitAssistanceList", "ulp.reqDataBitAssistanceList",
7308         FT_NONE, BASE_NONE, NULL, 0,
7309         "ulp.ReqDataBitAssistanceList", HFILL }},
7310     { &hf_ulp_gnssSignals,
7311       { "gnssSignals", "ulp.gnssSignals",
7312         FT_BYTES, BASE_NONE, NULL, 0,
7313         "ulp.GANSSSignals", HFILL }},
7314     { &hf_ulp_ganssDataBitInterval,
7315       { "ganssDataBitInterval", "ulp.ganssDataBitInterval",
7316         FT_UINT32, BASE_DEC, NULL, 0,
7317         "ulp.INTEGER_0_15", HFILL }},
7318     { &hf_ulp_ganssDataBitSatList,
7319       { "ganssDataBitSatList", "ulp.ganssDataBitSatList",
7320         FT_UINT32, BASE_DEC, NULL, 0,
7321         "ulp.T_ganssDataBitSatList", HFILL }},
7322     { &hf_ulp_ganssDataBitSatList_item,
7323       { "ganssDataBitSatList item", "ulp.ganssDataBitSatList_item",
7324         FT_UINT32, BASE_DEC, NULL, 0,
7325         "ulp.INTEGER_0_63", HFILL }},
7326     { &hf_ulp_orbitModelID,
7327       { "orbitModelID", "ulp.orbitModelID",
7328         FT_UINT32, BASE_DEC, NULL, 0,
7329         "ulp.INTEGER_0_7", HFILL }},
7330     { &hf_ulp_clockModelID,
7331       { "clockModelID", "ulp.clockModelID",
7332         FT_UINT32, BASE_DEC, NULL, 0,
7333         "ulp.INTEGER_0_7", HFILL }},
7334     { &hf_ulp_utcModelID,
7335       { "utcModelID", "ulp.utcModelID",
7336         FT_UINT32, BASE_DEC, NULL, 0,
7337         "ulp.INTEGER_0_7", HFILL }},
7338     { &hf_ulp_almanacModelID,
7339       { "almanacModelID", "ulp.almanacModelID",
7340         FT_UINT32, BASE_DEC, NULL, 0,
7341         "ulp.INTEGER_0_7", HFILL }},
7342     { &hf_ulp_validity,
7343       { "validity", "ulp.validity",
7344         FT_UINT32, BASE_DEC, NULL, 0,
7345         "ulp.INTEGER_1_256", HFILL }},
7346     { &hf_ulp_beginTime,
7347       { "beginTime", "ulp.beginTime",
7348         FT_NONE, BASE_NONE, NULL, 0,
7349         "ulp.GPSTime", HFILL }},
7350     { &hf_ulp_endTime,
7351       { "endTime", "ulp.endTime",
7352         FT_NONE, BASE_NONE, NULL, 0,
7353         "ulp.GPSTime", HFILL }},
7354     { &hf_ulp_beginTime_01,
7355       { "beginTime", "ulp.beginTime",
7356         FT_NONE, BASE_NONE, NULL, 0,
7357         "ulp.GANSSextEphTime", HFILL }},
7358     { &hf_ulp_endTime_01,
7359       { "endTime", "ulp.endTime",
7360         FT_NONE, BASE_NONE, NULL, 0,
7361         "ulp.GANSSextEphTime", HFILL }},
7362     { &hf_ulp_gPSWeek,
7363       { "gPSWeek", "ulp.gPSWeek",
7364         FT_UINT32, BASE_DEC, NULL, 0,
7365         "ulp.INTEGER_0_1023", HFILL }},
7366     { &hf_ulp_gPSTOWhour,
7367       { "gPSTOWhour", "ulp.gPSTOWhour",
7368         FT_UINT32, BASE_DEC, NULL, 0,
7369         "ulp.INTEGER_0_167", HFILL }},
7370     { &hf_ulp_gANSSday,
7371       { "gANSSday", "ulp.gANSSday",
7372         FT_UINT32, BASE_DEC, NULL, 0,
7373         "ulp.INTEGER_0_8191", HFILL }},
7374     { &hf_ulp_gANSSTODhour,
7375       { "gANSSTODhour", "ulp.gANSSTODhour",
7376         FT_UINT32, BASE_DEC, NULL, 0,
7377         "ulp.INTEGER_0_23", HFILL }},
7378     { &hf_ulp_lPPPayload,
7379       { "lPPPayload", "ulp.lPPPayload",
7380         FT_BYTES, BASE_NONE, NULL, 0,
7381         "ulp.OCTET_STRING_SIZE_1_8192", HFILL }},
7382     { &hf_ulp_maj,
7383       { "maj", "ulp.maj",
7384         FT_UINT32, BASE_DEC, NULL, 0,
7385         "ulp.INTEGER_0_255", HFILL }},
7386     { &hf_ulp_min,
7387       { "min", "ulp.min",
7388         FT_UINT32, BASE_DEC, NULL, 0,
7389         "ulp.INTEGER_0_255", HFILL }},
7390     { &hf_ulp_servind,
7391       { "servind", "ulp.servind",
7392         FT_UINT32, BASE_DEC, NULL, 0,
7393         "ulp.INTEGER_0_255", HFILL }},
7394     { &hf_ulp_setSessionID,
7395       { "setSessionID", "ulp.setSessionID",
7396         FT_NONE, BASE_NONE, NULL, 0,
7397         "ulp.SetSessionID", HFILL }},
7398     { &hf_ulp_slpSessionID,
7399       { "slpSessionID", "ulp.slpSessionID",
7400         FT_NONE, BASE_NONE, NULL, 0,
7401         "ulp.SlpSessionID", HFILL }},
7402     { &hf_ulp_sessionId,
7403       { "sessionId", "ulp.sessionId",
7404         FT_UINT32, BASE_DEC, NULL, 0,
7405         "ulp.INTEGER_0_65535", HFILL }},
7406     { &hf_ulp_setId,
7407       { "setId", "ulp.setId",
7408         FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
7409         "ulp.SETId", HFILL }},
7410     { &hf_ulp_msisdn,
7411       { "msisdn", "ulp.msisdn",
7412         FT_BYTES, BASE_NONE, NULL, 0,
7413         "ulp.T_msisdn", HFILL }},
7414     { &hf_ulp_mdn,
7415       { "mdn", "ulp.mdn",
7416         FT_BYTES, BASE_NONE, NULL, 0,
7417         "ulp.OCTET_STRING_SIZE_8", HFILL }},
7418     { &hf_ulp_minsi,
7419       { "min", "ulp.min",
7420         FT_BYTES, BASE_NONE, NULL, 0,
7421         "ulp.BIT_STRING_SIZE_34", HFILL }},
7422     { &hf_ulp_imsi,
7423       { "imsi", "ulp.imsi",
7424         FT_BYTES, BASE_NONE, NULL, 0,
7425         "ulp.T_imsi", HFILL }},
7426     { &hf_ulp_nai,
7427       { "nai", "ulp.nai",
7428         FT_STRING, BASE_NONE, NULL, 0,
7429         "ulp.IA5String_SIZE_1_1000", HFILL }},
7430     { &hf_ulp_iPAddress,
7431       { "iPAddress", "ulp.iPAddress",
7432         FT_UINT32, BASE_DEC, VALS(ulp_IPAddress_vals), 0,
7433         "ulp.IPAddress", HFILL }},
7434     { &hf_ulp_sessionSlpID,
7435       { "sessionID", "ulp.sessionID",
7436         FT_BYTES, BASE_NONE, NULL, 0,
7437         "ulp.OCTET_STRING_SIZE_4", HFILL }},
7438     { &hf_ulp_slpId,
7439       { "slpId", "ulp.slpId",
7440         FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
7441         "ulp.SLPAddress", HFILL }},
7442     { &hf_ulp_ipv4Address,
7443       { "ipv4Address", "ulp.ipv4Address",
7444         FT_IPv4, BASE_NONE, NULL, 0,
7445         "ulp.OCTET_STRING_SIZE_4", HFILL }},
7446     { &hf_ulp_ipv6Address,
7447       { "ipv6Address", "ulp.ipv6Address",
7448         FT_IPv6, BASE_NONE, NULL, 0,
7449         "ulp.OCTET_STRING_SIZE_16", HFILL }},
7450     { &hf_ulp_fQDN,
7451       { "fQDN", "ulp.fQDN",
7452         FT_STRING, BASE_NONE, NULL, 0,
7453         "ulp.FQDN", HFILL }},
7454     { &hf_ulp_cellInfo,
7455       { "cellInfo", "ulp.cellInfo",
7456         FT_UINT32, BASE_DEC, VALS(ulp_CellInfo_vals), 0,
7457         "ulp.CellInfo", HFILL }},
7458     { &hf_ulp_status,
7459       { "status", "ulp.status",
7460         FT_UINT32, BASE_DEC, VALS(ulp_Status_vals), 0,
7461         "ulp.Status", HFILL }},
7462     { &hf_ulp_gsmCell,
7463       { "gsmCell", "ulp.gsmCell",
7464         FT_NONE, BASE_NONE, NULL, 0,
7465         "ulp.GsmCellInformation", HFILL }},
7466     { &hf_ulp_wcdmaCell,
7467       { "wcdmaCell", "ulp.wcdmaCell",
7468         FT_NONE, BASE_NONE, NULL, 0,
7469         "ulp.WcdmaCellInformation", HFILL }},
7470     { &hf_ulp_cdmaCell,
7471       { "cdmaCell", "ulp.cdmaCell",
7472         FT_NONE, BASE_NONE, NULL, 0,
7473         "ulp.CdmaCellInformation", HFILL }},
7474     { &hf_ulp_ver2_CellInfo_extension,
7475       { "ver2-CellInfo-extension", "ulp.ver2_CellInfo_extension",
7476         FT_UINT32, BASE_DEC, VALS(ulp_Ver2_CellInfo_extension_vals), 0,
7477         "ulp.Ver2_CellInfo_extension", HFILL }},
7478     { &hf_ulp_timestamp_01,
7479       { "timestamp", "ulp.timestamp",
7480         FT_STRING, BASE_NONE, NULL, 0,
7481         "ulp.UTCTime", HFILL }},
7482     { &hf_ulp_positionEstimate,
7483       { "positionEstimate", "ulp.positionEstimate",
7484         FT_NONE, BASE_NONE, NULL, 0,
7485         "ulp.PositionEstimate", HFILL }},
7486     { &hf_ulp_latitudeSign,
7487       { "latitudeSign", "ulp.latitudeSign",
7488         FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_vals), 0,
7489         "ulp.T_latitudeSign", HFILL }},
7490     { &hf_ulp_latitude,
7491       { "latitude", "ulp.latitude",
7492         FT_UINT32, BASE_DEC, NULL, 0,
7493         "ulp.INTEGER_0_8388607", HFILL }},
7494     { &hf_ulp_longitude,
7495       { "longitude", "ulp.longitude",
7496         FT_INT32, BASE_DEC, NULL, 0,
7497         "ulp.INTEGER_M8388608_8388607", HFILL }},
7498     { &hf_ulp_uncertainty,
7499       { "uncertainty", "ulp.uncertainty",
7500         FT_NONE, BASE_NONE, NULL, 0,
7501         "ulp.T_uncertainty", HFILL }},
7502     { &hf_ulp_uncertaintySemiMajor,
7503       { "uncertaintySemiMajor", "ulp.uncertaintySemiMajor",
7504         FT_UINT32, BASE_DEC, NULL, 0,
7505         "ulp.INTEGER_0_127", HFILL }},
7506     { &hf_ulp_uncertaintySemiMinor,
7507       { "uncertaintySemiMinor", "ulp.uncertaintySemiMinor",
7508         FT_UINT32, BASE_DEC, NULL, 0,
7509         "ulp.INTEGER_0_127", HFILL }},
7510     { &hf_ulp_orientationMajorAxis,
7511       { "orientationMajorAxis", "ulp.orientationMajorAxis",
7512         FT_UINT32, BASE_DEC, NULL, 0,
7513         "ulp.INTEGER_0_180", HFILL }},
7514     { &hf_ulp_confidence,
7515       { "confidence", "ulp.confidence",
7516         FT_UINT32, BASE_DEC, NULL, 0,
7517         "ulp.INTEGER_0_100", HFILL }},
7518     { &hf_ulp_altitudeInfo,
7519       { "altitudeInfo", "ulp.altitudeInfo",
7520         FT_NONE, BASE_NONE, NULL, 0,
7521         "ulp.AltitudeInfo", HFILL }},
7522     { &hf_ulp_altitudeDirection,
7523       { "altitudeDirection", "ulp.altitudeDirection",
7524         FT_UINT32, BASE_DEC, VALS(ulp_T_altitudeDirection_vals), 0,
7525         "ulp.T_altitudeDirection", HFILL }},
7526     { &hf_ulp_altitude,
7527       { "altitude", "ulp.altitude",
7528         FT_UINT32, BASE_DEC, NULL, 0,
7529         "ulp.INTEGER_0_32767", HFILL }},
7530     { &hf_ulp_altUncertainty,
7531       { "altUncertainty", "ulp.altUncertainty",
7532         FT_UINT32, BASE_DEC, NULL, 0,
7533         "ulp.INTEGER_0_127", HFILL }},
7534     { &hf_ulp_refNID_01,
7535       { "refNID", "ulp.refNID",
7536         FT_UINT32, BASE_DEC, NULL, 0,
7537         "ulp.INTEGER_0_65535", HFILL }},
7538     { &hf_ulp_refSID_01,
7539       { "refSID", "ulp.refSID",
7540         FT_UINT32, BASE_DEC, NULL, 0,
7541         "ulp.INTEGER_0_32767", HFILL }},
7542     { &hf_ulp_refBASELAT,
7543       { "refBASELAT", "ulp.refBASELAT",
7544         FT_UINT32, BASE_DEC, NULL, 0,
7545         "ulp.INTEGER_0_4194303", HFILL }},
7546     { &hf_ulp_reBASELONG,
7547       { "reBASELONG", "ulp.reBASELONG",
7548         FT_UINT32, BASE_DEC, NULL, 0,
7549         "ulp.INTEGER_0_8388607", HFILL }},
7550     { &hf_ulp_refREFPN,
7551       { "refREFPN", "ulp.refREFPN",
7552         FT_UINT32, BASE_DEC, NULL, 0,
7553         "ulp.INTEGER_0_511", HFILL }},
7554     { &hf_ulp_refWeekNumber,
7555       { "refWeekNumber", "ulp.refWeekNumber",
7556         FT_UINT32, BASE_DEC, NULL, 0,
7557         "ulp.INTEGER_0_65535", HFILL }},
7558     { &hf_ulp_refSeconds,
7559       { "refSeconds", "ulp.refSeconds",
7560         FT_UINT32, BASE_DEC, NULL, 0,
7561         "ulp.INTEGER_0_4194303", HFILL }},
7562     { &hf_ulp_nMR,
7563       { "nMR", "ulp.nMR",
7564         FT_UINT32, BASE_DEC, NULL, 0,
7565         "ulp.NMR", HFILL }},
7566     { &hf_ulp_tA,
7567       { "tA", "ulp.tA",
7568         FT_UINT32, BASE_DEC, NULL, 0,
7569         "ulp.INTEGER_0_255", HFILL }},
7570     { &hf_ulp_frequencyInfo,
7571       { "frequencyInfo", "ulp.frequencyInfo",
7572         FT_NONE, BASE_NONE, NULL, 0,
7573         "ulp.FrequencyInfo", HFILL }},
7574     { &hf_ulp_primaryScramblingCode,
7575       { "primaryScramblingCode", "ulp.primaryScramblingCode",
7576         FT_UINT32, BASE_DEC, NULL, 0,
7577         "ulp.INTEGER_0_511", HFILL }},
7578     { &hf_ulp_measuredResultsList,
7579       { "measuredResultsList", "ulp.measuredResultsList",
7580         FT_UINT32, BASE_DEC, NULL, 0,
7581         "ulp.MeasuredResultsList", HFILL }},
7582     { &hf_ulp_cellParametersId,
7583       { "cellParametersId", "ulp.cellParametersId",
7584         FT_UINT32, BASE_DEC, NULL, 0,
7585         "ulp.INTEGER_0_127", HFILL }},
7586     { &hf_ulp_timingAdvance,
7587       { "timingAdvance", "ulp.timingAdvance",
7588         FT_NONE, BASE_NONE, NULL, 0,
7589         "ulp.TimingAdvance", HFILL }},
7590     { &hf_ulp_tA_01,
7591       { "tA", "ulp.tA",
7592         FT_UINT32, BASE_DEC, NULL, 0,
7593         "ulp.INTEGER_0_8191", HFILL }},
7594     { &hf_ulp_tAResolution,
7595       { "tAResolution", "ulp.tAResolution",
7596         FT_UINT32, BASE_DEC, VALS(ulp_TAResolution_vals), 0,
7597         "ulp.TAResolution", HFILL }},
7598     { &hf_ulp_chipRate,
7599       { "chipRate", "ulp.chipRate",
7600         FT_UINT32, BASE_DEC, VALS(ulp_ChipRate_vals), 0,
7601         "ulp.ChipRate", HFILL }},
7602     { &hf_ulp_modeSpecificFrequencyInfo,
7603       { "modeSpecificInfo", "ulp.modeSpecificInfo",
7604         FT_UINT32, BASE_DEC, VALS(ulp_FrequencySpecificInfo_vals), 0,
7605         "ulp.FrequencySpecificInfo", HFILL }},
7606     { &hf_ulp_fdd_fr,
7607       { "fdd", "ulp.fdd",
7608         FT_NONE, BASE_NONE, NULL, 0,
7609         "ulp.FrequencyInfoFDD", HFILL }},
7610     { &hf_ulp_tdd_fr,
7611       { "tdd", "ulp.tdd",
7612         FT_NONE, BASE_NONE, NULL, 0,
7613         "ulp.FrequencyInfoTDD", HFILL }},
7614     { &hf_ulp_uarfcn_UL,
7615       { "uarfcn-UL", "ulp.uarfcn_UL",
7616         FT_UINT32, BASE_DEC, NULL, 0,
7617         "ulp.UARFCN", HFILL }},
7618     { &hf_ulp_uarfcn_DL,
7619       { "uarfcn-DL", "ulp.uarfcn_DL",
7620         FT_UINT32, BASE_DEC, NULL, 0,
7621         "ulp.UARFCN", HFILL }},
7622     { &hf_ulp_uarfcn_Nt,
7623       { "uarfcn-Nt", "ulp.uarfcn_Nt",
7624         FT_UINT32, BASE_DEC, NULL, 0,
7625         "ulp.UARFCN", HFILL }},
7626     { &hf_ulp_NMR_item,
7627       { "NMRelement", "ulp.NMRelement",
7628         FT_NONE, BASE_NONE, NULL, 0,
7629         "ulp.NMRelement", HFILL }},
7630     { &hf_ulp_aRFCN,
7631       { "aRFCN", "ulp.aRFCN",
7632         FT_UINT32, BASE_DEC, NULL, 0,
7633         "ulp.INTEGER_0_1023", HFILL }},
7634     { &hf_ulp_bSIC,
7635       { "bSIC", "ulp.bSIC",
7636         FT_UINT32, BASE_DEC, NULL, 0,
7637         "ulp.INTEGER_0_63", HFILL }},
7638     { &hf_ulp_rxLev,
7639       { "rxLev", "ulp.rxLev",
7640         FT_UINT32, BASE_DEC, NULL, 0,
7641         "ulp.INTEGER_0_63", HFILL }},
7642     { &hf_ulp_MeasuredResultsList_item,
7643       { "MeasuredResults", "ulp.MeasuredResults",
7644         FT_NONE, BASE_NONE, NULL, 0,
7645         "ulp.MeasuredResults", HFILL }},
7646     { &hf_ulp_utra_CarrierRSSI,
7647       { "utra-CarrierRSSI", "ulp.utra_CarrierRSSI",
7648         FT_UINT32, BASE_DEC, NULL, 0,
7649         "ulp.UTRA_CarrierRSSI", HFILL }},
7650     { &hf_ulp_cellMeasuredResultsList,
7651       { "cellMeasuredResultsList", "ulp.cellMeasuredResultsList",
7652         FT_UINT32, BASE_DEC, NULL, 0,
7653         "ulp.CellMeasuredResultsList", HFILL }},
7654     { &hf_ulp_CellMeasuredResultsList_item,
7655       { "CellMeasuredResults", "ulp.CellMeasuredResults",
7656         FT_NONE, BASE_NONE, NULL, 0,
7657         "ulp.CellMeasuredResults", HFILL }},
7658     { &hf_ulp_cellIdentity,
7659       { "cellIdentity", "ulp.cellIdentity",
7660         FT_UINT32, BASE_DEC, NULL, 0,
7661         "ulp.INTEGER_0_268435455", HFILL }},
7662     { &hf_ulp_modeSpecificInfo,
7663       { "modeSpecificInfo", "ulp.modeSpecificInfo",
7664         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_vals), 0,
7665         "ulp.T_modeSpecificInfo", HFILL }},
7666     { &hf_ulp_fdd,
7667       { "fdd", "ulp.fdd",
7668         FT_NONE, BASE_NONE, NULL, 0,
7669         "ulp.T_fdd", HFILL }},
7670     { &hf_ulp_primaryCPICH_Info,
7671       { "primaryCPICH-Info", "ulp.primaryCPICH_Info",
7672         FT_NONE, BASE_NONE, NULL, 0,
7673         "ulp.PrimaryCPICH_Info", HFILL }},
7674     { &hf_ulp_cpich_Ec_N0,
7675       { "cpich-Ec-N0", "ulp.cpich_Ec_N0",
7676         FT_UINT32, BASE_DEC, NULL, 0,
7677         "ulp.CPICH_Ec_N0", HFILL }},
7678     { &hf_ulp_cpich_RSCP,
7679       { "cpich-RSCP", "ulp.cpich_RSCP",
7680         FT_UINT32, BASE_DEC, NULL, 0,
7681         "ulp.CPICH_RSCP", HFILL }},
7682     { &hf_ulp_pathloss,
7683       { "pathloss", "ulp.pathloss",
7684         FT_UINT32, BASE_DEC, NULL, 0,
7685         "ulp.Pathloss", HFILL }},
7686     { &hf_ulp_tdd,
7687       { "tdd", "ulp.tdd",
7688         FT_NONE, BASE_NONE, NULL, 0,
7689         "ulp.T_tdd", HFILL }},
7690     { &hf_ulp_cellParametersID,
7691       { "cellParametersID", "ulp.cellParametersID",
7692         FT_UINT32, BASE_DEC, NULL, 0,
7693         "ulp.CellParametersID", HFILL }},
7694     { &hf_ulp_proposedTGSN,
7695       { "proposedTGSN", "ulp.proposedTGSN",
7696         FT_UINT32, BASE_DEC, NULL, 0,
7697         "ulp.TGSN", HFILL }},
7698     { &hf_ulp_primaryCCPCH_RSCP,
7699       { "primaryCCPCH-RSCP", "ulp.primaryCCPCH_RSCP",
7700         FT_UINT32, BASE_DEC, NULL, 0,
7701         "ulp.PrimaryCCPCH_RSCP", HFILL }},
7702     { &hf_ulp_timeslotISCP_List,
7703       { "timeslotISCP-List", "ulp.timeslotISCP_List",
7704         FT_UINT32, BASE_DEC, NULL, 0,
7705         "ulp.TimeslotISCP_List", HFILL }},
7706     { &hf_ulp_TimeslotISCP_List_item,
7707       { "TimeslotISCP", "ulp.TimeslotISCP",
7708         FT_UINT32, BASE_DEC, NULL, 0,
7709         "ulp.TimeslotISCP", HFILL }},
7710     { &hf_ulp_horacc,
7711       { "horacc", "ulp.horacc",
7712         FT_UINT32, BASE_DEC, NULL, 0,
7713         "ulp.INTEGER_0_127", HFILL }},
7714     { &hf_ulp_veracc,
7715       { "veracc", "ulp.veracc",
7716         FT_UINT32, BASE_DEC, NULL, 0,
7717         "ulp.INTEGER_0_127", HFILL }},
7718     { &hf_ulp_maxLocAge,
7719       { "maxLocAge", "ulp.maxLocAge",
7720         FT_UINT32, BASE_DEC, NULL, 0,
7721         "ulp.INTEGER_0_65535", HFILL }},
7722     { &hf_ulp_delay,
7723       { "delay", "ulp.delay",
7724         FT_UINT32, BASE_DEC, NULL, 0,
7725         "ulp.INTEGER_0_7", HFILL }},
7726     { &hf_ulp_horvel,
7727       { "horvel", "ulp.horvel",
7728         FT_NONE, BASE_NONE, NULL, 0,
7729         "ulp.Horvel", HFILL }},
7730     { &hf_ulp_horandvervel,
7731       { "horandvervel", "ulp.horandvervel",
7732         FT_NONE, BASE_NONE, NULL, 0,
7733         "ulp.Horandvervel", HFILL }},
7734     { &hf_ulp_horveluncert,
7735       { "horveluncert", "ulp.horveluncert",
7736         FT_NONE, BASE_NONE, NULL, 0,
7737         "ulp.Horveluncert", HFILL }},
7738     { &hf_ulp_horandveruncert,
7739       { "horandveruncert", "ulp.horandveruncert",
7740         FT_NONE, BASE_NONE, NULL, 0,
7741         "ulp.Horandveruncert", HFILL }},
7742     { &hf_ulp_bearing,
7743       { "bearing", "ulp.bearing",
7744         FT_BYTES, BASE_NONE, NULL, 0,
7745         "ulp.BIT_STRING_SIZE_9", HFILL }},
7746     { &hf_ulp_horspeed,
7747       { "horspeed", "ulp.horspeed",
7748         FT_BYTES, BASE_NONE, NULL, 0,
7749         "ulp.BIT_STRING_SIZE_16", HFILL }},
7750     { &hf_ulp_verdirect,
7751       { "verdirect", "ulp.verdirect",
7752         FT_BYTES, BASE_NONE, NULL, 0,
7753         "ulp.BIT_STRING_SIZE_1", HFILL }},
7754     { &hf_ulp_verspeed,
7755       { "verspeed", "ulp.verspeed",
7756         FT_BYTES, BASE_NONE, NULL, 0,
7757         "ulp.BIT_STRING_SIZE_8", HFILL }},
7758     { &hf_ulp_uncertspeed,
7759       { "uncertspeed", "ulp.uncertspeed",
7760         FT_BYTES, BASE_NONE, NULL, 0,
7761         "ulp.BIT_STRING_SIZE_8", HFILL }},
7762     { &hf_ulp_horuncertspeed,
7763       { "horuncertspeed", "ulp.horuncertspeed",
7764         FT_BYTES, BASE_NONE, NULL, 0,
7765         "ulp.BIT_STRING_SIZE_8", HFILL }},
7766     { &hf_ulp_veruncertspeed,
7767       { "veruncertspeed", "ulp.veruncertspeed",
7768         FT_BYTES, BASE_NONE, NULL, 0,
7769         "ulp.BIT_STRING_SIZE_8", HFILL }},
7770     { &hf_ulp_MultipleLocationIds_item,
7771       { "LocationIdData", "ulp.LocationIdData",
7772         FT_NONE, BASE_NONE, NULL, 0,
7773         "ulp.LocationIdData", HFILL }},
7774     { &hf_ulp_relativetimestamp,
7775       { "relativetimestamp", "ulp.relativetimestamp",
7776         FT_UINT32, BASE_DEC, NULL, 0,
7777         "ulp.RelativeTime", HFILL }},
7778     { &hf_ulp_servingFlag,
7779       { "servingFlag", "ulp.servingFlag",
7780         FT_BOOLEAN, BASE_NONE, NULL, 0,
7781         "ulp.BOOLEAN", HFILL }},
7782     { &hf_ulp_wLAN,
7783       { "wLAN", "ulp.wLAN",
7784         FT_BOOLEAN, BASE_NONE, NULL, 0,
7785         "ulp.BOOLEAN", HFILL }},
7786     { &hf_ulp_supportedWLANInfo,
7787       { "supportedWLANInfo", "ulp.supportedWLANInfo",
7788         FT_NONE, BASE_NONE, NULL, 0,
7789         "ulp.SupportedWLANInfo", HFILL }},
7790     { &hf_ulp_supportedWLANApsList,
7791       { "supportedWLANApsList", "ulp.supportedWLANApsList",
7792         FT_NONE, BASE_NONE, NULL, 0,
7793         "ulp.SupportedWLANApsList", HFILL }},
7794     { &hf_ulp_gSM,
7795       { "gSM", "ulp.gSM",
7796         FT_BOOLEAN, BASE_NONE, NULL, 0,
7797         "ulp.BOOLEAN", HFILL }},
7798     { &hf_ulp_wCDMA,
7799       { "wCDMA", "ulp.wCDMA",
7800         FT_BOOLEAN, BASE_NONE, NULL, 0,
7801         "ulp.BOOLEAN", HFILL }},
7802     { &hf_ulp_supportedWCDMAInfo,
7803       { "supportedWCDMAInfo", "ulp.supportedWCDMAInfo",
7804         FT_NONE, BASE_NONE, NULL, 0,
7805         "ulp.SupportedWCDMAInfo", HFILL }},
7806     { &hf_ulp_cDMA,
7807       { "cDMA", "ulp.cDMA",
7808         FT_BOOLEAN, BASE_NONE, NULL, 0,
7809         "ulp.BOOLEAN", HFILL }},
7810     { &hf_ulp_hRDP,
7811       { "hRDP", "ulp.hRDP",
7812         FT_BOOLEAN, BASE_NONE, NULL, 0,
7813         "ulp.BOOLEAN", HFILL }},
7814     { &hf_ulp_uMB,
7815       { "uMB", "ulp.uMB",
7816         FT_BOOLEAN, BASE_NONE, NULL, 0,
7817         "ulp.BOOLEAN", HFILL }},
7818     { &hf_ulp_lTE,
7819       { "lTE", "ulp.lTE",
7820         FT_BOOLEAN, BASE_NONE, NULL, 0,
7821         "ulp.BOOLEAN", HFILL }},
7822     { &hf_ulp_wIMAX,
7823       { "wIMAX", "ulp.wIMAX",
7824         FT_BOOLEAN, BASE_NONE, NULL, 0,
7825         "ulp.BOOLEAN", HFILL }},
7826     { &hf_ulp_historic,
7827       { "historic", "ulp.historic",
7828         FT_BOOLEAN, BASE_NONE, NULL, 0,
7829         "ulp.BOOLEAN", HFILL }},
7830     { &hf_ulp_nonServing,
7831       { "nonServing", "ulp.nonServing",
7832         FT_BOOLEAN, BASE_NONE, NULL, 0,
7833         "ulp.BOOLEAN", HFILL }},
7834     { &hf_ulp_uTRANGPSReferenceTime,
7835       { "uTRANGPSReferenceTime", "ulp.uTRANGPSReferenceTime",
7836         FT_BOOLEAN, BASE_NONE, NULL, 0,
7837         "ulp.BOOLEAN", HFILL }},
7838     { &hf_ulp_uTRANGANSSReferenceTime,
7839       { "uTRANGANSSReferenceTime", "ulp.uTRANGANSSReferenceTime",
7840         FT_BOOLEAN, BASE_NONE, NULL, 0,
7841         "ulp.BOOLEAN", HFILL }},
7842     { &hf_ulp_apTP,
7843       { "apTP", "ulp.apTP",
7844         FT_BOOLEAN, BASE_NONE, NULL, 0,
7845         "ulp.BOOLEAN", HFILL }},
7846     { &hf_ulp_apAG,
7847       { "apAG", "ulp.apAG",
7848         FT_BOOLEAN, BASE_NONE, NULL, 0,
7849         "ulp.BOOLEAN", HFILL }},
7850     { &hf_ulp_apSN,
7851       { "apSN", "ulp.apSN",
7852         FT_BOOLEAN, BASE_NONE, NULL, 0,
7853         "ulp.BOOLEAN", HFILL }},
7854     { &hf_ulp_apDevType,
7855       { "apDevType", "ulp.apDevType",
7856         FT_BOOLEAN, BASE_NONE, NULL, 0,
7857         "ulp.BOOLEAN", HFILL }},
7858     { &hf_ulp_apRSSI,
7859       { "apRSSI", "ulp.apRSSI",
7860         FT_BOOLEAN, BASE_NONE, NULL, 0,
7861         "ulp.BOOLEAN", HFILL }},
7862     { &hf_ulp_apChanFreq,
7863       { "apChanFreq", "ulp.apChanFreq",
7864         FT_BOOLEAN, BASE_NONE, NULL, 0,
7865         "ulp.BOOLEAN", HFILL }},
7866     { &hf_ulp_apRTD,
7867       { "apRTD", "ulp.apRTD",
7868         FT_BOOLEAN, BASE_NONE, NULL, 0,
7869         "ulp.BOOLEAN", HFILL }},
7870     { &hf_ulp_setTP,
7871       { "setTP", "ulp.setTP",
7872         FT_BOOLEAN, BASE_NONE, NULL, 0,
7873         "ulp.BOOLEAN", HFILL }},
7874     { &hf_ulp_setAG,
7875       { "setAG", "ulp.setAG",
7876         FT_BOOLEAN, BASE_NONE, NULL, 0,
7877         "ulp.BOOLEAN", HFILL }},
7878     { &hf_ulp_setSN,
7879       { "setSN", "ulp.setSN",
7880         FT_BOOLEAN, BASE_NONE, NULL, 0,
7881         "ulp.BOOLEAN", HFILL }},
7882     { &hf_ulp_setRSSI,
7883       { "setRSSI", "ulp.setRSSI",
7884         FT_BOOLEAN, BASE_NONE, NULL, 0,
7885         "ulp.BOOLEAN", HFILL }},
7886     { &hf_ulp_apRepLoc,
7887       { "apRepLoc", "ulp.apRepLoc",
7888         FT_BOOLEAN, BASE_NONE, NULL, 0,
7889         "ulp.BOOLEAN", HFILL }},
7890     { &hf_ulp_supportedWLANApDataList,
7891       { "supportedWLANApDataList", "ulp.supportedWLANApDataList",
7892         FT_UINT32, BASE_DEC, NULL, 0,
7893         "ulp.SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData", HFILL }},
7894     { &hf_ulp_supportedWLANApDataList_item,
7895       { "SupportedWLANApData", "ulp.SupportedWLANApData",
7896         FT_NONE, BASE_NONE, NULL, 0,
7897         "ulp.SupportedWLANApData", HFILL }},
7898     { &hf_ulp_supportedWLANapsChannel11a,
7899       { "supportedWLANapsChannel11a", "ulp.supportedWLANapsChannel11a",
7900         FT_NONE, BASE_NONE, NULL, 0,
7901         "ulp.SupportedWLANApsChannel11a", HFILL }},
7902     { &hf_ulp_supportedWLANapsChannel11bg,
7903       { "supportedWLANapsChannel11bg", "ulp.supportedWLANapsChannel11bg",
7904         FT_NONE, BASE_NONE, NULL, 0,
7905         "ulp.SupportedWLANApsChannel11bg", HFILL }},
7906     { &hf_ulp_ch34,
7907       { "ch34", "ulp.ch34",
7908         FT_BOOLEAN, BASE_NONE, NULL, 0,
7909         "ulp.BOOLEAN", HFILL }},
7910     { &hf_ulp_ch36,
7911       { "ch36", "ulp.ch36",
7912         FT_BOOLEAN, BASE_NONE, NULL, 0,
7913         "ulp.BOOLEAN", HFILL }},
7914     { &hf_ulp_ch38,
7915       { "ch38", "ulp.ch38",
7916         FT_BOOLEAN, BASE_NONE, NULL, 0,
7917         "ulp.BOOLEAN", HFILL }},
7918     { &hf_ulp_ch40,
7919       { "ch40", "ulp.ch40",
7920         FT_BOOLEAN, BASE_NONE, NULL, 0,
7921         "ulp.BOOLEAN", HFILL }},
7922     { &hf_ulp_ch42,
7923       { "ch42", "ulp.ch42",
7924         FT_BOOLEAN, BASE_NONE, NULL, 0,
7925         "ulp.BOOLEAN", HFILL }},
7926     { &hf_ulp_ch44,
7927       { "ch44", "ulp.ch44",
7928         FT_BOOLEAN, BASE_NONE, NULL, 0,
7929         "ulp.BOOLEAN", HFILL }},
7930     { &hf_ulp_ch46,
7931       { "ch46", "ulp.ch46",
7932         FT_BOOLEAN, BASE_NONE, NULL, 0,
7933         "ulp.BOOLEAN", HFILL }},
7934     { &hf_ulp_ch48,
7935       { "ch48", "ulp.ch48",
7936         FT_BOOLEAN, BASE_NONE, NULL, 0,
7937         "ulp.BOOLEAN", HFILL }},
7938     { &hf_ulp_ch52,
7939       { "ch52", "ulp.ch52",
7940         FT_BOOLEAN, BASE_NONE, NULL, 0,
7941         "ulp.BOOLEAN", HFILL }},
7942     { &hf_ulp_ch56,
7943       { "ch56", "ulp.ch56",
7944         FT_BOOLEAN, BASE_NONE, NULL, 0,
7945         "ulp.BOOLEAN", HFILL }},
7946     { &hf_ulp_ch60,
7947       { "ch60", "ulp.ch60",
7948         FT_BOOLEAN, BASE_NONE, NULL, 0,
7949         "ulp.BOOLEAN", HFILL }},
7950     { &hf_ulp_ch64,
7951       { "ch64", "ulp.ch64",
7952         FT_BOOLEAN, BASE_NONE, NULL, 0,
7953         "ulp.BOOLEAN", HFILL }},
7954     { &hf_ulp_ch149,
7955       { "ch149", "ulp.ch149",
7956         FT_BOOLEAN, BASE_NONE, NULL, 0,
7957         "ulp.BOOLEAN", HFILL }},
7958     { &hf_ulp_ch153,
7959       { "ch153", "ulp.ch153",
7960         FT_BOOLEAN, BASE_NONE, NULL, 0,
7961         "ulp.BOOLEAN", HFILL }},
7962     { &hf_ulp_ch157,
7963       { "ch157", "ulp.ch157",
7964         FT_BOOLEAN, BASE_NONE, NULL, 0,
7965         "ulp.BOOLEAN", HFILL }},
7966     { &hf_ulp_ch161,
7967       { "ch161", "ulp.ch161",
7968         FT_BOOLEAN, BASE_NONE, NULL, 0,
7969         "ulp.BOOLEAN", HFILL }},
7970     { &hf_ulp_ch1,
7971       { "ch1", "ulp.ch1",
7972         FT_BOOLEAN, BASE_NONE, NULL, 0,
7973         "ulp.BOOLEAN", HFILL }},
7974     { &hf_ulp_ch2,
7975       { "ch2", "ulp.ch2",
7976         FT_BOOLEAN, BASE_NONE, NULL, 0,
7977         "ulp.BOOLEAN", HFILL }},
7978     { &hf_ulp_ch3,
7979       { "ch3", "ulp.ch3",
7980         FT_BOOLEAN, BASE_NONE, NULL, 0,
7981         "ulp.BOOLEAN", HFILL }},
7982     { &hf_ulp_ch4,
7983       { "ch4", "ulp.ch4",
7984         FT_BOOLEAN, BASE_NONE, NULL, 0,
7985         "ulp.BOOLEAN", HFILL }},
7986     { &hf_ulp_ch5,
7987       { "ch5", "ulp.ch5",
7988         FT_BOOLEAN, BASE_NONE, NULL, 0,
7989         "ulp.BOOLEAN", HFILL }},
7990     { &hf_ulp_ch6,
7991       { "ch6", "ulp.ch6",
7992         FT_BOOLEAN, BASE_NONE, NULL, 0,
7993         "ulp.BOOLEAN", HFILL }},
7994     { &hf_ulp_ch7,
7995       { "ch7", "ulp.ch7",
7996         FT_BOOLEAN, BASE_NONE, NULL, 0,
7997         "ulp.BOOLEAN", HFILL }},
7998     { &hf_ulp_ch8,
7999       { "ch8", "ulp.ch8",
8000         FT_BOOLEAN, BASE_NONE, NULL, 0,
8001         "ulp.BOOLEAN", HFILL }},
8002     { &hf_ulp_ch9,
8003       { "ch9", "ulp.ch9",
8004         FT_BOOLEAN, BASE_NONE, NULL, 0,
8005         "ulp.BOOLEAN", HFILL }},
8006     { &hf_ulp_ch10,
8007       { "ch10", "ulp.ch10",
8008         FT_BOOLEAN, BASE_NONE, NULL, 0,
8009         "ulp.BOOLEAN", HFILL }},
8010     { &hf_ulp_ch11,
8011       { "ch11", "ulp.ch11",
8012         FT_BOOLEAN, BASE_NONE, NULL, 0,
8013         "ulp.BOOLEAN", HFILL }},
8014     { &hf_ulp_ch12,
8015       { "ch12", "ulp.ch12",
8016         FT_BOOLEAN, BASE_NONE, NULL, 0,
8017         "ulp.BOOLEAN", HFILL }},
8018     { &hf_ulp_ch13,
8019       { "ch13", "ulp.ch13",
8020         FT_BOOLEAN, BASE_NONE, NULL, 0,
8021         "ulp.BOOLEAN", HFILL }},
8022     { &hf_ulp_ch14,
8023       { "ch14", "ulp.ch14",
8024         FT_BOOLEAN, BASE_NONE, NULL, 0,
8025         "ulp.BOOLEAN", HFILL }},
8026     { &hf_ulp_apDevType_01,
8027       { "apDevType", "ulp.apDevType",
8028         FT_UINT32, BASE_DEC, VALS(ulp_T_apDevType_vals), 0,
8029         "ulp.T_apDevType", HFILL }},
8030     { &hf_ulp_mRL,
8031       { "mRL", "ulp.mRL",
8032         FT_BOOLEAN, BASE_NONE, NULL, 0,
8033         "ulp.BOOLEAN", HFILL }},
8034     { &hf_ulp_hrpdCell,
8035       { "hrpdCell", "ulp.hrpdCell",
8036         FT_NONE, BASE_NONE, NULL, 0,
8037         "ulp.HrpdCellInformation", HFILL }},
8038     { &hf_ulp_umbCell,
8039       { "umbCell", "ulp.umbCell",
8040         FT_NONE, BASE_NONE, NULL, 0,
8041         "ulp.UmbCellInformation", HFILL }},
8042     { &hf_ulp_lteCell,
8043       { "lteCell", "ulp.lteCell",
8044         FT_NONE, BASE_NONE, NULL, 0,
8045         "ulp.LteCellInformation", HFILL }},
8046     { &hf_ulp_wlanAP,
8047       { "wlanAP", "ulp.wlanAP",
8048         FT_NONE, BASE_NONE, NULL, 0,
8049         "ulp.WlanAPInformation", HFILL }},
8050     { &hf_ulp_wimaxBS,
8051       { "wimaxBS", "ulp.wimaxBS",
8052         FT_NONE, BASE_NONE, NULL, 0,
8053         "ulp.WimaxBSInformation", HFILL }},
8054     { &hf_ulp_cellGlobalIdEUTRA,
8055       { "cellGlobalIdEUTRA", "ulp.cellGlobalIdEUTRA",
8056         FT_NONE, BASE_NONE, NULL, 0,
8057         "ulp.CellGlobalIdEUTRA", HFILL }},
8058     { &hf_ulp_physCellId,
8059       { "physCellId", "ulp.physCellId",
8060         FT_UINT32, BASE_DEC, NULL, 0,
8061         "ulp.PhysCellId", HFILL }},
8062     { &hf_ulp_trackingAreaCode,
8063       { "trackingAreaCode", "ulp.trackingAreaCode",
8064         FT_BYTES, BASE_NONE, NULL, 0,
8065         "ulp.TrackingAreaCode", HFILL }},
8066     { &hf_ulp_rsrpResult,
8067       { "rsrpResult", "ulp.rsrpResult",
8068         FT_UINT32, BASE_DEC, NULL, 0,
8069         "ulp.RSRP_Range", HFILL }},
8070     { &hf_ulp_rsrqResult,
8071       { "rsrqResult", "ulp.rsrqResult",
8072         FT_UINT32, BASE_DEC, NULL, 0,
8073         "ulp.RSRQ_Range", HFILL }},
8074     { &hf_ulp_tA_02,
8075       { "tA", "ulp.tA",
8076         FT_UINT32, BASE_DEC, NULL, 0,
8077         "ulp.INTEGER_0_1282", HFILL }},
8078     { &hf_ulp_measResultListEUTRA,
8079       { "measResultListEUTRA", "ulp.measResultListEUTRA",
8080         FT_UINT32, BASE_DEC, NULL, 0,
8081         "ulp.MeasResultListEUTRA", HFILL }},
8082     { &hf_ulp_MeasResultListEUTRA_item,
8083       { "MeasResultEUTRA", "ulp.MeasResultEUTRA",
8084         FT_NONE, BASE_NONE, NULL, 0,
8085         "ulp.MeasResultEUTRA", HFILL }},
8086     { &hf_ulp_cgi_Info,
8087       { "cgi-Info", "ulp.cgi_Info",
8088         FT_NONE, BASE_NONE, NULL, 0,
8089         "ulp.T_cgi_Info", HFILL }},
8090     { &hf_ulp_cellGlobalId,
8091       { "cellGlobalId", "ulp.cellGlobalId",
8092         FT_NONE, BASE_NONE, NULL, 0,
8093         "ulp.CellGlobalIdEUTRA", HFILL }},
8094     { &hf_ulp_measResult,
8095       { "measResult", "ulp.measResult",
8096         FT_NONE, BASE_NONE, NULL, 0,
8097         "ulp.T_measResult", HFILL }},
8098     { &hf_ulp_plmn_Identity,
8099       { "plmn-Identity", "ulp.plmn_Identity",
8100         FT_NONE, BASE_NONE, NULL, 0,
8101         "ulp.PLMN_Identity", HFILL }},
8102     { &hf_ulp_cellIdentity_01,
8103       { "cellIdentity", "ulp.cellIdentity",
8104         FT_BYTES, BASE_NONE, NULL, 0,
8105         "ulp.CellIdentity", HFILL }},
8106     { &hf_ulp_mcc,
8107       { "mcc", "ulp.mcc",
8108         FT_UINT32, BASE_DEC, NULL, 0,
8109         "ulp.MCC", HFILL }},
8110     { &hf_ulp_mnc,
8111       { "mnc", "ulp.mnc",
8112         FT_UINT32, BASE_DEC, NULL, 0,
8113         "ulp.MNC", HFILL }},
8114     { &hf_ulp_MCC_item,
8115       { "MCC-MNC-Digit", "ulp.MCC_MNC_Digit",
8116         FT_UINT32, BASE_DEC, NULL, 0,
8117         "ulp.MCC_MNC_Digit", HFILL }},
8118     { &hf_ulp_MNC_item,
8119       { "MCC-MNC-Digit", "ulp.MCC_MNC_Digit",
8120         FT_UINT32, BASE_DEC, NULL, 0,
8121         "ulp.MCC_MNC_Digit", HFILL }},
8122     { &hf_ulp_apTransmitPower,
8123       { "apTransmitPower", "ulp.apTransmitPower",
8124         FT_INT32, BASE_DEC, NULL, 0,
8125         "ulp.INTEGER_M127_128", HFILL }},
8126     { &hf_ulp_apAntennaGain,
8127       { "apAntennaGain", "ulp.apAntennaGain",
8128         FT_INT32, BASE_DEC, NULL, 0,
8129         "ulp.INTEGER_M127_128", HFILL }},
8130     { &hf_ulp_apSignaltoNoise,
8131       { "apSignaltoNoise", "ulp.apSignaltoNoise",
8132         FT_INT32, BASE_DEC, NULL, 0,
8133         "ulp.INTEGER_M127_128", HFILL }},
8134     { &hf_ulp_apDeviceType,
8135       { "apDeviceType", "ulp.apDeviceType",
8136         FT_UINT32, BASE_DEC, VALS(ulp_T_apDeviceType_vals), 0,
8137         "ulp.T_apDeviceType", HFILL }},
8138     { &hf_ulp_apSignalStrength,
8139       { "apSignalStrength", "ulp.apSignalStrength",
8140         FT_INT32, BASE_DEC, NULL, 0,
8141         "ulp.INTEGER_M127_128", HFILL }},
8142     { &hf_ulp_apChannelFrequency,
8143       { "apChannelFrequency", "ulp.apChannelFrequency",
8144         FT_UINT32, BASE_DEC, NULL, 0,
8145         "ulp.INTEGER_0_256", HFILL }},
8146     { &hf_ulp_apRoundTripDelay,
8147       { "apRoundTripDelay", "ulp.apRoundTripDelay",
8148         FT_NONE, BASE_NONE, NULL, 0,
8149         "ulp.RTD", HFILL }},
8150     { &hf_ulp_setTransmitPower,
8151       { "setTransmitPower", "ulp.setTransmitPower",
8152         FT_INT32, BASE_DEC, NULL, 0,
8153         "ulp.INTEGER_M127_128", HFILL }},
8154     { &hf_ulp_setAntennaGain,
8155       { "setAntennaGain", "ulp.setAntennaGain",
8156         FT_INT32, BASE_DEC, NULL, 0,
8157         "ulp.INTEGER_M127_128", HFILL }},
8158     { &hf_ulp_setSignaltoNoise,
8159       { "setSignaltoNoise", "ulp.setSignaltoNoise",
8160         FT_INT32, BASE_DEC, NULL, 0,
8161         "ulp.INTEGER_M127_128", HFILL }},
8162     { &hf_ulp_setSignalStrength,
8163       { "setSignalStrength", "ulp.setSignalStrength",
8164         FT_INT32, BASE_DEC, NULL, 0,
8165         "ulp.INTEGER_M127_128", HFILL }},
8166     { &hf_ulp_apReportedLocation,
8167       { "apReportedLocation", "ulp.apReportedLocation",
8168         FT_NONE, BASE_NONE, NULL, 0,
8169         "ulp.ReportedLocation", HFILL }},
8170     { &hf_ulp_rTDValue,
8171       { "rTDValue", "ulp.rTDValue",
8172         FT_UINT32, BASE_DEC, NULL, 0,
8173         "ulp.INTEGER_0_16777216", HFILL }},
8174     { &hf_ulp_rTDUnits,
8175       { "rTDUnits", "ulp.rTDUnits",
8176         FT_UINT32, BASE_DEC, VALS(ulp_RTDUnits_vals), 0,
8177         "ulp.RTDUnits", HFILL }},
8178     { &hf_ulp_rTDAccuracy,
8179       { "rTDAccuracy", "ulp.rTDAccuracy",
8180         FT_UINT32, BASE_DEC, NULL, 0,
8181         "ulp.INTEGER_0_255", HFILL }},
8182     { &hf_ulp_locationEncodingDescriptor,
8183       { "locationEncodingDescriptor", "ulp.locationEncodingDescriptor",
8184         FT_UINT32, BASE_DEC, VALS(ulp_LocationEncodingDescriptor_vals), 0,
8185         "ulp.LocationEncodingDescriptor", HFILL }},
8186     { &hf_ulp_locationData,
8187       { "locationData", "ulp.locationData",
8188         FT_NONE, BASE_NONE, NULL, 0,
8189         "ulp.LocationData", HFILL }},
8190     { &hf_ulp_locationAccuracy,
8191       { "locationAccuracy", "ulp.locationAccuracy",
8192         FT_UINT32, BASE_DEC, NULL, 0,
8193         "ulp.INTEGER_0_4294967295", HFILL }},
8194     { &hf_ulp_locationValue,
8195       { "locationValue", "ulp.locationValue",
8196         FT_BYTES, BASE_NONE, NULL, 0,
8197         "ulp.OCTET_STRING_SIZE_1_128", HFILL }},
8198     { &hf_ulp_wimaxBsID,
8199       { "wimaxBsID", "ulp.wimaxBsID",
8200         FT_NONE, BASE_NONE, NULL, 0,
8201         "ulp.WimaxBsID", HFILL }},
8202     { &hf_ulp_wimaxRTD,
8203       { "wimaxRTD", "ulp.wimaxRTD",
8204         FT_NONE, BASE_NONE, NULL, 0,
8205         "ulp.WimaxRTD", HFILL }},
8206     { &hf_ulp_wimaxNMRList,
8207       { "wimaxNMRList", "ulp.wimaxNMRList",
8208         FT_UINT32, BASE_DEC, NULL, 0,
8209         "ulp.WimaxNMRList", HFILL }},
8210     { &hf_ulp_rTD,
8211       { "rTD", "ulp.rTD",
8212         FT_UINT32, BASE_DEC, NULL, 0,
8213         "ulp.INTEGER_0_65535", HFILL }},
8214     { &hf_ulp_rTDstd,
8215       { "rTDstd", "ulp.rTDstd",
8216         FT_UINT32, BASE_DEC, NULL, 0,
8217         "ulp.INTEGER_0_1023", HFILL }},
8218     { &hf_ulp_WimaxNMRList_item,
8219       { "WimaxNMR", "ulp.WimaxNMR",
8220         FT_NONE, BASE_NONE, NULL, 0,
8221         "ulp.WimaxNMR", HFILL }},
8222     { &hf_ulp_relDelay,
8223       { "relDelay", "ulp.relDelay",
8224         FT_INT32, BASE_DEC, NULL, 0,
8225         "ulp.INTEGER_M32768_32767", HFILL }},
8226     { &hf_ulp_relDelaystd,
8227       { "relDelaystd", "ulp.relDelaystd",
8228         FT_UINT32, BASE_DEC, NULL, 0,
8229         "ulp.INTEGER_0_1023", HFILL }},
8230     { &hf_ulp_rSSI,
8231       { "rSSI", "ulp.rSSI",
8232         FT_UINT32, BASE_DEC, NULL, 0,
8233         "ulp.INTEGER_0_255", HFILL }},
8234     { &hf_ulp_rSSIstd,
8235       { "rSSIstd", "ulp.rSSIstd",
8236         FT_UINT32, BASE_DEC, NULL, 0,
8237         "ulp.INTEGER_0_63", HFILL }},
8238     { &hf_ulp_bSTxPower,
8239       { "bSTxPower", "ulp.bSTxPower",
8240         FT_UINT32, BASE_DEC, NULL, 0,
8241         "ulp.INTEGER_0_255", HFILL }},
8242     { &hf_ulp_cINR,
8243       { "cINR", "ulp.cINR",
8244         FT_UINT32, BASE_DEC, NULL, 0,
8245         "ulp.INTEGER_0_255", HFILL }},
8246     { &hf_ulp_cINRstd,
8247       { "cINRstd", "ulp.cINRstd",
8248         FT_UINT32, BASE_DEC, NULL, 0,
8249         "ulp.INTEGER_0_63", HFILL }},
8250     { &hf_ulp_bSLocation,
8251       { "bSLocation", "ulp.bSLocation",
8252         FT_NONE, BASE_NONE, NULL, 0,
8253         "ulp.ReportedLocation", HFILL }},
8254     { &hf_ulp_utran_GPSReferenceTime,
8255       { "utran-GPSReferenceTime", "ulp.utran_GPSReferenceTime",
8256         FT_NONE, BASE_NONE, NULL, 0,
8257         "ulp.UTRAN_GPSReferenceTime", HFILL }},
8258     { &hf_ulp_gpsReferenceTimeUncertainty,
8259       { "gpsReferenceTimeUncertainty", "ulp.gpsReferenceTimeUncertainty",
8260         FT_UINT32, BASE_DEC, NULL, 0,
8261         "ulp.INTEGER_0_127", HFILL }},
8262     { &hf_ulp_utranGPSDriftRate,
8263       { "utranGPSDriftRate", "ulp.utranGPSDriftRate",
8264         FT_UINT32, BASE_DEC, VALS(ulp_UTRANGPSDriftRate_vals), 0,
8265         "ulp.UTRANGPSDriftRate", HFILL }},
8266     { &hf_ulp_utran_GPSTimingOfCell,
8267       { "utran-GPSTimingOfCell", "ulp.utran_GPSTimingOfCell",
8268         FT_NONE, BASE_NONE, NULL, 0,
8269         "ulp.T_utran_GPSTimingOfCell", HFILL }},
8270     { &hf_ulp_ms_part,
8271       { "ms-part", "ulp.ms_part",
8272         FT_UINT32, BASE_DEC, NULL, 0,
8273         "ulp.INTEGER_0_1023", HFILL }},
8274     { &hf_ulp_ls_part,
8275       { "ls-part", "ulp.ls_part",
8276         FT_UINT32, BASE_DEC, NULL, 0,
8277         "ulp.INTEGER_0_4294967295", HFILL }},
8278     { &hf_ulp_modeSpecificInfo_01,
8279       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8280         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_01_vals), 0,
8281         "ulp.T_modeSpecificInfo_01", HFILL }},
8282     { &hf_ulp_fdd_01,
8283       { "fdd", "ulp.fdd",
8284         FT_NONE, BASE_NONE, NULL, 0,
8285         "ulp.T_fdd_01", HFILL }},
8286     { &hf_ulp_referenceIdentity,
8287       { "referenceIdentity", "ulp.referenceIdentity",
8288         FT_NONE, BASE_NONE, NULL, 0,
8289         "ulp.PrimaryCPICH_Info", HFILL }},
8290     { &hf_ulp_tdd_01,
8291       { "tdd", "ulp.tdd",
8292         FT_NONE, BASE_NONE, NULL, 0,
8293         "ulp.T_tdd_01", HFILL }},
8294     { &hf_ulp_referenceIdentity_01,
8295       { "referenceIdentity", "ulp.referenceIdentity",
8296         FT_UINT32, BASE_DEC, NULL, 0,
8297         "ulp.CellParametersID", HFILL }},
8298     { &hf_ulp_sfn,
8299       { "sfn", "ulp.sfn",
8300         FT_UINT32, BASE_DEC, NULL, 0,
8301         "ulp.INTEGER_0_4095", HFILL }},
8302     { &hf_ulp_set_GPSTimingOfCell,
8303       { "set-GPSTimingOfCell", "ulp.set_GPSTimingOfCell",
8304         FT_NONE, BASE_NONE, NULL, 0,
8305         "ulp.T_set_GPSTimingOfCell", HFILL }},
8306     { &hf_ulp_ms_part_01,
8307       { "ms-part", "ulp.ms_part",
8308         FT_UINT32, BASE_DEC, NULL, 0,
8309         "ulp.INTEGER_0_16383", HFILL }},
8310     { &hf_ulp_modeSpecificInfo_02,
8311       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8312         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_02_vals), 0,
8313         "ulp.T_modeSpecificInfo_02", HFILL }},
8314     { &hf_ulp_fdd_02,
8315       { "fdd", "ulp.fdd",
8316         FT_NONE, BASE_NONE, NULL, 0,
8317         "ulp.T_fdd_02", HFILL }},
8318     { &hf_ulp_tdd_02,
8319       { "tdd", "ulp.tdd",
8320         FT_NONE, BASE_NONE, NULL, 0,
8321         "ulp.T_tdd_02", HFILL }},
8322     { &hf_ulp_ganssDay,
8323       { "ganssDay", "ulp.ganssDay",
8324         FT_UINT32, BASE_DEC, NULL, 0,
8325         "ulp.INTEGER_0_8191", HFILL }},
8326     { &hf_ulp_ganssTimeID,
8327       { "ganssTimeID", "ulp.ganssTimeID",
8328         FT_UINT32, BASE_DEC, NULL, 0,
8329         "ulp.INTEGER_0_15", HFILL }},
8330     { &hf_ulp_utran_GANSSReferenceTime,
8331       { "utran-GANSSReferenceTime", "ulp.utran_GANSSReferenceTime",
8332         FT_NONE, BASE_NONE, NULL, 0,
8333         "ulp.UTRAN_GANSSReferenceTime", HFILL }},
8334     { &hf_ulp_utranGANSSDriftRate,
8335       { "utranGANSSDriftRate", "ulp.utranGANSSDriftRate",
8336         FT_UINT32, BASE_DEC, VALS(ulp_UTRANGANSSDriftRate_vals), 0,
8337         "ulp.UTRANGANSSDriftRate", HFILL }},
8338     { &hf_ulp_ganssTOD,
8339       { "ganssTOD", "ulp.ganssTOD",
8340         FT_UINT32, BASE_DEC, NULL, 0,
8341         "ulp.INTEGER_0_86399", HFILL }},
8342     { &hf_ulp_utran_GANSSTimingOfCell,
8343       { "utran-GANSSTimingOfCell", "ulp.utran_GANSSTimingOfCell",
8344         FT_UINT32, BASE_DEC, NULL, 0,
8345         "ulp.INTEGER_0_3999999", HFILL }},
8346     { &hf_ulp_modeSpecificInfo_03,
8347       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8348         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_03_vals), 0,
8349         "ulp.T_modeSpecificInfo_03", HFILL }},
8350     { &hf_ulp_fdd_03,
8351       { "fdd", "ulp.fdd",
8352         FT_NONE, BASE_NONE, NULL, 0,
8353         "ulp.T_fdd_03", HFILL }},
8354     { &hf_ulp_tdd_03,
8355       { "tdd", "ulp.tdd",
8356         FT_NONE, BASE_NONE, NULL, 0,
8357         "ulp.T_tdd_03", HFILL }},
8358     { &hf_ulp_ganss_TODUncertainty,
8359       { "ganss-TODUncertainty", "ulp.ganss_TODUncertainty",
8360         FT_UINT32, BASE_DEC, NULL, 0,
8361         "ulp.INTEGER_0_127", HFILL }},
8362     { &hf_ulp_set_GANSSReferenceTime,
8363       { "set-GANSSReferenceTime", "ulp.set_GANSSReferenceTime",
8364         FT_NONE, BASE_NONE, NULL, 0,
8365         "ulp.SET_GANSSReferenceTime", HFILL }},
8366     { &hf_ulp_set_GANSSTimingOfCell,
8367       { "set-GANSSTimingOfCell", "ulp.set_GANSSTimingOfCell",
8368         FT_NONE, BASE_NONE, NULL, 0,
8369         "ulp.T_set_GANSSTimingOfCell", HFILL }},
8370     { &hf_ulp_ms_part_02,
8371       { "ms-part", "ulp.ms_part",
8372         FT_UINT32, BASE_DEC, NULL, 0,
8373         "ulp.INTEGER_0_80", HFILL }},
8374     { &hf_ulp_modeSpecificInfo_04,
8375       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8376         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_04_vals), 0,
8377         "ulp.T_modeSpecificInfo_04", HFILL }},
8378     { &hf_ulp_fdd_04,
8379       { "fdd", "ulp.fdd",
8380         FT_NONE, BASE_NONE, NULL, 0,
8381         "ulp.T_fdd_04", HFILL }},
8382     { &hf_ulp_tdd_04,
8383       { "tdd", "ulp.tdd",
8384         FT_NONE, BASE_NONE, NULL, 0,
8385         "ulp.T_tdd_04", HFILL }},
8386     { &hf_ulp_gps,
8387       { "gps", "ulp.gps",
8388         FT_BOOLEAN, BASE_NONE, NULL, 0,
8389         "ulp.BOOLEAN", HFILL }},
8390     { &hf_ulp_galileo,
8391       { "galileo", "ulp.galileo",
8392         FT_BOOLEAN, BASE_NONE, NULL, 0,
8393         "ulp.BOOLEAN", HFILL }},
8394     { &hf_ulp_sbas,
8395       { "sbas", "ulp.sbas",
8396         FT_BOOLEAN, BASE_NONE, NULL, 0,
8397         "ulp.BOOLEAN", HFILL }},
8398     { &hf_ulp_modernized_gps,
8399       { "modernized-gps", "ulp.modernized_gps",
8400         FT_BOOLEAN, BASE_NONE, NULL, 0,
8401         "ulp.BOOLEAN", HFILL }},
8402     { &hf_ulp_qzss,
8403       { "qzss", "ulp.qzss",
8404         FT_BOOLEAN, BASE_NONE, NULL, 0,
8405         "ulp.BOOLEAN", HFILL }},
8406     { &hf_ulp_glonass,
8407       { "glonass", "ulp.glonass",
8408         FT_BOOLEAN, BASE_NONE, NULL, 0,
8409         "ulp.BOOLEAN", HFILL }},
8410     { &hf_ulp_rAND,
8411       { "rAND", "ulp.rAND",
8412         FT_BYTES, BASE_NONE, NULL, 0,
8413         "ulp.BIT_STRING_SIZE_128", HFILL }},
8414     { &hf_ulp_slpFQDN,
8415       { "slpFQDN", "ulp.slpFQDN",
8416         FT_STRING, BASE_NONE, NULL, 0,
8417         "ulp.FQDN", HFILL }},
8418     { &hf_ulp_ThirdParty_item,
8419       { "ThirdPartyID", "ulp.ThirdPartyID",
8420         FT_UINT32, BASE_DEC, VALS(ulp_ThirdPartyID_vals), 0,
8421         "ulp.ThirdPartyID", HFILL }},
8422     { &hf_ulp_logicalName,
8423       { "logicalName", "ulp.logicalName",
8424         FT_STRING, BASE_NONE, NULL, 0,
8425         "ulp.IA5String_SIZE_1_1000", HFILL }},
8426     { &hf_ulp_msisdn_01,
8427       { "msisdn", "ulp.msisdn",
8428         FT_BYTES, BASE_NONE, NULL, 0,
8429         "ulp.OCTET_STRING_SIZE_8", HFILL }},
8430     { &hf_ulp_emailaddr,
8431       { "emailaddr", "ulp.emailaddr",
8432         FT_STRING, BASE_NONE, NULL, 0,
8433         "ulp.IA5String_SIZE_1_1000", HFILL }},
8434     { &hf_ulp_sip_uri,
8435       { "sip-uri", "ulp.sip_uri",
8436         FT_STRING, BASE_NONE, NULL, 0,
8437         "ulp.T_sip_uri", HFILL }},
8438     { &hf_ulp_ims_public_identity,
8439       { "ims-public-identity", "ulp.ims_public_identity",
8440         FT_STRING, BASE_NONE, NULL, 0,
8441         "ulp.T_ims_public_identity", HFILL }},
8442     { &hf_ulp_min_01,
8443       { "min", "ulp.min",
8444         FT_BYTES, BASE_NONE, NULL, 0,
8445         "ulp.BIT_STRING_SIZE_34", HFILL }},
8446     { &hf_ulp_uri,
8447       { "uri", "ulp.uri",
8448         FT_STRING, BASE_NONE, NULL, 0,
8449         "ulp.T_uri", HFILL }},
8450     { &hf_ulp_appProvider,
8451       { "appProvider", "ulp.appProvider",
8452         FT_STRING, BASE_NONE, NULL, 0,
8453         "ulp.IA5String_SIZE_1_24", HFILL }},
8454     { &hf_ulp_appName,
8455       { "appName", "ulp.appName",
8456         FT_STRING, BASE_NONE, NULL, 0,
8457         "ulp.IA5String_SIZE_1_32", HFILL }},
8458     { &hf_ulp_appVersion,
8459       { "appVersion", "ulp.appVersion",
8460         FT_STRING, BASE_NONE, NULL, 0,
8461         "ulp.IA5String_SIZE_1_8", HFILL }},
8462     { &hf_ulp_minInt,
8463       { "minInt", "ulp.minInt",
8464         FT_UINT32, BASE_DEC, NULL, 0,
8465         "ulp.INTEGER_1_3600", HFILL }},
8466     { &hf_ulp_maxInt,
8467       { "maxInt", "ulp.maxInt",
8468         FT_UINT32, BASE_DEC, NULL, 0,
8469         "ulp.INTEGER_1_1440", HFILL }},
8470     { &hf_ulp_repMode_01,
8471       { "repMode", "ulp.repMode",
8472         FT_NONE, BASE_NONE, NULL, 0,
8473         "ulp.RepMode_cap", HFILL }},
8474     { &hf_ulp_batchRepCap,
8475       { "batchRepCap", "ulp.batchRepCap",
8476         FT_NONE, BASE_NONE, NULL, 0,
8477         "ulp.BatchRepCap", HFILL }},
8478     { &hf_ulp_realtime,
8479       { "realtime", "ulp.realtime",
8480         FT_BOOLEAN, BASE_NONE, NULL, 0,
8481         "ulp.BOOLEAN", HFILL }},
8482     { &hf_ulp_quasirealtime,
8483       { "quasirealtime", "ulp.quasirealtime",
8484         FT_BOOLEAN, BASE_NONE, NULL, 0,
8485         "ulp.BOOLEAN", HFILL }},
8486     { &hf_ulp_batch,
8487       { "batch", "ulp.batch",
8488         FT_BOOLEAN, BASE_NONE, NULL, 0,
8489         "ulp.BOOLEAN", HFILL }},
8490     { &hf_ulp_report_position,
8491       { "report-position", "ulp.report_position",
8492         FT_BOOLEAN, BASE_NONE, NULL, 0,
8493         "ulp.BOOLEAN", HFILL }},
8494     { &hf_ulp_report_measurements,
8495       { "report-measurements", "ulp.report_measurements",
8496         FT_BOOLEAN, BASE_NONE, NULL, 0,
8497         "ulp.BOOLEAN", HFILL }},
8498     { &hf_ulp_max_num_positions,
8499       { "max-num-positions", "ulp.max_num_positions",
8500         FT_UINT32, BASE_DEC, NULL, 0,
8501         "ulp.INTEGER_1_1024", HFILL }},
8502     { &hf_ulp_max_num_measurements,
8503       { "max-num-measurements", "ulp.max_num_measurements",
8504         FT_UINT32, BASE_DEC, NULL, 0,
8505         "ulp.INTEGER_1_1024", HFILL }},
8506     { &hf_ulp_latitudeSign_01,
8507       { "latitudeSign", "ulp.latitudeSign",
8508         FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_01_vals), 0,
8509         "ulp.T_latitudeSign_01", HFILL }},
8510     { &hf_ulp_coordinate,
8511       { "coordinate", "ulp.coordinate",
8512         FT_NONE, BASE_NONE, NULL, 0,
8513         "ulp.Coordinate", HFILL }},
8514     { &hf_ulp_radius,
8515       { "radius", "ulp.radius",
8516         FT_UINT32, BASE_DEC, NULL, 0,
8517         "ulp.INTEGER_1_1000000", HFILL }},
8518     { &hf_ulp_radius_min,
8519       { "radius-min", "ulp.radius_min",
8520         FT_UINT32, BASE_DEC, NULL, 0,
8521         "ulp.INTEGER_1_1000000", HFILL }},
8522     { &hf_ulp_radius_max,
8523       { "radius-max", "ulp.radius_max",
8524         FT_UINT32, BASE_DEC, NULL, 0,
8525         "ulp.INTEGER_1_1500000", HFILL }},
8526     { &hf_ulp_semiMajor,
8527       { "semiMajor", "ulp.semiMajor",
8528         FT_UINT32, BASE_DEC, NULL, 0,
8529         "ulp.INTEGER_1_1000000", HFILL }},
8530     { &hf_ulp_semiMajor_min,
8531       { "semiMajor-min", "ulp.semiMajor_min",
8532         FT_UINT32, BASE_DEC, NULL, 0,
8533         "ulp.INTEGER_1_1000000", HFILL }},
8534     { &hf_ulp_semiMajor_max,
8535       { "semiMajor-max", "ulp.semiMajor_max",
8536         FT_UINT32, BASE_DEC, NULL, 0,
8537         "ulp.INTEGER_1_1500000", HFILL }},
8538     { &hf_ulp_semiMinor,
8539       { "semiMinor", "ulp.semiMinor",
8540         FT_UINT32, BASE_DEC, NULL, 0,
8541         "ulp.INTEGER_1_1000000", HFILL }},
8542     { &hf_ulp_semiMinor_min,
8543       { "semiMinor-min", "ulp.semiMinor_min",
8544         FT_UINT32, BASE_DEC, NULL, 0,
8545         "ulp.INTEGER_1_1000000", HFILL }},
8546     { &hf_ulp_semiMinor_max,
8547       { "semiMinor-max", "ulp.semiMinor_max",
8548         FT_UINT32, BASE_DEC, NULL, 0,
8549         "ulp.INTEGER_1_1500000", HFILL }},
8550     { &hf_ulp_angle,
8551       { "angle", "ulp.angle",
8552         FT_UINT32, BASE_DEC, NULL, 0,
8553         "ulp.INTEGER_0_179", HFILL }},
8554     { &hf_ulp_polygonDescription,
8555       { "polygonDescription", "ulp.polygonDescription",
8556         FT_UINT32, BASE_DEC, NULL, 0,
8557         "ulp.PolygonDescription", HFILL }},
8558     { &hf_ulp_polygonHysteresis,
8559       { "polygonHysteresis", "ulp.polygonHysteresis",
8560         FT_UINT32, BASE_DEC, NULL, 0,
8561         "ulp.INTEGER_1_100000", HFILL }},
8562     { &hf_ulp_PolygonDescription_item,
8563       { "Coordinate", "ulp.Coordinate",
8564         FT_NONE, BASE_NONE, NULL, 0,
8565         "ulp.Coordinate", HFILL }},
8566     { &hf_ulp_GANSSSignals_signal1,
8567       { "signal1", "ulp.signal1",
8568         FT_BOOLEAN, 8, NULL, 0x80,
8569         NULL, HFILL }},
8570     { &hf_ulp_GANSSSignals_signal2,
8571       { "signal2", "ulp.signal2",
8572         FT_BOOLEAN, 8, NULL, 0x40,
8573         NULL, HFILL }},
8574     { &hf_ulp_GANSSSignals_signal3,
8575       { "signal3", "ulp.signal3",
8576         FT_BOOLEAN, 8, NULL, 0x20,
8577         NULL, HFILL }},
8578     { &hf_ulp_GANSSSignals_signal4,
8579       { "signal4", "ulp.signal4",
8580         FT_BOOLEAN, 8, NULL, 0x10,
8581         NULL, HFILL }},
8582     { &hf_ulp_GANSSSignals_signal5,
8583       { "signal5", "ulp.signal5",
8584         FT_BOOLEAN, 8, NULL, 0x08,
8585         NULL, HFILL }},
8586     { &hf_ulp_GANSSSignals_signal6,
8587       { "signal6", "ulp.signal6",
8588         FT_BOOLEAN, 8, NULL, 0x04,
8589         NULL, HFILL }},
8590     { &hf_ulp_GANSSSignals_signal7,
8591       { "signal7", "ulp.signal7",
8592         FT_BOOLEAN, 8, NULL, 0x02,
8593         NULL, HFILL }},
8594     { &hf_ulp_GANSSSignals_signal8,
8595       { "signal8", "ulp.signal8",
8596         FT_BOOLEAN, 8, NULL, 0x01,
8597         NULL, HFILL }},
8598
8599 /*--- End of included file: packet-ulp-hfarr.c ---*/
8600 #line 100 "packet-ulp-template.c"
8601   };
8602
8603   /* List of subtrees */
8604   static gint *ett[] = {
8605           &ett_ulp,
8606
8607 /*--- Included file: packet-ulp-ettarr.c ---*/
8608 #line 1 "packet-ulp-ettarr.c"
8609     &ett_ulp_ULP_PDU,
8610     &ett_ulp_UlpMessage,
8611     &ett_ulp_SUPLINIT,
8612     &ett_ulp_Notification,
8613     &ett_ulp_SUPLSTART,
8614     &ett_ulp_SETCapabilities,
8615     &ett_ulp_PosTechnology,
8616     &ett_ulp_PosProtocol,
8617     &ett_ulp_SUPLRESPONSE,
8618     &ett_ulp_SETAuthKey,
8619     &ett_ulp_SUPLPOSINIT,
8620     &ett_ulp_RequestedAssistData,
8621     &ett_ulp_NavigationModel,
8622     &ett_ulp_SatelliteInfo,
8623     &ett_ulp_SatelliteInfoElement,
8624     &ett_ulp_SUPLPOS,
8625     &ett_ulp_PosPayLoad,
8626     &ett_ulp_SUPLEND,
8627     &ett_ulp_SUPLAUTHREQ,
8628     &ett_ulp_SUPLAUTHRESP,
8629     &ett_ulp_Ver2_SUPLNOTIFY,
8630     &ett_ulp_Ver2_SUPLNOTIFYRESPONSE,
8631     &ett_ulp_Ver2_SUPLSETINIT,
8632     &ett_ulp_Ver2_SUPLTRIGGEREDSTART,
8633     &ett_ulp_TriggerParams,
8634     &ett_ulp_PeriodicParams,
8635     &ett_ulp_AreaEventParams,
8636     &ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList,
8637     &ett_ulp_RepeatedReportingParams,
8638     &ett_ulp_GeographicTargetAreaList,
8639     &ett_ulp_GeographicTargetArea,
8640     &ett_ulp_AreaIdList,
8641     &ett_ulp_AreaIdSet,
8642     &ett_ulp_AreaId,
8643     &ett_ulp_GSMAreaId,
8644     &ett_ulp_WCDMAAreaId,
8645     &ett_ulp_CDMAAreaId,
8646     &ett_ulp_HRPDAreaId,
8647     &ett_ulp_UMBAreaId,
8648     &ett_ulp_LTEAreaId,
8649     &ett_ulp_WLANAreaId,
8650     &ett_ulp_WimaxAreaId,
8651     &ett_ulp_GeoAreaMappingList,
8652     &ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE,
8653     &ett_ulp_ReportingMode,
8654     &ett_ulp_BatchRepConditions,
8655     &ett_ulp_BatchRepType,
8656     &ett_ulp_Ver2_SUPLREPORT,
8657     &ett_ulp_SessionList,
8658     &ett_ulp_SessionInformation,
8659     &ett_ulp_ReportDataList,
8660     &ett_ulp_ReportData,
8661     &ett_ulp_PositionData,
8662     &ett_ulp_GANSSsignalsInfo,
8663     &ett_ulp_GANSSSignalsDescription,
8664     &ett_ulp_TimeStamp,
8665     &ett_ulp_Ver2_SUPLTRIGGEREDSTOP,
8666     &ett_ulp_Ver2_SUPL_INIT_extension,
8667     &ett_ulp_HistoricReporting,
8668     &ett_ulp_ReportingCriteria,
8669     &ett_ulp_TimeWindow,
8670     &ett_ulp_ProtectionLevel,
8671     &ett_ulp_BasicProtectionParams,
8672     &ett_ulp_Ver2_SUPL_START_extension,
8673     &ett_ulp_Ver2_SUPL_RESPONSE_extension,
8674     &ett_ulp_Ver2_SUPL_POS_INIT_extension,
8675     &ett_ulp_Ver2_SUPL_POS_extension,
8676     &ett_ulp_Ver2_SUPL_END_extension,
8677     &ett_ulp_Ver2_Notification_extension,
8678     &ett_ulp_Ver2_SETCapabilities_extension,
8679     &ett_ulp_ServiceCapabilities,
8680     &ett_ulp_ServicesSupported,
8681     &ett_ulp_EventTriggerCapabilities,
8682     &ett_ulp_GeoAreaShapesSupported,
8683     &ett_ulp_SessionCapabilities,
8684     &ett_ulp_Ver2_PosProtocol_extension,
8685     &ett_ulp_PosProtocolVersion3GPP,
8686     &ett_ulp_PosProtocolVersion3GPP2,
8687     &ett_ulp_Supported3GPP2PosProtocolVersion,
8688     &ett_ulp_Ver2_PosTechnology_extension,
8689     &ett_ulp_GANSSPositionMethods,
8690     &ett_ulp_GANSSPositionMethod,
8691     &ett_ulp_GANSSPositioningMethodTypes,
8692     &ett_ulp_Ver2_RequestedAssistData_extension,
8693     &ett_ulp_GanssRequestedCommonAssistanceDataList,
8694     &ett_ulp_GanssRequestedGenericAssistanceDataList,
8695     &ett_ulp_GanssReqGenericData,
8696     &ett_ulp_GanssNavigationModelData,
8697     &ett_ulp_SatellitesListRelatedDataList,
8698     &ett_ulp_SatellitesListRelatedData,
8699     &ett_ulp_GanssDataBits,
8700     &ett_ulp_ReqDataBitAssistanceList,
8701     &ett_ulp_T_ganssDataBitSatList,
8702     &ett_ulp_GanssAdditionalDataChoices,
8703     &ett_ulp_ExtendedEphemeris,
8704     &ett_ulp_ExtendedEphCheck,
8705     &ett_ulp_GanssExtendedEphCheck,
8706     &ett_ulp_GPSTime,
8707     &ett_ulp_GANSSextEphTime,
8708     &ett_ulp_Ver2_PosPayLoad_extension,
8709     &ett_ulp_Version,
8710     &ett_ulp_SessionID,
8711     &ett_ulp_SetSessionID,
8712     &ett_ulp_SETId,
8713     &ett_ulp_SlpSessionID,
8714     &ett_ulp_IPAddress,
8715     &ett_ulp_SLPAddress,
8716     &ett_ulp_LocationId,
8717     &ett_ulp_CellInfo,
8718     &ett_ulp_Position,
8719     &ett_ulp_PositionEstimate,
8720     &ett_ulp_T_uncertainty,
8721     &ett_ulp_AltitudeInfo,
8722     &ett_ulp_CdmaCellInformation,
8723     &ett_ulp_GsmCellInformation,
8724     &ett_ulp_WcdmaCellInformation,
8725     &ett_ulp_TimingAdvance,
8726     &ett_ulp_FrequencyInfo,
8727     &ett_ulp_FrequencySpecificInfo,
8728     &ett_ulp_FrequencyInfoFDD,
8729     &ett_ulp_FrequencyInfoTDD,
8730     &ett_ulp_NMR,
8731     &ett_ulp_NMRelement,
8732     &ett_ulp_MeasuredResultsList,
8733     &ett_ulp_MeasuredResults,
8734     &ett_ulp_CellMeasuredResultsList,
8735     &ett_ulp_CellMeasuredResults,
8736     &ett_ulp_T_modeSpecificInfo,
8737     &ett_ulp_T_fdd,
8738     &ett_ulp_T_tdd,
8739     &ett_ulp_TimeslotISCP_List,
8740     &ett_ulp_PrimaryCPICH_Info,
8741     &ett_ulp_QoP,
8742     &ett_ulp_Velocity,
8743     &ett_ulp_Horvel,
8744     &ett_ulp_Horandvervel,
8745     &ett_ulp_Horveluncert,
8746     &ett_ulp_Horandveruncert,
8747     &ett_ulp_MultipleLocationIds,
8748     &ett_ulp_LocationIdData,
8749     &ett_ulp_SupportedNetworkInformation,
8750     &ett_ulp_SupportedWLANInfo,
8751     &ett_ulp_SupportedWLANApsList,
8752     &ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData,
8753     &ett_ulp_SupportedWLANApsChannel11a,
8754     &ett_ulp_SupportedWLANApsChannel11bg,
8755     &ett_ulp_SupportedWLANApData,
8756     &ett_ulp_SupportedWCDMAInfo,
8757     &ett_ulp_Ver2_CellInfo_extension,
8758     &ett_ulp_HrpdCellInformation,
8759     &ett_ulp_UmbCellInformation,
8760     &ett_ulp_LteCellInformation,
8761     &ett_ulp_MeasResultListEUTRA,
8762     &ett_ulp_MeasResultEUTRA,
8763     &ett_ulp_T_cgi_Info,
8764     &ett_ulp_T_measResult,
8765     &ett_ulp_CellGlobalIdEUTRA,
8766     &ett_ulp_PLMN_Identity,
8767     &ett_ulp_MCC,
8768     &ett_ulp_MNC,
8769     &ett_ulp_WlanAPInformation,
8770     &ett_ulp_RTD,
8771     &ett_ulp_ReportedLocation,
8772     &ett_ulp_LocationData,
8773     &ett_ulp_WimaxBSInformation,
8774     &ett_ulp_WimaxBsID,
8775     &ett_ulp_WimaxRTD,
8776     &ett_ulp_WimaxNMRList,
8777     &ett_ulp_WimaxNMR,
8778     &ett_ulp_UTRAN_GPSReferenceTimeAssistance,
8779     &ett_ulp_UTRAN_GPSReferenceTime,
8780     &ett_ulp_T_utran_GPSTimingOfCell,
8781     &ett_ulp_T_modeSpecificInfo_01,
8782     &ett_ulp_T_fdd_01,
8783     &ett_ulp_T_tdd_01,
8784     &ett_ulp_UTRAN_GPSReferenceTimeResult,
8785     &ett_ulp_T_set_GPSTimingOfCell,
8786     &ett_ulp_T_modeSpecificInfo_02,
8787     &ett_ulp_T_fdd_02,
8788     &ett_ulp_T_tdd_02,
8789     &ett_ulp_UTRAN_GANSSReferenceTimeAssistance,
8790     &ett_ulp_UTRAN_GANSSReferenceTime,
8791     &ett_ulp_T_modeSpecificInfo_03,
8792     &ett_ulp_T_fdd_03,
8793     &ett_ulp_T_tdd_03,
8794     &ett_ulp_UTRAN_GANSSReferenceTimeResult,
8795     &ett_ulp_SET_GANSSReferenceTime,
8796     &ett_ulp_T_set_GANSSTimingOfCell,
8797     &ett_ulp_T_modeSpecificInfo_04,
8798     &ett_ulp_T_fdd_04,
8799     &ett_ulp_T_tdd_04,
8800     &ett_ulp_GNSSPosTechnology,
8801     &ett_ulp_GANSSSignals,
8802     &ett_ulp_SPCTID,
8803     &ett_ulp_ThirdParty,
8804     &ett_ulp_ThirdPartyID,
8805     &ett_ulp_ApplicationID,
8806     &ett_ulp_ReportingCap,
8807     &ett_ulp_RepMode_cap,
8808     &ett_ulp_BatchRepCap,
8809     &ett_ulp_Coordinate,
8810     &ett_ulp_CircularArea,
8811     &ett_ulp_EllipticalArea,
8812     &ett_ulp_PolygonArea,
8813     &ett_ulp_PolygonDescription,
8814
8815 /*--- End of included file: packet-ulp-ettarr.c ---*/
8816 #line 106 "packet-ulp-template.c"
8817   };
8818
8819   module_t *ulp_module;
8820
8821
8822   /* Register protocol */
8823   proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
8824   register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
8825
8826   /* Register fields and subtrees */
8827   proto_register_field_array(proto_ulp, hf, array_length(hf));
8828   proto_register_subtree_array(ett, array_length(ett));
8829
8830   ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
8831
8832   prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
8833                 "Reassemble ULP messages spanning multiple TCP segments",
8834                 "Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
8835                 " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
8836                 &ulp_desegment);
8837
8838   /* Register a configuration option for port */
8839   prefs_register_uint_preference(ulp_module, "tcp.port",
8840                                  "ULP TCP Port",
8841                                  "Set the TCP port for Ulp messages(IANA registerd port is 7275)",
8842                                  10,
8843                                  &gbl_ulp_port);
8844  
8845 }
8846
8847
8848 /*--- proto_reg_handoff_ulp ---------------------------------------*/
8849 void
8850 proto_reg_handoff_ulp(void)
8851 {
8852         static gboolean initialized = FALSE;
8853         static dissector_handle_t ulp_handle;
8854         static guint local_ulp_port;
8855
8856         if (!initialized) {
8857                 ulp_handle = find_dissector("ulp");
8858                 dissector_add_string("media_type","application/oma-supl-ulp", ulp_handle);
8859                 rrlp_handle = find_dissector("rrlp");
8860                 initialized = TRUE;
8861         } else {
8862                 dissector_delete("tcp.port", local_ulp_port, ulp_handle);
8863         }
8864
8865         local_ulp_port = gbl_ulp_port;
8866         dissector_add("tcp.port", gbl_ulp_port, ulp_handle);
8867
8868         /* application/oma-supl-ulp */
8869
8870 }
8871