Revert "Fixup: tvb_* -> tvb_captured"
[metze/wireshark/wip.git] / epan / dissectors / packet-ulp.c
1 /* Do not modify this file. Changes will be overwritten.                      */
2 /* Generated 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  * Wireshark - Network traffic analyzer
14  * By Gerald Combs <gerald@wireshark.org>
15  * Copyright 1998 Gerald Combs
16  *
17  * This program is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU General Public License
19  * as published by the Free Software Foundation; either version 2
20  * of the License, or (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
30  *
31  * ref OMA-TS-ULP-V2_0_1-20121205-A
32  * http://www.openmobilealliance.org
33  */
34
35 #include "config.h"
36
37 #include <glib.h>
38 #include <epan/packet.h>
39 #include <epan/prefs.h>
40 #include <epan/asn1.h>
41
42 #include "packet-per.h"
43 #include "packet-tcp.h"
44 #include "packet-gsm_map.h"
45
46 #define PNAME  "OMA UserPlane Location Protocol"
47 #define PSNAME "ULP"
48 #define PFNAME "ulp"
49
50 void proto_register_ulp(void);
51
52 static dissector_handle_t rrlp_handle;
53 static dissector_handle_t lpp_handle;
54
55 /* IANA Registered Ports
56  * oma-ulp         7275/tcp    OMA UserPlane Location
57  * oma-ulp         7275/udp    OMA UserPlane Location
58  */
59 static guint gbl_ulp_tcp_port = 7275;
60 static guint gbl_ulp_udp_port = 7275;
61
62 /* Initialize the protocol and registered fields */
63 static int proto_ulp = -1;
64
65
66 #define ULP_HEADER_SIZE 2
67
68 static gboolean ulp_desegment = TRUE;
69
70
71 /*--- Included file: packet-ulp-hf.c ---*/
72 #line 1 "../../asn1/ulp/packet-ulp-hf.c"
73 static int hf_ulp_ULP_PDU_PDU = -1;               /* ULP_PDU */
74 static int hf_ulp_length = -1;                    /* INTEGER_0_65535 */
75 static int hf_ulp_version = -1;                   /* Version */
76 static int hf_ulp_sessionID = -1;                 /* SessionID */
77 static int hf_ulp_message = -1;                   /* UlpMessage */
78 static int hf_ulp_msSUPLINIT = -1;                /* SUPLINIT */
79 static int hf_ulp_msSUPLSTART = -1;               /* SUPLSTART */
80 static int hf_ulp_msSUPLRESPONSE = -1;            /* SUPLRESPONSE */
81 static int hf_ulp_msSUPLPOSINIT = -1;             /* SUPLPOSINIT */
82 static int hf_ulp_msSUPLPOS = -1;                 /* SUPLPOS */
83 static int hf_ulp_msSUPLEND = -1;                 /* SUPLEND */
84 static int hf_ulp_msSUPLAUTHREQ = -1;             /* SUPLAUTHREQ */
85 static int hf_ulp_msSUPLAUTHRESP = -1;            /* SUPLAUTHRESP */
86 static int hf_ulp_msSUPLTRIGGEREDSTART = -1;      /* Ver2_SUPLTRIGGEREDSTART */
87 static int hf_ulp_msSUPLTRIGGEREDRESPONSE = -1;   /* Ver2_SUPLTRIGGEREDRESPONSE */
88 static int hf_ulp_msSUPLTRIGGEREDSTOP = -1;       /* Ver2_SUPLTRIGGEREDSTOP */
89 static int hf_ulp_msSUPLNOTIFY = -1;              /* Ver2_SUPLNOTIFY */
90 static int hf_ulp_msSUPLNOTIFYRESPONSE = -1;      /* Ver2_SUPLNOTIFYRESPONSE */
91 static int hf_ulp_msSUPLSETINIT = -1;             /* Ver2_SUPLSETINIT */
92 static int hf_ulp_msSUPLREPORT = -1;              /* Ver2_SUPLREPORT */
93 static int hf_ulp_posMethod = -1;                 /* PosMethod */
94 static int hf_ulp_notification = -1;              /* Notification */
95 static int hf_ulp_sLPAddress = -1;                /* SLPAddress */
96 static int hf_ulp_qoP = -1;                       /* QoP */
97 static int hf_ulp_sLPMode = -1;                   /* SLPMode */
98 static int hf_ulp_mAC = -1;                       /* MAC */
99 static int hf_ulp_keyIdentity = -1;               /* KeyIdentity */
100 static int hf_ulp_ver2_SUPL_INIT_extension = -1;  /* Ver2_SUPL_INIT_extension */
101 static int hf_ulp_notificationType = -1;          /* NotificationType */
102 static int hf_ulp_encodingType = -1;              /* EncodingType */
103 static int hf_ulp_requestorId = -1;               /* OCTET_STRING_SIZE_1_maxReqLength */
104 static int hf_ulp_requestorIdType = -1;           /* FormatIndicator */
105 static int hf_ulp_clientName = -1;                /* OCTET_STRING_SIZE_1_maxClientLength */
106 static int hf_ulp_clientNameType = -1;            /* FormatIndicator */
107 static int hf_ulp_ver2_Notification_extension = -1;  /* Ver2_Notification_extension */
108 static int hf_ulp_sETCapabilities = -1;           /* SETCapabilities */
109 static int hf_ulp_locationId = -1;                /* LocationId */
110 static int hf_ulp_ver2_SUPL_START_extension = -1;  /* Ver2_SUPL_START_extension */
111 static int hf_ulp_posTechnology = -1;             /* PosTechnology */
112 static int hf_ulp_prefMethod = -1;                /* PrefMethod */
113 static int hf_ulp_posProtocol = -1;               /* PosProtocol */
114 static int hf_ulp_ver2_SETCapabilities_extension = -1;  /* Ver2_SETCapabilities_extension */
115 static int hf_ulp_agpsSETassisted = -1;           /* BOOLEAN */
116 static int hf_ulp_agpsSETBased = -1;              /* BOOLEAN */
117 static int hf_ulp_autonomousGPS = -1;             /* BOOLEAN */
118 static int hf_ulp_aFLT = -1;                      /* BOOLEAN */
119 static int hf_ulp_eCID = -1;                      /* BOOLEAN */
120 static int hf_ulp_eOTD = -1;                      /* BOOLEAN */
121 static int hf_ulp_oTDOA = -1;                     /* BOOLEAN */
122 static int hf_ulp_ver2_PosTechnology_extension = -1;  /* Ver2_PosTechnology_extension */
123 static int hf_ulp_tia801 = -1;                    /* BOOLEAN */
124 static int hf_ulp_rrlp = -1;                      /* BOOLEAN */
125 static int hf_ulp_rrc = -1;                       /* BOOLEAN */
126 static int hf_ulp_ver2_PosProtocol_extension = -1;  /* Ver2_PosProtocol_extension */
127 static int hf_ulp_sETAuthKey = -1;                /* SETAuthKey */
128 static int hf_ulp_keyIdentity4 = -1;              /* KeyIdentity4 */
129 static int hf_ulp_ver2_SUPL_RESPONSE_extension = -1;  /* Ver2_SUPL_RESPONSE_extension */
130 static int hf_ulp_shortKey = -1;                  /* BIT_STRING_SIZE_128 */
131 static int hf_ulp_longKey = -1;                   /* BIT_STRING_SIZE_256 */
132 static int hf_ulp_requestedAssistData = -1;       /* RequestedAssistData */
133 static int hf_ulp_position = -1;                  /* Position */
134 static int hf_ulp_sUPLPOS = -1;                   /* SUPLPOS */
135 static int hf_ulp_ver = -1;                       /* Ver */
136 static int hf_ulp_ver2_SUPL_POS_INIT_extension = -1;  /* Ver2_SUPL_POS_INIT_extension */
137 static int hf_ulp_almanacRequested = -1;          /* BOOLEAN */
138 static int hf_ulp_utcModelRequested = -1;         /* BOOLEAN */
139 static int hf_ulp_ionosphericModelRequested = -1;  /* BOOLEAN */
140 static int hf_ulp_dgpsCorrectionsRequested = -1;  /* BOOLEAN */
141 static int hf_ulp_referenceLocationRequested = -1;  /* BOOLEAN */
142 static int hf_ulp_referenceTimeRequested = -1;    /* BOOLEAN */
143 static int hf_ulp_acquisitionAssistanceRequested = -1;  /* BOOLEAN */
144 static int hf_ulp_realTimeIntegrityRequested = -1;  /* BOOLEAN */
145 static int hf_ulp_navigationModelRequested = -1;  /* BOOLEAN */
146 static int hf_ulp_navigationModelData = -1;       /* NavigationModel */
147 static int hf_ulp_ver2_RequestedAssistData_extension = -1;  /* Ver2_RequestedAssistData_extension */
148 static int hf_ulp_gpsWeek = -1;                   /* INTEGER_0_1023 */
149 static int hf_ulp_gpsToe = -1;                    /* INTEGER_0_167 */
150 static int hf_ulp_nSAT = -1;                      /* INTEGER_0_31 */
151 static int hf_ulp_toeLimit = -1;                  /* INTEGER_0_10 */
152 static int hf_ulp_satInfo = -1;                   /* SatelliteInfo */
153 static int hf_ulp_SatelliteInfo_item = -1;        /* SatelliteInfoElement */
154 static int hf_ulp_satId = -1;                     /* INTEGER_0_63 */
155 static int hf_ulp_iODE = -1;                      /* INTEGER_0_255 */
156 static int hf_ulp_posPayLoad = -1;                /* PosPayLoad */
157 static int hf_ulp_velocity = -1;                  /* Velocity */
158 static int hf_ulp_ver2_SUPL_POS_extension = -1;   /* Ver2_SUPL_POS_extension */
159 static int hf_ulp_tia801payload = -1;             /* OCTET_STRING_SIZE_1_8192 */
160 static int hf_ulp_rrcPayload = -1;                /* OCTET_STRING_SIZE_1_8192 */
161 static int hf_ulp_rrlpPayload = -1;               /* T_rrlpPayload */
162 static int hf_ulp_ver2_PosPayLoad_extension = -1;  /* Ver2_PosPayLoad_extension */
163 static int hf_ulp_statusCode = -1;                /* StatusCode */
164 static int hf_ulp_ver2_SUPL_END_extension = -1;   /* Ver2_SUPL_END_extension */
165 static int hf_ulp_sPCSETKey = -1;                 /* SPCSETKey */
166 static int hf_ulp_sPCTID = -1;                    /* SPCTID */
167 static int hf_ulp_sPCSETKeylifetime = -1;         /* SPCSETKeylifetime */
168 static int hf_ulp_notificationResponse = -1;      /* NotificationResponse */
169 static int hf_ulp_targetSETID = -1;               /* SETId */
170 static int hf_ulp_applicationID = -1;             /* ApplicationID */
171 static int hf_ulp_multipleLocationIds = -1;       /* MultipleLocationIds */
172 static int hf_ulp_thirdParty = -1;                /* ThirdParty */
173 static int hf_ulp_triggerType = -1;               /* TriggerType */
174 static int hf_ulp_triggerParams = -1;             /* TriggerParams */
175 static int hf_ulp_reportingCap = -1;              /* ReportingCap */
176 static int hf_ulp_causeCode = -1;                 /* CauseCode */
177 static int hf_ulp_periodicParams = -1;            /* PeriodicParams */
178 static int hf_ulp_areaEventParams = -1;           /* AreaEventParams */
179 static int hf_ulp_numberOfFixes = -1;             /* INTEGER_1_8639999 */
180 static int hf_ulp_intervalBetweenFixes = -1;      /* INTEGER_1_8639999 */
181 static int hf_ulp_startTime = -1;                 /* INTEGER_0_2678400 */
182 static int hf_ulp_areaEventType = -1;             /* AreaEventType */
183 static int hf_ulp_locationEstimate = -1;          /* BOOLEAN */
184 static int hf_ulp_repeatedReportingParams = -1;   /* RepeatedReportingParams */
185 static int hf_ulp_stopTime = -1;                  /* INTEGER_0_11318399 */
186 static int hf_ulp_geographicTargetAreaList = -1;  /* GeographicTargetAreaList */
187 static int hf_ulp_areaIdLists = -1;               /* SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList */
188 static int hf_ulp_areaIdLists_item = -1;          /* AreaIdList */
189 static int hf_ulp_minimumIntervalTime = -1;       /* INTEGER_1_604800 */
190 static int hf_ulp_maximumNumberOfReports = -1;    /* INTEGER_1_1024 */
191 static int hf_ulp_GeographicTargetAreaList_item = -1;  /* GeographicTargetArea */
192 static int hf_ulp_circularArea = -1;              /* CircularArea */
193 static int hf_ulp_ellipticalArea = -1;            /* EllipticalArea */
194 static int hf_ulp_polygonArea = -1;               /* PolygonArea */
195 static int hf_ulp_areaIdSet = -1;                 /* AreaIdSet */
196 static int hf_ulp_areaIdSetType = -1;             /* AreaIdSetType */
197 static int hf_ulp_geoAreaMappingList = -1;        /* GeoAreaMappingList */
198 static int hf_ulp_AreaIdSet_item = -1;            /* AreaId */
199 static int hf_ulp_gSMAreaId = -1;                 /* GSMAreaId */
200 static int hf_ulp_wCDMAAreaId = -1;               /* WCDMAAreaId */
201 static int hf_ulp_cDMAAreaId = -1;                /* CDMAAreaId */
202 static int hf_ulp_hRPDAreaId = -1;                /* HRPDAreaId */
203 static int hf_ulp_uMBAreaId = -1;                 /* UMBAreaId */
204 static int hf_ulp_lTEAreaId = -1;                 /* LTEAreaId */
205 static int hf_ulp_wLANAreaId = -1;                /* WLANAreaId */
206 static int hf_ulp_wiMAXAreaId = -1;               /* WimaxAreaId */
207 static int hf_ulp_refMCC = -1;                    /* INTEGER_0_999 */
208 static int hf_ulp_refMNC = -1;                    /* INTEGER_0_999 */
209 static int hf_ulp_refLAC = -1;                    /* INTEGER_0_65535 */
210 static int hf_ulp_refCI = -1;                     /* INTEGER_0_65535 */
211 static int hf_ulp_refUC = -1;                     /* INTEGER_0_268435455 */
212 static int hf_ulp_refSID = -1;                    /* INTEGER_0_65535 */
213 static int hf_ulp_refNID = -1;                    /* INTEGER_0_32767 */
214 static int hf_ulp_refBASEID = -1;                 /* INTEGER_0_65535 */
215 static int hf_ulp_refSECTORID = -1;               /* BIT_STRING_SIZE_128 */
216 static int hf_ulp_refCI_01 = -1;                  /* BIT_STRING_SIZE_29 */
217 static int hf_ulp_apMACAddress = -1;              /* BIT_STRING_SIZE_48 */
218 static int hf_ulp_bsID_MSB = -1;                  /* BIT_STRING_SIZE_24 */
219 static int hf_ulp_bsID_LSB = -1;                  /* BIT_STRING_SIZE_24 */
220 static int hf_ulp_GeoAreaMappingList_item = -1;   /* GeoAreaIndex */
221 static int hf_ulp_supportedNetworkInformation = -1;  /* SupportedNetworkInformation */
222 static int hf_ulp_reportingMode = -1;             /* ReportingMode */
223 static int hf_ulp_gnssPosTechnology = -1;         /* GNSSPosTechnology */
224 static int hf_ulp_repMode = -1;                   /* RepMode */
225 static int hf_ulp_batchRepConditions = -1;        /* BatchRepConditions */
226 static int hf_ulp_batchRepType = -1;              /* BatchRepType */
227 static int hf_ulp_num_interval = -1;              /* INTEGER_1_1024 */
228 static int hf_ulp_num_minutes = -1;               /* INTEGER_1_2048 */
229 static int hf_ulp_endofsession = -1;              /* NULL */
230 static int hf_ulp_reportPosition = -1;            /* BOOLEAN */
231 static int hf_ulp_reportMeasurements = -1;        /* BOOLEAN */
232 static int hf_ulp_intermediateReports = -1;       /* BOOLEAN */
233 static int hf_ulp_discardOldest = -1;             /* BOOLEAN */
234 static int hf_ulp_sessionList = -1;               /* SessionList */
235 static int hf_ulp_reportDataList = -1;            /* ReportDataList */
236 static int hf_ulp_moreComponents = -1;            /* NULL */
237 static int hf_ulp_SessionList_item = -1;          /* SessionInformation */
238 static int hf_ulp_ReportDataList_item = -1;       /* ReportData */
239 static int hf_ulp_positionData = -1;              /* PositionData */
240 static int hf_ulp_resultCode = -1;                /* ResultCode */
241 static int hf_ulp_timestamp = -1;                 /* TimeStamp */
242 static int hf_ulp_ganssSignalsInfo = -1;          /* GANSSsignalsInfo */
243 static int hf_ulp_GANSSsignalsInfo_item = -1;     /* GANSSSignalsDescription */
244 static int hf_ulp_ganssId = -1;                   /* INTEGER_0_15 */
245 static int hf_ulp_gANSSSignals = -1;              /* GANSSSignals */
246 static int hf_ulp_absoluteTime = -1;              /* UTCTime */
247 static int hf_ulp_relativeTime = -1;              /* INTEGER_0_31536000 */
248 static int hf_ulp_notificationMode = -1;          /* NotificationMode */
249 static int hf_ulp_e_SLPAddress = -1;              /* SLPAddress */
250 static int hf_ulp_historicReporting = -1;         /* HistoricReporting */
251 static int hf_ulp_protectionLevel = -1;           /* ProtectionLevel */
252 static int hf_ulp_minimumMajorVersion = -1;       /* INTEGER_0_255 */
253 static int hf_ulp_allowedReportingType = -1;      /* AllowedReportingType */
254 static int hf_ulp_reportingCriteria = -1;         /* ReportingCriteria */
255 static int hf_ulp_timeWindow = -1;                /* TimeWindow */
256 static int hf_ulp_maxNumberofReports = -1;        /* INTEGER_1_65536 */
257 static int hf_ulp_minTimeInterval = -1;           /* INTEGER_1_86400 */
258 static int hf_ulp_startTime_01 = -1;              /* INTEGER_M525600_M1 */
259 static int hf_ulp_stopTime_01 = -1;               /* INTEGER_M525599_0 */
260 static int hf_ulp_protlevel = -1;                 /* ProtLevel */
261 static int hf_ulp_basicProtectionParams = -1;     /* BasicProtectionParams */
262 static int hf_ulp_keyIdentifier = -1;             /* OCTET_STRING_SIZE_8 */
263 static int hf_ulp_basicReplayCounter = -1;        /* INTEGER_0_65535 */
264 static int hf_ulp_basicMAC = -1;                  /* BIT_STRING_SIZE_32 */
265 static int hf_ulp_initialApproximateposition = -1;  /* Position */
266 static int hf_ulp_utran_GPSReferenceTimeResult = -1;  /* UTRAN_GPSReferenceTimeResult */
267 static int hf_ulp_utran_GANSSReferenceTimeResult = -1;  /* UTRAN_GANSSReferenceTimeResult */
268 static int hf_ulp_utran_GPSReferenceTimeAssistance = -1;  /* UTRAN_GPSReferenceTimeAssistance */
269 static int hf_ulp_utran_GANSSReferenceTimeAssistance = -1;  /* UTRAN_GANSSReferenceTimeAssistance */
270 static int hf_ulp_emergencyCallLocation = -1;     /* NULL */
271 static int hf_ulp_serviceCapabilities = -1;       /* ServiceCapabilities */
272 static int hf_ulp_supportedBearers = -1;          /* SupportedBearers */
273 static int hf_ulp_servicesSupported = -1;         /* ServicesSupported */
274 static int hf_ulp_reportingCapabilities = -1;     /* ReportingCap */
275 static int hf_ulp_eventTriggerCapabilities = -1;  /* EventTriggerCapabilities */
276 static int hf_ulp_sessionCapabilities = -1;       /* SessionCapabilities */
277 static int hf_ulp_periodicTrigger = -1;           /* BOOLEAN */
278 static int hf_ulp_areaEventTrigger = -1;          /* BOOLEAN */
279 static int hf_ulp_geoAreaShapesSupported = -1;    /* GeoAreaShapesSupported */
280 static int hf_ulp_maxNumGeoAreaSupported = -1;    /* INTEGER_0_maxNumGeoArea */
281 static int hf_ulp_maxAreaIdListSupported = -1;    /* INTEGER_0_maxAreaIdList */
282 static int hf_ulp_maxAreaIdSupportedPerList = -1;  /* INTEGER_0_maxAreaId */
283 static int hf_ulp_ellipticalArea_01 = -1;         /* BOOLEAN */
284 static int hf_ulp_polygonArea_01 = -1;            /* BOOLEAN */
285 static int hf_ulp_maxNumberTotalSessions = -1;    /* INTEGER_1_128 */
286 static int hf_ulp_maxNumberPeriodicSessions = -1;  /* INTEGER_1_32 */
287 static int hf_ulp_maxNumberTriggeredSessions = -1;  /* INTEGER_1_32 */
288 static int hf_ulp_gsm = -1;                       /* BOOLEAN */
289 static int hf_ulp_wcdma = -1;                     /* BOOLEAN */
290 static int hf_ulp_lte = -1;                       /* BOOLEAN */
291 static int hf_ulp_cdma = -1;                      /* BOOLEAN */
292 static int hf_ulp_hprd = -1;                      /* BOOLEAN */
293 static int hf_ulp_umb = -1;                       /* BOOLEAN */
294 static int hf_ulp_wlan = -1;                      /* BOOLEAN */
295 static int hf_ulp_wiMAX = -1;                     /* BOOLEAN */
296 static int hf_ulp_lpp = -1;                       /* BOOLEAN */
297 static int hf_ulp_posProtocolVersionRRLP = -1;    /* PosProtocolVersion3GPP */
298 static int hf_ulp_posProtocolVersionRRC = -1;     /* PosProtocolVersion3GPP */
299 static int hf_ulp_posProtocolVersionTIA801 = -1;  /* PosProtocolVersion3GPP2 */
300 static int hf_ulp_posProtocolVersionLPP = -1;     /* PosProtocolVersion3GPP */
301 static int hf_ulp_majorVersionField = -1;         /* INTEGER_0_255 */
302 static int hf_ulp_technicalVersionField = -1;     /* INTEGER_0_255 */
303 static int hf_ulp_editorialVersionField = -1;     /* INTEGER_0_255 */
304 static int hf_ulp_PosProtocolVersion3GPP2_item = -1;  /* Supported3GPP2PosProtocolVersion */
305 static int hf_ulp_revisionNumber = -1;            /* BIT_STRING_SIZE_6 */
306 static int hf_ulp_pointReleaseNumber = -1;        /* INTEGER_0_255 */
307 static int hf_ulp_internalEditLevel = -1;         /* INTEGER_0_255 */
308 static int hf_ulp_gANSSPositionMethods = -1;      /* GANSSPositionMethods */
309 static int hf_ulp_GANSSPositionMethods_item = -1;  /* GANSSPositionMethod */
310 static int hf_ulp_ganssSBASid = -1;               /* BIT_STRING_SIZE_3 */
311 static int hf_ulp_gANSSPositioningMethodTypes = -1;  /* GANSSPositioningMethodTypes */
312 static int hf_ulp_setAssisted = -1;               /* BOOLEAN */
313 static int hf_ulp_setBased = -1;                  /* BOOLEAN */
314 static int hf_ulp_autonomous = -1;                /* BOOLEAN */
315 static int hf_ulp_ganssRequestedCommonAssistanceDataList = -1;  /* GanssRequestedCommonAssistanceDataList */
316 static int hf_ulp_ganssRequestedGenericAssistanceDataList = -1;  /* GanssRequestedGenericAssistanceDataList */
317 static int hf_ulp_extendedEphemeris = -1;         /* ExtendedEphemeris */
318 static int hf_ulp_extendedEphemerisCheck = -1;    /* ExtendedEphCheck */
319 static int hf_ulp_ganssReferenceTime = -1;        /* BOOLEAN */
320 static int hf_ulp_ganssIonosphericModel = -1;     /* BOOLEAN */
321 static int hf_ulp_ganssAdditionalIonosphericModelForDataID00 = -1;  /* BOOLEAN */
322 static int hf_ulp_ganssAdditionalIonosphericModelForDataID11 = -1;  /* BOOLEAN */
323 static int hf_ulp_ganssEarthOrientationParameters = -1;  /* BOOLEAN */
324 static int hf_ulp_GanssRequestedGenericAssistanceDataList_item = -1;  /* GanssReqGenericData */
325 static int hf_ulp_ganssRealTimeIntegrity = -1;    /* BOOLEAN */
326 static int hf_ulp_ganssDifferentialCorrection = -1;  /* DGANSS_Sig_Id_Req */
327 static int hf_ulp_ganssAlmanac = -1;              /* BOOLEAN */
328 static int hf_ulp_ganssNavigationModelData = -1;  /* GanssNavigationModelData */
329 static int hf_ulp_ganssTimeModels = -1;           /* BIT_STRING_SIZE_16 */
330 static int hf_ulp_ganssReferenceMeasurementInfo = -1;  /* BOOLEAN */
331 static int hf_ulp_ganssDataBits = -1;             /* GanssDataBits */
332 static int hf_ulp_ganssUTCModel = -1;             /* BOOLEAN */
333 static int hf_ulp_ganssAdditionalDataChoices = -1;  /* GanssAdditionalDataChoices */
334 static int hf_ulp_ganssAuxiliaryInformation = -1;  /* BOOLEAN */
335 static int hf_ulp_ganssExtendedEphemeris = -1;    /* ExtendedEphemeris */
336 static int hf_ulp_ganssExtendedEphemerisCheck = -1;  /* GanssExtendedEphCheck */
337 static int hf_ulp_ganssWeek = -1;                 /* INTEGER_0_4095 */
338 static int hf_ulp_ganssToe = -1;                  /* INTEGER_0_167 */
339 static int hf_ulp_t_toeLimit = -1;                /* INTEGER_0_15 */
340 static int hf_ulp_satellitesListRelatedDataList = -1;  /* SatellitesListRelatedDataList */
341 static int hf_ulp_SatellitesListRelatedDataList_item = -1;  /* SatellitesListRelatedData */
342 static int hf_ulp_iod = -1;                       /* INTEGER_0_1023 */
343 static int hf_ulp_ganssTODmin = -1;               /* INTEGER_0_59 */
344 static int hf_ulp_reqDataBitAssistanceList = -1;  /* ReqDataBitAssistanceList */
345 static int hf_ulp_gnssSignals = -1;               /* GANSSSignals */
346 static int hf_ulp_ganssDataBitInterval = -1;      /* INTEGER_0_15 */
347 static int hf_ulp_ganssDataBitSatList = -1;       /* T_ganssDataBitSatList */
348 static int hf_ulp_ganssDataBitSatList_item = -1;  /* INTEGER_0_63 */
349 static int hf_ulp_orbitModelID = -1;              /* INTEGER_0_7 */
350 static int hf_ulp_clockModelID = -1;              /* INTEGER_0_7 */
351 static int hf_ulp_utcModelID = -1;                /* INTEGER_0_7 */
352 static int hf_ulp_almanacModelID = -1;            /* INTEGER_0_7 */
353 static int hf_ulp_validity = -1;                  /* INTEGER_1_256 */
354 static int hf_ulp_beginTime = -1;                 /* GPSTime */
355 static int hf_ulp_endTime = -1;                   /* GPSTime */
356 static int hf_ulp_beginTime_01 = -1;              /* GANSSextEphTime */
357 static int hf_ulp_endTime_01 = -1;                /* GANSSextEphTime */
358 static int hf_ulp_gPSWeek = -1;                   /* INTEGER_0_1023 */
359 static int hf_ulp_gPSTOWhour = -1;                /* INTEGER_0_167 */
360 static int hf_ulp_gANSSday = -1;                  /* INTEGER_0_8191 */
361 static int hf_ulp_gANSSTODhour = -1;              /* INTEGER_0_23 */
362 static int hf_ulp_lPPPayload = -1;                /* T_lPPPayload */
363 static int hf_ulp_lPPPayload_item = -1;           /* T_lPPPayload_item */
364 static int hf_ulp_tIA801Payload = -1;             /* T_tIA801Payload */
365 static int hf_ulp_tIA801Payload_item = -1;        /* OCTET_STRING_SIZE_1_60000 */
366 static int hf_ulp_maj = -1;                       /* INTEGER_0_255 */
367 static int hf_ulp_min = -1;                       /* INTEGER_0_255 */
368 static int hf_ulp_servind = -1;                   /* INTEGER_0_255 */
369 static int hf_ulp_setSessionID = -1;              /* SetSessionID */
370 static int hf_ulp_slpSessionID = -1;              /* SlpSessionID */
371 static int hf_ulp_sessionId = -1;                 /* INTEGER_0_65535 */
372 static int hf_ulp_setId = -1;                     /* SETId */
373 static int hf_ulp_msisdn = -1;                    /* OCTET_STRING_SIZE_8 */
374 static int hf_ulp_mdn = -1;                       /* OCTET_STRING_SIZE_8 */
375 static int hf_ulp_minsi = -1;                     /* BIT_STRING_SIZE_34 */
376 static int hf_ulp_imsi = -1;                      /* OCTET_STRING_SIZE_8 */
377 static int hf_ulp_nai = -1;                       /* IA5String_SIZE_1_1000 */
378 static int hf_ulp_iPAddress = -1;                 /* IPAddress */
379 static int hf_ulp_sessionSlpID = -1;              /* OCTET_STRING_SIZE_4 */
380 static int hf_ulp_slpId = -1;                     /* SLPAddress */
381 static int hf_ulp_ipv4Address = -1;               /* OCTET_STRING_SIZE_4 */
382 static int hf_ulp_ipv6Address = -1;               /* OCTET_STRING_SIZE_16 */
383 static int hf_ulp_fQDN = -1;                      /* FQDN */
384 static int hf_ulp_cellInfo = -1;                  /* CellInfo */
385 static int hf_ulp_status = -1;                    /* Status */
386 static int hf_ulp_gsmCell = -1;                   /* GsmCellInformation */
387 static int hf_ulp_wcdmaCell = -1;                 /* WcdmaCellInformation */
388 static int hf_ulp_cdmaCell = -1;                  /* CdmaCellInformation */
389 static int hf_ulp_ver2_CellInfo_extension = -1;   /* Ver2_CellInfo_extension */
390 static int hf_ulp_timestamp_01 = -1;              /* UTCTime */
391 static int hf_ulp_positionEstimate = -1;          /* PositionEstimate */
392 static int hf_ulp_latitudeSign = -1;              /* T_latitudeSign */
393 static int hf_ulp_latitude = -1;                  /* INTEGER_0_8388607 */
394 static int hf_ulp_longitude = -1;                 /* INTEGER_M8388608_8388607 */
395 static int hf_ulp_uncertainty = -1;               /* T_uncertainty */
396 static int hf_ulp_uncertaintySemiMajor = -1;      /* INTEGER_0_127 */
397 static int hf_ulp_uncertaintySemiMinor = -1;      /* INTEGER_0_127 */
398 static int hf_ulp_orientationMajorAxis = -1;      /* INTEGER_0_180 */
399 static int hf_ulp_confidence = -1;                /* INTEGER_0_100 */
400 static int hf_ulp_altitudeInfo = -1;              /* AltitudeInfo */
401 static int hf_ulp_altitudeDirection = -1;         /* T_altitudeDirection */
402 static int hf_ulp_altitude = -1;                  /* INTEGER_0_32767 */
403 static int hf_ulp_altUncertainty = -1;            /* INTEGER_0_127 */
404 static int hf_ulp_refNID_01 = -1;                 /* INTEGER_0_65535 */
405 static int hf_ulp_refSID_01 = -1;                 /* INTEGER_0_32767 */
406 static int hf_ulp_refBASELAT = -1;                /* INTEGER_0_4194303 */
407 static int hf_ulp_reBASELONG = -1;                /* INTEGER_0_8388607 */
408 static int hf_ulp_refREFPN = -1;                  /* INTEGER_0_511 */
409 static int hf_ulp_refWeekNumber = -1;             /* INTEGER_0_65535 */
410 static int hf_ulp_refSeconds = -1;                /* INTEGER_0_4194303 */
411 static int hf_ulp_nMR = -1;                       /* NMR */
412 static int hf_ulp_tA = -1;                        /* INTEGER_0_255 */
413 static int hf_ulp_frequencyInfo = -1;             /* FrequencyInfo */
414 static int hf_ulp_primaryScramblingCode = -1;     /* INTEGER_0_511 */
415 static int hf_ulp_measuredResultsList = -1;       /* MeasuredResultsList */
416 static int hf_ulp_cellParametersId = -1;          /* INTEGER_0_127 */
417 static int hf_ulp_timingAdvance = -1;             /* TimingAdvance */
418 static int hf_ulp_tA_01 = -1;                     /* INTEGER_0_8191 */
419 static int hf_ulp_tAResolution = -1;              /* TAResolution */
420 static int hf_ulp_chipRate = -1;                  /* ChipRate */
421 static int hf_ulp_modeSpecificFrequencyInfo = -1;  /* FrequencySpecificInfo */
422 static int hf_ulp_fdd_fr = -1;                    /* FrequencyInfoFDD */
423 static int hf_ulp_tdd_fr = -1;                    /* FrequencyInfoTDD */
424 static int hf_ulp_uarfcn_UL = -1;                 /* UARFCN */
425 static int hf_ulp_uarfcn_DL = -1;                 /* UARFCN */
426 static int hf_ulp_uarfcn_Nt = -1;                 /* UARFCN */
427 static int hf_ulp_NMR_item = -1;                  /* NMRelement */
428 static int hf_ulp_aRFCN = -1;                     /* INTEGER_0_1023 */
429 static int hf_ulp_bSIC = -1;                      /* INTEGER_0_63 */
430 static int hf_ulp_rxLev = -1;                     /* INTEGER_0_63 */
431 static int hf_ulp_MeasuredResultsList_item = -1;  /* MeasuredResults */
432 static int hf_ulp_utra_CarrierRSSI = -1;          /* UTRA_CarrierRSSI */
433 static int hf_ulp_cellMeasuredResultsList = -1;   /* CellMeasuredResultsList */
434 static int hf_ulp_CellMeasuredResultsList_item = -1;  /* CellMeasuredResults */
435 static int hf_ulp_cellIdentity = -1;              /* INTEGER_0_268435455 */
436 static int hf_ulp_modeSpecificInfo = -1;          /* T_modeSpecificInfo */
437 static int hf_ulp_fdd = -1;                       /* T_fdd */
438 static int hf_ulp_primaryCPICH_Info = -1;         /* PrimaryCPICH_Info */
439 static int hf_ulp_cpich_Ec_N0 = -1;               /* CPICH_Ec_N0 */
440 static int hf_ulp_cpich_RSCP = -1;                /* CPICH_RSCP */
441 static int hf_ulp_pathloss = -1;                  /* Pathloss */
442 static int hf_ulp_tdd = -1;                       /* T_tdd */
443 static int hf_ulp_cellParametersID = -1;          /* CellParametersID */
444 static int hf_ulp_proposedTGSN = -1;              /* TGSN */
445 static int hf_ulp_primaryCCPCH_RSCP = -1;         /* PrimaryCCPCH_RSCP */
446 static int hf_ulp_timeslotISCP_List = -1;         /* TimeslotISCP_List */
447 static int hf_ulp_TimeslotISCP_List_item = -1;    /* TimeslotISCP */
448 static int hf_ulp_horacc = -1;                    /* INTEGER_0_127 */
449 static int hf_ulp_veracc = -1;                    /* INTEGER_0_127 */
450 static int hf_ulp_maxLocAge = -1;                 /* INTEGER_0_65535 */
451 static int hf_ulp_delay = -1;                     /* INTEGER_0_7 */
452 static int hf_ulp_horvel = -1;                    /* Horvel */
453 static int hf_ulp_horandvervel = -1;              /* Horandvervel */
454 static int hf_ulp_horveluncert = -1;              /* Horveluncert */
455 static int hf_ulp_horandveruncert = -1;           /* Horandveruncert */
456 static int hf_ulp_bearing = -1;                   /* BIT_STRING_SIZE_9 */
457 static int hf_ulp_horspeed = -1;                  /* BIT_STRING_SIZE_16 */
458 static int hf_ulp_verdirect = -1;                 /* BIT_STRING_SIZE_1 */
459 static int hf_ulp_verspeed = -1;                  /* BIT_STRING_SIZE_8 */
460 static int hf_ulp_uncertspeed = -1;               /* BIT_STRING_SIZE_8 */
461 static int hf_ulp_horuncertspeed = -1;            /* BIT_STRING_SIZE_8 */
462 static int hf_ulp_veruncertspeed = -1;            /* BIT_STRING_SIZE_8 */
463 static int hf_ulp_MultipleLocationIds_item = -1;  /* LocationIdData */
464 static int hf_ulp_relativetimestamp = -1;         /* RelativeTime */
465 static int hf_ulp_servingFlag = -1;               /* BOOLEAN */
466 static int hf_ulp_wLAN = -1;                      /* BOOLEAN */
467 static int hf_ulp_supportedWLANInfo = -1;         /* SupportedWLANInfo */
468 static int hf_ulp_supportedWLANApsList = -1;      /* SupportedWLANApsList */
469 static int hf_ulp_gSM = -1;                       /* BOOLEAN */
470 static int hf_ulp_wCDMA = -1;                     /* BOOLEAN */
471 static int hf_ulp_supportedWCDMAInfo = -1;        /* SupportedWCDMAInfo */
472 static int hf_ulp_cDMA = -1;                      /* BOOLEAN */
473 static int hf_ulp_hRDP = -1;                      /* BOOLEAN */
474 static int hf_ulp_uMB = -1;                       /* BOOLEAN */
475 static int hf_ulp_lTE = -1;                       /* BOOLEAN */
476 static int hf_ulp_wIMAX = -1;                     /* BOOLEAN */
477 static int hf_ulp_historic = -1;                  /* BOOLEAN */
478 static int hf_ulp_nonServing = -1;                /* BOOLEAN */
479 static int hf_ulp_uTRANGPSReferenceTime = -1;     /* BOOLEAN */
480 static int hf_ulp_uTRANGANSSReferenceTime = -1;   /* BOOLEAN */
481 static int hf_ulp_apTP = -1;                      /* BOOLEAN */
482 static int hf_ulp_apAG = -1;                      /* BOOLEAN */
483 static int hf_ulp_apSN = -1;                      /* BOOLEAN */
484 static int hf_ulp_apDevType = -1;                 /* BOOLEAN */
485 static int hf_ulp_apRSSI = -1;                    /* BOOLEAN */
486 static int hf_ulp_apChanFreq = -1;                /* BOOLEAN */
487 static int hf_ulp_apRTD = -1;                     /* BOOLEAN */
488 static int hf_ulp_setTP = -1;                     /* BOOLEAN */
489 static int hf_ulp_setAG = -1;                     /* BOOLEAN */
490 static int hf_ulp_setSN = -1;                     /* BOOLEAN */
491 static int hf_ulp_setRSSI = -1;                   /* BOOLEAN */
492 static int hf_ulp_apRepLoc = -1;                  /* BOOLEAN */
493 static int hf_ulp_supportedWLANApDataList = -1;   /* SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData */
494 static int hf_ulp_supportedWLANApDataList_item = -1;  /* SupportedWLANApData */
495 static int hf_ulp_supportedWLANapsChannel11a = -1;  /* SupportedWLANApsChannel11a */
496 static int hf_ulp_supportedWLANapsChannel11bg = -1;  /* SupportedWLANApsChannel11bg */
497 static int hf_ulp_ch34 = -1;                      /* BOOLEAN */
498 static int hf_ulp_ch36 = -1;                      /* BOOLEAN */
499 static int hf_ulp_ch38 = -1;                      /* BOOLEAN */
500 static int hf_ulp_ch40 = -1;                      /* BOOLEAN */
501 static int hf_ulp_ch42 = -1;                      /* BOOLEAN */
502 static int hf_ulp_ch44 = -1;                      /* BOOLEAN */
503 static int hf_ulp_ch46 = -1;                      /* BOOLEAN */
504 static int hf_ulp_ch48 = -1;                      /* BOOLEAN */
505 static int hf_ulp_ch52 = -1;                      /* BOOLEAN */
506 static int hf_ulp_ch56 = -1;                      /* BOOLEAN */
507 static int hf_ulp_ch60 = -1;                      /* BOOLEAN */
508 static int hf_ulp_ch64 = -1;                      /* BOOLEAN */
509 static int hf_ulp_ch149 = -1;                     /* BOOLEAN */
510 static int hf_ulp_ch153 = -1;                     /* BOOLEAN */
511 static int hf_ulp_ch157 = -1;                     /* BOOLEAN */
512 static int hf_ulp_ch161 = -1;                     /* BOOLEAN */
513 static int hf_ulp_ch1 = -1;                       /* BOOLEAN */
514 static int hf_ulp_ch2 = -1;                       /* BOOLEAN */
515 static int hf_ulp_ch3 = -1;                       /* BOOLEAN */
516 static int hf_ulp_ch4 = -1;                       /* BOOLEAN */
517 static int hf_ulp_ch5 = -1;                       /* BOOLEAN */
518 static int hf_ulp_ch6 = -1;                       /* BOOLEAN */
519 static int hf_ulp_ch7 = -1;                       /* BOOLEAN */
520 static int hf_ulp_ch8 = -1;                       /* BOOLEAN */
521 static int hf_ulp_ch9 = -1;                       /* BOOLEAN */
522 static int hf_ulp_ch10 = -1;                      /* BOOLEAN */
523 static int hf_ulp_ch11 = -1;                      /* BOOLEAN */
524 static int hf_ulp_ch12 = -1;                      /* BOOLEAN */
525 static int hf_ulp_ch13 = -1;                      /* BOOLEAN */
526 static int hf_ulp_ch14 = -1;                      /* BOOLEAN */
527 static int hf_ulp_apDevType_01 = -1;              /* T_apDevType */
528 static int hf_ulp_mRL = -1;                       /* BOOLEAN */
529 static int hf_ulp_hrpdCell = -1;                  /* HrpdCellInformation */
530 static int hf_ulp_umbCell = -1;                   /* UmbCellInformation */
531 static int hf_ulp_lteCell = -1;                   /* LteCellInformation */
532 static int hf_ulp_wlanAP = -1;                    /* WlanAPInformation */
533 static int hf_ulp_wimaxBS = -1;                   /* WimaxBSInformation */
534 static int hf_ulp_cellGlobalIdEUTRA = -1;         /* CellGlobalIdEUTRA */
535 static int hf_ulp_physCellId = -1;                /* PhysCellId */
536 static int hf_ulp_trackingAreaCode = -1;          /* TrackingAreaCode */
537 static int hf_ulp_rsrpResult = -1;                /* RSRP_Range */
538 static int hf_ulp_rsrqResult = -1;                /* RSRQ_Range */
539 static int hf_ulp_tA_02 = -1;                     /* INTEGER_0_1282 */
540 static int hf_ulp_measResultListEUTRA = -1;       /* MeasResultListEUTRA */
541 static int hf_ulp_earfcn = -1;                    /* INTEGER_0_65535 */
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 63 "../../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 67 "../../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 70 "../../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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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   { &hf_ulp_earfcn          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
3026   { NULL, 0, 0, NULL }
3027 };
3028
3029 static int
3030 dissect_ulp_T_measResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3031   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3032                                    ett_ulp_T_measResult, T_measResult_sequence);
3033
3034   return offset;
3035 }
3036
3037
3038 static const per_sequence_t MeasResultEUTRA_sequence[] = {
3039   { &hf_ulp_physCellId      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellId },
3040   { &hf_ulp_cgi_Info        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_T_cgi_Info },
3041   { &hf_ulp_measResult      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_measResult },
3042   { NULL, 0, 0, NULL }
3043 };
3044
3045 static int
3046 dissect_ulp_MeasResultEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3047   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3048                                    ett_ulp_MeasResultEUTRA, MeasResultEUTRA_sequence);
3049
3050   return offset;
3051 }
3052
3053
3054 static const per_sequence_t MeasResultListEUTRA_sequence_of[1] = {
3055   { &hf_ulp_MeasResultListEUTRA_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MeasResultEUTRA },
3056 };
3057
3058 static int
3059 dissect_ulp_MeasResultListEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3060   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3061                                                   ett_ulp_MeasResultListEUTRA, MeasResultListEUTRA_sequence_of,
3062                                                   1, maxCellReport, FALSE);
3063
3064   return offset;
3065 }
3066
3067
3068 static const per_sequence_t LteCellInformation_sequence[] = {
3069   { &hf_ulp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellGlobalIdEUTRA },
3070   { &hf_ulp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellId },
3071   { &hf_ulp_trackingAreaCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCode },
3072   { &hf_ulp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRP_Range },
3073   { &hf_ulp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range },
3074   { &hf_ulp_tA_02           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1282 },
3075   { &hf_ulp_measResultListEUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MeasResultListEUTRA },
3076   { &hf_ulp_earfcn          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
3077   { NULL, 0, 0, NULL }
3078 };
3079
3080 static int
3081 dissect_ulp_LteCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3082   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3083                                    ett_ulp_LteCellInformation, LteCellInformation_sequence);
3084
3085   return offset;
3086 }
3087
3088
3089
3090 static int
3091 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_) {
3092   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3093                                                             -127, 128U, NULL, FALSE);
3094
3095   return offset;
3096 }
3097
3098
3099 static const value_string ulp_T_apDeviceType_vals[] = {
3100   {   0, "wlan802-11a" },
3101   {   1, "wlan802-11b" },
3102   {   2, "wlan802-11g" },
3103   { 0, NULL }
3104 };
3105
3106
3107 static int
3108 dissect_ulp_T_apDeviceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3109   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3110                                      3, NULL, TRUE, 0, NULL);
3111
3112   return offset;
3113 }
3114
3115
3116
3117 static int
3118 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_) {
3119   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3120                                                             0U, 256U, NULL, FALSE);
3121
3122   return offset;
3123 }
3124
3125
3126
3127 static int
3128 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_) {
3129   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3130                                                             0U, 16777216U, NULL, FALSE);
3131
3132   return offset;
3133 }
3134
3135
3136 static const value_string ulp_RTDUnits_vals[] = {
3137   {   0, "microseconds" },
3138   {   1, "hundredsofnanoseconds" },
3139   {   2, "tensofnanoseconds" },
3140   {   3, "nanoseconds" },
3141   {   4, "tenthsofnanoseconds" },
3142   { 0, NULL }
3143 };
3144
3145
3146 static int
3147 dissect_ulp_RTDUnits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3148   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3149                                      5, NULL, TRUE, 0, NULL);
3150
3151   return offset;
3152 }
3153
3154
3155 static const per_sequence_t RTD_sequence[] = {
3156   { &hf_ulp_rTDValue        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_16777216 },
3157   { &hf_ulp_rTDUnits        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RTDUnits },
3158   { &hf_ulp_rTDAccuracy     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3159   { NULL, 0, 0, NULL }
3160 };
3161
3162 static int
3163 dissect_ulp_RTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3164   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3165                                    ett_ulp_RTD, RTD_sequence);
3166
3167   return offset;
3168 }
3169
3170
3171 static const value_string ulp_LocationEncodingDescriptor_vals[] = {
3172   {   0, "lCI" },
3173   {   1, "aSN1" },
3174   { 0, NULL }
3175 };
3176
3177
3178 static int
3179 dissect_ulp_LocationEncodingDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3180   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3181                                      2, NULL, TRUE, 0, NULL);
3182
3183   return offset;
3184 }
3185
3186
3187
3188 static int
3189 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_) {
3190   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3191                                                             0U, 4294967295U, NULL, FALSE);
3192
3193   return offset;
3194 }
3195
3196
3197
3198 static int
3199 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_) {
3200   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3201                                        1, 128, FALSE, NULL);
3202
3203   return offset;
3204 }
3205
3206
3207 static const per_sequence_t LocationData_sequence[] = {
3208   { &hf_ulp_locationAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_4294967295 },
3209   { &hf_ulp_locationValue   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_1_128 },
3210   { NULL, 0, 0, NULL }
3211 };
3212
3213 static int
3214 dissect_ulp_LocationData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3215   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3216                                    ett_ulp_LocationData, LocationData_sequence);
3217
3218   return offset;
3219 }
3220
3221
3222 static const per_sequence_t ReportedLocation_sequence[] = {
3223   { &hf_ulp_locationEncodingDescriptor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationEncodingDescriptor },
3224   { &hf_ulp_locationData    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationData },
3225   { NULL, 0, 0, NULL }
3226 };
3227
3228 static int
3229 dissect_ulp_ReportedLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3230   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3231                                    ett_ulp_ReportedLocation, ReportedLocation_sequence);
3232
3233   return offset;
3234 }
3235
3236
3237 static const per_sequence_t WlanAPInformation_sequence[] = {
3238   { &hf_ulp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_48 },
3239   { &hf_ulp_apTransmitPower , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3240   { &hf_ulp_apAntennaGain   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3241   { &hf_ulp_apSignaltoNoise , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3242   { &hf_ulp_apDeviceType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_apDeviceType },
3243   { &hf_ulp_apSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3244   { &hf_ulp_apChannelFrequency, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_256 },
3245   { &hf_ulp_apRoundTripDelay, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RTD },
3246   { &hf_ulp_setTransmitPower, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3247   { &hf_ulp_setAntennaGain  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3248   { &hf_ulp_setSignaltoNoise, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3249   { &hf_ulp_setSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
3250   { &hf_ulp_apReportedLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportedLocation },
3251   { NULL, 0, 0, NULL }
3252 };
3253
3254 static int
3255 dissect_ulp_WlanAPInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3256   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3257                                    ett_ulp_WlanAPInformation, WlanAPInformation_sequence);
3258
3259   return offset;
3260 }
3261
3262
3263
3264 static int
3265 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_) {
3266   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3267                                      24, 24, FALSE, NULL, NULL);
3268
3269   return offset;
3270 }
3271
3272
3273 static const per_sequence_t WimaxBsID_sequence[] = {
3274   { &hf_ulp_bsID_MSB        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_24 },
3275   { &hf_ulp_bsID_LSB        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_24 },
3276   { NULL, 0, 0, NULL }
3277 };
3278
3279 static int
3280 dissect_ulp_WimaxBsID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3281   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3282                                    ett_ulp_WimaxBsID, WimaxBsID_sequence);
3283
3284   return offset;
3285 }
3286
3287
3288 static const per_sequence_t WimaxRTD_sequence[] = {
3289   { &hf_ulp_rTD             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3290   { &hf_ulp_rTDstd          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1023 },
3291   { NULL, 0, 0, NULL }
3292 };
3293
3294 static int
3295 dissect_ulp_WimaxRTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3296   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3297                                    ett_ulp_WimaxRTD, WimaxRTD_sequence);
3298
3299   return offset;
3300 }
3301
3302
3303
3304 static int
3305 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_) {
3306   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3307                                                             -32768, 32767U, NULL, FALSE);
3308
3309   return offset;
3310 }
3311
3312
3313 static const per_sequence_t WimaxNMR_sequence[] = {
3314   { &hf_ulp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxBsID },
3315   { &hf_ulp_relDelay        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M32768_32767 },
3316   { &hf_ulp_relDelaystd     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1023 },
3317   { &hf_ulp_rSSI            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3318   { &hf_ulp_rSSIstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_63 },
3319   { &hf_ulp_bSTxPower       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3320   { &hf_ulp_cINR            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3321   { &hf_ulp_cINRstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_63 },
3322   { &hf_ulp_bSLocation      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportedLocation },
3323   { NULL, 0, 0, NULL }
3324 };
3325
3326 static int
3327 dissect_ulp_WimaxNMR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3328   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3329                                    ett_ulp_WimaxNMR, WimaxNMR_sequence);
3330
3331   return offset;
3332 }
3333
3334
3335 static const per_sequence_t WimaxNMRList_sequence_of[1] = {
3336   { &hf_ulp_WimaxNMRList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxNMR },
3337 };
3338
3339 static int
3340 dissect_ulp_WimaxNMRList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3341   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3342                                                   ett_ulp_WimaxNMRList, WimaxNMRList_sequence_of,
3343                                                   1, maxWimaxBSMeas, FALSE);
3344
3345   return offset;
3346 }
3347
3348
3349 static const per_sequence_t WimaxBSInformation_sequence[] = {
3350   { &hf_ulp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxBsID },
3351   { &hf_ulp_wimaxRTD        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_WimaxRTD },
3352   { &hf_ulp_wimaxNMRList    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_WimaxNMRList },
3353   { NULL, 0, 0, NULL }
3354 };
3355
3356 static int
3357 dissect_ulp_WimaxBSInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3358   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3359                                    ett_ulp_WimaxBSInformation, WimaxBSInformation_sequence);
3360
3361   return offset;
3362 }
3363
3364
3365 static const value_string ulp_Ver2_CellInfo_extension_vals[] = {
3366   {   0, "hrpdCell" },
3367   {   1, "umbCell" },
3368   {   2, "lteCell" },
3369   {   3, "wlanAP" },
3370   {   4, "wimaxBS" },
3371   { 0, NULL }
3372 };
3373
3374 static const per_choice_t Ver2_CellInfo_extension_choice[] = {
3375   {   0, &hf_ulp_hrpdCell        , ASN1_EXTENSION_ROOT    , dissect_ulp_HrpdCellInformation },
3376   {   1, &hf_ulp_umbCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_UmbCellInformation },
3377   {   2, &hf_ulp_lteCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_LteCellInformation },
3378   {   3, &hf_ulp_wlanAP          , ASN1_EXTENSION_ROOT    , dissect_ulp_WlanAPInformation },
3379   {   4, &hf_ulp_wimaxBS         , ASN1_EXTENSION_ROOT    , dissect_ulp_WimaxBSInformation },
3380   { 0, NULL, 0, NULL }
3381 };
3382
3383 static int
3384 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_) {
3385   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3386                                  ett_ulp_Ver2_CellInfo_extension, Ver2_CellInfo_extension_choice,
3387                                  NULL);
3388
3389   return offset;
3390 }
3391
3392
3393 static const value_string ulp_CellInfo_vals[] = {
3394   {   0, "gsmCell" },
3395   {   1, "wcdmaCell" },
3396   {   2, "cdmaCell" },
3397   {   3, "ver2-CellInfo-extension" },
3398   { 0, NULL }
3399 };
3400
3401 static const per_choice_t CellInfo_choice[] = {
3402   {   0, &hf_ulp_gsmCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_GsmCellInformation },
3403   {   1, &hf_ulp_wcdmaCell       , ASN1_EXTENSION_ROOT    , dissect_ulp_WcdmaCellInformation },
3404   {   2, &hf_ulp_cdmaCell        , ASN1_EXTENSION_ROOT    , dissect_ulp_CdmaCellInformation },
3405   {   3, &hf_ulp_ver2_CellInfo_extension, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_CellInfo_extension },
3406   { 0, NULL, 0, NULL }
3407 };
3408
3409 static int
3410 dissect_ulp_CellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3411   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3412                                  ett_ulp_CellInfo, CellInfo_choice,
3413                                  NULL);
3414
3415   return offset;
3416 }
3417
3418
3419 static const value_string ulp_Status_vals[] = {
3420   {   0, "stale" },
3421   {   1, "current" },
3422   {   2, "unknown" },
3423   { 0, NULL }
3424 };
3425
3426
3427 static int
3428 dissect_ulp_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3429   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3430                                      3, NULL, TRUE, 0, NULL);
3431
3432   return offset;
3433 }
3434
3435
3436 static const per_sequence_t LocationId_sequence[] = {
3437   { &hf_ulp_cellInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellInfo },
3438   { &hf_ulp_status          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Status },
3439   { NULL, 0, 0, NULL }
3440 };
3441
3442 static int
3443 dissect_ulp_LocationId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3444   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3445                                    ett_ulp_LocationId, LocationId_sequence);
3446
3447   return offset;
3448 }
3449
3450
3451
3452 static int
3453 dissect_ulp_RelativeTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3454   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3455                                                             0U, 65535U, NULL, FALSE);
3456
3457   return offset;
3458 }
3459
3460
3461 static const per_sequence_t LocationIdData_sequence[] = {
3462   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
3463   { &hf_ulp_relativetimestamp, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RelativeTime },
3464   { &hf_ulp_servingFlag     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
3465   { NULL, 0, 0, NULL }
3466 };
3467
3468 static int
3469 dissect_ulp_LocationIdData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3470   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3471                                    ett_ulp_LocationIdData, LocationIdData_sequence);
3472
3473   return offset;
3474 }
3475
3476
3477 static const per_sequence_t MultipleLocationIds_sequence_of[1] = {
3478   { &hf_ulp_MultipleLocationIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_LocationIdData },
3479 };
3480
3481 static int
3482 dissect_ulp_MultipleLocationIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3483   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3484                                                   ett_ulp_MultipleLocationIds, MultipleLocationIds_sequence_of,
3485                                                   1, maxLidSize, FALSE);
3486
3487   return offset;
3488 }
3489
3490
3491
3492 static int
3493 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_) {
3494 #line 72 "../../asn1/ulp/ulp.cnf"
3495   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
3496                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
3497                                                       NULL);
3498
3499
3500   return offset;
3501 }
3502
3503
3504
3505 static int
3506 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_) {
3507 #line 77 "../../asn1/ulp/ulp.cnf"
3508   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
3509                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
3510                                                       NULL);
3511
3512
3513   return offset;
3514 }
3515
3516
3517
3518 static int
3519 dissect_ulp_T_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3520 #line 82 "../../asn1/ulp/ulp.cnf"
3521   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
3522                                                       1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%#", 69,
3523                                                       NULL);
3524
3525
3526
3527
3528   return offset;
3529 }
3530
3531
3532 static const value_string ulp_ThirdPartyID_vals[] = {
3533   {   0, "logicalName" },
3534   {   1, "msisdn" },
3535   {   2, "emailaddr" },
3536   {   3, "sip-uri" },
3537   {   4, "ims-public-identity" },
3538   {   5, "min" },
3539   {   6, "mdn" },
3540   {   7, "uri" },
3541   { 0, NULL }
3542 };
3543
3544 static const per_choice_t ThirdPartyID_choice[] = {
3545   {   0, &hf_ulp_logicalName     , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
3546   {   1, &hf_ulp_msisdn          , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_8 },
3547   {   2, &hf_ulp_emailaddr       , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
3548   {   3, &hf_ulp_sip_uri         , ASN1_EXTENSION_ROOT    , dissect_ulp_T_sip_uri },
3549   {   4, &hf_ulp_ims_public_identity, ASN1_EXTENSION_ROOT    , dissect_ulp_T_ims_public_identity },
3550   {   5, &hf_ulp_min_01          , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_34 },
3551   {   6, &hf_ulp_mdn             , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_8 },
3552   {   7, &hf_ulp_uri             , ASN1_EXTENSION_ROOT    , dissect_ulp_T_uri },
3553   { 0, NULL, 0, NULL }
3554 };
3555
3556 static int
3557 dissect_ulp_ThirdPartyID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3558   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3559                                  ett_ulp_ThirdPartyID, ThirdPartyID_choice,
3560                                  NULL);
3561
3562   return offset;
3563 }
3564
3565
3566 static const per_sequence_t ThirdParty_sequence_of[1] = {
3567   { &hf_ulp_ThirdParty_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ThirdPartyID },
3568 };
3569
3570 static int
3571 dissect_ulp_ThirdParty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3572   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3573                                                   ett_ulp_ThirdParty, ThirdParty_sequence_of,
3574                                                   1, 64, FALSE);
3575
3576   return offset;
3577 }
3578
3579
3580
3581 static int
3582 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_) {
3583   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3584                                           1, 24, FALSE);
3585
3586   return offset;
3587 }
3588
3589
3590
3591 static int
3592 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_) {
3593   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3594                                           1, 32, FALSE);
3595
3596   return offset;
3597 }
3598
3599
3600
3601 static int
3602 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_) {
3603   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3604                                           1, 8, FALSE);
3605
3606   return offset;
3607 }
3608
3609
3610 static const per_sequence_t ApplicationID_sequence[] = {
3611   { &hf_ulp_appProvider     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_IA5String_SIZE_1_24 },
3612   { &hf_ulp_appName         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_IA5String_SIZE_1_32 },
3613   { &hf_ulp_appVersion      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_IA5String_SIZE_1_8 },
3614   { NULL, 0, 0, NULL }
3615 };
3616
3617 static int
3618 dissect_ulp_ApplicationID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3619   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3620                                    ett_ulp_ApplicationID, ApplicationID_sequence);
3621
3622   return offset;
3623 }
3624
3625
3626
3627 static int
3628 dissect_ulp_UTCTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3629   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
3630                                         NO_BOUND, NO_BOUND, FALSE);
3631
3632   return offset;
3633 }
3634
3635
3636 static const value_string ulp_T_latitudeSign_vals[] = {
3637   {   0, "north" },
3638   {   1, "south" },
3639   { 0, NULL }
3640 };
3641
3642
3643 static int
3644 dissect_ulp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3645   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3646                                      2, NULL, FALSE, 0, NULL);
3647
3648   return offset;
3649 }
3650
3651
3652
3653 static int
3654 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_) {
3655   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3656                                                             -8388608, 8388607U, NULL, FALSE);
3657
3658   return offset;
3659 }
3660
3661
3662
3663 static int
3664 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_) {
3665   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3666                                                             0U, 180U, NULL, FALSE);
3667
3668   return offset;
3669 }
3670
3671
3672 static const per_sequence_t T_uncertainty_sequence[] = {
3673   { &hf_ulp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
3674   { &hf_ulp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
3675   { &hf_ulp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_180 },
3676   { NULL, 0, 0, NULL }
3677 };
3678
3679 static int
3680 dissect_ulp_T_uncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3681   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3682                                    ett_ulp_T_uncertainty, T_uncertainty_sequence);
3683
3684   return offset;
3685 }
3686
3687
3688
3689 static int
3690 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_) {
3691   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3692                                                             0U, 100U, NULL, FALSE);
3693
3694   return offset;
3695 }
3696
3697
3698 static const value_string ulp_T_altitudeDirection_vals[] = {
3699   {   0, "height" },
3700   {   1, "depth" },
3701   { 0, NULL }
3702 };
3703
3704
3705 static int
3706 dissect_ulp_T_altitudeDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3707   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3708                                      2, NULL, FALSE, 0, NULL);
3709
3710   return offset;
3711 }
3712
3713
3714 static const per_sequence_t AltitudeInfo_sequence[] = {
3715   { &hf_ulp_altitudeDirection, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_altitudeDirection },
3716   { &hf_ulp_altitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
3717   { &hf_ulp_altUncertainty  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
3718   { NULL, 0, 0, NULL }
3719 };
3720
3721 static int
3722 dissect_ulp_AltitudeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3723   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3724                                    ett_ulp_AltitudeInfo, AltitudeInfo_sequence);
3725
3726   return offset;
3727 }
3728
3729
3730 static const per_sequence_t PositionEstimate_sequence[] = {
3731   { &hf_ulp_latitudeSign    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign },
3732   { &hf_ulp_latitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
3733   { &hf_ulp_longitude       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
3734   { &hf_ulp_uncertainty     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_uncertainty },
3735   { &hf_ulp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_100 },
3736   { &hf_ulp_altitudeInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_AltitudeInfo },
3737   { NULL, 0, 0, NULL }
3738 };
3739
3740 static int
3741 dissect_ulp_PositionEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3742   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3743                                    ett_ulp_PositionEstimate, PositionEstimate_sequence);
3744
3745   return offset;
3746 }
3747
3748
3749
3750 static int
3751 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_) {
3752   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3753                                      9, 9, FALSE, NULL, NULL);
3754
3755   return offset;
3756 }
3757
3758
3759
3760 static int
3761 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_) {
3762   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3763                                      16, 16, FALSE, NULL, NULL);
3764
3765   return offset;
3766 }
3767
3768
3769 static const per_sequence_t Horvel_sequence[] = {
3770   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3771   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3772   { NULL, 0, 0, NULL }
3773 };
3774
3775 static int
3776 dissect_ulp_Horvel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3777   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3778                                    ett_ulp_Horvel, Horvel_sequence);
3779
3780   return offset;
3781 }
3782
3783
3784
3785 static int
3786 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_) {
3787   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3788                                      1, 1, FALSE, NULL, NULL);
3789
3790   return offset;
3791 }
3792
3793
3794
3795 static int
3796 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_) {
3797   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3798                                      8, 8, FALSE, NULL, NULL);
3799
3800   return offset;
3801 }
3802
3803
3804 static const per_sequence_t Horandvervel_sequence[] = {
3805   { &hf_ulp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_1 },
3806   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3807   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3808   { &hf_ulp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3809   { NULL, 0, 0, NULL }
3810 };
3811
3812 static int
3813 dissect_ulp_Horandvervel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3814   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3815                                    ett_ulp_Horandvervel, Horandvervel_sequence);
3816
3817   return offset;
3818 }
3819
3820
3821 static const per_sequence_t Horveluncert_sequence[] = {
3822   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3823   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3824   { &hf_ulp_uncertspeed     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3825   { NULL, 0, 0, NULL }
3826 };
3827
3828 static int
3829 dissect_ulp_Horveluncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3830   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3831                                    ett_ulp_Horveluncert, Horveluncert_sequence);
3832
3833   return offset;
3834 }
3835
3836
3837 static const per_sequence_t Horandveruncert_sequence[] = {
3838   { &hf_ulp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_1 },
3839   { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
3840   { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
3841   { &hf_ulp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3842   { &hf_ulp_horuncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3843   { &hf_ulp_veruncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3844   { NULL, 0, 0, NULL }
3845 };
3846
3847 static int
3848 dissect_ulp_Horandveruncert(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3849   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3850                                    ett_ulp_Horandveruncert, Horandveruncert_sequence);
3851
3852   return offset;
3853 }
3854
3855
3856 static const value_string ulp_Velocity_vals[] = {
3857   {   0, "horvel" },
3858   {   1, "horandvervel" },
3859   {   2, "horveluncert" },
3860   {   3, "horandveruncert" },
3861   { 0, NULL }
3862 };
3863
3864 static const per_choice_t Velocity_choice[] = {
3865   {   0, &hf_ulp_horvel          , ASN1_EXTENSION_ROOT    , dissect_ulp_Horvel },
3866   {   1, &hf_ulp_horandvervel    , ASN1_EXTENSION_ROOT    , dissect_ulp_Horandvervel },
3867   {   2, &hf_ulp_horveluncert    , ASN1_EXTENSION_ROOT    , dissect_ulp_Horveluncert },
3868   {   3, &hf_ulp_horandveruncert , ASN1_EXTENSION_ROOT    , dissect_ulp_Horandveruncert },
3869   { 0, NULL, 0, NULL }
3870 };
3871
3872 static int
3873 dissect_ulp_Velocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3874   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3875                                  ett_ulp_Velocity, Velocity_choice,
3876                                  NULL);
3877
3878   return offset;
3879 }
3880
3881
3882 static const per_sequence_t Position_sequence[] = {
3883   { &hf_ulp_timestamp_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UTCTime },
3884   { &hf_ulp_positionEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PositionEstimate },
3885   { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
3886   { NULL, 0, 0, NULL }
3887 };
3888
3889 static int
3890 dissect_ulp_Position(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3891   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3892                                    ett_ulp_Position, Position_sequence);
3893
3894   return offset;
3895 }
3896
3897
3898 static const per_sequence_t Ver2_SUPL_START_extension_sequence[] = {
3899   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
3900   { &hf_ulp_thirdParty      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ThirdParty },
3901   { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
3902   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
3903   { NULL, 0, 0, NULL }
3904 };
3905
3906 static int
3907 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_) {
3908   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3909                                    ett_ulp_Ver2_SUPL_START_extension, Ver2_SUPL_START_extension_sequence);
3910
3911   return offset;
3912 }
3913
3914
3915 static const per_sequence_t SUPLSTART_sequence[] = {
3916   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
3917   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
3918   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
3919   { &hf_ulp_ver2_SUPL_START_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_START_extension },
3920   { NULL, 0, 0, NULL }
3921 };
3922
3923 static int
3924 dissect_ulp_SUPLSTART(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3925   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3926                                    ett_ulp_SUPLSTART, SUPLSTART_sequence);
3927
3928   return offset;
3929 }
3930
3931
3932
3933 static int
3934 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_) {
3935   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3936                                      256, 256, FALSE, NULL, NULL);
3937
3938   return offset;
3939 }
3940
3941
3942 static const value_string ulp_SETAuthKey_vals[] = {
3943   {   0, "shortKey" },
3944   {   1, "longKey" },
3945   { 0, NULL }
3946 };
3947
3948 static const per_choice_t SETAuthKey_choice[] = {
3949   {   0, &hf_ulp_shortKey        , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_128 },
3950   {   1, &hf_ulp_longKey         , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_256 },
3951   { 0, NULL, 0, NULL }
3952 };
3953
3954 static int
3955 dissect_ulp_SETAuthKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3956   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3957                                  ett_ulp_SETAuthKey, SETAuthKey_choice,
3958                                  NULL);
3959
3960   return offset;
3961 }
3962
3963
3964
3965 static int
3966 dissect_ulp_KeyIdentity4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3967   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3968                                      128, 128, FALSE, NULL, NULL);
3969
3970   return offset;
3971 }
3972
3973
3974
3975 static int
3976 dissect_ulp_SPCSETKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3977   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3978                                      128, 128, FALSE, NULL, NULL);
3979
3980   return offset;
3981 }
3982
3983
3984 static const per_sequence_t SPCTID_sequence[] = {
3985   { &hf_ulp_rAND            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
3986   { &hf_ulp_slpFQDN         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_FQDN },
3987   { NULL, 0, 0, NULL }
3988 };
3989
3990 static int
3991 dissect_ulp_SPCTID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3992   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3993                                    ett_ulp_SPCTID, SPCTID_sequence);
3994
3995   return offset;
3996 }
3997
3998
3999
4000 static int
4001 dissect_ulp_SPCSETKeylifetime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4002   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4003                                                             1U, 24U, NULL, FALSE);
4004
4005   return offset;
4006 }
4007
4008
4009 static const per_sequence_t Ver2_SUPL_RESPONSE_extension_sequence[] = {
4010   { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
4011   { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKey },
4012   { &hf_ulp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCTID },
4013   { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
4014   { &hf_ulp_initialApproximateposition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
4015   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
4016   { NULL, 0, 0, NULL }
4017 };
4018
4019 static int
4020 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_) {
4021   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4022                                    ett_ulp_Ver2_SUPL_RESPONSE_extension, Ver2_SUPL_RESPONSE_extension_sequence);
4023
4024   return offset;
4025 }
4026
4027
4028 static const per_sequence_t SUPLRESPONSE_sequence[] = {
4029   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
4030   { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
4031   { &hf_ulp_sETAuthKey      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETAuthKey },
4032   { &hf_ulp_keyIdentity4    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_KeyIdentity4 },
4033   { &hf_ulp_ver2_SUPL_RESPONSE_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_RESPONSE_extension },
4034   { NULL, 0, 0, NULL }
4035 };
4036
4037 static int
4038 dissect_ulp_SUPLRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4039   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4040                                    ett_ulp_SUPLRESPONSE, SUPLRESPONSE_sequence);
4041
4042   return offset;
4043 }
4044
4045
4046
4047 static int
4048 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_) {
4049   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4050                                                             0U, 167U, NULL, FALSE);
4051
4052   return offset;
4053 }
4054
4055
4056
4057 static int
4058 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_) {
4059   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4060                                                             0U, 31U, NULL, FALSE);
4061
4062   return offset;
4063 }
4064
4065
4066
4067 static int
4068 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_) {
4069   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4070                                                             0U, 10U, NULL, FALSE);
4071
4072   return offset;
4073 }
4074
4075
4076 static const per_sequence_t SatelliteInfoElement_sequence[] = {
4077   { &hf_ulp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
4078   { &hf_ulp_iODE            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
4079   { NULL, 0, 0, NULL }
4080 };
4081
4082 static int
4083 dissect_ulp_SatelliteInfoElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4084   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4085                                    ett_ulp_SatelliteInfoElement, SatelliteInfoElement_sequence);
4086
4087   return offset;
4088 }
4089
4090
4091 static const per_sequence_t SatelliteInfo_sequence_of[1] = {
4092   { &hf_ulp_SatelliteInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SatelliteInfoElement },
4093 };
4094
4095 static int
4096 dissect_ulp_SatelliteInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4097   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4098                                                   ett_ulp_SatelliteInfo, SatelliteInfo_sequence_of,
4099                                                   1, 31, FALSE);
4100
4101   return offset;
4102 }
4103
4104
4105 static const per_sequence_t NavigationModel_sequence[] = {
4106   { &hf_ulp_gpsWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4107   { &hf_ulp_gpsToe          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
4108   { &hf_ulp_nSAT            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_31 },
4109   { &hf_ulp_toeLimit        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_10 },
4110   { &hf_ulp_satInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SatelliteInfo },
4111   { NULL, 0, 0, NULL }
4112 };
4113
4114 static int
4115 dissect_ulp_NavigationModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4116   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4117                                    ett_ulp_NavigationModel, NavigationModel_sequence);
4118
4119   return offset;
4120 }
4121
4122
4123 static const per_sequence_t GanssRequestedCommonAssistanceDataList_sequence[] = {
4124   { &hf_ulp_ganssReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4125   { &hf_ulp_ganssIonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4126   { &hf_ulp_ganssAdditionalIonosphericModelForDataID00, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4127   { &hf_ulp_ganssAdditionalIonosphericModelForDataID11, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4128   { &hf_ulp_ganssEarthOrientationParameters, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4129   { NULL, 0, 0, NULL }
4130 };
4131
4132 static int
4133 dissect_ulp_GanssRequestedCommonAssistanceDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4134   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4135                                    ett_ulp_GanssRequestedCommonAssistanceDataList, GanssRequestedCommonAssistanceDataList_sequence);
4136
4137   return offset;
4138 }
4139
4140
4141
4142 static int
4143 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_) {
4144   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4145                                      8, 8, FALSE, NULL, NULL);
4146
4147   return offset;
4148 }
4149
4150
4151
4152 static int
4153 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_) {
4154   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4155                                                             0U, 4095U, NULL, FALSE);
4156
4157   return offset;
4158 }
4159
4160
4161 static const per_sequence_t SatellitesListRelatedData_sequence[] = {
4162   { &hf_ulp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
4163   { &hf_ulp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4164   { NULL, 0, 0, NULL }
4165 };
4166
4167 static int
4168 dissect_ulp_SatellitesListRelatedData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4169   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4170                                    ett_ulp_SatellitesListRelatedData, SatellitesListRelatedData_sequence);
4171
4172   return offset;
4173 }
4174
4175
4176 static const per_sequence_t SatellitesListRelatedDataList_sequence_of[1] = {
4177   { &hf_ulp_SatellitesListRelatedDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SatellitesListRelatedData },
4178 };
4179
4180 static int
4181 dissect_ulp_SatellitesListRelatedDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4182   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4183                                                   ett_ulp_SatellitesListRelatedDataList, SatellitesListRelatedDataList_sequence_of,
4184                                                   0, maxGANSSSat, FALSE);
4185
4186   return offset;
4187 }
4188
4189
4190 static const per_sequence_t GanssNavigationModelData_sequence[] = {
4191   { &hf_ulp_ganssWeek       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4192   { &hf_ulp_ganssToe        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
4193   { &hf_ulp_t_toeLimit      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4194   { &hf_ulp_satellitesListRelatedDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SatellitesListRelatedDataList },
4195   { NULL, 0, 0, NULL }
4196 };
4197
4198 static int
4199 dissect_ulp_GanssNavigationModelData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4200   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4201                                    ett_ulp_GanssNavigationModelData, GanssNavigationModelData_sequence);
4202
4203   return offset;
4204 }
4205
4206
4207
4208 static int
4209 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_) {
4210   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4211                                                             0U, 59U, NULL, FALSE);
4212
4213   return offset;
4214 }
4215
4216
4217 static const per_sequence_t T_ganssDataBitSatList_sequence_of[1] = {
4218   { &hf_ulp_ganssDataBitSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
4219 };
4220
4221 static int
4222 dissect_ulp_T_ganssDataBitSatList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4223   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4224                                                   ett_ulp_T_ganssDataBitSatList, T_ganssDataBitSatList_sequence_of,
4225                                                   1, maxGANSSSat, FALSE);
4226
4227   return offset;
4228 }
4229
4230
4231 static const per_sequence_t ReqDataBitAssistanceList_sequence[] = {
4232   { &hf_ulp_gnssSignals     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
4233   { &hf_ulp_ganssDataBitInterval, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4234   { &hf_ulp_ganssDataBitSatList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_ganssDataBitSatList },
4235   { NULL, 0, 0, NULL }
4236 };
4237
4238 static int
4239 dissect_ulp_ReqDataBitAssistanceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4240   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4241                                    ett_ulp_ReqDataBitAssistanceList, ReqDataBitAssistanceList_sequence);
4242
4243   return offset;
4244 }
4245
4246
4247 static const per_sequence_t GanssDataBits_sequence[] = {
4248   { &hf_ulp_ganssTODmin     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_59 },
4249   { &hf_ulp_reqDataBitAssistanceList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ReqDataBitAssistanceList },
4250   { NULL, 0, 0, NULL }
4251 };
4252
4253 static int
4254 dissect_ulp_GanssDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4255   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4256                                    ett_ulp_GanssDataBits, GanssDataBits_sequence);
4257
4258   return offset;
4259 }
4260
4261
4262 static const per_sequence_t GanssAdditionalDataChoices_sequence[] = {
4263   { &hf_ulp_orbitModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4264   { &hf_ulp_clockModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4265   { &hf_ulp_utcModelID      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4266   { &hf_ulp_almanacModelID  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
4267   { NULL, 0, 0, NULL }
4268 };
4269
4270 static int
4271 dissect_ulp_GanssAdditionalDataChoices(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4272   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4273                                    ett_ulp_GanssAdditionalDataChoices, GanssAdditionalDataChoices_sequence);
4274
4275   return offset;
4276 }
4277
4278
4279
4280 static int
4281 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_) {
4282   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4283                                                             1U, 256U, NULL, FALSE);
4284
4285   return offset;
4286 }
4287
4288
4289 static const per_sequence_t ExtendedEphemeris_sequence[] = {
4290   { &hf_ulp_validity        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_256 },
4291   { NULL, 0, 0, NULL }
4292 };
4293
4294 static int
4295 dissect_ulp_ExtendedEphemeris(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4296   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4297                                    ett_ulp_ExtendedEphemeris, ExtendedEphemeris_sequence);
4298
4299   return offset;
4300 }
4301
4302
4303
4304 static int
4305 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_) {
4306   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4307                                                             0U, 23U, NULL, FALSE);
4308
4309   return offset;
4310 }
4311
4312
4313 static const per_sequence_t GANSSextEphTime_sequence[] = {
4314   { &hf_ulp_gANSSday        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8191 },
4315   { &hf_ulp_gANSSTODhour    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_23 },
4316   { NULL, 0, 0, NULL }
4317 };
4318
4319 static int
4320 dissect_ulp_GANSSextEphTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4321   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4322                                    ett_ulp_GANSSextEphTime, GANSSextEphTime_sequence);
4323
4324   return offset;
4325 }
4326
4327
4328 static const per_sequence_t GanssExtendedEphCheck_sequence[] = {
4329   { &hf_ulp_beginTime_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSextEphTime },
4330   { &hf_ulp_endTime_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSextEphTime },
4331   { NULL, 0, 0, NULL }
4332 };
4333
4334 static int
4335 dissect_ulp_GanssExtendedEphCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4336   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4337                                    ett_ulp_GanssExtendedEphCheck, GanssExtendedEphCheck_sequence);
4338
4339   return offset;
4340 }
4341
4342
4343 static const per_sequence_t GanssReqGenericData_sequence[] = {
4344   { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4345   { &hf_ulp_ganssSBASid     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_3 },
4346   { &hf_ulp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4347   { &hf_ulp_ganssDifferentialCorrection, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_DGANSS_Sig_Id_Req },
4348   { &hf_ulp_ganssAlmanac    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4349   { &hf_ulp_ganssNavigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssNavigationModelData },
4350   { &hf_ulp_ganssTimeModels , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_16 },
4351   { &hf_ulp_ganssReferenceMeasurementInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4352   { &hf_ulp_ganssDataBits   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssDataBits },
4353   { &hf_ulp_ganssUTCModel   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4354   { &hf_ulp_ganssAdditionalDataChoices, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssAdditionalDataChoices },
4355   { &hf_ulp_ganssAuxiliaryInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4356   { &hf_ulp_ganssExtendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphemeris },
4357   { &hf_ulp_ganssExtendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssExtendedEphCheck },
4358   { NULL, 0, 0, NULL }
4359 };
4360
4361 static int
4362 dissect_ulp_GanssReqGenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4363   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4364                                    ett_ulp_GanssReqGenericData, GanssReqGenericData_sequence);
4365
4366   return offset;
4367 }
4368
4369
4370 static const per_sequence_t GanssRequestedGenericAssistanceDataList_sequence_of[1] = {
4371   { &hf_ulp_GanssRequestedGenericAssistanceDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GanssReqGenericData },
4372 };
4373
4374 static int
4375 dissect_ulp_GanssRequestedGenericAssistanceDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4376   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4377                                                   ett_ulp_GanssRequestedGenericAssistanceDataList, GanssRequestedGenericAssistanceDataList_sequence_of,
4378                                                   1, maxGANSS, FALSE);
4379
4380   return offset;
4381 }
4382
4383
4384 static const per_sequence_t GPSTime_sequence[] = {
4385   { &hf_ulp_gPSWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4386   { &hf_ulp_gPSTOWhour      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
4387   { NULL, 0, 0, NULL }
4388 };
4389
4390 static int
4391 dissect_ulp_GPSTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4392   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4393                                    ett_ulp_GPSTime, GPSTime_sequence);
4394
4395   return offset;
4396 }
4397
4398
4399 static const per_sequence_t ExtendedEphCheck_sequence[] = {
4400   { &hf_ulp_beginTime       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GPSTime },
4401   { &hf_ulp_endTime         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GPSTime },
4402   { NULL, 0, 0, NULL }
4403 };
4404
4405 static int
4406 dissect_ulp_ExtendedEphCheck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4407   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4408                                    ett_ulp_ExtendedEphCheck, ExtendedEphCheck_sequence);
4409
4410   return offset;
4411 }
4412
4413
4414 static const per_sequence_t Ver2_RequestedAssistData_extension_sequence[] = {
4415   { &hf_ulp_ganssRequestedCommonAssistanceDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssRequestedCommonAssistanceDataList },
4416   { &hf_ulp_ganssRequestedGenericAssistanceDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssRequestedGenericAssistanceDataList },
4417   { &hf_ulp_extendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphemeris },
4418   { &hf_ulp_extendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphCheck },
4419   { NULL, 0, 0, NULL }
4420 };
4421
4422 static int
4423 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_) {
4424   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4425                                    ett_ulp_Ver2_RequestedAssistData_extension, Ver2_RequestedAssistData_extension_sequence);
4426
4427   return offset;
4428 }
4429
4430
4431 static const per_sequence_t RequestedAssistData_sequence[] = {
4432   { &hf_ulp_almanacRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4433   { &hf_ulp_utcModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4434   { &hf_ulp_ionosphericModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4435   { &hf_ulp_dgpsCorrectionsRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4436   { &hf_ulp_referenceLocationRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4437   { &hf_ulp_referenceTimeRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4438   { &hf_ulp_acquisitionAssistanceRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4439   { &hf_ulp_realTimeIntegrityRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4440   { &hf_ulp_navigationModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4441   { &hf_ulp_navigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NavigationModel },
4442   { &hf_ulp_ver2_RequestedAssistData_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_RequestedAssistData_extension },
4443   { NULL, 0, 0, NULL }
4444 };
4445
4446 static int
4447 dissect_ulp_RequestedAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4448   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4449                                    ett_ulp_RequestedAssistData, RequestedAssistData_sequence);
4450
4451   return offset;
4452 }
4453
4454
4455
4456 static int
4457 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_) {
4458   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4459                                        1, 8192, FALSE, NULL);
4460
4461   return offset;
4462 }
4463
4464
4465
4466 static int
4467 dissect_ulp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4468 #line 53 "../../asn1/ulp/ulp.cnf"
4469  tvbuff_t *rrlp_tvb;
4470
4471   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4472                                        1, 8192, FALSE, &rrlp_tvb);
4473
4474
4475   if (rrlp_tvb && rrlp_handle) {
4476     call_dissector(rrlp_handle, rrlp_tvb, actx->pinfo, tree);
4477   }
4478
4479
4480
4481   return offset;
4482 }
4483
4484
4485
4486 static int
4487 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_) {
4488 #line 62 "../../asn1/ulp/ulp.cnf"
4489  tvbuff_t *lpp_tvb;
4490
4491   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4492                                        1, 60000, FALSE, &lpp_tvb);
4493
4494
4495   if (lpp_tvb && lpp_handle) {
4496     call_dissector(lpp_handle, lpp_tvb, actx->pinfo, tree);
4497   }
4498
4499
4500
4501   return offset;
4502 }
4503
4504
4505 static const per_sequence_t T_lPPPayload_sequence_of[1] = {
4506   { &hf_ulp_lPPPayload_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_lPPPayload_item },
4507 };
4508
4509 static int
4510 dissect_ulp_T_lPPPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4511   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4512                                                   ett_ulp_T_lPPPayload, T_lPPPayload_sequence_of,
4513                                                   1, 3, FALSE);
4514
4515   return offset;
4516 }
4517
4518
4519
4520 static int
4521 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_) {
4522   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4523                                        1, 60000, FALSE, NULL);
4524
4525   return offset;
4526 }
4527
4528
4529 static const per_sequence_t T_tIA801Payload_sequence_of[1] = {
4530   { &hf_ulp_tIA801Payload_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_1_60000 },
4531 };
4532
4533 static int
4534 dissect_ulp_T_tIA801Payload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4535   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4536                                                   ett_ulp_T_tIA801Payload, T_tIA801Payload_sequence_of,
4537                                                   1, 3, FALSE);
4538
4539   return offset;
4540 }
4541
4542
4543 static const per_sequence_t Ver2_PosPayLoad_extension_sequence[] = {
4544   { &hf_ulp_lPPPayload      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_lPPPayload },
4545   { &hf_ulp_tIA801Payload   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_tIA801Payload },
4546   { NULL, 0, 0, NULL }
4547 };
4548
4549 static int
4550 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_) {
4551   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4552                                    ett_ulp_Ver2_PosPayLoad_extension, Ver2_PosPayLoad_extension_sequence);
4553
4554   return offset;
4555 }
4556
4557
4558 static const value_string ulp_PosPayLoad_vals[] = {
4559   {   0, "tia801payload" },
4560   {   1, "rrcPayload" },
4561   {   2, "rrlpPayload" },
4562   {   3, "ver2-PosPayLoad-extension" },
4563   { 0, NULL }
4564 };
4565
4566 static const per_choice_t PosPayLoad_choice[] = {
4567   {   0, &hf_ulp_tia801payload   , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
4568   {   1, &hf_ulp_rrcPayload      , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
4569   {   2, &hf_ulp_rrlpPayload     , ASN1_EXTENSION_ROOT    , dissect_ulp_T_rrlpPayload },
4570   {   3, &hf_ulp_ver2_PosPayLoad_extension, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_PosPayLoad_extension },
4571   { 0, NULL, 0, NULL }
4572 };
4573
4574 static int
4575 dissect_ulp_PosPayLoad(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4576   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4577                                  ett_ulp_PosPayLoad, PosPayLoad_choice,
4578                                  NULL);
4579
4580   return offset;
4581 }
4582
4583
4584 static const per_sequence_t T_utran_GPSTimingOfCell_sequence[] = {
4585   { &hf_ulp_ms_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
4586   { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
4587   { NULL, 0, 0, NULL }
4588 };
4589
4590 static int
4591 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_) {
4592   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4593                                    ett_ulp_T_utran_GPSTimingOfCell, T_utran_GPSTimingOfCell_sequence);
4594
4595   return offset;
4596 }
4597
4598
4599 static const per_sequence_t T_fdd_01_sequence[] = {
4600   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4601   { NULL, 0, 0, NULL }
4602 };
4603
4604 static int
4605 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_) {
4606   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4607                                    ett_ulp_T_fdd_01, T_fdd_01_sequence);
4608
4609   return offset;
4610 }
4611
4612
4613 static const per_sequence_t T_tdd_01_sequence[] = {
4614   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4615   { NULL, 0, 0, NULL }
4616 };
4617
4618 static int
4619 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_) {
4620   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4621                                    ett_ulp_T_tdd_01, T_tdd_01_sequence);
4622
4623   return offset;
4624 }
4625
4626
4627 static const value_string ulp_T_modeSpecificInfo_01_vals[] = {
4628   {   0, "fdd" },
4629   {   1, "tdd" },
4630   { 0, NULL }
4631 };
4632
4633 static const per_choice_t T_modeSpecificInfo_01_choice[] = {
4634   {   0, &hf_ulp_fdd_01          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_01 },
4635   {   1, &hf_ulp_tdd_01          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_01 },
4636   { 0, NULL, 0, NULL }
4637 };
4638
4639 static int
4640 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_) {
4641   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4642                                  ett_ulp_T_modeSpecificInfo_01, T_modeSpecificInfo_01_choice,
4643                                  NULL);
4644
4645   return offset;
4646 }
4647
4648
4649 static const per_sequence_t UTRAN_GPSReferenceTime_sequence[] = {
4650   { &hf_ulp_utran_GPSTimingOfCell, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_utran_GPSTimingOfCell },
4651   { &hf_ulp_modeSpecificInfo_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_01 },
4652   { &hf_ulp_sfn             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4653   { NULL, 0, 0, NULL }
4654 };
4655
4656 static int
4657 dissect_ulp_UTRAN_GPSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4658   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4659                                    ett_ulp_UTRAN_GPSReferenceTime, UTRAN_GPSReferenceTime_sequence);
4660
4661   return offset;
4662 }
4663
4664
4665 static const value_string ulp_UTRANGPSDriftRate_vals[] = {
4666   {   0, "utran-GPSDrift0" },
4667   {   1, "utran-GPSDrift1" },
4668   {   2, "utran-GPSDrift2" },
4669   {   3, "utran-GPSDrift5" },
4670   {   4, "utran-GPSDrift10" },
4671   {   5, "utran-GPSDrift15" },
4672   {   6, "utran-GPSDrift25" },
4673   {   7, "utran-GPSDrift50" },
4674   {   8, "utran-GPSDrift-1" },
4675   {   9, "utran-GPSDrift-2" },
4676   {  10, "utran-GPSDrift-5" },
4677   {  11, "utran-GPSDrift-10" },
4678   {  12, "utran-GPSDrift-15" },
4679   {  13, "utran-GPSDrift-25" },
4680   {  14, "utran-GPSDrift-50" },
4681   { 0, NULL }
4682 };
4683
4684
4685 static int
4686 dissect_ulp_UTRANGPSDriftRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4687   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4688                                      15, NULL, FALSE, 0, NULL);
4689
4690   return offset;
4691 }
4692
4693
4694 static const per_sequence_t UTRAN_GPSReferenceTimeAssistance_sequence[] = {
4695   { &hf_ulp_utran_GPSReferenceTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UTRAN_GPSReferenceTime },
4696   { &hf_ulp_gpsReferenceTimeUncertainty, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4697   { &hf_ulp_utranGPSDriftRate, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRANGPSDriftRate },
4698   { NULL, 0, 0, NULL }
4699 };
4700
4701 static int
4702 dissect_ulp_UTRAN_GPSReferenceTimeAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4703   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4704                                    ett_ulp_UTRAN_GPSReferenceTimeAssistance, UTRAN_GPSReferenceTimeAssistance_sequence);
4705
4706   return offset;
4707 }
4708
4709
4710
4711 static int
4712 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_) {
4713   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4714                                                             0U, 16383U, NULL, FALSE);
4715
4716   return offset;
4717 }
4718
4719
4720 static const per_sequence_t T_set_GPSTimingOfCell_sequence[] = {
4721   { &hf_ulp_ms_part_01      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_16383 },
4722   { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
4723   { NULL, 0, 0, NULL }
4724 };
4725
4726 static int
4727 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_) {
4728   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4729                                    ett_ulp_T_set_GPSTimingOfCell, T_set_GPSTimingOfCell_sequence);
4730
4731   return offset;
4732 }
4733
4734
4735 static const per_sequence_t T_fdd_02_sequence[] = {
4736   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4737   { NULL, 0, 0, NULL }
4738 };
4739
4740 static int
4741 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_) {
4742   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4743                                    ett_ulp_T_fdd_02, T_fdd_02_sequence);
4744
4745   return offset;
4746 }
4747
4748
4749 static const per_sequence_t T_tdd_02_sequence[] = {
4750   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4751   { NULL, 0, 0, NULL }
4752 };
4753
4754 static int
4755 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_) {
4756   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4757                                    ett_ulp_T_tdd_02, T_tdd_02_sequence);
4758
4759   return offset;
4760 }
4761
4762
4763 static const value_string ulp_T_modeSpecificInfo_02_vals[] = {
4764   {   0, "fdd" },
4765   {   1, "tdd" },
4766   { 0, NULL }
4767 };
4768
4769 static const per_choice_t T_modeSpecificInfo_02_choice[] = {
4770   {   0, &hf_ulp_fdd_02          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_02 },
4771   {   1, &hf_ulp_tdd_02          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_02 },
4772   { 0, NULL, 0, NULL }
4773 };
4774
4775 static int
4776 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_) {
4777   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4778                                  ett_ulp_T_modeSpecificInfo_02, T_modeSpecificInfo_02_choice,
4779                                  NULL);
4780
4781   return offset;
4782 }
4783
4784
4785 static const per_sequence_t UTRAN_GPSReferenceTimeResult_sequence[] = {
4786   { &hf_ulp_set_GPSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_set_GPSTimingOfCell },
4787   { &hf_ulp_modeSpecificInfo_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_02 },
4788   { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4789   { &hf_ulp_gpsReferenceTimeUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4790   { NULL, 0, 0, NULL }
4791 };
4792
4793 static int
4794 dissect_ulp_UTRAN_GPSReferenceTimeResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4795   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4796                                    ett_ulp_UTRAN_GPSReferenceTimeResult, UTRAN_GPSReferenceTimeResult_sequence);
4797
4798   return offset;
4799 }
4800
4801
4802
4803 static int
4804 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_) {
4805   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4806                                                             0U, 86399U, NULL, FALSE);
4807
4808   return offset;
4809 }
4810
4811
4812
4813 static int
4814 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_) {
4815   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4816                                                             0U, 3999999U, NULL, FALSE);
4817
4818   return offset;
4819 }
4820
4821
4822 static const per_sequence_t T_fdd_03_sequence[] = {
4823   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4824   { NULL, 0, 0, NULL }
4825 };
4826
4827 static int
4828 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_) {
4829   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4830                                    ett_ulp_T_fdd_03, T_fdd_03_sequence);
4831
4832   return offset;
4833 }
4834
4835
4836 static const per_sequence_t T_tdd_03_sequence[] = {
4837   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4838   { NULL, 0, 0, NULL }
4839 };
4840
4841 static int
4842 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_) {
4843   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4844                                    ett_ulp_T_tdd_03, T_tdd_03_sequence);
4845
4846   return offset;
4847 }
4848
4849
4850 static const value_string ulp_T_modeSpecificInfo_03_vals[] = {
4851   {   0, "fdd" },
4852   {   1, "tdd" },
4853   { 0, NULL }
4854 };
4855
4856 static const per_choice_t T_modeSpecificInfo_03_choice[] = {
4857   {   0, &hf_ulp_fdd_03          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_03 },
4858   {   1, &hf_ulp_tdd_03          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_03 },
4859   { 0, NULL, 0, NULL }
4860 };
4861
4862 static int
4863 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_) {
4864   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4865                                  ett_ulp_T_modeSpecificInfo_03, T_modeSpecificInfo_03_choice,
4866                                  NULL);
4867
4868   return offset;
4869 }
4870
4871
4872 static const per_sequence_t UTRAN_GANSSReferenceTime_sequence[] = {
4873   { &hf_ulp_ganssTOD        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_86399 },
4874   { &hf_ulp_utran_GANSSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_3999999 },
4875   { &hf_ulp_modeSpecificInfo_03, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_03 },
4876   { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
4877   { &hf_ulp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4878   { NULL, 0, 0, NULL }
4879 };
4880
4881 static int
4882 dissect_ulp_UTRAN_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4883   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4884                                    ett_ulp_UTRAN_GANSSReferenceTime, UTRAN_GANSSReferenceTime_sequence);
4885
4886   return offset;
4887 }
4888
4889
4890 static const value_string ulp_UTRANGANSSDriftRate_vals[] = {
4891   {   0, "utran-GANSSDrift0" },
4892   {   1, "utran-GANSSDrift1" },
4893   {   2, "utran-GANSSDrift2" },
4894   {   3, "utran-GANSSDrift5" },
4895   {   4, "utran-GANSSDrift10" },
4896   {   5, "utran-GANSSDrift15" },
4897   {   6, "utran-GANSSDrift25" },
4898   {   7, "utran-GANSSDrift50" },
4899   {   8, "utran-GANSSDrift-1" },
4900   {   9, "utran-GANSSDrift-2" },
4901   {  10, "utran-GANSSDrift-5" },
4902   {  11, "utran-GANSSDrift-10" },
4903   {  12, "utran-GANSSDrift-15" },
4904   {  13, "utran-GANSSDrift-25" },
4905   {  14, "utran-GANSSDrift-50" },
4906   { 0, NULL }
4907 };
4908
4909
4910 static int
4911 dissect_ulp_UTRANGANSSDriftRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4912   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4913                                      15, NULL, FALSE, 0, NULL);
4914
4915   return offset;
4916 }
4917
4918
4919 static const per_sequence_t UTRAN_GANSSReferenceTimeAssistance_sequence[] = {
4920   { &hf_ulp_ganssDay        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_8191 },
4921   { &hf_ulp_ganssTimeID     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
4922   { &hf_ulp_utran_GANSSReferenceTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UTRAN_GANSSReferenceTime },
4923   { &hf_ulp_utranGANSSDriftRate, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRANGANSSDriftRate },
4924   { NULL, 0, 0, NULL }
4925 };
4926
4927 static int
4928 dissect_ulp_UTRAN_GANSSReferenceTimeAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4929   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4930                                    ett_ulp_UTRAN_GANSSReferenceTimeAssistance, UTRAN_GANSSReferenceTimeAssistance_sequence);
4931
4932   return offset;
4933 }
4934
4935
4936
4937 static int
4938 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_) {
4939   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4940                                                             0U, 80U, NULL, FALSE);
4941
4942   return offset;
4943 }
4944
4945
4946 static const per_sequence_t T_set_GANSSTimingOfCell_sequence[] = {
4947   { &hf_ulp_ms_part_02      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_80 },
4948   { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
4949   { NULL, 0, 0, NULL }
4950 };
4951
4952 static int
4953 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_) {
4954   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4955                                    ett_ulp_T_set_GANSSTimingOfCell, T_set_GANSSTimingOfCell_sequence);
4956
4957   return offset;
4958 }
4959
4960
4961 static const per_sequence_t T_fdd_04_sequence[] = {
4962   { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
4963   { NULL, 0, 0, NULL }
4964 };
4965
4966 static int
4967 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_) {
4968   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4969                                    ett_ulp_T_fdd_04, T_fdd_04_sequence);
4970
4971   return offset;
4972 }
4973
4974
4975 static const per_sequence_t T_tdd_04_sequence[] = {
4976   { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
4977   { NULL, 0, 0, NULL }
4978 };
4979
4980 static int
4981 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_) {
4982   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4983                                    ett_ulp_T_tdd_04, T_tdd_04_sequence);
4984
4985   return offset;
4986 }
4987
4988
4989 static const value_string ulp_T_modeSpecificInfo_04_vals[] = {
4990   {   0, "fdd" },
4991   {   1, "tdd" },
4992   { 0, NULL }
4993 };
4994
4995 static const per_choice_t T_modeSpecificInfo_04_choice[] = {
4996   {   0, &hf_ulp_fdd_04          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_04 },
4997   {   1, &hf_ulp_tdd_04          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_04 },
4998   { 0, NULL, 0, NULL }
4999 };
5000
5001 static int
5002 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_) {
5003   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5004                                  ett_ulp_T_modeSpecificInfo_04, T_modeSpecificInfo_04_choice,
5005                                  NULL);
5006
5007   return offset;
5008 }
5009
5010
5011 static const per_sequence_t SET_GANSSReferenceTime_sequence[] = {
5012   { &hf_ulp_set_GANSSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_set_GANSSTimingOfCell },
5013   { &hf_ulp_modeSpecificInfo_04, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_04 },
5014   { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
5015   { &hf_ulp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
5016   { NULL, 0, 0, NULL }
5017 };
5018
5019 static int
5020 dissect_ulp_SET_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5021   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5022                                    ett_ulp_SET_GANSSReferenceTime, SET_GANSSReferenceTime_sequence);
5023
5024   return offset;
5025 }
5026
5027
5028 static const per_sequence_t UTRAN_GANSSReferenceTimeResult_sequence[] = {
5029   { &hf_ulp_ganssTimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
5030   { &hf_ulp_set_GANSSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SET_GANSSReferenceTime },
5031   { NULL, 0, 0, NULL }
5032 };
5033
5034 static int
5035 dissect_ulp_UTRAN_GANSSReferenceTimeResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5036   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5037                                    ett_ulp_UTRAN_GANSSReferenceTimeResult, UTRAN_GANSSReferenceTimeResult_sequence);
5038
5039   return offset;
5040 }
5041
5042
5043 static const per_sequence_t Ver2_SUPL_POS_extension_sequence[] = {
5044   { &hf_ulp_utran_GPSReferenceTimeAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeAssistance },
5045   { &hf_ulp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeResult },
5046   { &hf_ulp_utran_GANSSReferenceTimeAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeAssistance },
5047   { &hf_ulp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeResult },
5048   { NULL, 0, 0, NULL }
5049 };
5050
5051 static int
5052 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_) {
5053   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5054                                    ett_ulp_Ver2_SUPL_POS_extension, Ver2_SUPL_POS_extension_sequence);
5055
5056   return offset;
5057 }
5058
5059
5060 static const per_sequence_t SUPLPOS_sequence[] = {
5061   { &hf_ulp_posPayLoad      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosPayLoad },
5062   { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
5063   { &hf_ulp_ver2_SUPL_POS_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_POS_extension },
5064   { NULL, 0, 0, NULL }
5065 };
5066
5067 static int
5068 dissect_ulp_SUPLPOS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5069   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5070                                    ett_ulp_SUPLPOS, SUPLPOS_sequence);
5071
5072   return offset;
5073 }
5074
5075
5076
5077 static int
5078 dissect_ulp_Ver(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5079   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5080                                      64, 64, FALSE, NULL, NULL);
5081
5082   return offset;
5083 }
5084
5085
5086 static const per_sequence_t Ver2_SUPL_POS_INIT_extension_sequence[] = {
5087   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
5088   { &hf_ulp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeResult },
5089   { &hf_ulp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeResult },
5090   { NULL, 0, 0, NULL }
5091 };
5092
5093 static int
5094 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_) {
5095   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5096                                    ett_ulp_Ver2_SUPL_POS_INIT_extension, Ver2_SUPL_POS_INIT_extension_sequence);
5097
5098   return offset;
5099 }
5100
5101
5102 static const per_sequence_t SUPLPOSINIT_sequence[] = {
5103   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
5104   { &hf_ulp_requestedAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RequestedAssistData },
5105   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
5106   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5107   { &hf_ulp_sUPLPOS         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SUPLPOS },
5108   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5109   { &hf_ulp_ver2_SUPL_POS_INIT_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_POS_INIT_extension },
5110   { NULL, 0, 0, NULL }
5111 };
5112
5113 static int
5114 dissect_ulp_SUPLPOSINIT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5115   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5116                                    ett_ulp_SUPLPOSINIT, SUPLPOSINIT_sequence);
5117
5118   return offset;
5119 }
5120
5121
5122 static const value_string ulp_StatusCode_vals[] = {
5123   {   0, "unspecified" },
5124   {   1, "systemFailure" },
5125   {   2, "unexpectedMessage" },
5126   {   3, "protocolError" },
5127   {   4, "dataMissing" },
5128   {   5, "unexpectedDataValue" },
5129   {   6, "posMethodFailure" },
5130   {   7, "posMethodMismatch" },
5131   {   8, "posProtocolMismatch" },
5132   {   9, "targetSETnotReachable" },
5133   {  10, "versionNotSupported" },
5134   {  11, "resourceShortage" },
5135   {  12, "invalidSessionId" },
5136   {  13, "nonProxyModeNotSupported" },
5137   {  14, "proxyModeNotSupported" },
5138   {  15, "positioningNotPermitted" },
5139   {  16, "authNetFailure" },
5140   {  17, "authSuplinitFailure" },
5141   { 100, "consentDeniedByUser" },
5142   { 101, "consentGrantedByUser" },
5143   {  18, "ver2-incompatibleProtectionLevel" },
5144   {  19, "ver2-serviceNotSupported" },
5145   {  20, "ver2-insufficientInterval" },
5146   {  21, "ver2-noSUPLCoverage" },
5147   { 102, "ver2-sessionStopped" },
5148   { 103, "ver2-appIdDenied" },
5149   { 0, NULL }
5150 };
5151
5152 static guint32 StatusCode_value_map[20+6] = {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, 103};
5153
5154 static int
5155 dissect_ulp_StatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5156   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5157                                      20, NULL, TRUE, 6, StatusCode_value_map);
5158
5159   return offset;
5160 }
5161
5162
5163 static const per_sequence_t Ver2_SUPL_END_extension_sequence[] = {
5164   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
5165   { NULL, 0, 0, NULL }
5166 };
5167
5168 static int
5169 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_) {
5170   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5171                                    ett_ulp_Ver2_SUPL_END_extension, Ver2_SUPL_END_extension_sequence);
5172
5173   return offset;
5174 }
5175
5176
5177 static const per_sequence_t SUPLEND_sequence[] = {
5178   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5179   { &hf_ulp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_StatusCode },
5180   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5181   { &hf_ulp_ver2_SUPL_END_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_END_extension },
5182   { NULL, 0, 0, NULL }
5183 };
5184
5185 static int
5186 dissect_ulp_SUPLEND(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5187   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5188                                    ett_ulp_SUPLEND, SUPLEND_sequence);
5189
5190   return offset;
5191 }
5192
5193
5194 static const per_sequence_t SUPLAUTHREQ_sequence[] = {
5195   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5196   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
5197   { NULL, 0, 0, NULL }
5198 };
5199
5200 static int
5201 dissect_ulp_SUPLAUTHREQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5202   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5203                                    ett_ulp_SUPLAUTHREQ, SUPLAUTHREQ_sequence);
5204
5205   return offset;
5206 }
5207
5208
5209 static const per_sequence_t SUPLAUTHRESP_sequence[] = {
5210   { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SPCSETKey },
5211   { &hf_ulp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SPCTID },
5212   { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
5213   { NULL, 0, 0, NULL }
5214 };
5215
5216 static int
5217 dissect_ulp_SUPLAUTHRESP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5218   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5219                                    ett_ulp_SUPLAUTHRESP, SUPLAUTHRESP_sequence);
5220
5221   return offset;
5222 }
5223
5224
5225
5226 static int
5227 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_) {
5228   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5229                                                             1U, 8639999U, NULL, FALSE);
5230
5231   return offset;
5232 }
5233
5234
5235
5236 static int
5237 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_) {
5238   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5239                                                             0U, 2678400U, NULL, FALSE);
5240
5241   return offset;
5242 }
5243
5244
5245 static const per_sequence_t PeriodicParams_sequence[] = {
5246   { &hf_ulp_numberOfFixes   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_8639999 },
5247   { &hf_ulp_intervalBetweenFixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_8639999 },
5248   { &hf_ulp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_2678400 },
5249   { NULL, 0, 0, NULL }
5250 };
5251
5252 static int
5253 dissect_ulp_PeriodicParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5254   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5255                                    ett_ulp_PeriodicParams, PeriodicParams_sequence);
5256
5257   return offset;
5258 }
5259
5260
5261 static const value_string ulp_AreaEventType_vals[] = {
5262   {   0, "enteringArea" },
5263   {   1, "insideArea" },
5264   {   2, "outsideArea" },
5265   {   3, "leavingArea" },
5266   { 0, NULL }
5267 };
5268
5269
5270 static int
5271 dissect_ulp_AreaEventType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5272   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5273                                      4, NULL, TRUE, 0, NULL);
5274
5275   return offset;
5276 }
5277
5278
5279
5280 static int
5281 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_) {
5282   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5283                                                             1U, 604800U, NULL, FALSE);
5284
5285   return offset;
5286 }
5287
5288
5289 static const per_sequence_t RepeatedReportingParams_sequence[] = {
5290   { &hf_ulp_minimumIntervalTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_604800 },
5291   { &hf_ulp_maximumNumberOfReports, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1024 },
5292   { NULL, 0, 0, NULL }
5293 };
5294
5295 static int
5296 dissect_ulp_RepeatedReportingParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5297   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5298                                    ett_ulp_RepeatedReportingParams, RepeatedReportingParams_sequence);
5299
5300   return offset;
5301 }
5302
5303
5304
5305 static int
5306 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_) {
5307   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5308                                                             0U, 11318399U, NULL, FALSE);
5309
5310   return offset;
5311 }
5312
5313
5314 static const value_string ulp_T_latitudeSign_01_vals[] = {
5315   {   0, "north" },
5316   {   1, "south" },
5317   { 0, NULL }
5318 };
5319
5320
5321 static int
5322 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_) {
5323   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5324                                      2, NULL, FALSE, 0, NULL);
5325
5326   return offset;
5327 }
5328
5329
5330 static const per_sequence_t Coordinate_sequence[] = {
5331   { &hf_ulp_latitudeSign_01 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign_01 },
5332   { &hf_ulp_latitude        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
5333   { &hf_ulp_longitude       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
5334   { NULL, 0, 0, NULL }
5335 };
5336
5337 static int
5338 dissect_ulp_Coordinate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5339   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5340                                    ett_ulp_Coordinate, Coordinate_sequence);
5341
5342   return offset;
5343 }
5344
5345
5346
5347 static int
5348 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_) {
5349   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5350                                                             1U, 1000000U, NULL, FALSE);
5351
5352   return offset;
5353 }
5354
5355
5356
5357 static int
5358 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_) {
5359   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5360                                                             1U, 1500000U, NULL, FALSE);
5361
5362   return offset;
5363 }
5364
5365
5366 static const per_sequence_t CircularArea_sequence[] = {
5367   { &hf_ulp_coordinate      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
5368   { &hf_ulp_radius          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
5369   { &hf_ulp_radius_min      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
5370   { &hf_ulp_radius_max      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
5371   { NULL, 0, 0, NULL }
5372 };
5373
5374 static int
5375 dissect_ulp_CircularArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5376   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5377                                    ett_ulp_CircularArea, CircularArea_sequence);
5378
5379   return offset;
5380 }
5381
5382
5383
5384 static int
5385 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_) {
5386   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5387                                                             0U, 179U, NULL, FALSE);
5388
5389   return offset;
5390 }
5391
5392
5393 static const per_sequence_t EllipticalArea_sequence[] = {
5394   { &hf_ulp_coordinate      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
5395   { &hf_ulp_semiMajor       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
5396   { &hf_ulp_semiMajor_min   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
5397   { &hf_ulp_semiMajor_max   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
5398   { &hf_ulp_semiMinor       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
5399   { &hf_ulp_semiMinor_min   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
5400   { &hf_ulp_semiMinor_max   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
5401   { &hf_ulp_angle           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_179 },
5402   { NULL, 0, 0, NULL }
5403 };
5404
5405 static int
5406 dissect_ulp_EllipticalArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5407   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5408                                    ett_ulp_EllipticalArea, EllipticalArea_sequence);
5409
5410   return offset;
5411 }
5412
5413
5414 static const per_sequence_t PolygonDescription_sequence_of[1] = {
5415   { &hf_ulp_PolygonDescription_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
5416 };
5417
5418 static int
5419 dissect_ulp_PolygonDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5420   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5421                                                   ett_ulp_PolygonDescription, PolygonDescription_sequence_of,
5422                                                   3, 15, FALSE);
5423
5424   return offset;
5425 }
5426
5427
5428
5429 static int
5430 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_) {
5431   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5432                                                             1U, 100000U, NULL, FALSE);
5433
5434   return offset;
5435 }
5436
5437
5438 static const per_sequence_t PolygonArea_sequence[] = {
5439   { &hf_ulp_polygonDescription, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PolygonDescription },
5440   { &hf_ulp_polygonHysteresis, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_100000 },
5441   { NULL, 0, 0, NULL }
5442 };
5443
5444 static int
5445 dissect_ulp_PolygonArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5446   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5447                                    ett_ulp_PolygonArea, PolygonArea_sequence);
5448
5449   return offset;
5450 }
5451
5452
5453 static const value_string ulp_GeographicTargetArea_vals[] = {
5454   {   0, "circularArea" },
5455   {   1, "ellipticalArea" },
5456   {   2, "polygonArea" },
5457   { 0, NULL }
5458 };
5459
5460 static const per_choice_t GeographicTargetArea_choice[] = {
5461   {   0, &hf_ulp_circularArea    , ASN1_EXTENSION_ROOT    , dissect_ulp_CircularArea },
5462   {   1, &hf_ulp_ellipticalArea  , ASN1_EXTENSION_ROOT    , dissect_ulp_EllipticalArea },
5463   {   2, &hf_ulp_polygonArea     , ASN1_EXTENSION_ROOT    , dissect_ulp_PolygonArea },
5464   { 0, NULL, 0, NULL }
5465 };
5466
5467 static int
5468 dissect_ulp_GeographicTargetArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5469   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5470                                  ett_ulp_GeographicTargetArea, GeographicTargetArea_choice,
5471                                  NULL);
5472
5473   return offset;
5474 }
5475
5476
5477 static const per_sequence_t GeographicTargetAreaList_sequence_of[1] = {
5478   { &hf_ulp_GeographicTargetAreaList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GeographicTargetArea },
5479 };
5480
5481 static int
5482 dissect_ulp_GeographicTargetAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5483   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5484                                                   ett_ulp_GeographicTargetAreaList, GeographicTargetAreaList_sequence_of,
5485                                                   1, maxNumGeoArea, FALSE);
5486
5487   return offset;
5488 }
5489
5490
5491 static const per_sequence_t GSMAreaId_sequence[] = {
5492   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5493   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5494   { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5495   { &hf_ulp_refCI           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5496   { NULL, 0, 0, NULL }
5497 };
5498
5499 static int
5500 dissect_ulp_GSMAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5501   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5502                                    ett_ulp_GSMAreaId, GSMAreaId_sequence);
5503
5504   return offset;
5505 }
5506
5507
5508 static const per_sequence_t WCDMAAreaId_sequence[] = {
5509   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5510   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5511   { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5512   { &hf_ulp_refUC           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_268435455 },
5513   { NULL, 0, 0, NULL }
5514 };
5515
5516 static int
5517 dissect_ulp_WCDMAAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5518   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5519                                    ett_ulp_WCDMAAreaId, WCDMAAreaId_sequence);
5520
5521   return offset;
5522 }
5523
5524
5525 static const per_sequence_t CDMAAreaId_sequence[] = {
5526   { &hf_ulp_refSID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5527   { &hf_ulp_refNID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_32767 },
5528   { &hf_ulp_refBASEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
5529   { NULL, 0, 0, NULL }
5530 };
5531
5532 static int
5533 dissect_ulp_CDMAAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5534   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5535                                    ett_ulp_CDMAAreaId, CDMAAreaId_sequence);
5536
5537   return offset;
5538 }
5539
5540
5541 static const per_sequence_t HRPDAreaId_sequence[] = {
5542   { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
5543   { NULL, 0, 0, NULL }
5544 };
5545
5546 static int
5547 dissect_ulp_HRPDAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5548   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5549                                    ett_ulp_HRPDAreaId, HRPDAreaId_sequence);
5550
5551   return offset;
5552 }
5553
5554
5555 static const per_sequence_t UMBAreaId_sequence[] = {
5556   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5557   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5558   { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_128 },
5559   { NULL, 0, 0, NULL }
5560 };
5561
5562 static int
5563 dissect_ulp_UMBAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5564   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5565                                    ett_ulp_UMBAreaId, UMBAreaId_sequence);
5566
5567   return offset;
5568 }
5569
5570
5571
5572 static int
5573 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_) {
5574   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5575                                      29, 29, FALSE, NULL, NULL);
5576
5577   return offset;
5578 }
5579
5580
5581 static const per_sequence_t LTEAreaId_sequence[] = {
5582   { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5583   { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
5584   { &hf_ulp_refCI_01        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_29 },
5585   { NULL, 0, 0, NULL }
5586 };
5587
5588 static int
5589 dissect_ulp_LTEAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5590   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5591                                    ett_ulp_LTEAreaId, LTEAreaId_sequence);
5592
5593   return offset;
5594 }
5595
5596
5597 static const per_sequence_t WLANAreaId_sequence[] = {
5598   { &hf_ulp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_48 },
5599   { NULL, 0, 0, NULL }
5600 };
5601
5602 static int
5603 dissect_ulp_WLANAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5604   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5605                                    ett_ulp_WLANAreaId, WLANAreaId_sequence);
5606
5607   return offset;
5608 }
5609
5610
5611 static const per_sequence_t WimaxAreaId_sequence[] = {
5612   { &hf_ulp_bsID_MSB        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_24 },
5613   { &hf_ulp_bsID_LSB        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_24 },
5614   { NULL, 0, 0, NULL }
5615 };
5616
5617 static int
5618 dissect_ulp_WimaxAreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5619   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5620                                    ett_ulp_WimaxAreaId, WimaxAreaId_sequence);
5621
5622   return offset;
5623 }
5624
5625
5626 static const value_string ulp_AreaId_vals[] = {
5627   {   0, "gSMAreaId" },
5628   {   1, "wCDMAAreaId" },
5629   {   2, "cDMAAreaId" },
5630   {   3, "hRPDAreaId" },
5631   {   4, "uMBAreaId" },
5632   {   5, "lTEAreaId" },
5633   {   6, "wLANAreaId" },
5634   {   7, "wiMAXAreaId" },
5635   { 0, NULL }
5636 };
5637
5638 static const per_choice_t AreaId_choice[] = {
5639   {   0, &hf_ulp_gSMAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_GSMAreaId },
5640   {   1, &hf_ulp_wCDMAAreaId     , ASN1_EXTENSION_ROOT    , dissect_ulp_WCDMAAreaId },
5641   {   2, &hf_ulp_cDMAAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_CDMAAreaId },
5642   {   3, &hf_ulp_hRPDAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_HRPDAreaId },
5643   {   4, &hf_ulp_uMBAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_UMBAreaId },
5644   {   5, &hf_ulp_lTEAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_LTEAreaId },
5645   {   6, &hf_ulp_wLANAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_WLANAreaId },
5646   {   7, &hf_ulp_wiMAXAreaId     , ASN1_EXTENSION_ROOT    , dissect_ulp_WimaxAreaId },
5647   { 0, NULL, 0, NULL }
5648 };
5649
5650 static int
5651 dissect_ulp_AreaId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5652   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5653                                  ett_ulp_AreaId, AreaId_choice,
5654                                  NULL);
5655
5656   return offset;
5657 }
5658
5659
5660 static const per_sequence_t AreaIdSet_sequence_of[1] = {
5661   { &hf_ulp_AreaIdSet_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaId },
5662 };
5663
5664 static int
5665 dissect_ulp_AreaIdSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5666   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5667                                                   ett_ulp_AreaIdSet, AreaIdSet_sequence_of,
5668                                                   1, maxAreaId, FALSE);
5669
5670   return offset;
5671 }
5672
5673
5674 static const value_string ulp_AreaIdSetType_vals[] = {
5675   {   0, "border" },
5676   {   1, "within" },
5677   { 0, NULL }
5678 };
5679
5680
5681 static int
5682 dissect_ulp_AreaIdSetType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5683   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5684                                      2, NULL, TRUE, 0, NULL);
5685
5686   return offset;
5687 }
5688
5689
5690
5691 static int
5692 dissect_ulp_GeoAreaIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5693   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5694                                                             1U, maxNumGeoArea, NULL, FALSE);
5695
5696   return offset;
5697 }
5698
5699
5700 static const per_sequence_t GeoAreaMappingList_sequence_of[1] = {
5701   { &hf_ulp_GeoAreaMappingList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GeoAreaIndex },
5702 };
5703
5704 static int
5705 dissect_ulp_GeoAreaMappingList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5706   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5707                                                   ett_ulp_GeoAreaMappingList, GeoAreaMappingList_sequence_of,
5708                                                   1, maxNumGeoArea, FALSE);
5709
5710   return offset;
5711 }
5712
5713
5714 static const per_sequence_t AreaIdList_sequence[] = {
5715   { &hf_ulp_areaIdSet       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaIdSet },
5716   { &hf_ulp_areaIdSetType   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_AreaIdSetType },
5717   { &hf_ulp_geoAreaMappingList, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_GeoAreaMappingList },
5718   { NULL, 0, 0, NULL }
5719 };
5720
5721 static int
5722 dissect_ulp_AreaIdList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5723   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5724                                    ett_ulp_AreaIdList, AreaIdList_sequence);
5725
5726   return offset;
5727 }
5728
5729
5730 static const per_sequence_t SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList_sequence_of[1] = {
5731   { &hf_ulp_areaIdLists_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaIdList },
5732 };
5733
5734 static int
5735 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_) {
5736   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5737                                                   ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList, SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList_sequence_of,
5738                                                   1, maxAreaIdList, FALSE);
5739
5740   return offset;
5741 }
5742
5743
5744 static const per_sequence_t AreaEventParams_sequence[] = {
5745   { &hf_ulp_areaEventType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_AreaEventType },
5746   { &hf_ulp_locationEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5747   { &hf_ulp_repeatedReportingParams, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RepeatedReportingParams },
5748   { &hf_ulp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_2678400 },
5749   { &hf_ulp_stopTime        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_11318399 },
5750   { &hf_ulp_geographicTargetAreaList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GeographicTargetAreaList },
5751   { &hf_ulp_areaIdLists     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList },
5752   { NULL, 0, 0, NULL }
5753 };
5754
5755 static int
5756 dissect_ulp_AreaEventParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5757   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5758                                    ett_ulp_AreaEventParams, AreaEventParams_sequence);
5759
5760   return offset;
5761 }
5762
5763
5764 static const value_string ulp_TriggerParams_vals[] = {
5765   {   0, "periodicParams" },
5766   {   1, "areaEventParams" },
5767   { 0, NULL }
5768 };
5769
5770 static const per_choice_t TriggerParams_choice[] = {
5771   {   0, &hf_ulp_periodicParams  , ASN1_EXTENSION_ROOT    , dissect_ulp_PeriodicParams },
5772   {   1, &hf_ulp_areaEventParams , ASN1_EXTENSION_ROOT    , dissect_ulp_AreaEventParams },
5773   { 0, NULL, 0, NULL }
5774 };
5775
5776 static int
5777 dissect_ulp_TriggerParams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5778   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5779                                  ett_ulp_TriggerParams, TriggerParams_choice,
5780                                  NULL);
5781
5782   return offset;
5783 }
5784
5785
5786 static const value_string ulp_CauseCode_vals[] = {
5787   {   0, "servingNetWorkNotInAreaIdList" },
5788   {   1, "sETCapabilitiesChanged" },
5789   {   2, "noSUPLCoverage" },
5790   { 0, NULL }
5791 };
5792
5793
5794 static int
5795 dissect_ulp_CauseCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5796   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5797                                      3, NULL, TRUE, 0, NULL);
5798
5799   return offset;
5800 }
5801
5802
5803 static const per_sequence_t Ver2_SUPLTRIGGEREDSTART_sequence[] = {
5804   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
5805   { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
5806   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
5807   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
5808   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
5809   { &hf_ulp_thirdParty      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ThirdParty },
5810   { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
5811   { &hf_ulp_triggerType     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerType },
5812   { &hf_ulp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerParams },
5813   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5814   { &hf_ulp_reportingCap    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCap },
5815   { &hf_ulp_causeCode       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_CauseCode },
5816   { NULL, 0, 0, NULL }
5817 };
5818
5819 static int
5820 dissect_ulp_Ver2_SUPLTRIGGEREDSTART(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5821   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5822                                    ett_ulp_Ver2_SUPLTRIGGEREDSTART, Ver2_SUPLTRIGGEREDSTART_sequence);
5823
5824   return offset;
5825 }
5826
5827
5828 static const value_string ulp_RepMode_vals[] = {
5829   {   1, "realtime" },
5830   {   2, "quasirealtime" },
5831   {   3, "batch" },
5832   { 0, NULL }
5833 };
5834
5835 static guint32 RepMode_value_map[3+0] = {1, 2, 3};
5836
5837 static int
5838 dissect_ulp_RepMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5839   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5840                                      3, NULL, TRUE, 0, RepMode_value_map);
5841
5842   return offset;
5843 }
5844
5845
5846
5847 static int
5848 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_) {
5849   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5850                                                             1U, 2048U, NULL, FALSE);
5851
5852   return offset;
5853 }
5854
5855
5856 static const value_string ulp_BatchRepConditions_vals[] = {
5857   {   0, "num-interval" },
5858   {   1, "num-minutes" },
5859   {   2, "endofsession" },
5860   { 0, NULL }
5861 };
5862
5863 static const per_choice_t BatchRepConditions_choice[] = {
5864   {   0, &hf_ulp_num_interval    , ASN1_EXTENSION_ROOT    , dissect_ulp_INTEGER_1_1024 },
5865   {   1, &hf_ulp_num_minutes     , ASN1_EXTENSION_ROOT    , dissect_ulp_INTEGER_1_2048 },
5866   {   2, &hf_ulp_endofsession    , ASN1_EXTENSION_ROOT    , dissect_ulp_NULL },
5867   { 0, NULL, 0, NULL }
5868 };
5869
5870 static int
5871 dissect_ulp_BatchRepConditions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5872   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5873                                  ett_ulp_BatchRepConditions, BatchRepConditions_choice,
5874                                  NULL);
5875
5876   return offset;
5877 }
5878
5879
5880 static const per_sequence_t BatchRepType_sequence[] = {
5881   { &hf_ulp_reportPosition  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5882   { &hf_ulp_reportMeasurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5883   { &hf_ulp_intermediateReports, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5884   { &hf_ulp_discardOldest   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
5885   { NULL, 0, 0, NULL }
5886 };
5887
5888 static int
5889 dissect_ulp_BatchRepType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5890   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5891                                    ett_ulp_BatchRepType, BatchRepType_sequence);
5892
5893   return offset;
5894 }
5895
5896
5897 static const per_sequence_t ReportingMode_sequence[] = {
5898   { &hf_ulp_repMode         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RepMode },
5899   { &hf_ulp_batchRepConditions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepConditions },
5900   { &hf_ulp_batchRepType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepType },
5901   { NULL, 0, 0, NULL }
5902 };
5903
5904 static int
5905 dissect_ulp_ReportingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5906   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5907                                    ett_ulp_ReportingMode, ReportingMode_sequence);
5908
5909   return offset;
5910 }
5911
5912
5913 static const per_sequence_t Ver2_SUPLTRIGGEREDRESPONSE_sequence[] = {
5914   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
5915   { &hf_ulp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerParams },
5916   { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
5917   { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
5918   { &hf_ulp_reportingMode   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingMode },
5919   { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKey },
5920   { &hf_ulp_sPCTID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCTID },
5921   { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
5922   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
5923   { NULL, 0, 0, NULL }
5924 };
5925
5926 static int
5927 dissect_ulp_Ver2_SUPLTRIGGEREDRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5928   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5929                                    ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE, Ver2_SUPLTRIGGEREDRESPONSE_sequence);
5930
5931   return offset;
5932 }
5933
5934
5935 static const per_sequence_t Ver2_SUPLTRIGGEREDSTOP_sequence[] = {
5936   { &hf_ulp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_StatusCode },
5937   { NULL, 0, 0, NULL }
5938 };
5939
5940 static int
5941 dissect_ulp_Ver2_SUPLTRIGGEREDSTOP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5942   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5943                                    ett_ulp_Ver2_SUPLTRIGGEREDSTOP, Ver2_SUPLTRIGGEREDSTOP_sequence);
5944
5945   return offset;
5946 }
5947
5948
5949 static const per_sequence_t Ver2_SUPLNOTIFY_sequence[] = {
5950   { &hf_ulp_notification    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Notification },
5951   { NULL, 0, 0, NULL }
5952 };
5953
5954 static int
5955 dissect_ulp_Ver2_SUPLNOTIFY(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5956   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5957                                    ett_ulp_Ver2_SUPLNOTIFY, Ver2_SUPLNOTIFY_sequence);
5958
5959   return offset;
5960 }
5961
5962
5963 static const value_string ulp_NotificationResponse_vals[] = {
5964   {   0, "allowed" },
5965   {   1, "notAllowed" },
5966   { 0, NULL }
5967 };
5968
5969
5970 static int
5971 dissect_ulp_NotificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5972   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5973                                      2, NULL, TRUE, 0, NULL);
5974
5975   return offset;
5976 }
5977
5978
5979 static const per_sequence_t Ver2_SUPLNOTIFYRESPONSE_sequence[] = {
5980   { &hf_ulp_notificationResponse, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NotificationResponse },
5981   { NULL, 0, 0, NULL }
5982 };
5983
5984 static int
5985 dissect_ulp_Ver2_SUPLNOTIFYRESPONSE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5986   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5987                                    ett_ulp_Ver2_SUPLNOTIFYRESPONSE, Ver2_SUPLNOTIFYRESPONSE_sequence);
5988
5989   return offset;
5990 }
5991
5992
5993 static const per_sequence_t Ver2_SUPLSETINIT_sequence[] = {
5994   { &hf_ulp_targetSETID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETId },
5995   { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
5996   { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
5997   { NULL, 0, 0, NULL }
5998 };
5999
6000 static int
6001 dissect_ulp_Ver2_SUPLSETINIT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6002   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6003                                    ett_ulp_Ver2_SUPLSETINIT, Ver2_SUPLSETINIT_sequence);
6004
6005   return offset;
6006 }
6007
6008
6009 static const per_sequence_t SessionInformation_sequence[] = {
6010   { &hf_ulp_sessionID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
6011   { NULL, 0, 0, NULL }
6012 };
6013
6014 static int
6015 dissect_ulp_SessionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6016   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6017                                    ett_ulp_SessionInformation, SessionInformation_sequence);
6018
6019   return offset;
6020 }
6021
6022
6023 static const per_sequence_t SessionList_sequence_of[1] = {
6024   { &hf_ulp_SessionList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SessionInformation },
6025 };
6026
6027 static int
6028 dissect_ulp_SessionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6029   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6030                                                   ett_ulp_SessionList, SessionList_sequence_of,
6031                                                   1, maxnumSessions, FALSE);
6032
6033   return offset;
6034 }
6035
6036
6037 static const per_sequence_t GANSSSignalsDescription_sequence[] = {
6038   { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
6039   { &hf_ulp_gANSSSignals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
6040   { NULL, 0, 0, NULL }
6041 };
6042
6043 static int
6044 dissect_ulp_GANSSSignalsDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6045   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6046                                    ett_ulp_GANSSSignalsDescription, GANSSSignalsDescription_sequence);
6047
6048   return offset;
6049 }
6050
6051
6052 static const per_sequence_t GANSSsignalsInfo_sequence_of[1] = {
6053   { &hf_ulp_GANSSsignalsInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignalsDescription },
6054 };
6055
6056 static int
6057 dissect_ulp_GANSSsignalsInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6058   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6059                                                   ett_ulp_GANSSsignalsInfo, GANSSsignalsInfo_sequence_of,
6060                                                   1, maxGANSS, FALSE);
6061
6062   return offset;
6063 }
6064
6065
6066 static const per_sequence_t PositionData_sequence[] = {
6067   { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Position },
6068   { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosMethod },
6069   { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
6070   { &hf_ulp_ganssSignalsInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GANSSsignalsInfo },
6071   { NULL, 0, 0, NULL }
6072 };
6073
6074 static int
6075 dissect_ulp_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6076   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6077                                    ett_ulp_PositionData, PositionData_sequence);
6078
6079   return offset;
6080 }
6081
6082
6083 static const value_string ulp_ResultCode_vals[] = {
6084   {   1, "outofradiocoverage" },
6085   {   2, "noposition" },
6086   {   3, "nomeasurement" },
6087   {   4, "nopositionnomeasurement" },
6088   {   5, "outofmemory" },
6089   {   6, "outofmemoryintermediatereporting" },
6090   {   7, "other" },
6091   { 0, NULL }
6092 };
6093
6094 static guint32 ResultCode_value_map[7+0] = {1, 2, 3, 4, 5, 6, 7};
6095
6096 static int
6097 dissect_ulp_ResultCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6098   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6099                                      7, NULL, TRUE, 0, ResultCode_value_map);
6100
6101   return offset;
6102 }
6103
6104
6105
6106 static int
6107 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_) {
6108   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6109                                                             0U, 31536000U, NULL, FALSE);
6110
6111   return offset;
6112 }
6113
6114
6115 static const value_string ulp_TimeStamp_vals[] = {
6116   {   0, "absoluteTime" },
6117   {   1, "relativeTime" },
6118   { 0, NULL }
6119 };
6120
6121 static const per_choice_t TimeStamp_choice[] = {
6122   {   0, &hf_ulp_absoluteTime    , ASN1_NO_EXTENSIONS     , dissect_ulp_UTCTime },
6123   {   1, &hf_ulp_relativeTime    , ASN1_NO_EXTENSIONS     , dissect_ulp_INTEGER_0_31536000 },
6124   { 0, NULL, 0, NULL }
6125 };
6126
6127 static int
6128 dissect_ulp_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6129   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6130                                  ett_ulp_TimeStamp, TimeStamp_choice,
6131                                  NULL);
6132
6133   return offset;
6134 }
6135
6136
6137 static const per_sequence_t ReportData_sequence[] = {
6138   { &hf_ulp_positionData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PositionData },
6139   { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
6140   { &hf_ulp_resultCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ResultCode },
6141   { &hf_ulp_timestamp       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TimeStamp },
6142   { NULL, 0, 0, NULL }
6143 };
6144
6145 static int
6146 dissect_ulp_ReportData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6147   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6148                                    ett_ulp_ReportData, ReportData_sequence);
6149
6150   return offset;
6151 }
6152
6153
6154 static const per_sequence_t ReportDataList_sequence_of[1] = {
6155   { &hf_ulp_ReportDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ReportData },
6156 };
6157
6158 static int
6159 dissect_ulp_ReportDataList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6160   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6161                                                   ett_ulp_ReportDataList, ReportDataList_sequence_of,
6162                                                   1, 1024, FALSE);
6163
6164   return offset;
6165 }
6166
6167
6168 static const per_sequence_t Ver2_SUPLREPORT_sequence[] = {
6169   { &hf_ulp_sessionList     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SessionList },
6170   { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
6171   { &hf_ulp_reportDataList  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportDataList },
6172   { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
6173   { &hf_ulp_moreComponents  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NULL },
6174   { NULL, 0, 0, NULL }
6175 };
6176
6177 static int
6178 dissect_ulp_Ver2_SUPLREPORT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6179   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6180                                    ett_ulp_Ver2_SUPLREPORT, Ver2_SUPLREPORT_sequence);
6181
6182   return offset;
6183 }
6184
6185
6186 static const value_string ulp_UlpMessage_vals[] = {
6187   {   0, "msSUPLINIT" },
6188   {   1, "msSUPLSTART" },
6189   {   2, "msSUPLRESPONSE" },
6190   {   3, "msSUPLPOSINIT" },
6191   {   4, "msSUPLPOS" },
6192   {   5, "msSUPLEND" },
6193   {   6, "msSUPLAUTHREQ" },
6194   {   7, "msSUPLAUTHRESP" },
6195   {   8, "msSUPLTRIGGEREDSTART" },
6196   {   9, "msSUPLTRIGGEREDRESPONSE" },
6197   {  10, "msSUPLTRIGGEREDSTOP" },
6198   {  11, "msSUPLNOTIFY" },
6199   {  12, "msSUPLNOTIFYRESPONSE" },
6200   {  13, "msSUPLSETINIT" },
6201   {  14, "msSUPLREPORT" },
6202   { 0, NULL }
6203 };
6204
6205 static const per_choice_t UlpMessage_choice[] = {
6206   {   0, &hf_ulp_msSUPLINIT      , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLINIT },
6207   {   1, &hf_ulp_msSUPLSTART     , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLSTART },
6208   {   2, &hf_ulp_msSUPLRESPONSE  , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLRESPONSE },
6209   {   3, &hf_ulp_msSUPLPOSINIT   , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLPOSINIT },
6210   {   4, &hf_ulp_msSUPLPOS       , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLPOS },
6211   {   5, &hf_ulp_msSUPLEND       , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLEND },
6212   {   6, &hf_ulp_msSUPLAUTHREQ   , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLAUTHREQ },
6213   {   7, &hf_ulp_msSUPLAUTHRESP  , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLAUTHRESP },
6214   {   8, &hf_ulp_msSUPLTRIGGEREDSTART, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDSTART },
6215   {   9, &hf_ulp_msSUPLTRIGGEREDRESPONSE, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDRESPONSE },
6216   {  10, &hf_ulp_msSUPLTRIGGEREDSTOP, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDSTOP },
6217   {  11, &hf_ulp_msSUPLNOTIFY    , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLNOTIFY },
6218   {  12, &hf_ulp_msSUPLNOTIFYRESPONSE, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLNOTIFYRESPONSE },
6219   {  13, &hf_ulp_msSUPLSETINIT   , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLSETINIT },
6220   {  14, &hf_ulp_msSUPLREPORT    , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLREPORT },
6221   { 0, NULL, 0, NULL }
6222 };
6223
6224 static int
6225 dissect_ulp_UlpMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6226 #line 43 "../../asn1/ulp/ulp.cnf"
6227
6228 guint32 UlpMessage;
6229
6230     offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6231                                  ett_ulp_UlpMessage, UlpMessage_choice,
6232                                  &UlpMessage);
6233
6234
6235   col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
6236
6237
6238
6239   return offset;
6240 }
6241
6242
6243 static const per_sequence_t ULP_PDU_sequence[] = {
6244   { &hf_ulp_length          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
6245   { &hf_ulp_version         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Version },
6246   { &hf_ulp_sessionID       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
6247   { &hf_ulp_message         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UlpMessage },
6248   { NULL, 0, 0, NULL }
6249 };
6250
6251 static int
6252 dissect_ulp_ULP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6253 #line 28 "../../asn1/ulp/ulp.cnf"
6254   proto_item *it;
6255   proto_tree *ulp_tree;
6256
6257   it = proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, ENC_NA);
6258   ulp_tree = proto_item_add_subtree(it, ett_ulp);
6259
6260   col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
6261   col_clear(actx->pinfo->cinfo, COL_INFO);
6262
6263 #line 39 "../../asn1/ulp/ulp.cnf"
6264   offset = dissect_per_sequence(tvb, offset, actx, ulp_tree, hf_index,
6265                                    ett_ulp_ULP_PDU, ULP_PDU_sequence);
6266
6267
6268
6269   return offset;
6270 }
6271
6272 /*--- PDUs ---*/
6273
6274 static int dissect_ULP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
6275   int offset = 0;
6276   asn1_ctx_t asn1_ctx;
6277   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
6278   offset = dissect_ulp_ULP_PDU(tvb, offset, &asn1_ctx, tree, hf_ulp_ULP_PDU_PDU);
6279   offset += 7; offset >>= 3;
6280   return offset;
6281 }
6282
6283
6284 /*--- End of included file: packet-ulp-fn.c ---*/
6285 #line 73 "../../asn1/ulp/packet-ulp-template.c"
6286
6287
6288 static guint
6289 get_ulp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset)
6290 {
6291   /* PDU length = Message length */
6292   return tvb_get_ntohs(tvb,offset);
6293 }
6294
6295 static int
6296 dissect_ulp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
6297 {
6298   tcp_dissect_pdus(tvb, pinfo, tree, ulp_desegment, ULP_HEADER_SIZE,
6299                    get_ulp_pdu_len, dissect_ULP_PDU_PDU, data);
6300   return tvb_length(tvb);
6301 }
6302
6303 void proto_reg_handoff_ulp(void);
6304
6305 /*--- proto_register_ulp -------------------------------------------*/
6306 void proto_register_ulp(void) {
6307
6308   /* List of fields */
6309   static hf_register_info hf[] = {
6310
6311
6312 /*--- Included file: packet-ulp-hfarr.c ---*/
6313 #line 1 "../../asn1/ulp/packet-ulp-hfarr.c"
6314     { &hf_ulp_ULP_PDU_PDU,
6315       { "ULP-PDU", "ulp.ULP_PDU_element",
6316         FT_NONE, BASE_NONE, NULL, 0,
6317         NULL, HFILL }},
6318     { &hf_ulp_length,
6319       { "length", "ulp.length",
6320         FT_UINT32, BASE_DEC, NULL, 0,
6321         "INTEGER_0_65535", HFILL }},
6322     { &hf_ulp_version,
6323       { "version", "ulp.version_element",
6324         FT_NONE, BASE_NONE, NULL, 0,
6325         NULL, HFILL }},
6326     { &hf_ulp_sessionID,
6327       { "sessionID", "ulp.sessionID_element",
6328         FT_NONE, BASE_NONE, NULL, 0,
6329         NULL, HFILL }},
6330     { &hf_ulp_message,
6331       { "message", "ulp.message",
6332         FT_UINT32, BASE_DEC, VALS(ulp_UlpMessage_vals), 0,
6333         "UlpMessage", HFILL }},
6334     { &hf_ulp_msSUPLINIT,
6335       { "msSUPLINIT", "ulp.msSUPLINIT_element",
6336         FT_NONE, BASE_NONE, NULL, 0,
6337         "SUPLINIT", HFILL }},
6338     { &hf_ulp_msSUPLSTART,
6339       { "msSUPLSTART", "ulp.msSUPLSTART_element",
6340         FT_NONE, BASE_NONE, NULL, 0,
6341         "SUPLSTART", HFILL }},
6342     { &hf_ulp_msSUPLRESPONSE,
6343       { "msSUPLRESPONSE", "ulp.msSUPLRESPONSE_element",
6344         FT_NONE, BASE_NONE, NULL, 0,
6345         "SUPLRESPONSE", HFILL }},
6346     { &hf_ulp_msSUPLPOSINIT,
6347       { "msSUPLPOSINIT", "ulp.msSUPLPOSINIT_element",
6348         FT_NONE, BASE_NONE, NULL, 0,
6349         "SUPLPOSINIT", HFILL }},
6350     { &hf_ulp_msSUPLPOS,
6351       { "msSUPLPOS", "ulp.msSUPLPOS_element",
6352         FT_NONE, BASE_NONE, NULL, 0,
6353         "SUPLPOS", HFILL }},
6354     { &hf_ulp_msSUPLEND,
6355       { "msSUPLEND", "ulp.msSUPLEND_element",
6356         FT_NONE, BASE_NONE, NULL, 0,
6357         "SUPLEND", HFILL }},
6358     { &hf_ulp_msSUPLAUTHREQ,
6359       { "msSUPLAUTHREQ", "ulp.msSUPLAUTHREQ_element",
6360         FT_NONE, BASE_NONE, NULL, 0,
6361         "SUPLAUTHREQ", HFILL }},
6362     { &hf_ulp_msSUPLAUTHRESP,
6363       { "msSUPLAUTHRESP", "ulp.msSUPLAUTHRESP_element",
6364         FT_NONE, BASE_NONE, NULL, 0,
6365         "SUPLAUTHRESP", HFILL }},
6366     { &hf_ulp_msSUPLTRIGGEREDSTART,
6367       { "msSUPLTRIGGEREDSTART", "ulp.msSUPLTRIGGEREDSTART_element",
6368         FT_NONE, BASE_NONE, NULL, 0,
6369         "Ver2_SUPLTRIGGEREDSTART", HFILL }},
6370     { &hf_ulp_msSUPLTRIGGEREDRESPONSE,
6371       { "msSUPLTRIGGEREDRESPONSE", "ulp.msSUPLTRIGGEREDRESPONSE_element",
6372         FT_NONE, BASE_NONE, NULL, 0,
6373         "Ver2_SUPLTRIGGEREDRESPONSE", HFILL }},
6374     { &hf_ulp_msSUPLTRIGGEREDSTOP,
6375       { "msSUPLTRIGGEREDSTOP", "ulp.msSUPLTRIGGEREDSTOP_element",
6376         FT_NONE, BASE_NONE, NULL, 0,
6377         "Ver2_SUPLTRIGGEREDSTOP", HFILL }},
6378     { &hf_ulp_msSUPLNOTIFY,
6379       { "msSUPLNOTIFY", "ulp.msSUPLNOTIFY_element",
6380         FT_NONE, BASE_NONE, NULL, 0,
6381         "Ver2_SUPLNOTIFY", HFILL }},
6382     { &hf_ulp_msSUPLNOTIFYRESPONSE,
6383       { "msSUPLNOTIFYRESPONSE", "ulp.msSUPLNOTIFYRESPONSE_element",
6384         FT_NONE, BASE_NONE, NULL, 0,
6385         "Ver2_SUPLNOTIFYRESPONSE", HFILL }},
6386     { &hf_ulp_msSUPLSETINIT,
6387       { "msSUPLSETINIT", "ulp.msSUPLSETINIT_element",
6388         FT_NONE, BASE_NONE, NULL, 0,
6389         "Ver2_SUPLSETINIT", HFILL }},
6390     { &hf_ulp_msSUPLREPORT,
6391       { "msSUPLREPORT", "ulp.msSUPLREPORT_element",
6392         FT_NONE, BASE_NONE, NULL, 0,
6393         "Ver2_SUPLREPORT", HFILL }},
6394     { &hf_ulp_posMethod,
6395       { "posMethod", "ulp.posMethod",
6396         FT_UINT32, BASE_DEC, VALS(ulp_PosMethod_vals), 0,
6397         NULL, HFILL }},
6398     { &hf_ulp_notification,
6399       { "notification", "ulp.notification_element",
6400         FT_NONE, BASE_NONE, NULL, 0,
6401         NULL, HFILL }},
6402     { &hf_ulp_sLPAddress,
6403       { "sLPAddress", "ulp.sLPAddress",
6404         FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
6405         NULL, HFILL }},
6406     { &hf_ulp_qoP,
6407       { "qoP", "ulp.qoP_element",
6408         FT_NONE, BASE_NONE, NULL, 0,
6409         NULL, HFILL }},
6410     { &hf_ulp_sLPMode,
6411       { "sLPMode", "ulp.sLPMode",
6412         FT_UINT32, BASE_DEC, VALS(ulp_SLPMode_vals), 0,
6413         NULL, HFILL }},
6414     { &hf_ulp_mAC,
6415       { "mAC", "ulp.mAC",
6416         FT_BYTES, BASE_NONE, NULL, 0,
6417         NULL, HFILL }},
6418     { &hf_ulp_keyIdentity,
6419       { "keyIdentity", "ulp.keyIdentity",
6420         FT_BYTES, BASE_NONE, NULL, 0,
6421         NULL, HFILL }},
6422     { &hf_ulp_ver2_SUPL_INIT_extension,
6423       { "ver2-SUPL-INIT-extension", "ulp.ver2_SUPL_INIT_extension_element",
6424         FT_NONE, BASE_NONE, NULL, 0,
6425         NULL, HFILL }},
6426     { &hf_ulp_notificationType,
6427       { "notificationType", "ulp.notificationType",
6428         FT_UINT32, BASE_DEC, VALS(ulp_NotificationType_vals), 0,
6429         NULL, HFILL }},
6430     { &hf_ulp_encodingType,
6431       { "encodingType", "ulp.encodingType",
6432         FT_UINT32, BASE_DEC, VALS(ulp_EncodingType_vals), 0,
6433         NULL, HFILL }},
6434     { &hf_ulp_requestorId,
6435       { "requestorId", "ulp.requestorId",
6436         FT_BYTES, BASE_NONE, NULL, 0,
6437         "OCTET_STRING_SIZE_1_maxReqLength", HFILL }},
6438     { &hf_ulp_requestorIdType,
6439       { "requestorIdType", "ulp.requestorIdType",
6440         FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
6441         "FormatIndicator", HFILL }},
6442     { &hf_ulp_clientName,
6443       { "clientName", "ulp.clientName",
6444         FT_BYTES, BASE_NONE, NULL, 0,
6445         "OCTET_STRING_SIZE_1_maxClientLength", HFILL }},
6446     { &hf_ulp_clientNameType,
6447       { "clientNameType", "ulp.clientNameType",
6448         FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
6449         "FormatIndicator", HFILL }},
6450     { &hf_ulp_ver2_Notification_extension,
6451       { "ver2-Notification-extension", "ulp.ver2_Notification_extension_element",
6452         FT_NONE, BASE_NONE, NULL, 0,
6453         NULL, HFILL }},
6454     { &hf_ulp_sETCapabilities,
6455       { "sETCapabilities", "ulp.sETCapabilities_element",
6456         FT_NONE, BASE_NONE, NULL, 0,
6457         NULL, HFILL }},
6458     { &hf_ulp_locationId,
6459       { "locationId", "ulp.locationId_element",
6460         FT_NONE, BASE_NONE, NULL, 0,
6461         NULL, HFILL }},
6462     { &hf_ulp_ver2_SUPL_START_extension,
6463       { "ver2-SUPL-START-extension", "ulp.ver2_SUPL_START_extension_element",
6464         FT_NONE, BASE_NONE, NULL, 0,
6465         NULL, HFILL }},
6466     { &hf_ulp_posTechnology,
6467       { "posTechnology", "ulp.posTechnology_element",
6468         FT_NONE, BASE_NONE, NULL, 0,
6469         NULL, HFILL }},
6470     { &hf_ulp_prefMethod,
6471       { "prefMethod", "ulp.prefMethod",
6472         FT_UINT32, BASE_DEC, VALS(ulp_PrefMethod_vals), 0,
6473         NULL, HFILL }},
6474     { &hf_ulp_posProtocol,
6475       { "posProtocol", "ulp.posProtocol_element",
6476         FT_NONE, BASE_NONE, NULL, 0,
6477         NULL, HFILL }},
6478     { &hf_ulp_ver2_SETCapabilities_extension,
6479       { "ver2-SETCapabilities-extension", "ulp.ver2_SETCapabilities_extension_element",
6480         FT_NONE, BASE_NONE, NULL, 0,
6481         NULL, HFILL }},
6482     { &hf_ulp_agpsSETassisted,
6483       { "agpsSETassisted", "ulp.agpsSETassisted",
6484         FT_BOOLEAN, BASE_NONE, NULL, 0,
6485         "BOOLEAN", HFILL }},
6486     { &hf_ulp_agpsSETBased,
6487       { "agpsSETBased", "ulp.agpsSETBased",
6488         FT_BOOLEAN, BASE_NONE, NULL, 0,
6489         "BOOLEAN", HFILL }},
6490     { &hf_ulp_autonomousGPS,
6491       { "autonomousGPS", "ulp.autonomousGPS",
6492         FT_BOOLEAN, BASE_NONE, NULL, 0,
6493         "BOOLEAN", HFILL }},
6494     { &hf_ulp_aFLT,
6495       { "aFLT", "ulp.aFLT",
6496         FT_BOOLEAN, BASE_NONE, NULL, 0,
6497         "BOOLEAN", HFILL }},
6498     { &hf_ulp_eCID,
6499       { "eCID", "ulp.eCID",
6500         FT_BOOLEAN, BASE_NONE, NULL, 0,
6501         "BOOLEAN", HFILL }},
6502     { &hf_ulp_eOTD,
6503       { "eOTD", "ulp.eOTD",
6504         FT_BOOLEAN, BASE_NONE, NULL, 0,
6505         "BOOLEAN", HFILL }},
6506     { &hf_ulp_oTDOA,
6507       { "oTDOA", "ulp.oTDOA",
6508         FT_BOOLEAN, BASE_NONE, NULL, 0,
6509         "BOOLEAN", HFILL }},
6510     { &hf_ulp_ver2_PosTechnology_extension,
6511       { "ver2-PosTechnology-extension", "ulp.ver2_PosTechnology_extension_element",
6512         FT_NONE, BASE_NONE, NULL, 0,
6513         NULL, HFILL }},
6514     { &hf_ulp_tia801,
6515       { "tia801", "ulp.tia801",
6516         FT_BOOLEAN, BASE_NONE, NULL, 0,
6517         "BOOLEAN", HFILL }},
6518     { &hf_ulp_rrlp,
6519       { "rrlp", "ulp.rrlp",
6520         FT_BOOLEAN, BASE_NONE, NULL, 0,
6521         "BOOLEAN", HFILL }},
6522     { &hf_ulp_rrc,
6523       { "rrc", "ulp.rrc",
6524         FT_BOOLEAN, BASE_NONE, NULL, 0,
6525         "BOOLEAN", HFILL }},
6526     { &hf_ulp_ver2_PosProtocol_extension,
6527       { "ver2-PosProtocol-extension", "ulp.ver2_PosProtocol_extension_element",
6528         FT_NONE, BASE_NONE, NULL, 0,
6529         NULL, HFILL }},
6530     { &hf_ulp_sETAuthKey,
6531       { "sETAuthKey", "ulp.sETAuthKey",
6532         FT_UINT32, BASE_DEC, VALS(ulp_SETAuthKey_vals), 0,
6533         NULL, HFILL }},
6534     { &hf_ulp_keyIdentity4,
6535       { "keyIdentity4", "ulp.keyIdentity4",
6536         FT_BYTES, BASE_NONE, NULL, 0,
6537         NULL, HFILL }},
6538     { &hf_ulp_ver2_SUPL_RESPONSE_extension,
6539       { "ver2-SUPL-RESPONSE-extension", "ulp.ver2_SUPL_RESPONSE_extension_element",
6540         FT_NONE, BASE_NONE, NULL, 0,
6541         NULL, HFILL }},
6542     { &hf_ulp_shortKey,
6543       { "shortKey", "ulp.shortKey",
6544         FT_BYTES, BASE_NONE, NULL, 0,
6545         "BIT_STRING_SIZE_128", HFILL }},
6546     { &hf_ulp_longKey,
6547       { "longKey", "ulp.longKey",
6548         FT_BYTES, BASE_NONE, NULL, 0,
6549         "BIT_STRING_SIZE_256", HFILL }},
6550     { &hf_ulp_requestedAssistData,
6551       { "requestedAssistData", "ulp.requestedAssistData_element",
6552         FT_NONE, BASE_NONE, NULL, 0,
6553         NULL, HFILL }},
6554     { &hf_ulp_position,
6555       { "position", "ulp.position_element",
6556         FT_NONE, BASE_NONE, NULL, 0,
6557         NULL, HFILL }},
6558     { &hf_ulp_sUPLPOS,
6559       { "sUPLPOS", "ulp.sUPLPOS_element",
6560         FT_NONE, BASE_NONE, NULL, 0,
6561         NULL, HFILL }},
6562     { &hf_ulp_ver,
6563       { "ver", "ulp.ver",
6564         FT_BYTES, BASE_NONE, NULL, 0,
6565         NULL, HFILL }},
6566     { &hf_ulp_ver2_SUPL_POS_INIT_extension,
6567       { "ver2-SUPL-POS-INIT-extension", "ulp.ver2_SUPL_POS_INIT_extension_element",
6568         FT_NONE, BASE_NONE, NULL, 0,
6569         NULL, HFILL }},
6570     { &hf_ulp_almanacRequested,
6571       { "almanacRequested", "ulp.almanacRequested",
6572         FT_BOOLEAN, BASE_NONE, NULL, 0,
6573         "BOOLEAN", HFILL }},
6574     { &hf_ulp_utcModelRequested,
6575       { "utcModelRequested", "ulp.utcModelRequested",
6576         FT_BOOLEAN, BASE_NONE, NULL, 0,
6577         "BOOLEAN", HFILL }},
6578     { &hf_ulp_ionosphericModelRequested,
6579       { "ionosphericModelRequested", "ulp.ionosphericModelRequested",
6580         FT_BOOLEAN, BASE_NONE, NULL, 0,
6581         "BOOLEAN", HFILL }},
6582     { &hf_ulp_dgpsCorrectionsRequested,
6583       { "dgpsCorrectionsRequested", "ulp.dgpsCorrectionsRequested",
6584         FT_BOOLEAN, BASE_NONE, NULL, 0,
6585         "BOOLEAN", HFILL }},
6586     { &hf_ulp_referenceLocationRequested,
6587       { "referenceLocationRequested", "ulp.referenceLocationRequested",
6588         FT_BOOLEAN, BASE_NONE, NULL, 0,
6589         "BOOLEAN", HFILL }},
6590     { &hf_ulp_referenceTimeRequested,
6591       { "referenceTimeRequested", "ulp.referenceTimeRequested",
6592         FT_BOOLEAN, BASE_NONE, NULL, 0,
6593         "BOOLEAN", HFILL }},
6594     { &hf_ulp_acquisitionAssistanceRequested,
6595       { "acquisitionAssistanceRequested", "ulp.acquisitionAssistanceRequested",
6596         FT_BOOLEAN, BASE_NONE, NULL, 0,
6597         "BOOLEAN", HFILL }},
6598     { &hf_ulp_realTimeIntegrityRequested,
6599       { "realTimeIntegrityRequested", "ulp.realTimeIntegrityRequested",
6600         FT_BOOLEAN, BASE_NONE, NULL, 0,
6601         "BOOLEAN", HFILL }},
6602     { &hf_ulp_navigationModelRequested,
6603       { "navigationModelRequested", "ulp.navigationModelRequested",
6604         FT_BOOLEAN, BASE_NONE, NULL, 0,
6605         "BOOLEAN", HFILL }},
6606     { &hf_ulp_navigationModelData,
6607       { "navigationModelData", "ulp.navigationModelData_element",
6608         FT_NONE, BASE_NONE, NULL, 0,
6609         "NavigationModel", HFILL }},
6610     { &hf_ulp_ver2_RequestedAssistData_extension,
6611       { "ver2-RequestedAssistData-extension", "ulp.ver2_RequestedAssistData_extension_element",
6612         FT_NONE, BASE_NONE, NULL, 0,
6613         NULL, HFILL }},
6614     { &hf_ulp_gpsWeek,
6615       { "gpsWeek", "ulp.gpsWeek",
6616         FT_UINT32, BASE_DEC, NULL, 0,
6617         "INTEGER_0_1023", HFILL }},
6618     { &hf_ulp_gpsToe,
6619       { "gpsToe", "ulp.gpsToe",
6620         FT_UINT32, BASE_DEC, NULL, 0,
6621         "INTEGER_0_167", HFILL }},
6622     { &hf_ulp_nSAT,
6623       { "nSAT", "ulp.nSAT",
6624         FT_UINT32, BASE_DEC, NULL, 0,
6625         "INTEGER_0_31", HFILL }},
6626     { &hf_ulp_toeLimit,
6627       { "toeLimit", "ulp.toeLimit",
6628         FT_UINT32, BASE_DEC, NULL, 0,
6629         "INTEGER_0_10", HFILL }},
6630     { &hf_ulp_satInfo,
6631       { "satInfo", "ulp.satInfo",
6632         FT_UINT32, BASE_DEC, NULL, 0,
6633         "SatelliteInfo", HFILL }},
6634     { &hf_ulp_SatelliteInfo_item,
6635       { "SatelliteInfoElement", "ulp.SatelliteInfoElement_element",
6636         FT_NONE, BASE_NONE, NULL, 0,
6637         NULL, HFILL }},
6638     { &hf_ulp_satId,
6639       { "satId", "ulp.satId",
6640         FT_UINT32, BASE_DEC, NULL, 0,
6641         "INTEGER_0_63", HFILL }},
6642     { &hf_ulp_iODE,
6643       { "iODE", "ulp.iODE",
6644         FT_UINT32, BASE_DEC, NULL, 0,
6645         "INTEGER_0_255", HFILL }},
6646     { &hf_ulp_posPayLoad,
6647       { "posPayLoad", "ulp.posPayLoad",
6648         FT_UINT32, BASE_DEC, VALS(ulp_PosPayLoad_vals), 0,
6649         NULL, HFILL }},
6650     { &hf_ulp_velocity,
6651       { "velocity", "ulp.velocity",
6652         FT_UINT32, BASE_DEC, VALS(ulp_Velocity_vals), 0,
6653         NULL, HFILL }},
6654     { &hf_ulp_ver2_SUPL_POS_extension,
6655       { "ver2-SUPL-POS-extension", "ulp.ver2_SUPL_POS_extension_element",
6656         FT_NONE, BASE_NONE, NULL, 0,
6657         NULL, HFILL }},
6658     { &hf_ulp_tia801payload,
6659       { "tia801payload", "ulp.tia801payload",
6660         FT_BYTES, BASE_NONE, NULL, 0,
6661         "OCTET_STRING_SIZE_1_8192", HFILL }},
6662     { &hf_ulp_rrcPayload,
6663       { "rrcPayload", "ulp.rrcPayload",
6664         FT_BYTES, BASE_NONE, NULL, 0,
6665         "OCTET_STRING_SIZE_1_8192", HFILL }},
6666     { &hf_ulp_rrlpPayload,
6667       { "rrlpPayload", "ulp.rrlpPayload",
6668         FT_BYTES, BASE_NONE, NULL, 0,
6669         NULL, HFILL }},
6670     { &hf_ulp_ver2_PosPayLoad_extension,
6671       { "ver2-PosPayLoad-extension", "ulp.ver2_PosPayLoad_extension_element",
6672         FT_NONE, BASE_NONE, NULL, 0,
6673         NULL, HFILL }},
6674     { &hf_ulp_statusCode,
6675       { "statusCode", "ulp.statusCode",
6676         FT_UINT32, BASE_DEC, VALS(ulp_StatusCode_vals), 0,
6677         NULL, HFILL }},
6678     { &hf_ulp_ver2_SUPL_END_extension,
6679       { "ver2-SUPL-END-extension", "ulp.ver2_SUPL_END_extension_element",
6680         FT_NONE, BASE_NONE, NULL, 0,
6681         NULL, HFILL }},
6682     { &hf_ulp_sPCSETKey,
6683       { "sPCSETKey", "ulp.sPCSETKey",
6684         FT_BYTES, BASE_NONE, NULL, 0,
6685         NULL, HFILL }},
6686     { &hf_ulp_sPCTID,
6687       { "sPCTID", "ulp.sPCTID_element",
6688         FT_NONE, BASE_NONE, NULL, 0,
6689         NULL, HFILL }},
6690     { &hf_ulp_sPCSETKeylifetime,
6691       { "sPCSETKeylifetime", "ulp.sPCSETKeylifetime",
6692         FT_UINT32, BASE_DEC, NULL, 0,
6693         NULL, HFILL }},
6694     { &hf_ulp_notificationResponse,
6695       { "notificationResponse", "ulp.notificationResponse",
6696         FT_UINT32, BASE_DEC, VALS(ulp_NotificationResponse_vals), 0,
6697         NULL, HFILL }},
6698     { &hf_ulp_targetSETID,
6699       { "targetSETID", "ulp.targetSETID",
6700         FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
6701         "SETId", HFILL }},
6702     { &hf_ulp_applicationID,
6703       { "applicationID", "ulp.applicationID_element",
6704         FT_NONE, BASE_NONE, NULL, 0,
6705         NULL, HFILL }},
6706     { &hf_ulp_multipleLocationIds,
6707       { "multipleLocationIds", "ulp.multipleLocationIds",
6708         FT_UINT32, BASE_DEC, NULL, 0,
6709         NULL, HFILL }},
6710     { &hf_ulp_thirdParty,
6711       { "thirdParty", "ulp.thirdParty",
6712         FT_UINT32, BASE_DEC, NULL, 0,
6713         NULL, HFILL }},
6714     { &hf_ulp_triggerType,
6715       { "triggerType", "ulp.triggerType",
6716         FT_UINT32, BASE_DEC, VALS(ulp_TriggerType_vals), 0,
6717         NULL, HFILL }},
6718     { &hf_ulp_triggerParams,
6719       { "triggerParams", "ulp.triggerParams",
6720         FT_UINT32, BASE_DEC, VALS(ulp_TriggerParams_vals), 0,
6721         NULL, HFILL }},
6722     { &hf_ulp_reportingCap,
6723       { "reportingCap", "ulp.reportingCap_element",
6724         FT_NONE, BASE_NONE, NULL, 0,
6725         NULL, HFILL }},
6726     { &hf_ulp_causeCode,
6727       { "causeCode", "ulp.causeCode",
6728         FT_UINT32, BASE_DEC, VALS(ulp_CauseCode_vals), 0,
6729         NULL, HFILL }},
6730     { &hf_ulp_periodicParams,
6731       { "periodicParams", "ulp.periodicParams_element",
6732         FT_NONE, BASE_NONE, NULL, 0,
6733         NULL, HFILL }},
6734     { &hf_ulp_areaEventParams,
6735       { "areaEventParams", "ulp.areaEventParams_element",
6736         FT_NONE, BASE_NONE, NULL, 0,
6737         NULL, HFILL }},
6738     { &hf_ulp_numberOfFixes,
6739       { "numberOfFixes", "ulp.numberOfFixes",
6740         FT_UINT32, BASE_DEC, NULL, 0,
6741         "INTEGER_1_8639999", HFILL }},
6742     { &hf_ulp_intervalBetweenFixes,
6743       { "intervalBetweenFixes", "ulp.intervalBetweenFixes",
6744         FT_UINT32, BASE_DEC, NULL, 0,
6745         "INTEGER_1_8639999", HFILL }},
6746     { &hf_ulp_startTime,
6747       { "startTime", "ulp.startTime",
6748         FT_UINT32, BASE_DEC, NULL, 0,
6749         "INTEGER_0_2678400", HFILL }},
6750     { &hf_ulp_areaEventType,
6751       { "areaEventType", "ulp.areaEventType",
6752         FT_UINT32, BASE_DEC, VALS(ulp_AreaEventType_vals), 0,
6753         NULL, HFILL }},
6754     { &hf_ulp_locationEstimate,
6755       { "locationEstimate", "ulp.locationEstimate",
6756         FT_BOOLEAN, BASE_NONE, NULL, 0,
6757         "BOOLEAN", HFILL }},
6758     { &hf_ulp_repeatedReportingParams,
6759       { "repeatedReportingParams", "ulp.repeatedReportingParams_element",
6760         FT_NONE, BASE_NONE, NULL, 0,
6761         NULL, HFILL }},
6762     { &hf_ulp_stopTime,
6763       { "stopTime", "ulp.stopTime",
6764         FT_UINT32, BASE_DEC, NULL, 0,
6765         "INTEGER_0_11318399", HFILL }},
6766     { &hf_ulp_geographicTargetAreaList,
6767       { "geographicTargetAreaList", "ulp.geographicTargetAreaList",
6768         FT_UINT32, BASE_DEC, NULL, 0,
6769         NULL, HFILL }},
6770     { &hf_ulp_areaIdLists,
6771       { "areaIdLists", "ulp.areaIdLists",
6772         FT_UINT32, BASE_DEC, NULL, 0,
6773         "SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList", HFILL }},
6774     { &hf_ulp_areaIdLists_item,
6775       { "AreaIdList", "ulp.AreaIdList_element",
6776         FT_NONE, BASE_NONE, NULL, 0,
6777         NULL, HFILL }},
6778     { &hf_ulp_minimumIntervalTime,
6779       { "minimumIntervalTime", "ulp.minimumIntervalTime",
6780         FT_UINT32, BASE_DEC, NULL, 0,
6781         "INTEGER_1_604800", HFILL }},
6782     { &hf_ulp_maximumNumberOfReports,
6783       { "maximumNumberOfReports", "ulp.maximumNumberOfReports",
6784         FT_UINT32, BASE_DEC, NULL, 0,
6785         "INTEGER_1_1024", HFILL }},
6786     { &hf_ulp_GeographicTargetAreaList_item,
6787       { "GeographicTargetArea", "ulp.GeographicTargetArea",
6788         FT_UINT32, BASE_DEC, VALS(ulp_GeographicTargetArea_vals), 0,
6789         NULL, HFILL }},
6790     { &hf_ulp_circularArea,
6791       { "circularArea", "ulp.circularArea_element",
6792         FT_NONE, BASE_NONE, NULL, 0,
6793         NULL, HFILL }},
6794     { &hf_ulp_ellipticalArea,
6795       { "ellipticalArea", "ulp.ellipticalArea_element",
6796         FT_NONE, BASE_NONE, NULL, 0,
6797         NULL, HFILL }},
6798     { &hf_ulp_polygonArea,
6799       { "polygonArea", "ulp.polygonArea_element",
6800         FT_NONE, BASE_NONE, NULL, 0,
6801         NULL, HFILL }},
6802     { &hf_ulp_areaIdSet,
6803       { "areaIdSet", "ulp.areaIdSet",
6804         FT_UINT32, BASE_DEC, NULL, 0,
6805         NULL, HFILL }},
6806     { &hf_ulp_areaIdSetType,
6807       { "areaIdSetType", "ulp.areaIdSetType",
6808         FT_UINT32, BASE_DEC, VALS(ulp_AreaIdSetType_vals), 0,
6809         NULL, HFILL }},
6810     { &hf_ulp_geoAreaMappingList,
6811       { "geoAreaMappingList", "ulp.geoAreaMappingList",
6812         FT_UINT32, BASE_DEC, NULL, 0,
6813         NULL, HFILL }},
6814     { &hf_ulp_AreaIdSet_item,
6815       { "AreaId", "ulp.AreaId",
6816         FT_UINT32, BASE_DEC, VALS(ulp_AreaId_vals), 0,
6817         NULL, HFILL }},
6818     { &hf_ulp_gSMAreaId,
6819       { "gSMAreaId", "ulp.gSMAreaId_element",
6820         FT_NONE, BASE_NONE, NULL, 0,
6821         NULL, HFILL }},
6822     { &hf_ulp_wCDMAAreaId,
6823       { "wCDMAAreaId", "ulp.wCDMAAreaId_element",
6824         FT_NONE, BASE_NONE, NULL, 0,
6825         NULL, HFILL }},
6826     { &hf_ulp_cDMAAreaId,
6827       { "cDMAAreaId", "ulp.cDMAAreaId_element",
6828         FT_NONE, BASE_NONE, NULL, 0,
6829         NULL, HFILL }},
6830     { &hf_ulp_hRPDAreaId,
6831       { "hRPDAreaId", "ulp.hRPDAreaId_element",
6832         FT_NONE, BASE_NONE, NULL, 0,
6833         NULL, HFILL }},
6834     { &hf_ulp_uMBAreaId,
6835       { "uMBAreaId", "ulp.uMBAreaId_element",
6836         FT_NONE, BASE_NONE, NULL, 0,
6837         NULL, HFILL }},
6838     { &hf_ulp_lTEAreaId,
6839       { "lTEAreaId", "ulp.lTEAreaId_element",
6840         FT_NONE, BASE_NONE, NULL, 0,
6841         NULL, HFILL }},
6842     { &hf_ulp_wLANAreaId,
6843       { "wLANAreaId", "ulp.wLANAreaId_element",
6844         FT_NONE, BASE_NONE, NULL, 0,
6845         NULL, HFILL }},
6846     { &hf_ulp_wiMAXAreaId,
6847       { "wiMAXAreaId", "ulp.wiMAXAreaId_element",
6848         FT_NONE, BASE_NONE, NULL, 0,
6849         NULL, HFILL }},
6850     { &hf_ulp_refMCC,
6851       { "refMCC", "ulp.refMCC",
6852         FT_UINT32, BASE_DEC, NULL, 0,
6853         "INTEGER_0_999", HFILL }},
6854     { &hf_ulp_refMNC,
6855       { "refMNC", "ulp.refMNC",
6856         FT_UINT32, BASE_DEC, NULL, 0,
6857         "INTEGER_0_999", HFILL }},
6858     { &hf_ulp_refLAC,
6859       { "refLAC", "ulp.refLAC",
6860         FT_UINT32, BASE_DEC, NULL, 0,
6861         "INTEGER_0_65535", HFILL }},
6862     { &hf_ulp_refCI,
6863       { "refCI", "ulp.refCI",
6864         FT_UINT32, BASE_DEC, NULL, 0,
6865         "INTEGER_0_65535", HFILL }},
6866     { &hf_ulp_refUC,
6867       { "refUC", "ulp.refUC",
6868         FT_UINT32, BASE_DEC, NULL, 0,
6869         "INTEGER_0_268435455", HFILL }},
6870     { &hf_ulp_refSID,
6871       { "refSID", "ulp.refSID",
6872         FT_UINT32, BASE_DEC, NULL, 0,
6873         "INTEGER_0_65535", HFILL }},
6874     { &hf_ulp_refNID,
6875       { "refNID", "ulp.refNID",
6876         FT_UINT32, BASE_DEC, NULL, 0,
6877         "INTEGER_0_32767", HFILL }},
6878     { &hf_ulp_refBASEID,
6879       { "refBASEID", "ulp.refBASEID",
6880         FT_UINT32, BASE_DEC, NULL, 0,
6881         "INTEGER_0_65535", HFILL }},
6882     { &hf_ulp_refSECTORID,
6883       { "refSECTORID", "ulp.refSECTORID",
6884         FT_BYTES, BASE_NONE, NULL, 0,
6885         "BIT_STRING_SIZE_128", HFILL }},
6886     { &hf_ulp_refCI_01,
6887       { "refCI", "ulp.refCI",
6888         FT_BYTES, BASE_NONE, NULL, 0,
6889         "BIT_STRING_SIZE_29", HFILL }},
6890     { &hf_ulp_apMACAddress,
6891       { "apMACAddress", "ulp.apMACAddress",
6892         FT_BYTES, BASE_NONE, NULL, 0,
6893         "BIT_STRING_SIZE_48", HFILL }},
6894     { &hf_ulp_bsID_MSB,
6895       { "bsID-MSB", "ulp.bsID_MSB",
6896         FT_BYTES, BASE_NONE, NULL, 0,
6897         "BIT_STRING_SIZE_24", HFILL }},
6898     { &hf_ulp_bsID_LSB,
6899       { "bsID-LSB", "ulp.bsID_LSB",
6900         FT_BYTES, BASE_NONE, NULL, 0,
6901         "BIT_STRING_SIZE_24", HFILL }},
6902     { &hf_ulp_GeoAreaMappingList_item,
6903       { "GeoAreaIndex", "ulp.GeoAreaIndex",
6904         FT_UINT32, BASE_DEC, NULL, 0,
6905         NULL, HFILL }},
6906     { &hf_ulp_supportedNetworkInformation,
6907       { "supportedNetworkInformation", "ulp.supportedNetworkInformation_element",
6908         FT_NONE, BASE_NONE, NULL, 0,
6909         NULL, HFILL }},
6910     { &hf_ulp_reportingMode,
6911       { "reportingMode", "ulp.reportingMode_element",
6912         FT_NONE, BASE_NONE, NULL, 0,
6913         NULL, HFILL }},
6914     { &hf_ulp_gnssPosTechnology,
6915       { "gnssPosTechnology", "ulp.gnssPosTechnology_element",
6916         FT_NONE, BASE_NONE, NULL, 0,
6917         NULL, HFILL }},
6918     { &hf_ulp_repMode,
6919       { "repMode", "ulp.repMode",
6920         FT_UINT32, BASE_DEC, VALS(ulp_RepMode_vals), 0,
6921         NULL, HFILL }},
6922     { &hf_ulp_batchRepConditions,
6923       { "batchRepConditions", "ulp.batchRepConditions",
6924         FT_UINT32, BASE_DEC, VALS(ulp_BatchRepConditions_vals), 0,
6925         NULL, HFILL }},
6926     { &hf_ulp_batchRepType,
6927       { "batchRepType", "ulp.batchRepType_element",
6928         FT_NONE, BASE_NONE, NULL, 0,
6929         NULL, HFILL }},
6930     { &hf_ulp_num_interval,
6931       { "num-interval", "ulp.num_interval",
6932         FT_UINT32, BASE_DEC, NULL, 0,
6933         "INTEGER_1_1024", HFILL }},
6934     { &hf_ulp_num_minutes,
6935       { "num-minutes", "ulp.num_minutes",
6936         FT_UINT32, BASE_DEC, NULL, 0,
6937         "INTEGER_1_2048", HFILL }},
6938     { &hf_ulp_endofsession,
6939       { "endofsession", "ulp.endofsession_element",
6940         FT_NONE, BASE_NONE, NULL, 0,
6941         NULL, HFILL }},
6942     { &hf_ulp_reportPosition,
6943       { "reportPosition", "ulp.reportPosition",
6944         FT_BOOLEAN, BASE_NONE, NULL, 0,
6945         "BOOLEAN", HFILL }},
6946     { &hf_ulp_reportMeasurements,
6947       { "reportMeasurements", "ulp.reportMeasurements",
6948         FT_BOOLEAN, BASE_NONE, NULL, 0,
6949         "BOOLEAN", HFILL }},
6950     { &hf_ulp_intermediateReports,
6951       { "intermediateReports", "ulp.intermediateReports",
6952         FT_BOOLEAN, BASE_NONE, NULL, 0,
6953         "BOOLEAN", HFILL }},
6954     { &hf_ulp_discardOldest,
6955       { "discardOldest", "ulp.discardOldest",
6956         FT_BOOLEAN, BASE_NONE, NULL, 0,
6957         "BOOLEAN", HFILL }},
6958     { &hf_ulp_sessionList,
6959       { "sessionList", "ulp.sessionList",
6960         FT_UINT32, BASE_DEC, NULL, 0,
6961         NULL, HFILL }},
6962     { &hf_ulp_reportDataList,
6963       { "reportDataList", "ulp.reportDataList",
6964         FT_UINT32, BASE_DEC, NULL, 0,
6965         NULL, HFILL }},
6966     { &hf_ulp_moreComponents,
6967       { "moreComponents", "ulp.moreComponents_element",
6968         FT_NONE, BASE_NONE, NULL, 0,
6969         NULL, HFILL }},
6970     { &hf_ulp_SessionList_item,
6971       { "SessionInformation", "ulp.SessionInformation_element",
6972         FT_NONE, BASE_NONE, NULL, 0,
6973         NULL, HFILL }},
6974     { &hf_ulp_ReportDataList_item,
6975       { "ReportData", "ulp.ReportData_element",
6976         FT_NONE, BASE_NONE, NULL, 0,
6977         NULL, HFILL }},
6978     { &hf_ulp_positionData,
6979       { "positionData", "ulp.positionData_element",
6980         FT_NONE, BASE_NONE, NULL, 0,
6981         NULL, HFILL }},
6982     { &hf_ulp_resultCode,
6983       { "resultCode", "ulp.resultCode",
6984         FT_UINT32, BASE_DEC, VALS(ulp_ResultCode_vals), 0,
6985         NULL, HFILL }},
6986     { &hf_ulp_timestamp,
6987       { "timestamp", "ulp.timestamp",
6988         FT_UINT32, BASE_DEC, VALS(ulp_TimeStamp_vals), 0,
6989         NULL, HFILL }},
6990     { &hf_ulp_ganssSignalsInfo,
6991       { "ganssSignalsInfo", "ulp.ganssSignalsInfo",
6992         FT_UINT32, BASE_DEC, NULL, 0,
6993         NULL, HFILL }},
6994     { &hf_ulp_GANSSsignalsInfo_item,
6995       { "GANSSSignalsDescription", "ulp.GANSSSignalsDescription_element",
6996         FT_NONE, BASE_NONE, NULL, 0,
6997         NULL, HFILL }},
6998     { &hf_ulp_ganssId,
6999       { "ganssId", "ulp.ganssId",
7000         FT_UINT32, BASE_DEC, NULL, 0,
7001         "INTEGER_0_15", HFILL }},
7002     { &hf_ulp_gANSSSignals,
7003       { "gANSSSignals", "ulp.gANSSSignals",
7004         FT_BYTES, BASE_NONE, NULL, 0,
7005         NULL, HFILL }},
7006     { &hf_ulp_absoluteTime,
7007       { "absoluteTime", "ulp.absoluteTime",
7008         FT_STRING, BASE_NONE, NULL, 0,
7009         "UTCTime", HFILL }},
7010     { &hf_ulp_relativeTime,
7011       { "relativeTime", "ulp.relativeTime",
7012         FT_UINT32, BASE_DEC, NULL, 0,
7013         "INTEGER_0_31536000", HFILL }},
7014     { &hf_ulp_notificationMode,
7015       { "notificationMode", "ulp.notificationMode",
7016         FT_UINT32, BASE_DEC, VALS(ulp_NotificationMode_vals), 0,
7017         NULL, HFILL }},
7018     { &hf_ulp_e_SLPAddress,
7019       { "e-SLPAddress", "ulp.e_SLPAddress",
7020         FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
7021         "SLPAddress", HFILL }},
7022     { &hf_ulp_historicReporting,
7023       { "historicReporting", "ulp.historicReporting_element",
7024         FT_NONE, BASE_NONE, NULL, 0,
7025         NULL, HFILL }},
7026     { &hf_ulp_protectionLevel,
7027       { "protectionLevel", "ulp.protectionLevel_element",
7028         FT_NONE, BASE_NONE, NULL, 0,
7029         NULL, HFILL }},
7030     { &hf_ulp_minimumMajorVersion,
7031       { "minimumMajorVersion", "ulp.minimumMajorVersion",
7032         FT_UINT32, BASE_DEC, NULL, 0,
7033         "INTEGER_0_255", HFILL }},
7034     { &hf_ulp_allowedReportingType,
7035       { "allowedReportingType", "ulp.allowedReportingType",
7036         FT_UINT32, BASE_DEC, VALS(ulp_AllowedReportingType_vals), 0,
7037         NULL, HFILL }},
7038     { &hf_ulp_reportingCriteria,
7039       { "reportingCriteria", "ulp.reportingCriteria_element",
7040         FT_NONE, BASE_NONE, NULL, 0,
7041         NULL, HFILL }},
7042     { &hf_ulp_timeWindow,
7043       { "timeWindow", "ulp.timeWindow_element",
7044         FT_NONE, BASE_NONE, NULL, 0,
7045         NULL, HFILL }},
7046     { &hf_ulp_maxNumberofReports,
7047       { "maxNumberofReports", "ulp.maxNumberofReports",
7048         FT_UINT32, BASE_DEC, NULL, 0,
7049         "INTEGER_1_65536", HFILL }},
7050     { &hf_ulp_minTimeInterval,
7051       { "minTimeInterval", "ulp.minTimeInterval",
7052         FT_UINT32, BASE_DEC, NULL, 0,
7053         "INTEGER_1_86400", HFILL }},
7054     { &hf_ulp_startTime_01,
7055       { "startTime", "ulp.startTime",
7056         FT_INT32, BASE_DEC, NULL, 0,
7057         "INTEGER_M525600_M1", HFILL }},
7058     { &hf_ulp_stopTime_01,
7059       { "stopTime", "ulp.stopTime",
7060         FT_INT32, BASE_DEC, NULL, 0,
7061         "INTEGER_M525599_0", HFILL }},
7062     { &hf_ulp_protlevel,
7063       { "protlevel", "ulp.protlevel",
7064         FT_UINT32, BASE_DEC, VALS(ulp_ProtLevel_vals), 0,
7065         NULL, HFILL }},
7066     { &hf_ulp_basicProtectionParams,
7067       { "basicProtectionParams", "ulp.basicProtectionParams_element",
7068         FT_NONE, BASE_NONE, NULL, 0,
7069         NULL, HFILL }},
7070     { &hf_ulp_keyIdentifier,
7071       { "keyIdentifier", "ulp.keyIdentifier",
7072         FT_BYTES, BASE_NONE, NULL, 0,
7073         "OCTET_STRING_SIZE_8", HFILL }},
7074     { &hf_ulp_basicReplayCounter,
7075       { "basicReplayCounter", "ulp.basicReplayCounter",
7076         FT_UINT32, BASE_DEC, NULL, 0,
7077         "INTEGER_0_65535", HFILL }},
7078     { &hf_ulp_basicMAC,
7079       { "basicMAC", "ulp.basicMAC",
7080         FT_BYTES, BASE_NONE, NULL, 0,
7081         "BIT_STRING_SIZE_32", HFILL }},
7082     { &hf_ulp_initialApproximateposition,
7083       { "initialApproximateposition", "ulp.initialApproximateposition_element",
7084         FT_NONE, BASE_NONE, NULL, 0,
7085         "Position", HFILL }},
7086     { &hf_ulp_utran_GPSReferenceTimeResult,
7087       { "utran-GPSReferenceTimeResult", "ulp.utran_GPSReferenceTimeResult_element",
7088         FT_NONE, BASE_NONE, NULL, 0,
7089         NULL, HFILL }},
7090     { &hf_ulp_utran_GANSSReferenceTimeResult,
7091       { "utran-GANSSReferenceTimeResult", "ulp.utran_GANSSReferenceTimeResult_element",
7092         FT_NONE, BASE_NONE, NULL, 0,
7093         NULL, HFILL }},
7094     { &hf_ulp_utran_GPSReferenceTimeAssistance,
7095       { "utran-GPSReferenceTimeAssistance", "ulp.utran_GPSReferenceTimeAssistance_element",
7096         FT_NONE, BASE_NONE, NULL, 0,
7097         NULL, HFILL }},
7098     { &hf_ulp_utran_GANSSReferenceTimeAssistance,
7099       { "utran-GANSSReferenceTimeAssistance", "ulp.utran_GANSSReferenceTimeAssistance_element",
7100         FT_NONE, BASE_NONE, NULL, 0,
7101         NULL, HFILL }},
7102     { &hf_ulp_emergencyCallLocation,
7103       { "emergencyCallLocation", "ulp.emergencyCallLocation_element",
7104         FT_NONE, BASE_NONE, NULL, 0,
7105         NULL, HFILL }},
7106     { &hf_ulp_serviceCapabilities,
7107       { "serviceCapabilities", "ulp.serviceCapabilities_element",
7108         FT_NONE, BASE_NONE, NULL, 0,
7109         NULL, HFILL }},
7110     { &hf_ulp_supportedBearers,
7111       { "supportedBearers", "ulp.supportedBearers_element",
7112         FT_NONE, BASE_NONE, NULL, 0,
7113         NULL, HFILL }},
7114     { &hf_ulp_servicesSupported,
7115       { "servicesSupported", "ulp.servicesSupported_element",
7116         FT_NONE, BASE_NONE, NULL, 0,
7117         NULL, HFILL }},
7118     { &hf_ulp_reportingCapabilities,
7119       { "reportingCapabilities", "ulp.reportingCapabilities_element",
7120         FT_NONE, BASE_NONE, NULL, 0,
7121         "ReportingCap", HFILL }},
7122     { &hf_ulp_eventTriggerCapabilities,
7123       { "eventTriggerCapabilities", "ulp.eventTriggerCapabilities_element",
7124         FT_NONE, BASE_NONE, NULL, 0,
7125         NULL, HFILL }},
7126     { &hf_ulp_sessionCapabilities,
7127       { "sessionCapabilities", "ulp.sessionCapabilities_element",
7128         FT_NONE, BASE_NONE, NULL, 0,
7129         NULL, HFILL }},
7130     { &hf_ulp_periodicTrigger,
7131       { "periodicTrigger", "ulp.periodicTrigger",
7132         FT_BOOLEAN, BASE_NONE, NULL, 0,
7133         "BOOLEAN", HFILL }},
7134     { &hf_ulp_areaEventTrigger,
7135       { "areaEventTrigger", "ulp.areaEventTrigger",
7136         FT_BOOLEAN, BASE_NONE, NULL, 0,
7137         "BOOLEAN", HFILL }},
7138     { &hf_ulp_geoAreaShapesSupported,
7139       { "geoAreaShapesSupported", "ulp.geoAreaShapesSupported_element",
7140         FT_NONE, BASE_NONE, NULL, 0,
7141         NULL, HFILL }},
7142     { &hf_ulp_maxNumGeoAreaSupported,
7143       { "maxNumGeoAreaSupported", "ulp.maxNumGeoAreaSupported",
7144         FT_UINT32, BASE_DEC, NULL, 0,
7145         "INTEGER_0_maxNumGeoArea", HFILL }},
7146     { &hf_ulp_maxAreaIdListSupported,
7147       { "maxAreaIdListSupported", "ulp.maxAreaIdListSupported",
7148         FT_UINT32, BASE_DEC, NULL, 0,
7149         "INTEGER_0_maxAreaIdList", HFILL }},
7150     { &hf_ulp_maxAreaIdSupportedPerList,
7151       { "maxAreaIdSupportedPerList", "ulp.maxAreaIdSupportedPerList",
7152         FT_UINT32, BASE_DEC, NULL, 0,
7153         "INTEGER_0_maxAreaId", HFILL }},
7154     { &hf_ulp_ellipticalArea_01,
7155       { "ellipticalArea", "ulp.ellipticalArea",
7156         FT_BOOLEAN, BASE_NONE, NULL, 0,
7157         "BOOLEAN", HFILL }},
7158     { &hf_ulp_polygonArea_01,
7159       { "polygonArea", "ulp.polygonArea",
7160         FT_BOOLEAN, BASE_NONE, NULL, 0,
7161         "BOOLEAN", HFILL }},
7162     { &hf_ulp_maxNumberTotalSessions,
7163       { "maxNumberTotalSessions", "ulp.maxNumberTotalSessions",
7164         FT_UINT32, BASE_DEC, NULL, 0,
7165         "INTEGER_1_128", HFILL }},
7166     { &hf_ulp_maxNumberPeriodicSessions,
7167       { "maxNumberPeriodicSessions", "ulp.maxNumberPeriodicSessions",
7168         FT_UINT32, BASE_DEC, NULL, 0,
7169         "INTEGER_1_32", HFILL }},
7170     { &hf_ulp_maxNumberTriggeredSessions,
7171       { "maxNumberTriggeredSessions", "ulp.maxNumberTriggeredSessions",
7172         FT_UINT32, BASE_DEC, NULL, 0,
7173         "INTEGER_1_32", HFILL }},
7174     { &hf_ulp_gsm,
7175       { "gsm", "ulp.gsm",
7176         FT_BOOLEAN, BASE_NONE, NULL, 0,
7177         "BOOLEAN", HFILL }},
7178     { &hf_ulp_wcdma,
7179       { "wcdma", "ulp.wcdma",
7180         FT_BOOLEAN, BASE_NONE, NULL, 0,
7181         "BOOLEAN", HFILL }},
7182     { &hf_ulp_lte,
7183       { "lte", "ulp.lte",
7184         FT_BOOLEAN, BASE_NONE, NULL, 0,
7185         "BOOLEAN", HFILL }},
7186     { &hf_ulp_cdma,
7187       { "cdma", "ulp.cdma",
7188         FT_BOOLEAN, BASE_NONE, NULL, 0,
7189         "BOOLEAN", HFILL }},
7190     { &hf_ulp_hprd,
7191       { "hprd", "ulp.hprd",
7192         FT_BOOLEAN, BASE_NONE, NULL, 0,
7193         "BOOLEAN", HFILL }},
7194     { &hf_ulp_umb,
7195       { "umb", "ulp.umb",
7196         FT_BOOLEAN, BASE_NONE, NULL, 0,
7197         "BOOLEAN", HFILL }},
7198     { &hf_ulp_wlan,
7199       { "wlan", "ulp.wlan",
7200         FT_BOOLEAN, BASE_NONE, NULL, 0,
7201         "BOOLEAN", HFILL }},
7202     { &hf_ulp_wiMAX,
7203       { "wiMAX", "ulp.wiMAX",
7204         FT_BOOLEAN, BASE_NONE, NULL, 0,
7205         "BOOLEAN", HFILL }},
7206     { &hf_ulp_lpp,
7207       { "lpp", "ulp.lpp",
7208         FT_BOOLEAN, BASE_NONE, NULL, 0,
7209         "BOOLEAN", HFILL }},
7210     { &hf_ulp_posProtocolVersionRRLP,
7211       { "posProtocolVersionRRLP", "ulp.posProtocolVersionRRLP_element",
7212         FT_NONE, BASE_NONE, NULL, 0,
7213         "PosProtocolVersion3GPP", HFILL }},
7214     { &hf_ulp_posProtocolVersionRRC,
7215       { "posProtocolVersionRRC", "ulp.posProtocolVersionRRC_element",
7216         FT_NONE, BASE_NONE, NULL, 0,
7217         "PosProtocolVersion3GPP", HFILL }},
7218     { &hf_ulp_posProtocolVersionTIA801,
7219       { "posProtocolVersionTIA801", "ulp.posProtocolVersionTIA801",
7220         FT_UINT32, BASE_DEC, NULL, 0,
7221         "PosProtocolVersion3GPP2", HFILL }},
7222     { &hf_ulp_posProtocolVersionLPP,
7223       { "posProtocolVersionLPP", "ulp.posProtocolVersionLPP_element",
7224         FT_NONE, BASE_NONE, NULL, 0,
7225         "PosProtocolVersion3GPP", HFILL }},
7226     { &hf_ulp_majorVersionField,
7227       { "majorVersionField", "ulp.majorVersionField",
7228         FT_UINT32, BASE_DEC, NULL, 0,
7229         "INTEGER_0_255", HFILL }},
7230     { &hf_ulp_technicalVersionField,
7231       { "technicalVersionField", "ulp.technicalVersionField",
7232         FT_UINT32, BASE_DEC, NULL, 0,
7233         "INTEGER_0_255", HFILL }},
7234     { &hf_ulp_editorialVersionField,
7235       { "editorialVersionField", "ulp.editorialVersionField",
7236         FT_UINT32, BASE_DEC, NULL, 0,
7237         "INTEGER_0_255", HFILL }},
7238     { &hf_ulp_PosProtocolVersion3GPP2_item,
7239       { "Supported3GPP2PosProtocolVersion", "ulp.Supported3GPP2PosProtocolVersion_element",
7240         FT_NONE, BASE_NONE, NULL, 0,
7241         NULL, HFILL }},
7242     { &hf_ulp_revisionNumber,
7243       { "revisionNumber", "ulp.revisionNumber",
7244         FT_BYTES, BASE_NONE, NULL, 0,
7245         "BIT_STRING_SIZE_6", HFILL }},
7246     { &hf_ulp_pointReleaseNumber,
7247       { "pointReleaseNumber", "ulp.pointReleaseNumber",
7248         FT_UINT32, BASE_DEC, NULL, 0,
7249         "INTEGER_0_255", HFILL }},
7250     { &hf_ulp_internalEditLevel,
7251       { "internalEditLevel", "ulp.internalEditLevel",
7252         FT_UINT32, BASE_DEC, NULL, 0,
7253         "INTEGER_0_255", HFILL }},
7254     { &hf_ulp_gANSSPositionMethods,
7255       { "gANSSPositionMethods", "ulp.gANSSPositionMethods",
7256         FT_UINT32, BASE_DEC, NULL, 0,
7257         NULL, HFILL }},
7258     { &hf_ulp_GANSSPositionMethods_item,
7259       { "GANSSPositionMethod", "ulp.GANSSPositionMethod_element",
7260         FT_NONE, BASE_NONE, NULL, 0,
7261         NULL, HFILL }},
7262     { &hf_ulp_ganssSBASid,
7263       { "ganssSBASid", "ulp.ganssSBASid",
7264         FT_BYTES, BASE_NONE, NULL, 0,
7265         "BIT_STRING_SIZE_3", HFILL }},
7266     { &hf_ulp_gANSSPositioningMethodTypes,
7267       { "gANSSPositioningMethodTypes", "ulp.gANSSPositioningMethodTypes_element",
7268         FT_NONE, BASE_NONE, NULL, 0,
7269         NULL, HFILL }},
7270     { &hf_ulp_setAssisted,
7271       { "setAssisted", "ulp.setAssisted",
7272         FT_BOOLEAN, BASE_NONE, NULL, 0,
7273         "BOOLEAN", HFILL }},
7274     { &hf_ulp_setBased,
7275       { "setBased", "ulp.setBased",
7276         FT_BOOLEAN, BASE_NONE, NULL, 0,
7277         "BOOLEAN", HFILL }},
7278     { &hf_ulp_autonomous,
7279       { "autonomous", "ulp.autonomous",
7280         FT_BOOLEAN, BASE_NONE, NULL, 0,
7281         "BOOLEAN", HFILL }},
7282     { &hf_ulp_ganssRequestedCommonAssistanceDataList,
7283       { "ganssRequestedCommonAssistanceDataList", "ulp.ganssRequestedCommonAssistanceDataList_element",
7284         FT_NONE, BASE_NONE, NULL, 0,
7285         NULL, HFILL }},
7286     { &hf_ulp_ganssRequestedGenericAssistanceDataList,
7287       { "ganssRequestedGenericAssistanceDataList", "ulp.ganssRequestedGenericAssistanceDataList",
7288         FT_UINT32, BASE_DEC, NULL, 0,
7289         NULL, HFILL }},
7290     { &hf_ulp_extendedEphemeris,
7291       { "extendedEphemeris", "ulp.extendedEphemeris_element",
7292         FT_NONE, BASE_NONE, NULL, 0,
7293         NULL, HFILL }},
7294     { &hf_ulp_extendedEphemerisCheck,
7295       { "extendedEphemerisCheck", "ulp.extendedEphemerisCheck_element",
7296         FT_NONE, BASE_NONE, NULL, 0,
7297         "ExtendedEphCheck", HFILL }},
7298     { &hf_ulp_ganssReferenceTime,
7299       { "ganssReferenceTime", "ulp.ganssReferenceTime",
7300         FT_BOOLEAN, BASE_NONE, NULL, 0,
7301         "BOOLEAN", HFILL }},
7302     { &hf_ulp_ganssIonosphericModel,
7303       { "ganssIonosphericModel", "ulp.ganssIonosphericModel",
7304         FT_BOOLEAN, BASE_NONE, NULL, 0,
7305         "BOOLEAN", HFILL }},
7306     { &hf_ulp_ganssAdditionalIonosphericModelForDataID00,
7307       { "ganssAdditionalIonosphericModelForDataID00", "ulp.ganssAdditionalIonosphericModelForDataID00",
7308         FT_BOOLEAN, BASE_NONE, NULL, 0,
7309         "BOOLEAN", HFILL }},
7310     { &hf_ulp_ganssAdditionalIonosphericModelForDataID11,
7311       { "ganssAdditionalIonosphericModelForDataID11", "ulp.ganssAdditionalIonosphericModelForDataID11",
7312         FT_BOOLEAN, BASE_NONE, NULL, 0,
7313         "BOOLEAN", HFILL }},
7314     { &hf_ulp_ganssEarthOrientationParameters,
7315       { "ganssEarthOrientationParameters", "ulp.ganssEarthOrientationParameters",
7316         FT_BOOLEAN, BASE_NONE, NULL, 0,
7317         "BOOLEAN", HFILL }},
7318     { &hf_ulp_GanssRequestedGenericAssistanceDataList_item,
7319       { "GanssReqGenericData", "ulp.GanssReqGenericData_element",
7320         FT_NONE, BASE_NONE, NULL, 0,
7321         NULL, HFILL }},
7322     { &hf_ulp_ganssRealTimeIntegrity,
7323       { "ganssRealTimeIntegrity", "ulp.ganssRealTimeIntegrity",
7324         FT_BOOLEAN, BASE_NONE, NULL, 0,
7325         "BOOLEAN", HFILL }},
7326     { &hf_ulp_ganssDifferentialCorrection,
7327       { "ganssDifferentialCorrection", "ulp.ganssDifferentialCorrection",
7328         FT_BYTES, BASE_NONE, NULL, 0,
7329         "DGANSS_Sig_Id_Req", HFILL }},
7330     { &hf_ulp_ganssAlmanac,
7331       { "ganssAlmanac", "ulp.ganssAlmanac",
7332         FT_BOOLEAN, BASE_NONE, NULL, 0,
7333         "BOOLEAN", HFILL }},
7334     { &hf_ulp_ganssNavigationModelData,
7335       { "ganssNavigationModelData", "ulp.ganssNavigationModelData_element",
7336         FT_NONE, BASE_NONE, NULL, 0,
7337         NULL, HFILL }},
7338     { &hf_ulp_ganssTimeModels,
7339       { "ganssTimeModels", "ulp.ganssTimeModels",
7340         FT_BYTES, BASE_NONE, NULL, 0,
7341         "BIT_STRING_SIZE_16", HFILL }},
7342     { &hf_ulp_ganssReferenceMeasurementInfo,
7343       { "ganssReferenceMeasurementInfo", "ulp.ganssReferenceMeasurementInfo",
7344         FT_BOOLEAN, BASE_NONE, NULL, 0,
7345         "BOOLEAN", HFILL }},
7346     { &hf_ulp_ganssDataBits,
7347       { "ganssDataBits", "ulp.ganssDataBits_element",
7348         FT_NONE, BASE_NONE, NULL, 0,
7349         NULL, HFILL }},
7350     { &hf_ulp_ganssUTCModel,
7351       { "ganssUTCModel", "ulp.ganssUTCModel",
7352         FT_BOOLEAN, BASE_NONE, NULL, 0,
7353         "BOOLEAN", HFILL }},
7354     { &hf_ulp_ganssAdditionalDataChoices,
7355       { "ganssAdditionalDataChoices", "ulp.ganssAdditionalDataChoices_element",
7356         FT_NONE, BASE_NONE, NULL, 0,
7357         NULL, HFILL }},
7358     { &hf_ulp_ganssAuxiliaryInformation,
7359       { "ganssAuxiliaryInformation", "ulp.ganssAuxiliaryInformation",
7360         FT_BOOLEAN, BASE_NONE, NULL, 0,
7361         "BOOLEAN", HFILL }},
7362     { &hf_ulp_ganssExtendedEphemeris,
7363       { "ganssExtendedEphemeris", "ulp.ganssExtendedEphemeris_element",
7364         FT_NONE, BASE_NONE, NULL, 0,
7365         "ExtendedEphemeris", HFILL }},
7366     { &hf_ulp_ganssExtendedEphemerisCheck,
7367       { "ganssExtendedEphemerisCheck", "ulp.ganssExtendedEphemerisCheck_element",
7368         FT_NONE, BASE_NONE, NULL, 0,
7369         "GanssExtendedEphCheck", HFILL }},
7370     { &hf_ulp_ganssWeek,
7371       { "ganssWeek", "ulp.ganssWeek",
7372         FT_UINT32, BASE_DEC, NULL, 0,
7373         "INTEGER_0_4095", HFILL }},
7374     { &hf_ulp_ganssToe,
7375       { "ganssToe", "ulp.ganssToe",
7376         FT_UINT32, BASE_DEC, NULL, 0,
7377         "INTEGER_0_167", HFILL }},
7378     { &hf_ulp_t_toeLimit,
7379       { "t-toeLimit", "ulp.t_toeLimit",
7380         FT_UINT32, BASE_DEC, NULL, 0,
7381         "INTEGER_0_15", HFILL }},
7382     { &hf_ulp_satellitesListRelatedDataList,
7383       { "satellitesListRelatedDataList", "ulp.satellitesListRelatedDataList",
7384         FT_UINT32, BASE_DEC, NULL, 0,
7385         NULL, HFILL }},
7386     { &hf_ulp_SatellitesListRelatedDataList_item,
7387       { "SatellitesListRelatedData", "ulp.SatellitesListRelatedData_element",
7388         FT_NONE, BASE_NONE, NULL, 0,
7389         NULL, HFILL }},
7390     { &hf_ulp_iod,
7391       { "iod", "ulp.iod",
7392         FT_UINT32, BASE_DEC, NULL, 0,
7393         "INTEGER_0_1023", HFILL }},
7394     { &hf_ulp_ganssTODmin,
7395       { "ganssTODmin", "ulp.ganssTODmin",
7396         FT_UINT32, BASE_DEC, NULL, 0,
7397         "INTEGER_0_59", HFILL }},
7398     { &hf_ulp_reqDataBitAssistanceList,
7399       { "reqDataBitAssistanceList", "ulp.reqDataBitAssistanceList_element",
7400         FT_NONE, BASE_NONE, NULL, 0,
7401         NULL, HFILL }},
7402     { &hf_ulp_gnssSignals,
7403       { "gnssSignals", "ulp.gnssSignals",
7404         FT_BYTES, BASE_NONE, NULL, 0,
7405         "GANSSSignals", HFILL }},
7406     { &hf_ulp_ganssDataBitInterval,
7407       { "ganssDataBitInterval", "ulp.ganssDataBitInterval",
7408         FT_UINT32, BASE_DEC, NULL, 0,
7409         "INTEGER_0_15", HFILL }},
7410     { &hf_ulp_ganssDataBitSatList,
7411       { "ganssDataBitSatList", "ulp.ganssDataBitSatList",
7412         FT_UINT32, BASE_DEC, NULL, 0,
7413         NULL, HFILL }},
7414     { &hf_ulp_ganssDataBitSatList_item,
7415       { "ganssDataBitSatList item", "ulp.ganssDataBitSatList_item",
7416         FT_UINT32, BASE_DEC, NULL, 0,
7417         "INTEGER_0_63", HFILL }},
7418     { &hf_ulp_orbitModelID,
7419       { "orbitModelID", "ulp.orbitModelID",
7420         FT_UINT32, BASE_DEC, NULL, 0,
7421         "INTEGER_0_7", HFILL }},
7422     { &hf_ulp_clockModelID,
7423       { "clockModelID", "ulp.clockModelID",
7424         FT_UINT32, BASE_DEC, NULL, 0,
7425         "INTEGER_0_7", HFILL }},
7426     { &hf_ulp_utcModelID,
7427       { "utcModelID", "ulp.utcModelID",
7428         FT_UINT32, BASE_DEC, NULL, 0,
7429         "INTEGER_0_7", HFILL }},
7430     { &hf_ulp_almanacModelID,
7431       { "almanacModelID", "ulp.almanacModelID",
7432         FT_UINT32, BASE_DEC, NULL, 0,
7433         "INTEGER_0_7", HFILL }},
7434     { &hf_ulp_validity,
7435       { "validity", "ulp.validity",
7436         FT_UINT32, BASE_DEC, NULL, 0,
7437         "INTEGER_1_256", HFILL }},
7438     { &hf_ulp_beginTime,
7439       { "beginTime", "ulp.beginTime_element",
7440         FT_NONE, BASE_NONE, NULL, 0,
7441         "GPSTime", HFILL }},
7442     { &hf_ulp_endTime,
7443       { "endTime", "ulp.endTime_element",
7444         FT_NONE, BASE_NONE, NULL, 0,
7445         "GPSTime", HFILL }},
7446     { &hf_ulp_beginTime_01,
7447       { "beginTime", "ulp.beginTime_element",
7448         FT_NONE, BASE_NONE, NULL, 0,
7449         "GANSSextEphTime", HFILL }},
7450     { &hf_ulp_endTime_01,
7451       { "endTime", "ulp.endTime_element",
7452         FT_NONE, BASE_NONE, NULL, 0,
7453         "GANSSextEphTime", HFILL }},
7454     { &hf_ulp_gPSWeek,
7455       { "gPSWeek", "ulp.gPSWeek",
7456         FT_UINT32, BASE_DEC, NULL, 0,
7457         "INTEGER_0_1023", HFILL }},
7458     { &hf_ulp_gPSTOWhour,
7459       { "gPSTOWhour", "ulp.gPSTOWhour",
7460         FT_UINT32, BASE_DEC, NULL, 0,
7461         "INTEGER_0_167", HFILL }},
7462     { &hf_ulp_gANSSday,
7463       { "gANSSday", "ulp.gANSSday",
7464         FT_UINT32, BASE_DEC, NULL, 0,
7465         "INTEGER_0_8191", HFILL }},
7466     { &hf_ulp_gANSSTODhour,
7467       { "gANSSTODhour", "ulp.gANSSTODhour",
7468         FT_UINT32, BASE_DEC, NULL, 0,
7469         "INTEGER_0_23", HFILL }},
7470     { &hf_ulp_lPPPayload,
7471       { "lPPPayload", "ulp.lPPPayload",
7472         FT_UINT32, BASE_DEC, NULL, 0,
7473         NULL, HFILL }},
7474     { &hf_ulp_lPPPayload_item,
7475       { "lPPPayload item", "ulp.lPPPayload_item",
7476         FT_BYTES, BASE_NONE, NULL, 0,
7477         NULL, HFILL }},
7478     { &hf_ulp_tIA801Payload,
7479       { "tIA801Payload", "ulp.tIA801Payload",
7480         FT_UINT32, BASE_DEC, NULL, 0,
7481         NULL, HFILL }},
7482     { &hf_ulp_tIA801Payload_item,
7483       { "tIA801Payload item", "ulp.tIA801Payload_item",
7484         FT_BYTES, BASE_NONE, NULL, 0,
7485         "OCTET_STRING_SIZE_1_60000", HFILL }},
7486     { &hf_ulp_maj,
7487       { "maj", "ulp.maj",
7488         FT_UINT32, BASE_DEC, NULL, 0,
7489         "INTEGER_0_255", HFILL }},
7490     { &hf_ulp_min,
7491       { "min", "ulp.min",
7492         FT_UINT32, BASE_DEC, NULL, 0,
7493         "INTEGER_0_255", HFILL }},
7494     { &hf_ulp_servind,
7495       { "servind", "ulp.servind",
7496         FT_UINT32, BASE_DEC, NULL, 0,
7497         "INTEGER_0_255", HFILL }},
7498     { &hf_ulp_setSessionID,
7499       { "setSessionID", "ulp.setSessionID_element",
7500         FT_NONE, BASE_NONE, NULL, 0,
7501         NULL, HFILL }},
7502     { &hf_ulp_slpSessionID,
7503       { "slpSessionID", "ulp.slpSessionID_element",
7504         FT_NONE, BASE_NONE, NULL, 0,
7505         NULL, HFILL }},
7506     { &hf_ulp_sessionId,
7507       { "sessionId", "ulp.sessionId",
7508         FT_UINT32, BASE_DEC, NULL, 0,
7509         "INTEGER_0_65535", HFILL }},
7510     { &hf_ulp_setId,
7511       { "setId", "ulp.setId",
7512         FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
7513         NULL, HFILL }},
7514     { &hf_ulp_msisdn,
7515       { "msisdn", "ulp.msisdn",
7516         FT_BYTES, BASE_NONE, NULL, 0,
7517         "OCTET_STRING_SIZE_8", HFILL }},
7518     { &hf_ulp_mdn,
7519       { "mdn", "ulp.mdn",
7520         FT_BYTES, BASE_NONE, NULL, 0,
7521         "OCTET_STRING_SIZE_8", HFILL }},
7522     { &hf_ulp_minsi,
7523       { "min", "ulp.min",
7524         FT_BYTES, BASE_NONE, NULL, 0,
7525         "BIT_STRING_SIZE_34", HFILL }},
7526     { &hf_ulp_imsi,
7527       { "imsi", "ulp.imsi",
7528         FT_BYTES, BASE_NONE, NULL, 0,
7529         "OCTET_STRING_SIZE_8", HFILL }},
7530     { &hf_ulp_nai,
7531       { "nai", "ulp.nai",
7532         FT_STRING, BASE_NONE, NULL, 0,
7533         "IA5String_SIZE_1_1000", HFILL }},
7534     { &hf_ulp_iPAddress,
7535       { "iPAddress", "ulp.iPAddress",
7536         FT_UINT32, BASE_DEC, VALS(ulp_IPAddress_vals), 0,
7537         NULL, HFILL }},
7538     { &hf_ulp_sessionSlpID,
7539       { "sessionID", "ulp.sessionID",
7540         FT_BYTES, BASE_NONE, NULL, 0,
7541         "OCTET_STRING_SIZE_4", HFILL }},
7542     { &hf_ulp_slpId,
7543       { "slpId", "ulp.slpId",
7544         FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
7545         "SLPAddress", HFILL }},
7546     { &hf_ulp_ipv4Address,
7547       { "ipv4Address", "ulp.ipv4Address",
7548         FT_IPv4, BASE_NONE, NULL, 0,
7549         "OCTET_STRING_SIZE_4", HFILL }},
7550     { &hf_ulp_ipv6Address,
7551       { "ipv6Address", "ulp.ipv6Address",
7552         FT_IPv6, BASE_NONE, NULL, 0,
7553         "OCTET_STRING_SIZE_16", HFILL }},
7554     { &hf_ulp_fQDN,
7555       { "fQDN", "ulp.fQDN",
7556         FT_STRING, BASE_NONE, NULL, 0,
7557         NULL, HFILL }},
7558     { &hf_ulp_cellInfo,
7559       { "cellInfo", "ulp.cellInfo",
7560         FT_UINT32, BASE_DEC, VALS(ulp_CellInfo_vals), 0,
7561         NULL, HFILL }},
7562     { &hf_ulp_status,
7563       { "status", "ulp.status",
7564         FT_UINT32, BASE_DEC, VALS(ulp_Status_vals), 0,
7565         NULL, HFILL }},
7566     { &hf_ulp_gsmCell,
7567       { "gsmCell", "ulp.gsmCell_element",
7568         FT_NONE, BASE_NONE, NULL, 0,
7569         "GsmCellInformation", HFILL }},
7570     { &hf_ulp_wcdmaCell,
7571       { "wcdmaCell", "ulp.wcdmaCell_element",
7572         FT_NONE, BASE_NONE, NULL, 0,
7573         "WcdmaCellInformation", HFILL }},
7574     { &hf_ulp_cdmaCell,
7575       { "cdmaCell", "ulp.cdmaCell_element",
7576         FT_NONE, BASE_NONE, NULL, 0,
7577         "CdmaCellInformation", HFILL }},
7578     { &hf_ulp_ver2_CellInfo_extension,
7579       { "ver2-CellInfo-extension", "ulp.ver2_CellInfo_extension",
7580         FT_UINT32, BASE_DEC, VALS(ulp_Ver2_CellInfo_extension_vals), 0,
7581         NULL, HFILL }},
7582     { &hf_ulp_timestamp_01,
7583       { "timestamp", "ulp.timestamp",
7584         FT_STRING, BASE_NONE, NULL, 0,
7585         "UTCTime", HFILL }},
7586     { &hf_ulp_positionEstimate,
7587       { "positionEstimate", "ulp.positionEstimate_element",
7588         FT_NONE, BASE_NONE, NULL, 0,
7589         NULL, HFILL }},
7590     { &hf_ulp_latitudeSign,
7591       { "latitudeSign", "ulp.latitudeSign",
7592         FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_vals), 0,
7593         NULL, HFILL }},
7594     { &hf_ulp_latitude,
7595       { "latitude", "ulp.latitude",
7596         FT_UINT32, BASE_DEC, NULL, 0,
7597         "INTEGER_0_8388607", HFILL }},
7598     { &hf_ulp_longitude,
7599       { "longitude", "ulp.longitude",
7600         FT_INT32, BASE_DEC, NULL, 0,
7601         "INTEGER_M8388608_8388607", HFILL }},
7602     { &hf_ulp_uncertainty,
7603       { "uncertainty", "ulp.uncertainty_element",
7604         FT_NONE, BASE_NONE, NULL, 0,
7605         NULL, HFILL }},
7606     { &hf_ulp_uncertaintySemiMajor,
7607       { "uncertaintySemiMajor", "ulp.uncertaintySemiMajor",
7608         FT_UINT32, BASE_DEC, NULL, 0,
7609         "INTEGER_0_127", HFILL }},
7610     { &hf_ulp_uncertaintySemiMinor,
7611       { "uncertaintySemiMinor", "ulp.uncertaintySemiMinor",
7612         FT_UINT32, BASE_DEC, NULL, 0,
7613         "INTEGER_0_127", HFILL }},
7614     { &hf_ulp_orientationMajorAxis,
7615       { "orientationMajorAxis", "ulp.orientationMajorAxis",
7616         FT_UINT32, BASE_DEC, NULL, 0,
7617         "INTEGER_0_180", HFILL }},
7618     { &hf_ulp_confidence,
7619       { "confidence", "ulp.confidence",
7620         FT_UINT32, BASE_DEC, NULL, 0,
7621         "INTEGER_0_100", HFILL }},
7622     { &hf_ulp_altitudeInfo,
7623       { "altitudeInfo", "ulp.altitudeInfo_element",
7624         FT_NONE, BASE_NONE, NULL, 0,
7625         NULL, HFILL }},
7626     { &hf_ulp_altitudeDirection,
7627       { "altitudeDirection", "ulp.altitudeDirection",
7628         FT_UINT32, BASE_DEC, VALS(ulp_T_altitudeDirection_vals), 0,
7629         NULL, HFILL }},
7630     { &hf_ulp_altitude,
7631       { "altitude", "ulp.altitude",
7632         FT_UINT32, BASE_DEC, NULL, 0,
7633         "INTEGER_0_32767", HFILL }},
7634     { &hf_ulp_altUncertainty,
7635       { "altUncertainty", "ulp.altUncertainty",
7636         FT_UINT32, BASE_DEC, NULL, 0,
7637         "INTEGER_0_127", HFILL }},
7638     { &hf_ulp_refNID_01,
7639       { "refNID", "ulp.refNID",
7640         FT_UINT32, BASE_DEC, NULL, 0,
7641         "INTEGER_0_65535", HFILL }},
7642     { &hf_ulp_refSID_01,
7643       { "refSID", "ulp.refSID",
7644         FT_UINT32, BASE_DEC, NULL, 0,
7645         "INTEGER_0_32767", HFILL }},
7646     { &hf_ulp_refBASELAT,
7647       { "refBASELAT", "ulp.refBASELAT",
7648         FT_UINT32, BASE_DEC, NULL, 0,
7649         "INTEGER_0_4194303", HFILL }},
7650     { &hf_ulp_reBASELONG,
7651       { "reBASELONG", "ulp.reBASELONG",
7652         FT_UINT32, BASE_DEC, NULL, 0,
7653         "INTEGER_0_8388607", HFILL }},
7654     { &hf_ulp_refREFPN,
7655       { "refREFPN", "ulp.refREFPN",
7656         FT_UINT32, BASE_DEC, NULL, 0,
7657         "INTEGER_0_511", HFILL }},
7658     { &hf_ulp_refWeekNumber,
7659       { "refWeekNumber", "ulp.refWeekNumber",
7660         FT_UINT32, BASE_DEC, NULL, 0,
7661         "INTEGER_0_65535", HFILL }},
7662     { &hf_ulp_refSeconds,
7663       { "refSeconds", "ulp.refSeconds",
7664         FT_UINT32, BASE_DEC, NULL, 0,
7665         "INTEGER_0_4194303", HFILL }},
7666     { &hf_ulp_nMR,
7667       { "nMR", "ulp.nMR",
7668         FT_UINT32, BASE_DEC, NULL, 0,
7669         NULL, HFILL }},
7670     { &hf_ulp_tA,
7671       { "tA", "ulp.tA",
7672         FT_UINT32, BASE_DEC, NULL, 0,
7673         "INTEGER_0_255", HFILL }},
7674     { &hf_ulp_frequencyInfo,
7675       { "frequencyInfo", "ulp.frequencyInfo_element",
7676         FT_NONE, BASE_NONE, NULL, 0,
7677         NULL, HFILL }},
7678     { &hf_ulp_primaryScramblingCode,
7679       { "primaryScramblingCode", "ulp.primaryScramblingCode",
7680         FT_UINT32, BASE_DEC, NULL, 0,
7681         "INTEGER_0_511", HFILL }},
7682     { &hf_ulp_measuredResultsList,
7683       { "measuredResultsList", "ulp.measuredResultsList",
7684         FT_UINT32, BASE_DEC, NULL, 0,
7685         NULL, HFILL }},
7686     { &hf_ulp_cellParametersId,
7687       { "cellParametersId", "ulp.cellParametersId",
7688         FT_UINT32, BASE_DEC, NULL, 0,
7689         "INTEGER_0_127", HFILL }},
7690     { &hf_ulp_timingAdvance,
7691       { "timingAdvance", "ulp.timingAdvance_element",
7692         FT_NONE, BASE_NONE, NULL, 0,
7693         NULL, HFILL }},
7694     { &hf_ulp_tA_01,
7695       { "tA", "ulp.tA",
7696         FT_UINT32, BASE_DEC, NULL, 0,
7697         "INTEGER_0_8191", HFILL }},
7698     { &hf_ulp_tAResolution,
7699       { "tAResolution", "ulp.tAResolution",
7700         FT_UINT32, BASE_DEC, VALS(ulp_TAResolution_vals), 0,
7701         NULL, HFILL }},
7702     { &hf_ulp_chipRate,
7703       { "chipRate", "ulp.chipRate",
7704         FT_UINT32, BASE_DEC, VALS(ulp_ChipRate_vals), 0,
7705         NULL, HFILL }},
7706     { &hf_ulp_modeSpecificFrequencyInfo,
7707       { "modeSpecificInfo", "ulp.modeSpecificInfo",
7708         FT_UINT32, BASE_DEC, VALS(ulp_FrequencySpecificInfo_vals), 0,
7709         "FrequencySpecificInfo", HFILL }},
7710     { &hf_ulp_fdd_fr,
7711       { "fdd", "ulp.fdd_element",
7712         FT_NONE, BASE_NONE, NULL, 0,
7713         "FrequencyInfoFDD", HFILL }},
7714     { &hf_ulp_tdd_fr,
7715       { "tdd", "ulp.tdd_element",
7716         FT_NONE, BASE_NONE, NULL, 0,
7717         "FrequencyInfoTDD", HFILL }},
7718     { &hf_ulp_uarfcn_UL,
7719       { "uarfcn-UL", "ulp.uarfcn_UL",
7720         FT_UINT32, BASE_DEC, NULL, 0,
7721         "UARFCN", HFILL }},
7722     { &hf_ulp_uarfcn_DL,
7723       { "uarfcn-DL", "ulp.uarfcn_DL",
7724         FT_UINT32, BASE_DEC, NULL, 0,
7725         "UARFCN", HFILL }},
7726     { &hf_ulp_uarfcn_Nt,
7727       { "uarfcn-Nt", "ulp.uarfcn_Nt",
7728         FT_UINT32, BASE_DEC, NULL, 0,
7729         "UARFCN", HFILL }},
7730     { &hf_ulp_NMR_item,
7731       { "NMRelement", "ulp.NMRelement_element",
7732         FT_NONE, BASE_NONE, NULL, 0,
7733         NULL, HFILL }},
7734     { &hf_ulp_aRFCN,
7735       { "aRFCN", "ulp.aRFCN",
7736         FT_UINT32, BASE_DEC, NULL, 0,
7737         "INTEGER_0_1023", HFILL }},
7738     { &hf_ulp_bSIC,
7739       { "bSIC", "ulp.bSIC",
7740         FT_UINT32, BASE_DEC, NULL, 0,
7741         "INTEGER_0_63", HFILL }},
7742     { &hf_ulp_rxLev,
7743       { "rxLev", "ulp.rxLev",
7744         FT_UINT32, BASE_DEC, NULL, 0,
7745         "INTEGER_0_63", HFILL }},
7746     { &hf_ulp_MeasuredResultsList_item,
7747       { "MeasuredResults", "ulp.MeasuredResults_element",
7748         FT_NONE, BASE_NONE, NULL, 0,
7749         NULL, HFILL }},
7750     { &hf_ulp_utra_CarrierRSSI,
7751       { "utra-CarrierRSSI", "ulp.utra_CarrierRSSI",
7752         FT_UINT32, BASE_DEC, NULL, 0,
7753         NULL, HFILL }},
7754     { &hf_ulp_cellMeasuredResultsList,
7755       { "cellMeasuredResultsList", "ulp.cellMeasuredResultsList",
7756         FT_UINT32, BASE_DEC, NULL, 0,
7757         NULL, HFILL }},
7758     { &hf_ulp_CellMeasuredResultsList_item,
7759       { "CellMeasuredResults", "ulp.CellMeasuredResults_element",
7760         FT_NONE, BASE_NONE, NULL, 0,
7761         NULL, HFILL }},
7762     { &hf_ulp_cellIdentity,
7763       { "cellIdentity", "ulp.cellIdentity",
7764         FT_UINT32, BASE_DEC, NULL, 0,
7765         "INTEGER_0_268435455", HFILL }},
7766     { &hf_ulp_modeSpecificInfo,
7767       { "modeSpecificInfo", "ulp.modeSpecificInfo",
7768         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_vals), 0,
7769         NULL, HFILL }},
7770     { &hf_ulp_fdd,
7771       { "fdd", "ulp.fdd_element",
7772         FT_NONE, BASE_NONE, NULL, 0,
7773         NULL, HFILL }},
7774     { &hf_ulp_primaryCPICH_Info,
7775       { "primaryCPICH-Info", "ulp.primaryCPICH_Info_element",
7776         FT_NONE, BASE_NONE, NULL, 0,
7777         NULL, HFILL }},
7778     { &hf_ulp_cpich_Ec_N0,
7779       { "cpich-Ec-N0", "ulp.cpich_Ec_N0",
7780         FT_UINT32, BASE_DEC, NULL, 0,
7781         NULL, HFILL }},
7782     { &hf_ulp_cpich_RSCP,
7783       { "cpich-RSCP", "ulp.cpich_RSCP",
7784         FT_UINT32, BASE_DEC, NULL, 0,
7785         NULL, HFILL }},
7786     { &hf_ulp_pathloss,
7787       { "pathloss", "ulp.pathloss",
7788         FT_UINT32, BASE_DEC, NULL, 0,
7789         NULL, HFILL }},
7790     { &hf_ulp_tdd,
7791       { "tdd", "ulp.tdd_element",
7792         FT_NONE, BASE_NONE, NULL, 0,
7793         NULL, HFILL }},
7794     { &hf_ulp_cellParametersID,
7795       { "cellParametersID", "ulp.cellParametersID",
7796         FT_UINT32, BASE_DEC, NULL, 0,
7797         NULL, HFILL }},
7798     { &hf_ulp_proposedTGSN,
7799       { "proposedTGSN", "ulp.proposedTGSN",
7800         FT_UINT32, BASE_DEC, NULL, 0,
7801         "TGSN", HFILL }},
7802     { &hf_ulp_primaryCCPCH_RSCP,
7803       { "primaryCCPCH-RSCP", "ulp.primaryCCPCH_RSCP",
7804         FT_UINT32, BASE_DEC, NULL, 0,
7805         NULL, HFILL }},
7806     { &hf_ulp_timeslotISCP_List,
7807       { "timeslotISCP-List", "ulp.timeslotISCP_List",
7808         FT_UINT32, BASE_DEC, NULL, 0,
7809         NULL, HFILL }},
7810     { &hf_ulp_TimeslotISCP_List_item,
7811       { "TimeslotISCP", "ulp.TimeslotISCP",
7812         FT_UINT32, BASE_DEC, NULL, 0,
7813         NULL, HFILL }},
7814     { &hf_ulp_horacc,
7815       { "horacc", "ulp.horacc",
7816         FT_UINT32, BASE_DEC, NULL, 0,
7817         "INTEGER_0_127", HFILL }},
7818     { &hf_ulp_veracc,
7819       { "veracc", "ulp.veracc",
7820         FT_UINT32, BASE_DEC, NULL, 0,
7821         "INTEGER_0_127", HFILL }},
7822     { &hf_ulp_maxLocAge,
7823       { "maxLocAge", "ulp.maxLocAge",
7824         FT_UINT32, BASE_DEC, NULL, 0,
7825         "INTEGER_0_65535", HFILL }},
7826     { &hf_ulp_delay,
7827       { "delay", "ulp.delay",
7828         FT_UINT32, BASE_DEC, NULL, 0,
7829         "INTEGER_0_7", HFILL }},
7830     { &hf_ulp_horvel,
7831       { "horvel", "ulp.horvel_element",
7832         FT_NONE, BASE_NONE, NULL, 0,
7833         NULL, HFILL }},
7834     { &hf_ulp_horandvervel,
7835       { "horandvervel", "ulp.horandvervel_element",
7836         FT_NONE, BASE_NONE, NULL, 0,
7837         NULL, HFILL }},
7838     { &hf_ulp_horveluncert,
7839       { "horveluncert", "ulp.horveluncert_element",
7840         FT_NONE, BASE_NONE, NULL, 0,
7841         NULL, HFILL }},
7842     { &hf_ulp_horandveruncert,
7843       { "horandveruncert", "ulp.horandveruncert_element",
7844         FT_NONE, BASE_NONE, NULL, 0,
7845         NULL, HFILL }},
7846     { &hf_ulp_bearing,
7847       { "bearing", "ulp.bearing",
7848         FT_BYTES, BASE_NONE, NULL, 0,
7849         "BIT_STRING_SIZE_9", HFILL }},
7850     { &hf_ulp_horspeed,
7851       { "horspeed", "ulp.horspeed",
7852         FT_BYTES, BASE_NONE, NULL, 0,
7853         "BIT_STRING_SIZE_16", HFILL }},
7854     { &hf_ulp_verdirect,
7855       { "verdirect", "ulp.verdirect",
7856         FT_BYTES, BASE_NONE, NULL, 0,
7857         "BIT_STRING_SIZE_1", HFILL }},
7858     { &hf_ulp_verspeed,
7859       { "verspeed", "ulp.verspeed",
7860         FT_BYTES, BASE_NONE, NULL, 0,
7861         "BIT_STRING_SIZE_8", HFILL }},
7862     { &hf_ulp_uncertspeed,
7863       { "uncertspeed", "ulp.uncertspeed",
7864         FT_BYTES, BASE_NONE, NULL, 0,
7865         "BIT_STRING_SIZE_8", HFILL }},
7866     { &hf_ulp_horuncertspeed,
7867       { "horuncertspeed", "ulp.horuncertspeed",
7868         FT_BYTES, BASE_NONE, NULL, 0,
7869         "BIT_STRING_SIZE_8", HFILL }},
7870     { &hf_ulp_veruncertspeed,
7871       { "veruncertspeed", "ulp.veruncertspeed",
7872         FT_BYTES, BASE_NONE, NULL, 0,
7873         "BIT_STRING_SIZE_8", HFILL }},
7874     { &hf_ulp_MultipleLocationIds_item,
7875       { "LocationIdData", "ulp.LocationIdData_element",
7876         FT_NONE, BASE_NONE, NULL, 0,
7877         NULL, HFILL }},
7878     { &hf_ulp_relativetimestamp,
7879       { "relativetimestamp", "ulp.relativetimestamp",
7880         FT_UINT32, BASE_DEC, NULL, 0,
7881         "RelativeTime", HFILL }},
7882     { &hf_ulp_servingFlag,
7883       { "servingFlag", "ulp.servingFlag",
7884         FT_BOOLEAN, BASE_NONE, NULL, 0,
7885         "BOOLEAN", HFILL }},
7886     { &hf_ulp_wLAN,
7887       { "wLAN", "ulp.wLAN",
7888         FT_BOOLEAN, BASE_NONE, NULL, 0,
7889         "BOOLEAN", HFILL }},
7890     { &hf_ulp_supportedWLANInfo,
7891       { "supportedWLANInfo", "ulp.supportedWLANInfo_element",
7892         FT_NONE, BASE_NONE, NULL, 0,
7893         NULL, HFILL }},
7894     { &hf_ulp_supportedWLANApsList,
7895       { "supportedWLANApsList", "ulp.supportedWLANApsList_element",
7896         FT_NONE, BASE_NONE, NULL, 0,
7897         NULL, HFILL }},
7898     { &hf_ulp_gSM,
7899       { "gSM", "ulp.gSM",
7900         FT_BOOLEAN, BASE_NONE, NULL, 0,
7901         "BOOLEAN", HFILL }},
7902     { &hf_ulp_wCDMA,
7903       { "wCDMA", "ulp.wCDMA",
7904         FT_BOOLEAN, BASE_NONE, NULL, 0,
7905         "BOOLEAN", HFILL }},
7906     { &hf_ulp_supportedWCDMAInfo,
7907       { "supportedWCDMAInfo", "ulp.supportedWCDMAInfo_element",
7908         FT_NONE, BASE_NONE, NULL, 0,
7909         NULL, HFILL }},
7910     { &hf_ulp_cDMA,
7911       { "cDMA", "ulp.cDMA",
7912         FT_BOOLEAN, BASE_NONE, NULL, 0,
7913         "BOOLEAN", HFILL }},
7914     { &hf_ulp_hRDP,
7915       { "hRDP", "ulp.hRDP",
7916         FT_BOOLEAN, BASE_NONE, NULL, 0,
7917         "BOOLEAN", HFILL }},
7918     { &hf_ulp_uMB,
7919       { "uMB", "ulp.uMB",
7920         FT_BOOLEAN, BASE_NONE, NULL, 0,
7921         "BOOLEAN", HFILL }},
7922     { &hf_ulp_lTE,
7923       { "lTE", "ulp.lTE",
7924         FT_BOOLEAN, BASE_NONE, NULL, 0,
7925         "BOOLEAN", HFILL }},
7926     { &hf_ulp_wIMAX,
7927       { "wIMAX", "ulp.wIMAX",
7928         FT_BOOLEAN, BASE_NONE, NULL, 0,
7929         "BOOLEAN", HFILL }},
7930     { &hf_ulp_historic,
7931       { "historic", "ulp.historic",
7932         FT_BOOLEAN, BASE_NONE, NULL, 0,
7933         "BOOLEAN", HFILL }},
7934     { &hf_ulp_nonServing,
7935       { "nonServing", "ulp.nonServing",
7936         FT_BOOLEAN, BASE_NONE, NULL, 0,
7937         "BOOLEAN", HFILL }},
7938     { &hf_ulp_uTRANGPSReferenceTime,
7939       { "uTRANGPSReferenceTime", "ulp.uTRANGPSReferenceTime",
7940         FT_BOOLEAN, BASE_NONE, NULL, 0,
7941         "BOOLEAN", HFILL }},
7942     { &hf_ulp_uTRANGANSSReferenceTime,
7943       { "uTRANGANSSReferenceTime", "ulp.uTRANGANSSReferenceTime",
7944         FT_BOOLEAN, BASE_NONE, NULL, 0,
7945         "BOOLEAN", HFILL }},
7946     { &hf_ulp_apTP,
7947       { "apTP", "ulp.apTP",
7948         FT_BOOLEAN, BASE_NONE, NULL, 0,
7949         "BOOLEAN", HFILL }},
7950     { &hf_ulp_apAG,
7951       { "apAG", "ulp.apAG",
7952         FT_BOOLEAN, BASE_NONE, NULL, 0,
7953         "BOOLEAN", HFILL }},
7954     { &hf_ulp_apSN,
7955       { "apSN", "ulp.apSN",
7956         FT_BOOLEAN, BASE_NONE, NULL, 0,
7957         "BOOLEAN", HFILL }},
7958     { &hf_ulp_apDevType,
7959       { "apDevType", "ulp.apDevType",
7960         FT_BOOLEAN, BASE_NONE, NULL, 0,
7961         "BOOLEAN", HFILL }},
7962     { &hf_ulp_apRSSI,
7963       { "apRSSI", "ulp.apRSSI",
7964         FT_BOOLEAN, BASE_NONE, NULL, 0,
7965         "BOOLEAN", HFILL }},
7966     { &hf_ulp_apChanFreq,
7967       { "apChanFreq", "ulp.apChanFreq",
7968         FT_BOOLEAN, BASE_NONE, NULL, 0,
7969         "BOOLEAN", HFILL }},
7970     { &hf_ulp_apRTD,
7971       { "apRTD", "ulp.apRTD",
7972         FT_BOOLEAN, BASE_NONE, NULL, 0,
7973         "BOOLEAN", HFILL }},
7974     { &hf_ulp_setTP,
7975       { "setTP", "ulp.setTP",
7976         FT_BOOLEAN, BASE_NONE, NULL, 0,
7977         "BOOLEAN", HFILL }},
7978     { &hf_ulp_setAG,
7979       { "setAG", "ulp.setAG",
7980         FT_BOOLEAN, BASE_NONE, NULL, 0,
7981         "BOOLEAN", HFILL }},
7982     { &hf_ulp_setSN,
7983       { "setSN", "ulp.setSN",
7984         FT_BOOLEAN, BASE_NONE, NULL, 0,
7985         "BOOLEAN", HFILL }},
7986     { &hf_ulp_setRSSI,
7987       { "setRSSI", "ulp.setRSSI",
7988         FT_BOOLEAN, BASE_NONE, NULL, 0,
7989         "BOOLEAN", HFILL }},
7990     { &hf_ulp_apRepLoc,
7991       { "apRepLoc", "ulp.apRepLoc",
7992         FT_BOOLEAN, BASE_NONE, NULL, 0,
7993         "BOOLEAN", HFILL }},
7994     { &hf_ulp_supportedWLANApDataList,
7995       { "supportedWLANApDataList", "ulp.supportedWLANApDataList",
7996         FT_UINT32, BASE_DEC, NULL, 0,
7997         "SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData", HFILL }},
7998     { &hf_ulp_supportedWLANApDataList_item,
7999       { "SupportedWLANApData", "ulp.SupportedWLANApData_element",
8000         FT_NONE, BASE_NONE, NULL, 0,
8001         NULL, HFILL }},
8002     { &hf_ulp_supportedWLANapsChannel11a,
8003       { "supportedWLANapsChannel11a", "ulp.supportedWLANapsChannel11a_element",
8004         FT_NONE, BASE_NONE, NULL, 0,
8005         NULL, HFILL }},
8006     { &hf_ulp_supportedWLANapsChannel11bg,
8007       { "supportedWLANapsChannel11bg", "ulp.supportedWLANapsChannel11bg_element",
8008         FT_NONE, BASE_NONE, NULL, 0,
8009         NULL, HFILL }},
8010     { &hf_ulp_ch34,
8011       { "ch34", "ulp.ch34",
8012         FT_BOOLEAN, BASE_NONE, NULL, 0,
8013         "BOOLEAN", HFILL }},
8014     { &hf_ulp_ch36,
8015       { "ch36", "ulp.ch36",
8016         FT_BOOLEAN, BASE_NONE, NULL, 0,
8017         "BOOLEAN", HFILL }},
8018     { &hf_ulp_ch38,
8019       { "ch38", "ulp.ch38",
8020         FT_BOOLEAN, BASE_NONE, NULL, 0,
8021         "BOOLEAN", HFILL }},
8022     { &hf_ulp_ch40,
8023       { "ch40", "ulp.ch40",
8024         FT_BOOLEAN, BASE_NONE, NULL, 0,
8025         "BOOLEAN", HFILL }},
8026     { &hf_ulp_ch42,
8027       { "ch42", "ulp.ch42",
8028         FT_BOOLEAN, BASE_NONE, NULL, 0,
8029         "BOOLEAN", HFILL }},
8030     { &hf_ulp_ch44,
8031       { "ch44", "ulp.ch44",
8032         FT_BOOLEAN, BASE_NONE, NULL, 0,
8033         "BOOLEAN", HFILL }},
8034     { &hf_ulp_ch46,
8035       { "ch46", "ulp.ch46",
8036         FT_BOOLEAN, BASE_NONE, NULL, 0,
8037         "BOOLEAN", HFILL }},
8038     { &hf_ulp_ch48,
8039       { "ch48", "ulp.ch48",
8040         FT_BOOLEAN, BASE_NONE, NULL, 0,
8041         "BOOLEAN", HFILL }},
8042     { &hf_ulp_ch52,
8043       { "ch52", "ulp.ch52",
8044         FT_BOOLEAN, BASE_NONE, NULL, 0,
8045         "BOOLEAN", HFILL }},
8046     { &hf_ulp_ch56,
8047       { "ch56", "ulp.ch56",
8048         FT_BOOLEAN, BASE_NONE, NULL, 0,
8049         "BOOLEAN", HFILL }},
8050     { &hf_ulp_ch60,
8051       { "ch60", "ulp.ch60",
8052         FT_BOOLEAN, BASE_NONE, NULL, 0,
8053         "BOOLEAN", HFILL }},
8054     { &hf_ulp_ch64,
8055       { "ch64", "ulp.ch64",
8056         FT_BOOLEAN, BASE_NONE, NULL, 0,
8057         "BOOLEAN", HFILL }},
8058     { &hf_ulp_ch149,
8059       { "ch149", "ulp.ch149",
8060         FT_BOOLEAN, BASE_NONE, NULL, 0,
8061         "BOOLEAN", HFILL }},
8062     { &hf_ulp_ch153,
8063       { "ch153", "ulp.ch153",
8064         FT_BOOLEAN, BASE_NONE, NULL, 0,
8065         "BOOLEAN", HFILL }},
8066     { &hf_ulp_ch157,
8067       { "ch157", "ulp.ch157",
8068         FT_BOOLEAN, BASE_NONE, NULL, 0,
8069         "BOOLEAN", HFILL }},
8070     { &hf_ulp_ch161,
8071       { "ch161", "ulp.ch161",
8072         FT_BOOLEAN, BASE_NONE, NULL, 0,
8073         "BOOLEAN", HFILL }},
8074     { &hf_ulp_ch1,
8075       { "ch1", "ulp.ch1",
8076         FT_BOOLEAN, BASE_NONE, NULL, 0,
8077         "BOOLEAN", HFILL }},
8078     { &hf_ulp_ch2,
8079       { "ch2", "ulp.ch2",
8080         FT_BOOLEAN, BASE_NONE, NULL, 0,
8081         "BOOLEAN", HFILL }},
8082     { &hf_ulp_ch3,
8083       { "ch3", "ulp.ch3",
8084         FT_BOOLEAN, BASE_NONE, NULL, 0,
8085         "BOOLEAN", HFILL }},
8086     { &hf_ulp_ch4,
8087       { "ch4", "ulp.ch4",
8088         FT_BOOLEAN, BASE_NONE, NULL, 0,
8089         "BOOLEAN", HFILL }},
8090     { &hf_ulp_ch5,
8091       { "ch5", "ulp.ch5",
8092         FT_BOOLEAN, BASE_NONE, NULL, 0,
8093         "BOOLEAN", HFILL }},
8094     { &hf_ulp_ch6,
8095       { "ch6", "ulp.ch6",
8096         FT_BOOLEAN, BASE_NONE, NULL, 0,
8097         "BOOLEAN", HFILL }},
8098     { &hf_ulp_ch7,
8099       { "ch7", "ulp.ch7",
8100         FT_BOOLEAN, BASE_NONE, NULL, 0,
8101         "BOOLEAN", HFILL }},
8102     { &hf_ulp_ch8,
8103       { "ch8", "ulp.ch8",
8104         FT_BOOLEAN, BASE_NONE, NULL, 0,
8105         "BOOLEAN", HFILL }},
8106     { &hf_ulp_ch9,
8107       { "ch9", "ulp.ch9",
8108         FT_BOOLEAN, BASE_NONE, NULL, 0,
8109         "BOOLEAN", HFILL }},
8110     { &hf_ulp_ch10,
8111       { "ch10", "ulp.ch10",
8112         FT_BOOLEAN, BASE_NONE, NULL, 0,
8113         "BOOLEAN", HFILL }},
8114     { &hf_ulp_ch11,
8115       { "ch11", "ulp.ch11",
8116         FT_BOOLEAN, BASE_NONE, NULL, 0,
8117         "BOOLEAN", HFILL }},
8118     { &hf_ulp_ch12,
8119       { "ch12", "ulp.ch12",
8120         FT_BOOLEAN, BASE_NONE, NULL, 0,
8121         "BOOLEAN", HFILL }},
8122     { &hf_ulp_ch13,
8123       { "ch13", "ulp.ch13",
8124         FT_BOOLEAN, BASE_NONE, NULL, 0,
8125         "BOOLEAN", HFILL }},
8126     { &hf_ulp_ch14,
8127       { "ch14", "ulp.ch14",
8128         FT_BOOLEAN, BASE_NONE, NULL, 0,
8129         "BOOLEAN", HFILL }},
8130     { &hf_ulp_apDevType_01,
8131       { "apDevType", "ulp.apDevType",
8132         FT_UINT32, BASE_DEC, VALS(ulp_T_apDevType_vals), 0,
8133         NULL, HFILL }},
8134     { &hf_ulp_mRL,
8135       { "mRL", "ulp.mRL",
8136         FT_BOOLEAN, BASE_NONE, NULL, 0,
8137         "BOOLEAN", HFILL }},
8138     { &hf_ulp_hrpdCell,
8139       { "hrpdCell", "ulp.hrpdCell_element",
8140         FT_NONE, BASE_NONE, NULL, 0,
8141         "HrpdCellInformation", HFILL }},
8142     { &hf_ulp_umbCell,
8143       { "umbCell", "ulp.umbCell_element",
8144         FT_NONE, BASE_NONE, NULL, 0,
8145         "UmbCellInformation", HFILL }},
8146     { &hf_ulp_lteCell,
8147       { "lteCell", "ulp.lteCell_element",
8148         FT_NONE, BASE_NONE, NULL, 0,
8149         "LteCellInformation", HFILL }},
8150     { &hf_ulp_wlanAP,
8151       { "wlanAP", "ulp.wlanAP_element",
8152         FT_NONE, BASE_NONE, NULL, 0,
8153         "WlanAPInformation", HFILL }},
8154     { &hf_ulp_wimaxBS,
8155       { "wimaxBS", "ulp.wimaxBS_element",
8156         FT_NONE, BASE_NONE, NULL, 0,
8157         "WimaxBSInformation", HFILL }},
8158     { &hf_ulp_cellGlobalIdEUTRA,
8159       { "cellGlobalIdEUTRA", "ulp.cellGlobalIdEUTRA_element",
8160         FT_NONE, BASE_NONE, NULL, 0,
8161         NULL, HFILL }},
8162     { &hf_ulp_physCellId,
8163       { "physCellId", "ulp.physCellId",
8164         FT_UINT32, BASE_DEC, NULL, 0,
8165         NULL, HFILL }},
8166     { &hf_ulp_trackingAreaCode,
8167       { "trackingAreaCode", "ulp.trackingAreaCode",
8168         FT_BYTES, BASE_NONE, NULL, 0,
8169         NULL, HFILL }},
8170     { &hf_ulp_rsrpResult,
8171       { "rsrpResult", "ulp.rsrpResult",
8172         FT_UINT32, BASE_DEC, NULL, 0,
8173         "RSRP_Range", HFILL }},
8174     { &hf_ulp_rsrqResult,
8175       { "rsrqResult", "ulp.rsrqResult",
8176         FT_UINT32, BASE_DEC, NULL, 0,
8177         "RSRQ_Range", HFILL }},
8178     { &hf_ulp_tA_02,
8179       { "tA", "ulp.tA",
8180         FT_UINT32, BASE_DEC, NULL, 0,
8181         "INTEGER_0_1282", HFILL }},
8182     { &hf_ulp_measResultListEUTRA,
8183       { "measResultListEUTRA", "ulp.measResultListEUTRA",
8184         FT_UINT32, BASE_DEC, NULL, 0,
8185         NULL, HFILL }},
8186     { &hf_ulp_earfcn,
8187       { "earfcn", "ulp.earfcn",
8188         FT_UINT32, BASE_DEC, NULL, 0,
8189         "INTEGER_0_65535", HFILL }},
8190     { &hf_ulp_MeasResultListEUTRA_item,
8191       { "MeasResultEUTRA", "ulp.MeasResultEUTRA_element",
8192         FT_NONE, BASE_NONE, NULL, 0,
8193         NULL, HFILL }},
8194     { &hf_ulp_cgi_Info,
8195       { "cgi-Info", "ulp.cgi_Info_element",
8196         FT_NONE, BASE_NONE, NULL, 0,
8197         NULL, HFILL }},
8198     { &hf_ulp_cellGlobalId,
8199       { "cellGlobalId", "ulp.cellGlobalId_element",
8200         FT_NONE, BASE_NONE, NULL, 0,
8201         "CellGlobalIdEUTRA", HFILL }},
8202     { &hf_ulp_measResult,
8203       { "measResult", "ulp.measResult_element",
8204         FT_NONE, BASE_NONE, NULL, 0,
8205         NULL, HFILL }},
8206     { &hf_ulp_plmn_Identity,
8207       { "plmn-Identity", "ulp.plmn_Identity_element",
8208         FT_NONE, BASE_NONE, NULL, 0,
8209         NULL, HFILL }},
8210     { &hf_ulp_cellIdentity_01,
8211       { "cellIdentity", "ulp.cellIdentity",
8212         FT_BYTES, BASE_NONE, NULL, 0,
8213         NULL, HFILL }},
8214     { &hf_ulp_mcc,
8215       { "mcc", "ulp.mcc",
8216         FT_UINT32, BASE_DEC, NULL, 0,
8217         NULL, HFILL }},
8218     { &hf_ulp_mnc,
8219       { "mnc", "ulp.mnc",
8220         FT_UINT32, BASE_DEC, NULL, 0,
8221         NULL, HFILL }},
8222     { &hf_ulp_MCC_item,
8223       { "MCC-MNC-Digit", "ulp.MCC_MNC_Digit",
8224         FT_UINT32, BASE_DEC, NULL, 0,
8225         NULL, HFILL }},
8226     { &hf_ulp_MNC_item,
8227       { "MCC-MNC-Digit", "ulp.MCC_MNC_Digit",
8228         FT_UINT32, BASE_DEC, NULL, 0,
8229         NULL, HFILL }},
8230     { &hf_ulp_apTransmitPower,
8231       { "apTransmitPower", "ulp.apTransmitPower",
8232         FT_INT32, BASE_DEC, NULL, 0,
8233         "INTEGER_M127_128", HFILL }},
8234     { &hf_ulp_apAntennaGain,
8235       { "apAntennaGain", "ulp.apAntennaGain",
8236         FT_INT32, BASE_DEC, NULL, 0,
8237         "INTEGER_M127_128", HFILL }},
8238     { &hf_ulp_apSignaltoNoise,
8239       { "apSignaltoNoise", "ulp.apSignaltoNoise",
8240         FT_INT32, BASE_DEC, NULL, 0,
8241         "INTEGER_M127_128", HFILL }},
8242     { &hf_ulp_apDeviceType,
8243       { "apDeviceType", "ulp.apDeviceType",
8244         FT_UINT32, BASE_DEC, VALS(ulp_T_apDeviceType_vals), 0,
8245         NULL, HFILL }},
8246     { &hf_ulp_apSignalStrength,
8247       { "apSignalStrength", "ulp.apSignalStrength",
8248         FT_INT32, BASE_DEC, NULL, 0,
8249         "INTEGER_M127_128", HFILL }},
8250     { &hf_ulp_apChannelFrequency,
8251       { "apChannelFrequency", "ulp.apChannelFrequency",
8252         FT_UINT32, BASE_DEC, NULL, 0,
8253         "INTEGER_0_256", HFILL }},
8254     { &hf_ulp_apRoundTripDelay,
8255       { "apRoundTripDelay", "ulp.apRoundTripDelay_element",
8256         FT_NONE, BASE_NONE, NULL, 0,
8257         "RTD", HFILL }},
8258     { &hf_ulp_setTransmitPower,
8259       { "setTransmitPower", "ulp.setTransmitPower",
8260         FT_INT32, BASE_DEC, NULL, 0,
8261         "INTEGER_M127_128", HFILL }},
8262     { &hf_ulp_setAntennaGain,
8263       { "setAntennaGain", "ulp.setAntennaGain",
8264         FT_INT32, BASE_DEC, NULL, 0,
8265         "INTEGER_M127_128", HFILL }},
8266     { &hf_ulp_setSignaltoNoise,
8267       { "setSignaltoNoise", "ulp.setSignaltoNoise",
8268         FT_INT32, BASE_DEC, NULL, 0,
8269         "INTEGER_M127_128", HFILL }},
8270     { &hf_ulp_setSignalStrength,
8271       { "setSignalStrength", "ulp.setSignalStrength",
8272         FT_INT32, BASE_DEC, NULL, 0,
8273         "INTEGER_M127_128", HFILL }},
8274     { &hf_ulp_apReportedLocation,
8275       { "apReportedLocation", "ulp.apReportedLocation_element",
8276         FT_NONE, BASE_NONE, NULL, 0,
8277         "ReportedLocation", HFILL }},
8278     { &hf_ulp_rTDValue,
8279       { "rTDValue", "ulp.rTDValue",
8280         FT_UINT32, BASE_DEC, NULL, 0,
8281         "INTEGER_0_16777216", HFILL }},
8282     { &hf_ulp_rTDUnits,
8283       { "rTDUnits", "ulp.rTDUnits",
8284         FT_UINT32, BASE_DEC, VALS(ulp_RTDUnits_vals), 0,
8285         NULL, HFILL }},
8286     { &hf_ulp_rTDAccuracy,
8287       { "rTDAccuracy", "ulp.rTDAccuracy",
8288         FT_UINT32, BASE_DEC, NULL, 0,
8289         "INTEGER_0_255", HFILL }},
8290     { &hf_ulp_locationEncodingDescriptor,
8291       { "locationEncodingDescriptor", "ulp.locationEncodingDescriptor",
8292         FT_UINT32, BASE_DEC, VALS(ulp_LocationEncodingDescriptor_vals), 0,
8293         NULL, HFILL }},
8294     { &hf_ulp_locationData,
8295       { "locationData", "ulp.locationData_element",
8296         FT_NONE, BASE_NONE, NULL, 0,
8297         NULL, HFILL }},
8298     { &hf_ulp_locationAccuracy,
8299       { "locationAccuracy", "ulp.locationAccuracy",
8300         FT_UINT32, BASE_DEC, NULL, 0,
8301         "INTEGER_0_4294967295", HFILL }},
8302     { &hf_ulp_locationValue,
8303       { "locationValue", "ulp.locationValue",
8304         FT_BYTES, BASE_NONE, NULL, 0,
8305         "OCTET_STRING_SIZE_1_128", HFILL }},
8306     { &hf_ulp_wimaxBsID,
8307       { "wimaxBsID", "ulp.wimaxBsID_element",
8308         FT_NONE, BASE_NONE, NULL, 0,
8309         NULL, HFILL }},
8310     { &hf_ulp_wimaxRTD,
8311       { "wimaxRTD", "ulp.wimaxRTD_element",
8312         FT_NONE, BASE_NONE, NULL, 0,
8313         NULL, HFILL }},
8314     { &hf_ulp_wimaxNMRList,
8315       { "wimaxNMRList", "ulp.wimaxNMRList",
8316         FT_UINT32, BASE_DEC, NULL, 0,
8317         NULL, HFILL }},
8318     { &hf_ulp_rTD,
8319       { "rTD", "ulp.rTD",
8320         FT_UINT32, BASE_DEC, NULL, 0,
8321         "INTEGER_0_65535", HFILL }},
8322     { &hf_ulp_rTDstd,
8323       { "rTDstd", "ulp.rTDstd",
8324         FT_UINT32, BASE_DEC, NULL, 0,
8325         "INTEGER_0_1023", HFILL }},
8326     { &hf_ulp_WimaxNMRList_item,
8327       { "WimaxNMR", "ulp.WimaxNMR_element",
8328         FT_NONE, BASE_NONE, NULL, 0,
8329         NULL, HFILL }},
8330     { &hf_ulp_relDelay,
8331       { "relDelay", "ulp.relDelay",
8332         FT_INT32, BASE_DEC, NULL, 0,
8333         "INTEGER_M32768_32767", HFILL }},
8334     { &hf_ulp_relDelaystd,
8335       { "relDelaystd", "ulp.relDelaystd",
8336         FT_UINT32, BASE_DEC, NULL, 0,
8337         "INTEGER_0_1023", HFILL }},
8338     { &hf_ulp_rSSI,
8339       { "rSSI", "ulp.rSSI",
8340         FT_UINT32, BASE_DEC, NULL, 0,
8341         "INTEGER_0_255", HFILL }},
8342     { &hf_ulp_rSSIstd,
8343       { "rSSIstd", "ulp.rSSIstd",
8344         FT_UINT32, BASE_DEC, NULL, 0,
8345         "INTEGER_0_63", HFILL }},
8346     { &hf_ulp_bSTxPower,
8347       { "bSTxPower", "ulp.bSTxPower",
8348         FT_UINT32, BASE_DEC, NULL, 0,
8349         "INTEGER_0_255", HFILL }},
8350     { &hf_ulp_cINR,
8351       { "cINR", "ulp.cINR",
8352         FT_UINT32, BASE_DEC, NULL, 0,
8353         "INTEGER_0_255", HFILL }},
8354     { &hf_ulp_cINRstd,
8355       { "cINRstd", "ulp.cINRstd",
8356         FT_UINT32, BASE_DEC, NULL, 0,
8357         "INTEGER_0_63", HFILL }},
8358     { &hf_ulp_bSLocation,
8359       { "bSLocation", "ulp.bSLocation_element",
8360         FT_NONE, BASE_NONE, NULL, 0,
8361         "ReportedLocation", HFILL }},
8362     { &hf_ulp_utran_GPSReferenceTime,
8363       { "utran-GPSReferenceTime", "ulp.utran_GPSReferenceTime_element",
8364         FT_NONE, BASE_NONE, NULL, 0,
8365         NULL, HFILL }},
8366     { &hf_ulp_gpsReferenceTimeUncertainty,
8367       { "gpsReferenceTimeUncertainty", "ulp.gpsReferenceTimeUncertainty",
8368         FT_UINT32, BASE_DEC, NULL, 0,
8369         "INTEGER_0_127", HFILL }},
8370     { &hf_ulp_utranGPSDriftRate,
8371       { "utranGPSDriftRate", "ulp.utranGPSDriftRate",
8372         FT_UINT32, BASE_DEC, VALS(ulp_UTRANGPSDriftRate_vals), 0,
8373         NULL, HFILL }},
8374     { &hf_ulp_utran_GPSTimingOfCell,
8375       { "utran-GPSTimingOfCell", "ulp.utran_GPSTimingOfCell_element",
8376         FT_NONE, BASE_NONE, NULL, 0,
8377         NULL, HFILL }},
8378     { &hf_ulp_ms_part,
8379       { "ms-part", "ulp.ms_part",
8380         FT_UINT32, BASE_DEC, NULL, 0,
8381         "INTEGER_0_1023", HFILL }},
8382     { &hf_ulp_ls_part,
8383       { "ls-part", "ulp.ls_part",
8384         FT_UINT32, BASE_DEC, NULL, 0,
8385         "INTEGER_0_4294967295", HFILL }},
8386     { &hf_ulp_modeSpecificInfo_01,
8387       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8388         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_01_vals), 0,
8389         "T_modeSpecificInfo_01", HFILL }},
8390     { &hf_ulp_fdd_01,
8391       { "fdd", "ulp.fdd_element",
8392         FT_NONE, BASE_NONE, NULL, 0,
8393         "T_fdd_01", HFILL }},
8394     { &hf_ulp_referenceIdentity,
8395       { "referenceIdentity", "ulp.referenceIdentity_element",
8396         FT_NONE, BASE_NONE, NULL, 0,
8397         "PrimaryCPICH_Info", HFILL }},
8398     { &hf_ulp_tdd_01,
8399       { "tdd", "ulp.tdd_element",
8400         FT_NONE, BASE_NONE, NULL, 0,
8401         "T_tdd_01", HFILL }},
8402     { &hf_ulp_referenceIdentity_01,
8403       { "referenceIdentity", "ulp.referenceIdentity",
8404         FT_UINT32, BASE_DEC, NULL, 0,
8405         "CellParametersID", HFILL }},
8406     { &hf_ulp_sfn,
8407       { "sfn", "ulp.sfn",
8408         FT_UINT32, BASE_DEC, NULL, 0,
8409         "INTEGER_0_4095", HFILL }},
8410     { &hf_ulp_set_GPSTimingOfCell,
8411       { "set-GPSTimingOfCell", "ulp.set_GPSTimingOfCell_element",
8412         FT_NONE, BASE_NONE, NULL, 0,
8413         "T_set_GPSTimingOfCell", HFILL }},
8414     { &hf_ulp_ms_part_01,
8415       { "ms-part", "ulp.ms_part",
8416         FT_UINT32, BASE_DEC, NULL, 0,
8417         "INTEGER_0_16383", HFILL }},
8418     { &hf_ulp_modeSpecificInfo_02,
8419       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8420         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_02_vals), 0,
8421         "T_modeSpecificInfo_02", HFILL }},
8422     { &hf_ulp_fdd_02,
8423       { "fdd", "ulp.fdd_element",
8424         FT_NONE, BASE_NONE, NULL, 0,
8425         "T_fdd_02", HFILL }},
8426     { &hf_ulp_tdd_02,
8427       { "tdd", "ulp.tdd_element",
8428         FT_NONE, BASE_NONE, NULL, 0,
8429         "T_tdd_02", HFILL }},
8430     { &hf_ulp_ganssDay,
8431       { "ganssDay", "ulp.ganssDay",
8432         FT_UINT32, BASE_DEC, NULL, 0,
8433         "INTEGER_0_8191", HFILL }},
8434     { &hf_ulp_ganssTimeID,
8435       { "ganssTimeID", "ulp.ganssTimeID",
8436         FT_UINT32, BASE_DEC, NULL, 0,
8437         "INTEGER_0_15", HFILL }},
8438     { &hf_ulp_utran_GANSSReferenceTime,
8439       { "utran-GANSSReferenceTime", "ulp.utran_GANSSReferenceTime_element",
8440         FT_NONE, BASE_NONE, NULL, 0,
8441         NULL, HFILL }},
8442     { &hf_ulp_utranGANSSDriftRate,
8443       { "utranGANSSDriftRate", "ulp.utranGANSSDriftRate",
8444         FT_UINT32, BASE_DEC, VALS(ulp_UTRANGANSSDriftRate_vals), 0,
8445         NULL, HFILL }},
8446     { &hf_ulp_ganssTOD,
8447       { "ganssTOD", "ulp.ganssTOD",
8448         FT_UINT32, BASE_DEC, NULL, 0,
8449         "INTEGER_0_86399", HFILL }},
8450     { &hf_ulp_utran_GANSSTimingOfCell,
8451       { "utran-GANSSTimingOfCell", "ulp.utran_GANSSTimingOfCell",
8452         FT_UINT32, BASE_DEC, NULL, 0,
8453         "INTEGER_0_3999999", HFILL }},
8454     { &hf_ulp_modeSpecificInfo_03,
8455       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8456         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_03_vals), 0,
8457         "T_modeSpecificInfo_03", HFILL }},
8458     { &hf_ulp_fdd_03,
8459       { "fdd", "ulp.fdd_element",
8460         FT_NONE, BASE_NONE, NULL, 0,
8461         "T_fdd_03", HFILL }},
8462     { &hf_ulp_tdd_03,
8463       { "tdd", "ulp.tdd_element",
8464         FT_NONE, BASE_NONE, NULL, 0,
8465         "T_tdd_03", HFILL }},
8466     { &hf_ulp_ganss_TODUncertainty,
8467       { "ganss-TODUncertainty", "ulp.ganss_TODUncertainty",
8468         FT_UINT32, BASE_DEC, NULL, 0,
8469         "INTEGER_0_127", HFILL }},
8470     { &hf_ulp_set_GANSSReferenceTime,
8471       { "set-GANSSReferenceTime", "ulp.set_GANSSReferenceTime_element",
8472         FT_NONE, BASE_NONE, NULL, 0,
8473         NULL, HFILL }},
8474     { &hf_ulp_set_GANSSTimingOfCell,
8475       { "set-GANSSTimingOfCell", "ulp.set_GANSSTimingOfCell_element",
8476         FT_NONE, BASE_NONE, NULL, 0,
8477         "T_set_GANSSTimingOfCell", HFILL }},
8478     { &hf_ulp_ms_part_02,
8479       { "ms-part", "ulp.ms_part",
8480         FT_UINT32, BASE_DEC, NULL, 0,
8481         "INTEGER_0_80", HFILL }},
8482     { &hf_ulp_modeSpecificInfo_04,
8483       { "modeSpecificInfo", "ulp.modeSpecificInfo",
8484         FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_04_vals), 0,
8485         "T_modeSpecificInfo_04", HFILL }},
8486     { &hf_ulp_fdd_04,
8487       { "fdd", "ulp.fdd_element",
8488         FT_NONE, BASE_NONE, NULL, 0,
8489         "T_fdd_04", HFILL }},
8490     { &hf_ulp_tdd_04,
8491       { "tdd", "ulp.tdd_element",
8492         FT_NONE, BASE_NONE, NULL, 0,
8493         "T_tdd_04", HFILL }},
8494     { &hf_ulp_gps,
8495       { "gps", "ulp.gps",
8496         FT_BOOLEAN, BASE_NONE, NULL, 0,
8497         "BOOLEAN", HFILL }},
8498     { &hf_ulp_galileo,
8499       { "galileo", "ulp.galileo",
8500         FT_BOOLEAN, BASE_NONE, NULL, 0,
8501         "BOOLEAN", HFILL }},
8502     { &hf_ulp_sbas,
8503       { "sbas", "ulp.sbas",
8504         FT_BOOLEAN, BASE_NONE, NULL, 0,
8505         "BOOLEAN", HFILL }},
8506     { &hf_ulp_modernized_gps,
8507       { "modernized-gps", "ulp.modernized_gps",
8508         FT_BOOLEAN, BASE_NONE, NULL, 0,
8509         "BOOLEAN", HFILL }},
8510     { &hf_ulp_qzss,
8511       { "qzss", "ulp.qzss",
8512         FT_BOOLEAN, BASE_NONE, NULL, 0,
8513         "BOOLEAN", HFILL }},
8514     { &hf_ulp_glonass,
8515       { "glonass", "ulp.glonass",
8516         FT_BOOLEAN, BASE_NONE, NULL, 0,
8517         "BOOLEAN", HFILL }},
8518     { &hf_ulp_rAND,
8519       { "rAND", "ulp.rAND",
8520         FT_BYTES, BASE_NONE, NULL, 0,
8521         "BIT_STRING_SIZE_128", HFILL }},
8522     { &hf_ulp_slpFQDN,
8523       { "slpFQDN", "ulp.slpFQDN",
8524         FT_STRING, BASE_NONE, NULL, 0,
8525         "FQDN", HFILL }},
8526     { &hf_ulp_ThirdParty_item,
8527       { "ThirdPartyID", "ulp.ThirdPartyID",
8528         FT_UINT32, BASE_DEC, VALS(ulp_ThirdPartyID_vals), 0,
8529         NULL, HFILL }},
8530     { &hf_ulp_logicalName,
8531       { "logicalName", "ulp.logicalName",
8532         FT_STRING, BASE_NONE, NULL, 0,
8533         "IA5String_SIZE_1_1000", HFILL }},
8534     { &hf_ulp_emailaddr,
8535       { "emailaddr", "ulp.emailaddr",
8536         FT_STRING, BASE_NONE, NULL, 0,
8537         "IA5String_SIZE_1_1000", HFILL }},
8538     { &hf_ulp_sip_uri,
8539       { "sip-uri", "ulp.sip_uri",
8540         FT_STRING, BASE_NONE, NULL, 0,
8541         NULL, HFILL }},
8542     { &hf_ulp_ims_public_identity,
8543       { "ims-public-identity", "ulp.ims_public_identity",
8544         FT_STRING, BASE_NONE, NULL, 0,
8545         NULL, HFILL }},
8546     { &hf_ulp_min_01,
8547       { "min", "ulp.min",
8548         FT_BYTES, BASE_NONE, NULL, 0,
8549         "BIT_STRING_SIZE_34", HFILL }},
8550     { &hf_ulp_uri,
8551       { "uri", "ulp.uri",
8552         FT_STRING, BASE_NONE, NULL, 0,
8553         NULL, HFILL }},
8554     { &hf_ulp_appProvider,
8555       { "appProvider", "ulp.appProvider",
8556         FT_STRING, BASE_NONE, NULL, 0,
8557         "IA5String_SIZE_1_24", HFILL }},
8558     { &hf_ulp_appName,
8559       { "appName", "ulp.appName",
8560         FT_STRING, BASE_NONE, NULL, 0,
8561         "IA5String_SIZE_1_32", HFILL }},
8562     { &hf_ulp_appVersion,
8563       { "appVersion", "ulp.appVersion",
8564         FT_STRING, BASE_NONE, NULL, 0,
8565         "IA5String_SIZE_1_8", HFILL }},
8566     { &hf_ulp_minInt,
8567       { "minInt", "ulp.minInt",
8568         FT_UINT32, BASE_DEC, NULL, 0,
8569         "INTEGER_1_3600", HFILL }},
8570     { &hf_ulp_maxInt,
8571       { "maxInt", "ulp.maxInt",
8572         FT_UINT32, BASE_DEC, NULL, 0,
8573         "INTEGER_1_1440", HFILL }},
8574     { &hf_ulp_repMode_01,
8575       { "repMode", "ulp.repMode_element",
8576         FT_NONE, BASE_NONE, NULL, 0,
8577         "RepMode_cap", HFILL }},
8578     { &hf_ulp_batchRepCap,
8579       { "batchRepCap", "ulp.batchRepCap_element",
8580         FT_NONE, BASE_NONE, NULL, 0,
8581         NULL, HFILL }},
8582     { &hf_ulp_realtime,
8583       { "realtime", "ulp.realtime",
8584         FT_BOOLEAN, BASE_NONE, NULL, 0,
8585         "BOOLEAN", HFILL }},
8586     { &hf_ulp_quasirealtime,
8587       { "quasirealtime", "ulp.quasirealtime",
8588         FT_BOOLEAN, BASE_NONE, NULL, 0,
8589         "BOOLEAN", HFILL }},
8590     { &hf_ulp_batch,
8591       { "batch", "ulp.batch",
8592         FT_BOOLEAN, BASE_NONE, NULL, 0,
8593         "BOOLEAN", HFILL }},
8594     { &hf_ulp_report_position,
8595       { "report-position", "ulp.report_position",
8596         FT_BOOLEAN, BASE_NONE, NULL, 0,
8597         "BOOLEAN", HFILL }},
8598     { &hf_ulp_report_measurements,
8599       { "report-measurements", "ulp.report_measurements",
8600         FT_BOOLEAN, BASE_NONE, NULL, 0,
8601         "BOOLEAN", HFILL }},
8602     { &hf_ulp_max_num_positions,
8603       { "max-num-positions", "ulp.max_num_positions",
8604         FT_UINT32, BASE_DEC, NULL, 0,
8605         "INTEGER_1_1024", HFILL }},
8606     { &hf_ulp_max_num_measurements,
8607       { "max-num-measurements", "ulp.max_num_measurements",
8608         FT_UINT32, BASE_DEC, NULL, 0,
8609         "INTEGER_1_1024", HFILL }},
8610     { &hf_ulp_latitudeSign_01,
8611       { "latitudeSign", "ulp.latitudeSign",
8612         FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_01_vals), 0,
8613         "T_latitudeSign_01", HFILL }},
8614     { &hf_ulp_coordinate,
8615       { "coordinate", "ulp.coordinate_element",
8616         FT_NONE, BASE_NONE, NULL, 0,
8617         NULL, HFILL }},
8618     { &hf_ulp_radius,
8619       { "radius", "ulp.radius",
8620         FT_UINT32, BASE_DEC, NULL, 0,
8621         "INTEGER_1_1000000", HFILL }},
8622     { &hf_ulp_radius_min,
8623       { "radius-min", "ulp.radius_min",
8624         FT_UINT32, BASE_DEC, NULL, 0,
8625         "INTEGER_1_1000000", HFILL }},
8626     { &hf_ulp_radius_max,
8627       { "radius-max", "ulp.radius_max",
8628         FT_UINT32, BASE_DEC, NULL, 0,
8629         "INTEGER_1_1500000", HFILL }},
8630     { &hf_ulp_semiMajor,
8631       { "semiMajor", "ulp.semiMajor",
8632         FT_UINT32, BASE_DEC, NULL, 0,
8633         "INTEGER_1_1000000", HFILL }},
8634     { &hf_ulp_semiMajor_min,
8635       { "semiMajor-min", "ulp.semiMajor_min",
8636         FT_UINT32, BASE_DEC, NULL, 0,
8637         "INTEGER_1_1000000", HFILL }},
8638     { &hf_ulp_semiMajor_max,
8639       { "semiMajor-max", "ulp.semiMajor_max",
8640         FT_UINT32, BASE_DEC, NULL, 0,
8641         "INTEGER_1_1500000", HFILL }},
8642     { &hf_ulp_semiMinor,
8643       { "semiMinor", "ulp.semiMinor",
8644         FT_UINT32, BASE_DEC, NULL, 0,
8645         "INTEGER_1_1000000", HFILL }},
8646     { &hf_ulp_semiMinor_min,
8647       { "semiMinor-min", "ulp.semiMinor_min",
8648         FT_UINT32, BASE_DEC, NULL, 0,
8649         "INTEGER_1_1000000", HFILL }},
8650     { &hf_ulp_semiMinor_max,
8651       { "semiMinor-max", "ulp.semiMinor_max",
8652         FT_UINT32, BASE_DEC, NULL, 0,
8653         "INTEGER_1_1500000", HFILL }},
8654     { &hf_ulp_angle,
8655       { "angle", "ulp.angle",
8656         FT_UINT32, BASE_DEC, NULL, 0,
8657         "INTEGER_0_179", HFILL }},
8658     { &hf_ulp_polygonDescription,
8659       { "polygonDescription", "ulp.polygonDescription",
8660         FT_UINT32, BASE_DEC, NULL, 0,
8661         NULL, HFILL }},
8662     { &hf_ulp_polygonHysteresis,
8663       { "polygonHysteresis", "ulp.polygonHysteresis",
8664         FT_UINT32, BASE_DEC, NULL, 0,
8665         "INTEGER_1_100000", HFILL }},
8666     { &hf_ulp_PolygonDescription_item,
8667       { "Coordinate", "ulp.Coordinate_element",
8668         FT_NONE, BASE_NONE, NULL, 0,
8669         NULL, HFILL }},
8670     { &hf_ulp_GANSSSignals_signal1,
8671       { "signal1", "ulp.signal1",
8672         FT_BOOLEAN, 8, NULL, 0x80,
8673         NULL, HFILL }},
8674     { &hf_ulp_GANSSSignals_signal2,
8675       { "signal2", "ulp.signal2",
8676         FT_BOOLEAN, 8, NULL, 0x40,
8677         NULL, HFILL }},
8678     { &hf_ulp_GANSSSignals_signal3,
8679       { "signal3", "ulp.signal3",
8680         FT_BOOLEAN, 8, NULL, 0x20,
8681         NULL, HFILL }},
8682     { &hf_ulp_GANSSSignals_signal4,
8683       { "signal4", "ulp.signal4",
8684         FT_BOOLEAN, 8, NULL, 0x10,
8685         NULL, HFILL }},
8686     { &hf_ulp_GANSSSignals_signal5,
8687       { "signal5", "ulp.signal5",
8688         FT_BOOLEAN, 8, NULL, 0x08,
8689         NULL, HFILL }},
8690     { &hf_ulp_GANSSSignals_signal6,
8691       { "signal6", "ulp.signal6",
8692         FT_BOOLEAN, 8, NULL, 0x04,
8693         NULL, HFILL }},
8694     { &hf_ulp_GANSSSignals_signal7,
8695       { "signal7", "ulp.signal7",
8696         FT_BOOLEAN, 8, NULL, 0x02,
8697         NULL, HFILL }},
8698     { &hf_ulp_GANSSSignals_signal8,
8699       { "signal8", "ulp.signal8",
8700         FT_BOOLEAN, 8, NULL, 0x01,
8701         NULL, HFILL }},
8702
8703 /*--- End of included file: packet-ulp-hfarr.c ---*/
8704 #line 99 "../../asn1/ulp/packet-ulp-template.c"
8705   };
8706
8707   /* List of subtrees */
8708   static gint *ett[] = {
8709     &ett_ulp,
8710
8711 /*--- Included file: packet-ulp-ettarr.c ---*/
8712 #line 1 "../../asn1/ulp/packet-ulp-ettarr.c"
8713     &ett_ulp_ULP_PDU,
8714     &ett_ulp_UlpMessage,
8715     &ett_ulp_SUPLINIT,
8716     &ett_ulp_Notification,
8717     &ett_ulp_SUPLSTART,
8718     &ett_ulp_SETCapabilities,
8719     &ett_ulp_PosTechnology,
8720     &ett_ulp_PosProtocol,
8721     &ett_ulp_SUPLRESPONSE,
8722     &ett_ulp_SETAuthKey,
8723     &ett_ulp_SUPLPOSINIT,
8724     &ett_ulp_RequestedAssistData,
8725     &ett_ulp_NavigationModel,
8726     &ett_ulp_SatelliteInfo,
8727     &ett_ulp_SatelliteInfoElement,
8728     &ett_ulp_SUPLPOS,
8729     &ett_ulp_PosPayLoad,
8730     &ett_ulp_SUPLEND,
8731     &ett_ulp_SUPLAUTHREQ,
8732     &ett_ulp_SUPLAUTHRESP,
8733     &ett_ulp_Ver2_SUPLNOTIFY,
8734     &ett_ulp_Ver2_SUPLNOTIFYRESPONSE,
8735     &ett_ulp_Ver2_SUPLSETINIT,
8736     &ett_ulp_Ver2_SUPLTRIGGEREDSTART,
8737     &ett_ulp_TriggerParams,
8738     &ett_ulp_PeriodicParams,
8739     &ett_ulp_AreaEventParams,
8740     &ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList,
8741     &ett_ulp_RepeatedReportingParams,
8742     &ett_ulp_GeographicTargetAreaList,
8743     &ett_ulp_GeographicTargetArea,
8744     &ett_ulp_AreaIdList,
8745     &ett_ulp_AreaIdSet,
8746     &ett_ulp_AreaId,
8747     &ett_ulp_GSMAreaId,
8748     &ett_ulp_WCDMAAreaId,
8749     &ett_ulp_CDMAAreaId,
8750     &ett_ulp_HRPDAreaId,
8751     &ett_ulp_UMBAreaId,
8752     &ett_ulp_LTEAreaId,
8753     &ett_ulp_WLANAreaId,
8754     &ett_ulp_WimaxAreaId,
8755     &ett_ulp_GeoAreaMappingList,
8756     &ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE,
8757     &ett_ulp_ReportingMode,
8758     &ett_ulp_BatchRepConditions,
8759     &ett_ulp_BatchRepType,
8760     &ett_ulp_Ver2_SUPLREPORT,
8761     &ett_ulp_SessionList,
8762     &ett_ulp_SessionInformation,
8763     &ett_ulp_ReportDataList,
8764     &ett_ulp_ReportData,
8765     &ett_ulp_PositionData,
8766     &ett_ulp_GANSSsignalsInfo,
8767     &ett_ulp_GANSSSignalsDescription,
8768     &ett_ulp_TimeStamp,
8769     &ett_ulp_Ver2_SUPLTRIGGEREDSTOP,
8770     &ett_ulp_Ver2_SUPL_INIT_extension,
8771     &ett_ulp_HistoricReporting,
8772     &ett_ulp_ReportingCriteria,
8773     &ett_ulp_TimeWindow,
8774     &ett_ulp_ProtectionLevel,
8775     &ett_ulp_BasicProtectionParams,
8776     &ett_ulp_Ver2_SUPL_START_extension,
8777     &ett_ulp_Ver2_SUPL_RESPONSE_extension,
8778     &ett_ulp_Ver2_SUPL_POS_INIT_extension,
8779     &ett_ulp_Ver2_SUPL_POS_extension,
8780     &ett_ulp_Ver2_SUPL_END_extension,
8781     &ett_ulp_Ver2_Notification_extension,
8782     &ett_ulp_Ver2_SETCapabilities_extension,
8783     &ett_ulp_ServiceCapabilities,
8784     &ett_ulp_ServicesSupported,
8785     &ett_ulp_EventTriggerCapabilities,
8786     &ett_ulp_GeoAreaShapesSupported,
8787     &ett_ulp_SessionCapabilities,
8788     &ett_ulp_SupportedBearers,
8789     &ett_ulp_Ver2_PosProtocol_extension,
8790     &ett_ulp_PosProtocolVersion3GPP,
8791     &ett_ulp_PosProtocolVersion3GPP2,
8792     &ett_ulp_Supported3GPP2PosProtocolVersion,
8793     &ett_ulp_Ver2_PosTechnology_extension,
8794     &ett_ulp_GANSSPositionMethods,
8795     &ett_ulp_GANSSPositionMethod,
8796     &ett_ulp_GANSSPositioningMethodTypes,
8797     &ett_ulp_Ver2_RequestedAssistData_extension,
8798     &ett_ulp_GanssRequestedCommonAssistanceDataList,
8799     &ett_ulp_GanssRequestedGenericAssistanceDataList,
8800     &ett_ulp_GanssReqGenericData,
8801     &ett_ulp_GanssNavigationModelData,
8802     &ett_ulp_SatellitesListRelatedDataList,
8803     &ett_ulp_SatellitesListRelatedData,
8804     &ett_ulp_GanssDataBits,
8805     &ett_ulp_ReqDataBitAssistanceList,
8806     &ett_ulp_T_ganssDataBitSatList,
8807     &ett_ulp_GanssAdditionalDataChoices,
8808     &ett_ulp_ExtendedEphemeris,
8809     &ett_ulp_ExtendedEphCheck,
8810     &ett_ulp_GanssExtendedEphCheck,
8811     &ett_ulp_GPSTime,
8812     &ett_ulp_GANSSextEphTime,
8813     &ett_ulp_Ver2_PosPayLoad_extension,
8814     &ett_ulp_T_lPPPayload,
8815     &ett_ulp_T_tIA801Payload,
8816     &ett_ulp_Version,
8817     &ett_ulp_SessionID,
8818     &ett_ulp_SetSessionID,
8819     &ett_ulp_SETId,
8820     &ett_ulp_SlpSessionID,
8821     &ett_ulp_IPAddress,
8822     &ett_ulp_SLPAddress,
8823     &ett_ulp_LocationId,
8824     &ett_ulp_CellInfo,
8825     &ett_ulp_Position,
8826     &ett_ulp_PositionEstimate,
8827     &ett_ulp_T_uncertainty,
8828     &ett_ulp_AltitudeInfo,
8829     &ett_ulp_CdmaCellInformation,
8830     &ett_ulp_GsmCellInformation,
8831     &ett_ulp_WcdmaCellInformation,
8832     &ett_ulp_TimingAdvance,
8833     &ett_ulp_FrequencyInfo,
8834     &ett_ulp_FrequencySpecificInfo,
8835     &ett_ulp_FrequencyInfoFDD,
8836     &ett_ulp_FrequencyInfoTDD,
8837     &ett_ulp_NMR,
8838     &ett_ulp_NMRelement,
8839     &ett_ulp_MeasuredResultsList,
8840     &ett_ulp_MeasuredResults,
8841     &ett_ulp_CellMeasuredResultsList,
8842     &ett_ulp_CellMeasuredResults,
8843     &ett_ulp_T_modeSpecificInfo,
8844     &ett_ulp_T_fdd,
8845     &ett_ulp_T_tdd,
8846     &ett_ulp_TimeslotISCP_List,
8847     &ett_ulp_PrimaryCPICH_Info,
8848     &ett_ulp_QoP,
8849     &ett_ulp_Velocity,
8850     &ett_ulp_Horvel,
8851     &ett_ulp_Horandvervel,
8852     &ett_ulp_Horveluncert,
8853     &ett_ulp_Horandveruncert,
8854     &ett_ulp_MultipleLocationIds,
8855     &ett_ulp_LocationIdData,
8856     &ett_ulp_SupportedNetworkInformation,
8857     &ett_ulp_SupportedWLANInfo,
8858     &ett_ulp_SupportedWLANApsList,
8859     &ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData,
8860     &ett_ulp_SupportedWLANApsChannel11a,
8861     &ett_ulp_SupportedWLANApsChannel11bg,
8862     &ett_ulp_SupportedWLANApData,
8863     &ett_ulp_SupportedWCDMAInfo,
8864     &ett_ulp_Ver2_CellInfo_extension,
8865     &ett_ulp_HrpdCellInformation,
8866     &ett_ulp_UmbCellInformation,
8867     &ett_ulp_LteCellInformation,
8868     &ett_ulp_MeasResultListEUTRA,
8869     &ett_ulp_MeasResultEUTRA,
8870     &ett_ulp_T_cgi_Info,
8871     &ett_ulp_T_measResult,
8872     &ett_ulp_CellGlobalIdEUTRA,
8873     &ett_ulp_PLMN_Identity,
8874     &ett_ulp_MCC,
8875     &ett_ulp_MNC,
8876     &ett_ulp_WlanAPInformation,
8877     &ett_ulp_RTD,
8878     &ett_ulp_ReportedLocation,
8879     &ett_ulp_LocationData,
8880     &ett_ulp_WimaxBSInformation,
8881     &ett_ulp_WimaxBsID,
8882     &ett_ulp_WimaxRTD,
8883     &ett_ulp_WimaxNMRList,
8884     &ett_ulp_WimaxNMR,
8885     &ett_ulp_UTRAN_GPSReferenceTimeAssistance,
8886     &ett_ulp_UTRAN_GPSReferenceTime,
8887     &ett_ulp_T_utran_GPSTimingOfCell,
8888     &ett_ulp_T_modeSpecificInfo_01,
8889     &ett_ulp_T_fdd_01,
8890     &ett_ulp_T_tdd_01,
8891     &ett_ulp_UTRAN_GPSReferenceTimeResult,
8892     &ett_ulp_T_set_GPSTimingOfCell,
8893     &ett_ulp_T_modeSpecificInfo_02,
8894     &ett_ulp_T_fdd_02,
8895     &ett_ulp_T_tdd_02,
8896     &ett_ulp_UTRAN_GANSSReferenceTimeAssistance,
8897     &ett_ulp_UTRAN_GANSSReferenceTime,
8898     &ett_ulp_T_modeSpecificInfo_03,
8899     &ett_ulp_T_fdd_03,
8900     &ett_ulp_T_tdd_03,
8901     &ett_ulp_UTRAN_GANSSReferenceTimeResult,
8902     &ett_ulp_SET_GANSSReferenceTime,
8903     &ett_ulp_T_set_GANSSTimingOfCell,
8904     &ett_ulp_T_modeSpecificInfo_04,
8905     &ett_ulp_T_fdd_04,
8906     &ett_ulp_T_tdd_04,
8907     &ett_ulp_GNSSPosTechnology,
8908     &ett_ulp_GANSSSignals,
8909     &ett_ulp_SPCTID,
8910     &ett_ulp_ThirdParty,
8911     &ett_ulp_ThirdPartyID,
8912     &ett_ulp_ApplicationID,
8913     &ett_ulp_ReportingCap,
8914     &ett_ulp_RepMode_cap,
8915     &ett_ulp_BatchRepCap,
8916     &ett_ulp_Coordinate,
8917     &ett_ulp_CircularArea,
8918     &ett_ulp_EllipticalArea,
8919     &ett_ulp_PolygonArea,
8920     &ett_ulp_PolygonDescription,
8921
8922 /*--- End of included file: packet-ulp-ettarr.c ---*/
8923 #line 105 "../../asn1/ulp/packet-ulp-template.c"
8924   };
8925
8926   module_t *ulp_module;
8927
8928
8929   /* Register protocol */
8930   proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
8931   new_register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
8932
8933   /* Register fields and subtrees */
8934   proto_register_field_array(proto_ulp, hf, array_length(hf));
8935   proto_register_subtree_array(ett, array_length(ett));
8936
8937   ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
8938
8939   prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
8940     "Reassemble ULP messages spanning multiple TCP segments",
8941     "Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
8942     " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
8943     &ulp_desegment);
8944
8945   /* Register a configuration option for port */
8946   prefs_register_uint_preference(ulp_module, "tcp.port",
8947                                  "ULP TCP Port",
8948                                  "Set the TCP port for ULP messages (IANA registered port is 7275)",
8949                                  10,
8950                                  &gbl_ulp_tcp_port);
8951   prefs_register_uint_preference(ulp_module, "udp.port",
8952                                  "ULP UDP Port",
8953                                  "Set the UDP port for ULP messages (IANA registered port is 7275)",
8954                                  10,
8955                                  &gbl_ulp_udp_port);
8956
8957 }
8958
8959
8960 /*--- proto_reg_handoff_ulp ---------------------------------------*/
8961 void
8962 proto_reg_handoff_ulp(void)
8963 {
8964   static gboolean initialized = FALSE;
8965   static dissector_handle_t ulp_tcp_handle, ulp_udp_handle;
8966   static guint local_ulp_tcp_port, local_ulp_udp_port;
8967
8968   if (!initialized) {
8969     ulp_tcp_handle = find_dissector("ulp");
8970     dissector_add_string("media_type","application/oma-supl-ulp", ulp_tcp_handle);
8971     ulp_udp_handle = new_create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
8972     rrlp_handle = find_dissector("rrlp");
8973     lpp_handle = find_dissector("lpp");
8974     initialized = TRUE;
8975   } else {
8976     dissector_delete_uint("tcp.port", local_ulp_tcp_port, ulp_tcp_handle);
8977     dissector_delete_uint("udp.port", local_ulp_udp_port, ulp_udp_handle);
8978   }
8979
8980   local_ulp_tcp_port = gbl_ulp_tcp_port;
8981   dissector_add_uint("tcp.port", gbl_ulp_tcp_port, ulp_tcp_handle);
8982   local_ulp_udp_port = gbl_ulp_udp_port;
8983   dissector_add_uint("udp.port", gbl_ulp_udp_port, ulp_udp_handle);
8984 }
8985