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