1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -u -e -p ulp -c ulp.cnf -s packet-ulp-template ULP.asn */
6 /* Input file: packet-ulp-template.c */
8 #line 1 "packet-ulp-template.c"
10 * Routines for OMA UserPlane Location Protocol packet dissection
11 * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
33 * ref OMA-TS-ULP-V1_0-20060127-C
34 * http://www.openmobilealliance.org
42 #include <epan/packet.h>
43 #include <epan/conversation.h>
44 #include <epan/prefs.h>
49 #include "packet-ulp.h"
51 #include "packet-ber.h"
52 #include "packet-per.h"
53 #include <epan/emem.h>
54 #include "packet-tcp.h"
56 #define PNAME "OMA UserPlane Location Protocol"
60 static dissector_handle_t ulp_handle=NULL;
61 static dissector_handle_t rrlp_handle;
63 /* IANA Registered Ports
64 * oma-ulp 7275/tcp OMA UserPlane Location
65 * oma-ulp 7275/udp OMA UserPlane Location
67 guint gbl_ulp_port = 7275;
69 /* Initialize the protocol and registered fields */
70 static int proto_ulp = -1;
73 #define ULP_HEADER_SIZE 2
75 gboolean ulp_desegment = TRUE;
78 /*--- Included file: packet-ulp-hf.c ---*/
79 #line 1 "packet-ulp-hf.c"
80 static int hf_ulp_ULP_PDU_PDU = -1; /* ULP_PDU */
81 static int hf_ulp_length = -1; /* INTEGER_0_65535 */
82 static int hf_ulp_version = -1; /* Version */
83 static int hf_ulp_sessionID = -1; /* SessionID */
84 static int hf_ulp_message = -1; /* UlpMessage */
85 static int hf_ulp_msSUPLINIT = -1; /* SUPLINIT */
86 static int hf_ulp_msSUPLSTART = -1; /* SUPLSTART */
87 static int hf_ulp_msSUPLRESPONSE = -1; /* SUPLRESPONSE */
88 static int hf_ulp_msSUPLPOSINIT = -1; /* SUPLPOSINIT */
89 static int hf_ulp_msSUPLPOS = -1; /* SUPLPOS */
90 static int hf_ulp_msSUPLEND = -1; /* SUPLEND */
91 static int hf_ulp_msSUPLAUTHREQ = -1; /* SUPLAUTHREQ */
92 static int hf_ulp_msSUPLAUTHRESP = -1; /* SUPLAUTHRESP */
93 static int hf_ulp_maj = -1; /* INTEGER_0_255 */
94 static int hf_ulp_min = -1; /* INTEGER_0_255 */
95 static int hf_ulp_servind = -1; /* INTEGER_0_255 */
96 static int hf_ulp_setSessionID = -1; /* SetSessionID */
97 static int hf_ulp_slpSessionID = -1; /* SlpSessionID */
98 static int hf_ulp_sessionId = -1; /* INTEGER_0_65535 */
99 static int hf_ulp_setId = -1; /* SETId */
100 static int hf_ulp_msisdn = -1; /* OCTET_STRING_SIZE_8 */
101 static int hf_ulp_mdn = -1; /* OCTET_STRING_SIZE_8 */
102 static int hf_ulp_min1 = -1; /* BIT_STRING_SIZE_34 */
103 static int hf_ulp_imsi = -1; /* OCTET_STRING_SIZE_8 */
104 static int hf_ulp_nai = -1; /* IA5String_SIZE_1_1000 */
105 static int hf_ulp_iPAddress = -1; /* IPAddress */
106 static int hf_ulp_sessionID1 = -1; /* OCTET_STRING_SIZE_4 */
107 static int hf_ulp_slpId = -1; /* SLPAddress */
108 static int hf_ulp_ipv4Address = -1; /* IPv4Address */
109 static int hf_ulp_ipv6Address = -1; /* IPv6Address */
110 static int hf_ulp_fQDN = -1; /* FQDN */
111 static int hf_ulp_cellInfo = -1; /* CellInfo */
112 static int hf_ulp_status = -1; /* Status */
113 static int hf_ulp_gsmCell = -1; /* GsmCellInformation */
114 static int hf_ulp_wcdmaCell = -1; /* WcdmaCellInformation */
115 static int hf_ulp_cdmaCell = -1; /* CdmaCellInformation */
116 static int hf_ulp_timestamp = -1; /* UTCTime */
117 static int hf_ulp_positionEstimate = -1; /* PositionEstimate */
118 static int hf_ulp_velocity = -1; /* Velocity */
119 static int hf_ulp_latitudeSign = -1; /* T_latitudeSign */
120 static int hf_ulp_latitude = -1; /* INTEGER_0_8388607 */
121 static int hf_ulp_longitude = -1; /* INTEGER_M8388608_8388607 */
122 static int hf_ulp_uncertainty = -1; /* T_uncertainty */
123 static int hf_ulp_uncertaintySemiMajor = -1; /* INTEGER_0_127 */
124 static int hf_ulp_uncertaintySemiMinor = -1; /* INTEGER_0_127 */
125 static int hf_ulp_orientationMajorAxis = -1; /* INTEGER_0_180 */
126 static int hf_ulp_confidence = -1; /* INTEGER_0_100 */
127 static int hf_ulp_altitudeInfo = -1; /* AltitudeInfo */
128 static int hf_ulp_altitudeDirection = -1; /* T_altitudeDirection */
129 static int hf_ulp_altitude = -1; /* INTEGER_0_32767 */
130 static int hf_ulp_altUncertainty = -1; /* INTEGER_0_127 */
131 static int hf_ulp_refNID = -1; /* INTEGER_0_65535 */
132 static int hf_ulp_refSID = -1; /* INTEGER_0_32767 */
133 static int hf_ulp_refBASEID = -1; /* INTEGER_0_65535 */
134 static int hf_ulp_refBASELAT = -1; /* INTEGER_0_4194303 */
135 static int hf_ulp_reBASELONG = -1; /* INTEGER_0_8388607 */
136 static int hf_ulp_refREFPN = -1; /* INTEGER_0_511 */
137 static int hf_ulp_refWeekNumber = -1; /* INTEGER_0_65535 */
138 static int hf_ulp_refSeconds = -1; /* INTEGER_0_4194303 */
139 static int hf_ulp_refMCC = -1; /* INTEGER_0_999 */
140 static int hf_ulp_refMNC = -1; /* INTEGER_0_999 */
141 static int hf_ulp_refLAC = -1; /* INTEGER_0_65535 */
142 static int hf_ulp_refCI = -1; /* INTEGER_0_65535 */
143 static int hf_ulp_nMR = -1; /* NMR */
144 static int hf_ulp_tA = -1; /* INTEGER_0_255 */
145 static int hf_ulp_refUC = -1; /* INTEGER_0_268435455 */
146 static int hf_ulp_frequencyInfo = -1; /* FrequencyInfo */
147 static int hf_ulp_primaryScramblingCode = -1; /* INTEGER_0_511 */
148 static int hf_ulp_measuredResultsList = -1; /* MeasuredResultsList */
149 static int hf_ulp_modeSpecificInfo = -1; /* T_modeSpecificInfo */
150 static int hf_ulp_fdd = -1; /* FrequencyInfoFDD */
151 static int hf_ulp_tdd = -1; /* FrequencyInfoTDD */
152 static int hf_ulp_uarfcn_UL = -1; /* UARFCN */
153 static int hf_ulp_uarfcn_DL = -1; /* UARFCN */
154 static int hf_ulp_uarfcn_Nt = -1; /* UARFCN */
155 static int hf_ulp_NMR_item = -1; /* NMRelement */
156 static int hf_ulp_aRFCN = -1; /* INTEGER_0_1023 */
157 static int hf_ulp_bSIC = -1; /* INTEGER_0_63 */
158 static int hf_ulp_rxLev = -1; /* INTEGER_0_63 */
159 static int hf_ulp_MeasuredResultsList_item = -1; /* MeasuredResults */
160 static int hf_ulp_utra_CarrierRSSI = -1; /* UTRA_CarrierRSSI */
161 static int hf_ulp_cellMeasuredResultsList = -1; /* CellMeasuredResultsList */
162 static int hf_ulp_CellMeasuredResultsList_item = -1; /* CellMeasuredResults */
163 static int hf_ulp_cellIdentity = -1; /* INTEGER_0_268435455 */
164 static int hf_ulp_modeSpecificInfo1 = -1; /* T_modeSpecificInfo1 */
165 static int hf_ulp_fdd1 = -1; /* T_fdd */
166 static int hf_ulp_primaryCPICH_Info = -1; /* PrimaryCPICH_Info */
167 static int hf_ulp_cpich_Ec_N0 = -1; /* CPICH_Ec_N0 */
168 static int hf_ulp_cpich_RSCP = -1; /* CPICH_RSCP */
169 static int hf_ulp_pathloss = -1; /* Pathloss */
170 static int hf_ulp_tdd1 = -1; /* T_tdd */
171 static int hf_ulp_cellParametersID = -1; /* CellParametersID */
172 static int hf_ulp_proposedTGSN = -1; /* TGSN */
173 static int hf_ulp_primaryCCPCH_RSCP = -1; /* PrimaryCCPCH_RSCP */
174 static int hf_ulp_timeslotISCP_List = -1; /* TimeslotISCP_List */
175 static int hf_ulp_TimeslotISCP_List_item = -1; /* TimeslotISCP */
176 static int hf_ulp_horacc = -1; /* INTEGER_0_127 */
177 static int hf_ulp_veracc = -1; /* INTEGER_0_127 */
178 static int hf_ulp_maxLocAge = -1; /* INTEGER_0_65535 */
179 static int hf_ulp_delay = -1; /* INTEGER_0_7 */
180 static int hf_ulp_horvel = -1; /* Horvel */
181 static int hf_ulp_horandvervel = -1; /* Horandvervel */
182 static int hf_ulp_horveluncert = -1; /* Horveluncert */
183 static int hf_ulp_horandveruncert = -1; /* Horandveruncert */
184 static int hf_ulp_bearing = -1; /* BIT_STRING_SIZE_9 */
185 static int hf_ulp_horspeed = -1; /* BIT_STRING_SIZE_16 */
186 static int hf_ulp_verdirect = -1; /* BIT_STRING_SIZE_1 */
187 static int hf_ulp_verspeed = -1; /* BIT_STRING_SIZE_8 */
188 static int hf_ulp_uncertspeed = -1; /* BIT_STRING_SIZE_8 */
189 static int hf_ulp_horuncertspeed = -1; /* BIT_STRING_SIZE_8 */
190 static int hf_ulp_veruncertspeed = -1; /* BIT_STRING_SIZE_8 */
191 static int hf_ulp_sETNonce = -1; /* SETNonce */
192 static int hf_ulp_keyIdentity2 = -1; /* KeyIdentity2 */
193 static int hf_ulp_sPCAuthKey = -1; /* SPCAuthKey */
194 static int hf_ulp_keyIdentity3 = -1; /* KeyIdentity3 */
195 static int hf_ulp_statusCode = -1; /* StatusCode */
196 static int hf_ulp_shortKey = -1; /* BIT_STRING_SIZE_128 */
197 static int hf_ulp_longKey = -1; /* BIT_STRING_SIZE_256 */
198 static int hf_ulp_position = -1; /* Position */
199 static int hf_ulp_ver = -1; /* Ver */
200 static int hf_ulp_posMethod = -1; /* PosMethod */
201 static int hf_ulp_notification = -1; /* Notification */
202 static int hf_ulp_sLPAddress = -1; /* SLPAddress */
203 static int hf_ulp_qoP = -1; /* QoP */
204 static int hf_ulp_sLPMode = -1; /* SLPMode */
205 static int hf_ulp_mAC = -1; /* MAC */
206 static int hf_ulp_keyIdentity = -1; /* KeyIdentity */
207 static int hf_ulp_notificationType = -1; /* NotificationType */
208 static int hf_ulp_encodingType = -1; /* EncodingType */
209 static int hf_ulp_requestorId = -1; /* OCTET_STRING_SIZE_1_maxReqLength */
210 static int hf_ulp_requestorIdType = -1; /* FormatIndicator */
211 static int hf_ulp_clientName = -1; /* OCTET_STRING_SIZE_1_maxClientLength */
212 static int hf_ulp_clientNameType = -1; /* FormatIndicator */
213 static int hf_ulp_posPayLoad = -1; /* PosPayLoad */
214 static int hf_ulp_tia801payload = -1; /* OCTET_STRING_SIZE_1_8192 */
215 static int hf_ulp_rrcPayload = -1; /* OCTET_STRING_SIZE_1_8192 */
216 static int hf_ulp_rrlpPayload = -1; /* RRLPPayload */
217 static int hf_ulp_sETCapabilities = -1; /* SETCapabilities */
218 static int hf_ulp_requestedAssistData = -1; /* RequestedAssistData */
219 static int hf_ulp_locationId = -1; /* LocationId */
220 static int hf_ulp_sUPLPOS = -1; /* SUPLPOS */
221 static int hf_ulp_almanacRequested = -1; /* BOOLEAN */
222 static int hf_ulp_utcModelRequested = -1; /* BOOLEAN */
223 static int hf_ulp_ionosphericModelRequested = -1; /* BOOLEAN */
224 static int hf_ulp_dgpsCorrectionsRequested = -1; /* BOOLEAN */
225 static int hf_ulp_referenceLocationRequested = -1; /* BOOLEAN */
226 static int hf_ulp_referenceTimeRequested = -1; /* BOOLEAN */
227 static int hf_ulp_acquisitionAssistanceRequested = -1; /* BOOLEAN */
228 static int hf_ulp_realTimeIntegrityRequested = -1; /* BOOLEAN */
229 static int hf_ulp_navigationModelRequested = -1; /* BOOLEAN */
230 static int hf_ulp_navigationModelData = -1; /* NavigationModel */
231 static int hf_ulp_gpsWeek = -1; /* INTEGER_0_1023 */
232 static int hf_ulp_gpsToe = -1; /* INTEGER_0_167 */
233 static int hf_ulp_nSAT = -1; /* INTEGER_0_31 */
234 static int hf_ulp_toeLimit = -1; /* INTEGER_0_10 */
235 static int hf_ulp_satInfo = -1; /* SatelliteInfo */
236 static int hf_ulp_SatelliteInfo_item = -1; /* SatelliteInfoElement */
237 static int hf_ulp_satId = -1; /* INTEGER_0_63 */
238 static int hf_ulp_iODE = -1; /* INTEGER_0_255 */
239 static int hf_ulp_sETAuthKey = -1; /* SETAuthKey */
240 static int hf_ulp_keyIdentity4 = -1; /* KeyIdentity4 */
241 static int hf_ulp_posTechnology = -1; /* PosTechnology */
242 static int hf_ulp_prefMethod = -1; /* PrefMethod */
243 static int hf_ulp_posProtocol = -1; /* PosProtocol */
244 static int hf_ulp_agpsSETassisted = -1; /* BOOLEAN */
245 static int hf_ulp_agpsSETBased = -1; /* BOOLEAN */
246 static int hf_ulp_autonomousGPS = -1; /* BOOLEAN */
247 static int hf_ulp_aFLT = -1; /* BOOLEAN */
248 static int hf_ulp_eCID = -1; /* BOOLEAN */
249 static int hf_ulp_eOTD = -1; /* BOOLEAN */
250 static int hf_ulp_oTDOA = -1; /* BOOLEAN */
251 static int hf_ulp_tia801 = -1; /* BOOLEAN */
252 static int hf_ulp_rrlp = -1; /* BOOLEAN */
253 static int hf_ulp_rrc = -1; /* BOOLEAN */
255 /*--- End of included file: packet-ulp-hf.c ---*/
256 #line 70 "packet-ulp-template.c"
258 /* Initialize the subtree pointers */
259 static gint ett_ulp = -1;
261 /*--- Included file: packet-ulp-ett.c ---*/
262 #line 1 "packet-ulp-ett.c"
263 static gint ett_ulp_ULP_PDU = -1;
264 static gint ett_ulp_UlpMessage = -1;
265 static gint ett_ulp_Version = -1;
266 static gint ett_ulp_SessionID = -1;
267 static gint ett_ulp_SetSessionID = -1;
268 static gint ett_ulp_SETId = -1;
269 static gint ett_ulp_SlpSessionID = -1;
270 static gint ett_ulp_IPAddress = -1;
271 static gint ett_ulp_SLPAddress = -1;
272 static gint ett_ulp_LocationId = -1;
273 static gint ett_ulp_CellInfo = -1;
274 static gint ett_ulp_Position = -1;
275 static gint ett_ulp_PositionEstimate = -1;
276 static gint ett_ulp_T_uncertainty = -1;
277 static gint ett_ulp_AltitudeInfo = -1;
278 static gint ett_ulp_CdmaCellInformation = -1;
279 static gint ett_ulp_GsmCellInformation = -1;
280 static gint ett_ulp_WcdmaCellInformation = -1;
281 static gint ett_ulp_FrequencyInfo = -1;
282 static gint ett_ulp_T_modeSpecificInfo = -1;
283 static gint ett_ulp_FrequencyInfoFDD = -1;
284 static gint ett_ulp_FrequencyInfoTDD = -1;
285 static gint ett_ulp_NMR = -1;
286 static gint ett_ulp_NMRelement = -1;
287 static gint ett_ulp_MeasuredResultsList = -1;
288 static gint ett_ulp_MeasuredResults = -1;
289 static gint ett_ulp_CellMeasuredResultsList = -1;
290 static gint ett_ulp_CellMeasuredResults = -1;
291 static gint ett_ulp_T_modeSpecificInfo1 = -1;
292 static gint ett_ulp_T_fdd = -1;
293 static gint ett_ulp_T_tdd = -1;
294 static gint ett_ulp_TimeslotISCP_List = -1;
295 static gint ett_ulp_PrimaryCPICH_Info = -1;
296 static gint ett_ulp_QoP = -1;
297 static gint ett_ulp_Velocity = -1;
298 static gint ett_ulp_Horvel = -1;
299 static gint ett_ulp_Horandvervel = -1;
300 static gint ett_ulp_Horveluncert = -1;
301 static gint ett_ulp_Horandveruncert = -1;
302 static gint ett_ulp_SUPLAUTHREQ = -1;
303 static gint ett_ulp_SUPLAUTHRESP = -1;
304 static gint ett_ulp_SPCAuthKey = -1;
305 static gint ett_ulp_SUPLEND = -1;
306 static gint ett_ulp_SUPLINIT = -1;
307 static gint ett_ulp_Notification = -1;
308 static gint ett_ulp_SUPLPOS = -1;
309 static gint ett_ulp_PosPayLoad = -1;
310 static gint ett_ulp_SUPLPOSINIT = -1;
311 static gint ett_ulp_RequestedAssistData = -1;
312 static gint ett_ulp_NavigationModel = -1;
313 static gint ett_ulp_SatelliteInfo = -1;
314 static gint ett_ulp_SatelliteInfoElement = -1;
315 static gint ett_ulp_SUPLRESPONSE = -1;
316 static gint ett_ulp_SETAuthKey = -1;
317 static gint ett_ulp_SUPLSTART = -1;
318 static gint ett_ulp_SETCapabilities = -1;
319 static gint ett_ulp_PosTechnology = -1;
320 static gint ett_ulp_PosProtocol = -1;
322 /*--- End of included file: packet-ulp-ett.c ---*/
323 #line 74 "packet-ulp-template.c"
325 /* Include constants */
327 /*--- Included file: packet-ulp-val.h ---*/
328 #line 1 "packet-ulp-val.h"
329 #define maxCellMeas 32
332 #define maxReqLength 50
333 #define maxClientLength 50
335 /*--- End of included file: packet-ulp-val.h ---*/
336 #line 77 "packet-ulp-template.c"
340 /*--- Included file: packet-ulp-fn.c ---*/
341 #line 1 "packet-ulp-fn.c"
345 dissect_ulp_INTEGER_0_65535(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
346 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
347 0U, 65535U, NULL, FALSE);
355 dissect_ulp_INTEGER_0_255(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
356 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
357 0U, 255U, NULL, FALSE);
363 static const per_sequence_t Version_sequence[] = {
364 { &hf_ulp_maj , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
365 { &hf_ulp_min , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
366 { &hf_ulp_servind , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
371 dissect_ulp_Version(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
372 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
373 ett_ulp_Version, Version_sequence);
381 dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
382 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
391 dissect_ulp_BIT_STRING_SIZE_34(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
392 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
393 34, 34, FALSE, NULL);
401 dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
402 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
411 dissect_ulp_IPv4Address(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
412 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
421 dissect_ulp_IPv6Address(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
422 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
429 static const value_string ulp_IPAddress_vals[] = {
430 { 0, "ipv4Address" },
431 { 1, "ipv6Address" },
435 static const per_choice_t IPAddress_choice[] = {
436 { 0, &hf_ulp_ipv4Address , ASN1_NO_EXTENSIONS , dissect_ulp_IPv4Address },
437 { 1, &hf_ulp_ipv6Address , ASN1_NO_EXTENSIONS , dissect_ulp_IPv6Address },
442 dissect_ulp_IPAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
443 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
444 ett_ulp_IPAddress, IPAddress_choice,
451 static const value_string ulp_SETId_vals[] = {
461 static const per_choice_t SETId_choice[] = {
462 { 0, &hf_ulp_msisdn , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
463 { 1, &hf_ulp_mdn , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
464 { 2, &hf_ulp_min1 , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_34 },
465 { 3, &hf_ulp_imsi , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
466 { 4, &hf_ulp_nai , ASN1_EXTENSION_ROOT , dissect_ulp_IA5String_SIZE_1_1000 },
467 { 5, &hf_ulp_iPAddress , ASN1_EXTENSION_ROOT , dissect_ulp_IPAddress },
472 dissect_ulp_SETId(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
473 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
474 ett_ulp_SETId, SETId_choice,
481 static const per_sequence_t SetSessionID_sequence[] = {
482 { &hf_ulp_sessionId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
483 { &hf_ulp_setId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_SETId },
488 dissect_ulp_SetSessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
489 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
490 ett_ulp_SetSessionID, SetSessionID_sequence);
498 dissect_ulp_OCTET_STRING_SIZE_4(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
499 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
508 dissect_ulp_FQDN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
509 offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
516 static const value_string ulp_SLPAddress_vals[] = {
522 static const per_choice_t SLPAddress_choice[] = {
523 { 0, &hf_ulp_iPAddress , ASN1_EXTENSION_ROOT , dissect_ulp_IPAddress },
524 { 1, &hf_ulp_fQDN , ASN1_EXTENSION_ROOT , dissect_ulp_FQDN },
529 dissect_ulp_SLPAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
530 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
531 ett_ulp_SLPAddress, SLPAddress_choice,
538 static const per_sequence_t SlpSessionID_sequence[] = {
539 { &hf_ulp_sessionID1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_4 },
540 { &hf_ulp_slpId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_SLPAddress },
545 dissect_ulp_SlpSessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
546 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
547 ett_ulp_SlpSessionID, SlpSessionID_sequence);
553 static const per_sequence_t SessionID_sequence[] = {
554 { &hf_ulp_setSessionID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_SetSessionID },
555 { &hf_ulp_slpSessionID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_SlpSessionID },
560 dissect_ulp_SessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
561 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
562 ett_ulp_SessionID, SessionID_sequence);
568 static const value_string ulp_PosMethod_vals[] = {
569 { 0, "agpsSETassisted" },
570 { 1, "agpsSETbased" },
571 { 2, "agpsSETassistedpref" },
572 { 3, "agpsSETbasedpref" },
573 { 4, "autonomousGPS" },
584 dissect_ulp_PosMethod(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
585 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
586 10, NULL, TRUE, 0, NULL);
592 static const value_string ulp_NotificationType_vals[] = {
593 { 0, "noNotificationNoVerification" },
594 { 1, "notificationOnly" },
595 { 2, "notificationAndVerficationAllowedNA" },
596 { 3, "notificationAndVerficationDeniedNA" },
597 { 4, "privacyOverride" },
603 dissect_ulp_NotificationType(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
604 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
605 5, NULL, TRUE, 0, NULL);
611 static const value_string ulp_EncodingType_vals[] = {
620 dissect_ulp_EncodingType(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
621 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
622 3, NULL, TRUE, 0, NULL);
630 dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
631 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
632 1, maxReqLength, NULL);
638 static const value_string ulp_FormatIndicator_vals[] = {
639 { 0, "logicalName" },
640 { 1, "e-mailAddress" },
651 dissect_ulp_FormatIndicator(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
652 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
653 7, NULL, TRUE, 0, NULL);
661 dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
662 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
663 1, maxClientLength, NULL);
669 static const per_sequence_t Notification_sequence[] = {
670 { &hf_ulp_notificationType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_NotificationType },
671 { &hf_ulp_encodingType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_EncodingType },
672 { &hf_ulp_requestorId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength },
673 { &hf_ulp_requestorIdType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_FormatIndicator },
674 { &hf_ulp_clientName , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength },
675 { &hf_ulp_clientNameType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_FormatIndicator },
680 dissect_ulp_Notification(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
681 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
682 ett_ulp_Notification, Notification_sequence);
690 dissect_ulp_INTEGER_0_127(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
691 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
692 0U, 127U, NULL, FALSE);
700 dissect_ulp_INTEGER_0_7(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
701 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
702 0U, 7U, NULL, FALSE);
708 static const per_sequence_t QoP_sequence[] = {
709 { &hf_ulp_horacc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
710 { &hf_ulp_veracc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_127 },
711 { &hf_ulp_maxLocAge , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_65535 },
712 { &hf_ulp_delay , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_7 },
717 dissect_ulp_QoP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
718 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
719 ett_ulp_QoP, QoP_sequence);
725 static const value_string ulp_SLPMode_vals[] = {
733 dissect_ulp_SLPMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
734 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
735 2, NULL, FALSE, 0, NULL);
743 dissect_ulp_MAC(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
744 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
745 64, 64, FALSE, NULL);
753 dissect_ulp_KeyIdentity(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
754 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
755 128, 128, FALSE, NULL);
761 static const per_sequence_t SUPLINIT_sequence[] = {
762 { &hf_ulp_posMethod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
763 { &hf_ulp_notification , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Notification },
764 { &hf_ulp_sLPAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_SLPAddress },
765 { &hf_ulp_qoP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_QoP },
766 { &hf_ulp_sLPMode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_SLPMode },
767 { &hf_ulp_mAC , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_MAC },
768 { &hf_ulp_keyIdentity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_KeyIdentity },
773 dissect_ulp_SUPLINIT(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
774 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
775 ett_ulp_SUPLINIT, SUPLINIT_sequence);
783 dissect_ulp_BOOLEAN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
784 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
790 static const per_sequence_t PosTechnology_sequence[] = {
791 { &hf_ulp_agpsSETassisted , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
792 { &hf_ulp_agpsSETBased , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
793 { &hf_ulp_autonomousGPS , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
794 { &hf_ulp_aFLT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
795 { &hf_ulp_eCID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
796 { &hf_ulp_eOTD , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
797 { &hf_ulp_oTDOA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
802 dissect_ulp_PosTechnology(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
803 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
804 ett_ulp_PosTechnology, PosTechnology_sequence);
810 static const value_string ulp_PrefMethod_vals[] = {
811 { 0, "agpsSETassistedPreferred" },
812 { 1, "agpsSETBasedPreferred" },
813 { 2, "noPreference" },
819 dissect_ulp_PrefMethod(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
820 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
821 3, NULL, FALSE, 0, NULL);
827 static const per_sequence_t PosProtocol_sequence[] = {
828 { &hf_ulp_tia801 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
829 { &hf_ulp_rrlp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
830 { &hf_ulp_rrc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
835 dissect_ulp_PosProtocol(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
836 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
837 ett_ulp_PosProtocol, PosProtocol_sequence);
843 static const per_sequence_t SETCapabilities_sequence[] = {
844 { &hf_ulp_posTechnology , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PosTechnology },
845 { &hf_ulp_prefMethod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PrefMethod },
846 { &hf_ulp_posProtocol , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PosProtocol },
851 dissect_ulp_SETCapabilities(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
852 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
853 ett_ulp_SETCapabilities, SETCapabilities_sequence);
861 dissect_ulp_INTEGER_0_999(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
862 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
863 0U, 999U, NULL, FALSE);
871 dissect_ulp_INTEGER_0_1023(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
872 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
873 0U, 1023U, NULL, FALSE);
881 dissect_ulp_INTEGER_0_63(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
882 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
883 0U, 63U, NULL, FALSE);
889 static const per_sequence_t NMRelement_sequence[] = {
890 { &hf_ulp_aRFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
891 { &hf_ulp_bSIC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
892 { &hf_ulp_rxLev , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
897 dissect_ulp_NMRelement(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
898 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
899 ett_ulp_NMRelement, NMRelement_sequence);
905 static const per_sequence_t NMR_sequence_of[1] = {
906 { &hf_ulp_NMR_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_NMRelement },
910 dissect_ulp_NMR(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
911 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
912 ett_ulp_NMR, NMR_sequence_of,
919 static const per_sequence_t GsmCellInformation_sequence[] = {
920 { &hf_ulp_refMCC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
921 { &hf_ulp_refMNC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
922 { &hf_ulp_refLAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
923 { &hf_ulp_refCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
924 { &hf_ulp_nMR , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_NMR },
925 { &hf_ulp_tA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_255 },
930 dissect_ulp_GsmCellInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
931 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
932 ett_ulp_GsmCellInformation, GsmCellInformation_sequence);
940 dissect_ulp_INTEGER_0_268435455(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
941 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
942 0U, 268435455U, NULL, FALSE);
950 dissect_ulp_UARFCN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
951 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
952 0U, 16383U, NULL, FALSE);
958 static const per_sequence_t FrequencyInfoFDD_sequence[] = {
959 { &hf_ulp_uarfcn_UL , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_UARFCN },
960 { &hf_ulp_uarfcn_DL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_UARFCN },
965 dissect_ulp_FrequencyInfoFDD(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
966 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
967 ett_ulp_FrequencyInfoFDD, FrequencyInfoFDD_sequence);
973 static const per_sequence_t FrequencyInfoTDD_sequence[] = {
974 { &hf_ulp_uarfcn_Nt , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_UARFCN },
979 dissect_ulp_FrequencyInfoTDD(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
980 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
981 ett_ulp_FrequencyInfoTDD, FrequencyInfoTDD_sequence);
987 static const value_string ulp_T_modeSpecificInfo_vals[] = {
993 static const per_choice_t T_modeSpecificInfo_choice[] = {
994 { 0, &hf_ulp_fdd , ASN1_EXTENSION_ROOT , dissect_ulp_FrequencyInfoFDD },
995 { 1, &hf_ulp_tdd , ASN1_EXTENSION_ROOT , dissect_ulp_FrequencyInfoTDD },
1000 dissect_ulp_T_modeSpecificInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1001 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1002 ett_ulp_T_modeSpecificInfo, T_modeSpecificInfo_choice,
1009 static const per_sequence_t FrequencyInfo_sequence[] = {
1010 { &hf_ulp_modeSpecificInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_T_modeSpecificInfo },
1011 { NULL, 0, 0, NULL }
1015 dissect_ulp_FrequencyInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1016 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1017 ett_ulp_FrequencyInfo, FrequencyInfo_sequence);
1025 dissect_ulp_INTEGER_0_511(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1026 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1027 0U, 511U, NULL, FALSE);
1035 dissect_ulp_UTRA_CarrierRSSI(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1036 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1037 0U, 127U, NULL, FALSE);
1043 static const per_sequence_t PrimaryCPICH_Info_sequence[] = {
1044 { &hf_ulp_primaryScramblingCode, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_511 },
1045 { NULL, 0, 0, NULL }
1049 dissect_ulp_PrimaryCPICH_Info(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1050 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1051 ett_ulp_PrimaryCPICH_Info, PrimaryCPICH_Info_sequence);
1059 dissect_ulp_CPICH_Ec_N0(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1060 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1061 0U, 63U, NULL, FALSE);
1069 dissect_ulp_CPICH_RSCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1070 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1071 0U, 127U, NULL, FALSE);
1079 dissect_ulp_Pathloss(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1080 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1081 46U, 173U, NULL, FALSE);
1087 static const per_sequence_t T_fdd_sequence[] = {
1088 { &hf_ulp_primaryCPICH_Info, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
1089 { &hf_ulp_cpich_Ec_N0 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_CPICH_Ec_N0 },
1090 { &hf_ulp_cpich_RSCP , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_CPICH_RSCP },
1091 { &hf_ulp_pathloss , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_Pathloss },
1092 { NULL, 0, 0, NULL }
1096 dissect_ulp_T_fdd(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1097 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1098 ett_ulp_T_fdd, T_fdd_sequence);
1106 dissect_ulp_CellParametersID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1107 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1108 0U, 127U, NULL, FALSE);
1116 dissect_ulp_TGSN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1117 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1118 0U, 14U, NULL, FALSE);
1126 dissect_ulp_PrimaryCCPCH_RSCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1127 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1128 0U, 127U, NULL, FALSE);
1136 dissect_ulp_TimeslotISCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1137 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1138 0U, 127U, NULL, FALSE);
1144 static const per_sequence_t TimeslotISCP_List_sequence_of[1] = {
1145 { &hf_ulp_TimeslotISCP_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_TimeslotISCP },
1149 dissect_ulp_TimeslotISCP_List(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1150 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1151 ett_ulp_TimeslotISCP_List, TimeslotISCP_List_sequence_of,
1158 static const per_sequence_t T_tdd_sequence[] = {
1159 { &hf_ulp_cellParametersID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
1160 { &hf_ulp_proposedTGSN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_TGSN },
1161 { &hf_ulp_primaryCCPCH_RSCP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_PrimaryCCPCH_RSCP },
1162 { &hf_ulp_pathloss , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_Pathloss },
1163 { &hf_ulp_timeslotISCP_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_TimeslotISCP_List },
1164 { NULL, 0, 0, NULL }
1168 dissect_ulp_T_tdd(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1169 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1170 ett_ulp_T_tdd, T_tdd_sequence);
1176 static const value_string ulp_T_modeSpecificInfo1_vals[] = {
1182 static const per_choice_t T_modeSpecificInfo1_choice[] = {
1183 { 0, &hf_ulp_fdd1 , ASN1_NO_EXTENSIONS , dissect_ulp_T_fdd },
1184 { 1, &hf_ulp_tdd1 , ASN1_NO_EXTENSIONS , dissect_ulp_T_tdd },
1185 { 0, NULL, 0, NULL }
1189 dissect_ulp_T_modeSpecificInfo1(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1190 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1191 ett_ulp_T_modeSpecificInfo1, T_modeSpecificInfo1_choice,
1198 static const per_sequence_t CellMeasuredResults_sequence[] = {
1199 { &hf_ulp_cellIdentity , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_268435455 },
1200 { &hf_ulp_modeSpecificInfo1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_T_modeSpecificInfo1 },
1201 { NULL, 0, 0, NULL }
1205 dissect_ulp_CellMeasuredResults(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1206 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1207 ett_ulp_CellMeasuredResults, CellMeasuredResults_sequence);
1213 static const per_sequence_t CellMeasuredResultsList_sequence_of[1] = {
1214 { &hf_ulp_CellMeasuredResultsList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_CellMeasuredResults },
1218 dissect_ulp_CellMeasuredResultsList(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1219 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1220 ett_ulp_CellMeasuredResultsList, CellMeasuredResultsList_sequence_of,
1227 static const per_sequence_t MeasuredResults_sequence[] = {
1228 { &hf_ulp_frequencyInfo , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_FrequencyInfo },
1229 { &hf_ulp_utra_CarrierRSSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_UTRA_CarrierRSSI },
1230 { &hf_ulp_cellMeasuredResultsList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ulp_CellMeasuredResultsList },
1231 { NULL, 0, 0, NULL }
1235 dissect_ulp_MeasuredResults(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1236 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1237 ett_ulp_MeasuredResults, MeasuredResults_sequence);
1243 static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
1244 { &hf_ulp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_MeasuredResults },
1248 dissect_ulp_MeasuredResultsList(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1249 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1250 ett_ulp_MeasuredResultsList, MeasuredResultsList_sequence_of,
1257 static const per_sequence_t WcdmaCellInformation_sequence[] = {
1258 { &hf_ulp_refMCC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
1259 { &hf_ulp_refMNC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
1260 { &hf_ulp_refUC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_268435455 },
1261 { &hf_ulp_frequencyInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_FrequencyInfo },
1262 { &hf_ulp_primaryScramblingCode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_511 },
1263 { &hf_ulp_measuredResultsList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_MeasuredResultsList },
1264 { NULL, 0, 0, NULL }
1268 dissect_ulp_WcdmaCellInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1269 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1270 ett_ulp_WcdmaCellInformation, WcdmaCellInformation_sequence);
1278 dissect_ulp_INTEGER_0_32767(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1279 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1280 0U, 32767U, NULL, FALSE);
1288 dissect_ulp_INTEGER_0_4194303(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1289 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1290 0U, 4194303U, NULL, FALSE);
1298 dissect_ulp_INTEGER_0_8388607(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1299 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1300 0U, 8388607U, NULL, FALSE);
1306 static const per_sequence_t CdmaCellInformation_sequence[] = {
1307 { &hf_ulp_refNID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
1308 { &hf_ulp_refSID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
1309 { &hf_ulp_refBASEID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
1310 { &hf_ulp_refBASELAT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
1311 { &hf_ulp_reBASELONG , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
1312 { &hf_ulp_refREFPN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_511 },
1313 { &hf_ulp_refWeekNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
1314 { &hf_ulp_refSeconds , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
1315 { NULL, 0, 0, NULL }
1319 dissect_ulp_CdmaCellInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1320 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1321 ett_ulp_CdmaCellInformation, CdmaCellInformation_sequence);
1327 static const value_string ulp_CellInfo_vals[] = {
1334 static const per_choice_t CellInfo_choice[] = {
1335 { 0, &hf_ulp_gsmCell , ASN1_EXTENSION_ROOT , dissect_ulp_GsmCellInformation },
1336 { 1, &hf_ulp_wcdmaCell , ASN1_EXTENSION_ROOT , dissect_ulp_WcdmaCellInformation },
1337 { 2, &hf_ulp_cdmaCell , ASN1_EXTENSION_ROOT , dissect_ulp_CdmaCellInformation },
1338 { 0, NULL, 0, NULL }
1342 dissect_ulp_CellInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1343 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1344 ett_ulp_CellInfo, CellInfo_choice,
1351 static const value_string ulp_Status_vals[] = {
1360 dissect_ulp_Status(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1361 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1362 3, NULL, TRUE, 0, NULL);
1368 static const per_sequence_t LocationId_sequence[] = {
1369 { &hf_ulp_cellInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_CellInfo },
1370 { &hf_ulp_status , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_Status },
1371 { NULL, 0, 0, NULL }
1375 dissect_ulp_LocationId(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1376 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1377 ett_ulp_LocationId, LocationId_sequence);
1383 static const per_sequence_t SUPLSTART_sequence[] = {
1384 { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
1385 { &hf_ulp_locationId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
1386 { &hf_ulp_qoP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_QoP },
1387 { NULL, 0, 0, NULL }
1391 dissect_ulp_SUPLSTART(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1392 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1393 ett_ulp_SUPLSTART, SUPLSTART_sequence);
1401 dissect_ulp_BIT_STRING_SIZE_128(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1402 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1403 128, 128, FALSE, NULL);
1411 dissect_ulp_BIT_STRING_SIZE_256(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1412 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1413 256, 256, FALSE, NULL);
1419 static const value_string ulp_SETAuthKey_vals[] = {
1425 static const per_choice_t SETAuthKey_choice[] = {
1426 { 0, &hf_ulp_shortKey , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_128 },
1427 { 1, &hf_ulp_longKey , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_256 },
1428 { 0, NULL, 0, NULL }
1432 dissect_ulp_SETAuthKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1433 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1434 ett_ulp_SETAuthKey, SETAuthKey_choice,
1443 dissect_ulp_KeyIdentity4(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1444 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1445 128, 128, FALSE, NULL);
1451 static const per_sequence_t SUPLRESPONSE_sequence[] = {
1452 { &hf_ulp_posMethod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
1453 { &hf_ulp_sLPAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_SLPAddress },
1454 { &hf_ulp_sETAuthKey , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_SETAuthKey },
1455 { &hf_ulp_keyIdentity4 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_KeyIdentity4 },
1456 { NULL, 0, 0, NULL }
1460 dissect_ulp_SUPLRESPONSE(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1461 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1462 ett_ulp_SUPLRESPONSE, SUPLRESPONSE_sequence);
1470 dissect_ulp_INTEGER_0_167(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1471 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1472 0U, 167U, NULL, FALSE);
1480 dissect_ulp_INTEGER_0_31(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1481 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1482 0U, 31U, NULL, FALSE);
1490 dissect_ulp_INTEGER_0_10(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1491 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1492 0U, 10U, NULL, FALSE);
1498 static const per_sequence_t SatelliteInfoElement_sequence[] = {
1499 { &hf_ulp_satId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
1500 { &hf_ulp_iODE , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1501 { NULL, 0, 0, NULL }
1505 dissect_ulp_SatelliteInfoElement(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1506 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1507 ett_ulp_SatelliteInfoElement, SatelliteInfoElement_sequence);
1513 static const per_sequence_t SatelliteInfo_sequence_of[1] = {
1514 { &hf_ulp_SatelliteInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_SatelliteInfoElement },
1518 dissect_ulp_SatelliteInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1519 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1520 ett_ulp_SatelliteInfo, SatelliteInfo_sequence_of,
1527 static const per_sequence_t NavigationModel_sequence[] = {
1528 { &hf_ulp_gpsWeek , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
1529 { &hf_ulp_gpsToe , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
1530 { &hf_ulp_nSAT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_31 },
1531 { &hf_ulp_toeLimit , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_10 },
1532 { &hf_ulp_satInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_SatelliteInfo },
1533 { NULL, 0, 0, NULL }
1537 dissect_ulp_NavigationModel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1538 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1539 ett_ulp_NavigationModel, NavigationModel_sequence);
1545 static const per_sequence_t RequestedAssistData_sequence[] = {
1546 { &hf_ulp_almanacRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1547 { &hf_ulp_utcModelRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1548 { &hf_ulp_ionosphericModelRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1549 { &hf_ulp_dgpsCorrectionsRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1550 { &hf_ulp_referenceLocationRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1551 { &hf_ulp_referenceTimeRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1552 { &hf_ulp_acquisitionAssistanceRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1553 { &hf_ulp_realTimeIntegrityRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1554 { &hf_ulp_navigationModelRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1555 { &hf_ulp_navigationModelData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_NavigationModel },
1556 { NULL, 0, 0, NULL }
1560 dissect_ulp_RequestedAssistData(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1561 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1562 ett_ulp_RequestedAssistData, RequestedAssistData_sequence);
1570 dissect_ulp_UTCTime(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1571 offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
1572 NO_BOUND, NO_BOUND);
1578 static const value_string ulp_T_latitudeSign_vals[] = {
1586 dissect_ulp_T_latitudeSign(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1587 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1588 2, NULL, FALSE, 0, NULL);
1596 dissect_ulp_INTEGER_M8388608_8388607(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1597 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1598 -8388608, 8388607U, NULL, FALSE);
1606 dissect_ulp_INTEGER_0_180(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1607 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1608 0U, 180U, NULL, FALSE);
1614 static const per_sequence_t T_uncertainty_sequence[] = {
1615 { &hf_ulp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
1616 { &hf_ulp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
1617 { &hf_ulp_orientationMajorAxis, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_180 },
1618 { NULL, 0, 0, NULL }
1622 dissect_ulp_T_uncertainty(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1623 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1624 ett_ulp_T_uncertainty, T_uncertainty_sequence);
1632 dissect_ulp_INTEGER_0_100(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1633 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1634 0U, 100U, NULL, FALSE);
1640 static const value_string ulp_T_altitudeDirection_vals[] = {
1648 dissect_ulp_T_altitudeDirection(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1649 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1650 2, NULL, FALSE, 0, NULL);
1656 static const per_sequence_t AltitudeInfo_sequence[] = {
1657 { &hf_ulp_altitudeDirection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_T_altitudeDirection },
1658 { &hf_ulp_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
1659 { &hf_ulp_altUncertainty , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
1660 { NULL, 0, 0, NULL }
1664 dissect_ulp_AltitudeInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1665 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1666 ett_ulp_AltitudeInfo, AltitudeInfo_sequence);
1672 static const per_sequence_t PositionEstimate_sequence[] = {
1673 { &hf_ulp_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign },
1674 { &hf_ulp_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
1675 { &hf_ulp_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
1676 { &hf_ulp_uncertainty , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_T_uncertainty },
1677 { &hf_ulp_confidence , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_INTEGER_0_100 },
1678 { &hf_ulp_altitudeInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_AltitudeInfo },
1679 { NULL, 0, 0, NULL }
1683 dissect_ulp_PositionEstimate(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1684 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1685 ett_ulp_PositionEstimate, PositionEstimate_sequence);
1693 dissect_ulp_BIT_STRING_SIZE_9(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1694 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1703 dissect_ulp_BIT_STRING_SIZE_16(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1704 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1705 16, 16, FALSE, NULL);
1711 static const per_sequence_t Horvel_sequence[] = {
1712 { &hf_ulp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
1713 { &hf_ulp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
1714 { NULL, 0, 0, NULL }
1718 dissect_ulp_Horvel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1719 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1720 ett_ulp_Horvel, Horvel_sequence);
1728 dissect_ulp_BIT_STRING_SIZE_1(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1729 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1738 dissect_ulp_BIT_STRING_SIZE_8(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1739 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1746 static const per_sequence_t Horandvervel_sequence[] = {
1747 { &hf_ulp_verdirect , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_1 },
1748 { &hf_ulp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
1749 { &hf_ulp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
1750 { &hf_ulp_verspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
1751 { NULL, 0, 0, NULL }
1755 dissect_ulp_Horandvervel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1756 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1757 ett_ulp_Horandvervel, Horandvervel_sequence);
1763 static const per_sequence_t Horveluncert_sequence[] = {
1764 { &hf_ulp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
1765 { &hf_ulp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
1766 { &hf_ulp_uncertspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
1767 { NULL, 0, 0, NULL }
1771 dissect_ulp_Horveluncert(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1772 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1773 ett_ulp_Horveluncert, Horveluncert_sequence);
1779 static const per_sequence_t Horandveruncert_sequence[] = {
1780 { &hf_ulp_verdirect , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_1 },
1781 { &hf_ulp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_9 },
1782 { &hf_ulp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_16 },
1783 { &hf_ulp_verspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
1784 { &hf_ulp_horuncertspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
1785 { &hf_ulp_veruncertspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
1786 { NULL, 0, 0, NULL }
1790 dissect_ulp_Horandveruncert(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1791 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1792 ett_ulp_Horandveruncert, Horandveruncert_sequence);
1798 static const value_string ulp_Velocity_vals[] = {
1800 { 1, "horandvervel" },
1801 { 2, "horveluncert" },
1802 { 3, "horandveruncert" },
1806 static const per_choice_t Velocity_choice[] = {
1807 { 0, &hf_ulp_horvel , ASN1_EXTENSION_ROOT , dissect_ulp_Horvel },
1808 { 1, &hf_ulp_horandvervel , ASN1_EXTENSION_ROOT , dissect_ulp_Horandvervel },
1809 { 2, &hf_ulp_horveluncert , ASN1_EXTENSION_ROOT , dissect_ulp_Horveluncert },
1810 { 3, &hf_ulp_horandveruncert , ASN1_EXTENSION_ROOT , dissect_ulp_Horandveruncert },
1811 { 0, NULL, 0, NULL }
1815 dissect_ulp_Velocity(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1816 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1817 ett_ulp_Velocity, Velocity_choice,
1824 static const per_sequence_t Position_sequence[] = {
1825 { &hf_ulp_timestamp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_UTCTime },
1826 { &hf_ulp_positionEstimate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PositionEstimate },
1827 { &hf_ulp_velocity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Velocity },
1828 { NULL, 0, 0, NULL }
1832 dissect_ulp_Position(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1833 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1834 ett_ulp_Position, Position_sequence);
1842 dissect_ulp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1843 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1852 dissect_ulp_RRLPPayload(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1856 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1857 1, 8192, &rrlp_tvb);
1861 call_dissector(rrlp_handle, rrlp_tvb, actx->pinfo, tree);
1869 static const value_string ulp_PosPayLoad_vals[] = {
1870 { 0, "tia801payload" },
1871 { 1, "rrcPayload" },
1872 { 2, "rrlpPayload" },
1876 static const per_choice_t PosPayLoad_choice[] = {
1877 { 0, &hf_ulp_tia801payload , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
1878 { 1, &hf_ulp_rrcPayload , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
1879 { 2, &hf_ulp_rrlpPayload , ASN1_EXTENSION_ROOT , dissect_ulp_RRLPPayload },
1880 { 0, NULL, 0, NULL }
1884 dissect_ulp_PosPayLoad(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1885 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1886 ett_ulp_PosPayLoad, PosPayLoad_choice,
1893 static const per_sequence_t SUPLPOS_sequence[] = {
1894 { &hf_ulp_posPayLoad , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_PosPayLoad },
1895 { &hf_ulp_velocity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Velocity },
1896 { NULL, 0, 0, NULL }
1900 dissect_ulp_SUPLPOS(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1901 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1902 ett_ulp_SUPLPOS, SUPLPOS_sequence);
1910 dissect_ulp_Ver(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1911 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1912 64, 64, FALSE, NULL);
1918 static const per_sequence_t SUPLPOSINIT_sequence[] = {
1919 { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
1920 { &hf_ulp_requestedAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_RequestedAssistData },
1921 { &hf_ulp_locationId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
1922 { &hf_ulp_position , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Position },
1923 { &hf_ulp_sUPLPOS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_SUPLPOS },
1924 { &hf_ulp_ver , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Ver },
1925 { NULL, 0, 0, NULL }
1929 dissect_ulp_SUPLPOSINIT(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1930 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1931 ett_ulp_SUPLPOSINIT, SUPLPOSINIT_sequence);
1937 static const value_string ulp_StatusCode_vals[] = {
1938 { 0, "unspecified" },
1939 { 1, "systemFailure" },
1940 { 2, "unexpectedMessage" },
1941 { 3, "protocolError" },
1942 { 4, "dataMissing" },
1943 { 5, "unexpectedDataValue" },
1944 { 6, "posMethodFailure" },
1945 { 7, "posMethodMismatch" },
1946 { 8, "posProtocolMismatch" },
1947 { 9, "targetSETnotReachable" },
1948 { 10, "versionNotSupported" },
1949 { 11, "resourceShortage" },
1950 { 12, "invalidSessionId" },
1951 { 13, "nonProxyModeNotSupported" },
1952 { 14, "proxyModeNotSupported" },
1953 { 15, "positioningNotPermitted" },
1954 { 16, "authNetFailure" },
1955 { 17, "authSuplinitFailure" },
1956 { 100, "consentDeniedByUser" },
1957 { 101, "consentGrantedByUser" },
1961 static guint32 StatusCode_value_map[20+0] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 100, 101};
1964 dissect_ulp_StatusCode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1965 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1966 20, NULL, TRUE, 0, StatusCode_value_map);
1972 static const per_sequence_t SUPLEND_sequence[] = {
1973 { &hf_ulp_position , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Position },
1974 { &hf_ulp_statusCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_StatusCode },
1975 { &hf_ulp_ver , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_Ver },
1976 { NULL, 0, 0, NULL }
1980 dissect_ulp_SUPLEND(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1981 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1982 ett_ulp_SUPLEND, SUPLEND_sequence);
1990 dissect_ulp_SETNonce(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1991 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1992 128, 128, FALSE, NULL);
2000 dissect_ulp_KeyIdentity2(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2001 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2002 128, 128, FALSE, NULL);
2008 static const per_sequence_t SUPLAUTHREQ_sequence[] = {
2009 { &hf_ulp_sETNonce , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_SETNonce },
2010 { &hf_ulp_keyIdentity2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ulp_KeyIdentity2 },
2011 { NULL, 0, 0, NULL }
2015 dissect_ulp_SUPLAUTHREQ(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2016 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2017 ett_ulp_SUPLAUTHREQ, SUPLAUTHREQ_sequence);
2023 static const value_string ulp_SPCAuthKey_vals[] = {
2029 static const per_choice_t SPCAuthKey_choice[] = {
2030 { 0, &hf_ulp_shortKey , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_128 },
2031 { 1, &hf_ulp_longKey , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_256 },
2032 { 0, NULL, 0, NULL }
2036 dissect_ulp_SPCAuthKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2037 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2038 ett_ulp_SPCAuthKey, SPCAuthKey_choice,
2047 dissect_ulp_KeyIdentity3(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2048 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2049 128, 128, FALSE, NULL);
2055 static const per_sequence_t SUPLAUTHRESP_sequence[] = {
2056 { &hf_ulp_sPCAuthKey , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_SPCAuthKey },
2057 { &hf_ulp_keyIdentity3 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_KeyIdentity3 },
2058 { &hf_ulp_statusCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ulp_StatusCode },
2059 { NULL, 0, 0, NULL }
2063 dissect_ulp_SUPLAUTHRESP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2064 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2065 ett_ulp_SUPLAUTHRESP, SUPLAUTHRESP_sequence);
2071 static const value_string ulp_UlpMessage_vals[] = {
2072 { 0, "msSUPLINIT" },
2073 { 1, "msSUPLSTART" },
2074 { 2, "msSUPLRESPONSE" },
2075 { 3, "msSUPLPOSINIT" },
2078 { 6, "msSUPLAUTHREQ" },
2079 { 7, "msSUPLAUTHRESP" },
2083 static const per_choice_t UlpMessage_choice[] = {
2084 { 0, &hf_ulp_msSUPLINIT , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLINIT },
2085 { 1, &hf_ulp_msSUPLSTART , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLSTART },
2086 { 2, &hf_ulp_msSUPLRESPONSE , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLRESPONSE },
2087 { 3, &hf_ulp_msSUPLPOSINIT , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLPOSINIT },
2088 { 4, &hf_ulp_msSUPLPOS , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLPOS },
2089 { 5, &hf_ulp_msSUPLEND , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLEND },
2090 { 6, &hf_ulp_msSUPLAUTHREQ , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLAUTHREQ },
2091 { 7, &hf_ulp_msSUPLAUTHRESP , ASN1_EXTENSION_ROOT , dissect_ulp_SUPLAUTHRESP },
2092 { 0, NULL, 0, NULL }
2096 dissect_ulp_UlpMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2101 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2102 ett_ulp_UlpMessage, UlpMessage_choice,
2106 if (check_col(actx->pinfo->cinfo, COL_INFO))
2108 col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
2116 static const per_sequence_t ULP_PDU_sequence[] = {
2117 { &hf_ulp_length , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2118 { &hf_ulp_version , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_Version },
2119 { &hf_ulp_sessionID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
2120 { &hf_ulp_message , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ulp_UlpMessage },
2121 { NULL, 0, 0, NULL }
2125 dissect_ulp_ULP_PDU(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2128 proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, FALSE);
2130 if (check_col(actx->pinfo->cinfo, COL_PROTOCOL))
2131 col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
2132 if (check_col(actx->pinfo->cinfo, COL_INFO))
2133 col_clear(actx->pinfo->cinfo, COL_INFO);
2135 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2136 ett_ulp_ULP_PDU, ULP_PDU_sequence);
2146 static void dissect_ULP_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2148 asn_ctx_init(&asn_ctx, ASN_ENC_PER, FALSE, pinfo);
2149 dissect_ulp_ULP_PDU(tvb, 0, &asn_ctx, tree, hf_ulp_ULP_PDU_PDU);
2153 /*--- End of included file: packet-ulp-fn.c ---*/
2154 #line 80 "packet-ulp-template.c"
2158 get_ulp_pdu_len(tvbuff_t *tvb, int offset)
2160 /* PDU length = Message length */
2161 return tvb_get_ntohs(tvb,offset);
2165 dissect_ulp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2167 tcp_dissect_pdus(tvb, pinfo, tree, ulp_desegment, ULP_HEADER_SIZE,
2168 get_ulp_pdu_len, dissect_ULP_PDU_PDU);
2170 /*--- proto_reg_handoff_ulp ---------------------------------------*/
2172 proto_reg_handoff_ulp(void)
2175 ulp_handle = create_dissector_handle(dissect_ulp_tcp, proto_ulp);
2177 dissector_add("tcp.port", gbl_ulp_port, ulp_handle);
2179 /* application/oma-supl-ulp */
2180 dissector_add_string("media_type","application/oma-supl-ulp", ulp_handle);
2182 rrlp_handle = find_dissector("rrlp");
2187 /*--- proto_register_ulp -------------------------------------------*/
2188 void proto_register_ulp(void) {
2190 /* List of fields */
2191 static hf_register_info hf[] = {
2194 /*--- Included file: packet-ulp-hfarr.c ---*/
2195 #line 1 "packet-ulp-hfarr.c"
2196 { &hf_ulp_ULP_PDU_PDU,
2197 { "ULP-PDU", "ulp.ULP_PDU",
2198 FT_NONE, BASE_NONE, NULL, 0,
2199 "ULP-PDU", HFILL }},
2201 { "length", "ulp.length",
2202 FT_UINT32, BASE_DEC, NULL, 0,
2203 "ULP-PDU/length", HFILL }},
2205 { "version", "ulp.version",
2206 FT_NONE, BASE_NONE, NULL, 0,
2207 "ULP-PDU/version", HFILL }},
2208 { &hf_ulp_sessionID,
2209 { "sessionID", "ulp.sessionID",
2210 FT_NONE, BASE_NONE, NULL, 0,
2211 "ULP-PDU/sessionID", HFILL }},
2213 { "message", "ulp.message",
2214 FT_UINT32, BASE_DEC, VALS(ulp_UlpMessage_vals), 0,
2215 "ULP-PDU/message", HFILL }},
2216 { &hf_ulp_msSUPLINIT,
2217 { "msSUPLINIT", "ulp.msSUPLINIT",
2218 FT_NONE, BASE_NONE, NULL, 0,
2219 "UlpMessage/msSUPLINIT", HFILL }},
2220 { &hf_ulp_msSUPLSTART,
2221 { "msSUPLSTART", "ulp.msSUPLSTART",
2222 FT_NONE, BASE_NONE, NULL, 0,
2223 "UlpMessage/msSUPLSTART", HFILL }},
2224 { &hf_ulp_msSUPLRESPONSE,
2225 { "msSUPLRESPONSE", "ulp.msSUPLRESPONSE",
2226 FT_NONE, BASE_NONE, NULL, 0,
2227 "UlpMessage/msSUPLRESPONSE", HFILL }},
2228 { &hf_ulp_msSUPLPOSINIT,
2229 { "msSUPLPOSINIT", "ulp.msSUPLPOSINIT",
2230 FT_NONE, BASE_NONE, NULL, 0,
2231 "UlpMessage/msSUPLPOSINIT", HFILL }},
2232 { &hf_ulp_msSUPLPOS,
2233 { "msSUPLPOS", "ulp.msSUPLPOS",
2234 FT_NONE, BASE_NONE, NULL, 0,
2235 "UlpMessage/msSUPLPOS", HFILL }},
2236 { &hf_ulp_msSUPLEND,
2237 { "msSUPLEND", "ulp.msSUPLEND",
2238 FT_NONE, BASE_NONE, NULL, 0,
2239 "UlpMessage/msSUPLEND", HFILL }},
2240 { &hf_ulp_msSUPLAUTHREQ,
2241 { "msSUPLAUTHREQ", "ulp.msSUPLAUTHREQ",
2242 FT_NONE, BASE_NONE, NULL, 0,
2243 "UlpMessage/msSUPLAUTHREQ", HFILL }},
2244 { &hf_ulp_msSUPLAUTHRESP,
2245 { "msSUPLAUTHRESP", "ulp.msSUPLAUTHRESP",
2246 FT_NONE, BASE_NONE, NULL, 0,
2247 "UlpMessage/msSUPLAUTHRESP", HFILL }},
2250 FT_UINT32, BASE_DEC, NULL, 0,
2251 "Version/maj", HFILL }},
2254 FT_UINT32, BASE_DEC, NULL, 0,
2255 "Version/min", HFILL }},
2257 { "servind", "ulp.servind",
2258 FT_UINT32, BASE_DEC, NULL, 0,
2259 "Version/servind", HFILL }},
2260 { &hf_ulp_setSessionID,
2261 { "setSessionID", "ulp.setSessionID",
2262 FT_NONE, BASE_NONE, NULL, 0,
2263 "SessionID/setSessionID", HFILL }},
2264 { &hf_ulp_slpSessionID,
2265 { "slpSessionID", "ulp.slpSessionID",
2266 FT_NONE, BASE_NONE, NULL, 0,
2267 "SessionID/slpSessionID", HFILL }},
2268 { &hf_ulp_sessionId,
2269 { "sessionId", "ulp.sessionId",
2270 FT_UINT32, BASE_DEC, NULL, 0,
2271 "SetSessionID/sessionId", HFILL }},
2273 { "setId", "ulp.setId",
2274 FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
2275 "SetSessionID/setId", HFILL }},
2277 { "msisdn", "ulp.msisdn",
2278 FT_BYTES, BASE_HEX, NULL, 0,
2279 "SETId/msisdn", HFILL }},
2282 FT_BYTES, BASE_HEX, NULL, 0,
2283 "SETId/mdn", HFILL }},
2286 FT_BYTES, BASE_HEX, NULL, 0,
2287 "SETId/min", HFILL }},
2289 { "imsi", "ulp.imsi",
2290 FT_BYTES, BASE_HEX, NULL, 0,
2291 "SETId/imsi", HFILL }},
2294 FT_STRING, BASE_NONE, NULL, 0,
2295 "SETId/nai", HFILL }},
2296 { &hf_ulp_iPAddress,
2297 { "iPAddress", "ulp.iPAddress",
2298 FT_UINT32, BASE_DEC, VALS(ulp_IPAddress_vals), 0,
2300 { &hf_ulp_sessionID1,
2301 { "sessionID", "ulp.sessionID",
2302 FT_BYTES, BASE_HEX, NULL, 0,
2303 "SlpSessionID/sessionID", HFILL }},
2305 { "slpId", "ulp.slpId",
2306 FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
2307 "SlpSessionID/slpId", HFILL }},
2308 { &hf_ulp_ipv4Address,
2309 { "ipv4Address", "ulp.ipv4Address",
2310 FT_BYTES, BASE_HEX, NULL, 0,
2311 "IPAddress/ipv4Address", HFILL }},
2312 { &hf_ulp_ipv6Address,
2313 { "ipv6Address", "ulp.ipv6Address",
2314 FT_BYTES, BASE_HEX, NULL, 0,
2315 "IPAddress/ipv6Address", HFILL }},
2317 { "fQDN", "ulp.fQDN",
2318 FT_STRING, BASE_NONE, NULL, 0,
2319 "SLPAddress/fQDN", HFILL }},
2321 { "cellInfo", "ulp.cellInfo",
2322 FT_UINT32, BASE_DEC, VALS(ulp_CellInfo_vals), 0,
2323 "LocationId/cellInfo", HFILL }},
2325 { "status", "ulp.status",
2326 FT_UINT32, BASE_DEC, VALS(ulp_Status_vals), 0,
2327 "LocationId/status", HFILL }},
2329 { "gsmCell", "ulp.gsmCell",
2330 FT_NONE, BASE_NONE, NULL, 0,
2331 "CellInfo/gsmCell", HFILL }},
2332 { &hf_ulp_wcdmaCell,
2333 { "wcdmaCell", "ulp.wcdmaCell",
2334 FT_NONE, BASE_NONE, NULL, 0,
2335 "CellInfo/wcdmaCell", HFILL }},
2337 { "cdmaCell", "ulp.cdmaCell",
2338 FT_NONE, BASE_NONE, NULL, 0,
2339 "CellInfo/cdmaCell", HFILL }},
2340 { &hf_ulp_timestamp,
2341 { "timestamp", "ulp.timestamp",
2342 FT_STRING, BASE_NONE, NULL, 0,
2343 "Position/timestamp", HFILL }},
2344 { &hf_ulp_positionEstimate,
2345 { "positionEstimate", "ulp.positionEstimate",
2346 FT_NONE, BASE_NONE, NULL, 0,
2347 "Position/positionEstimate", HFILL }},
2349 { "velocity", "ulp.velocity",
2350 FT_UINT32, BASE_DEC, VALS(ulp_Velocity_vals), 0,
2352 { &hf_ulp_latitudeSign,
2353 { "latitudeSign", "ulp.latitudeSign",
2354 FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_vals), 0,
2355 "PositionEstimate/latitudeSign", HFILL }},
2357 { "latitude", "ulp.latitude",
2358 FT_UINT32, BASE_DEC, NULL, 0,
2359 "PositionEstimate/latitude", HFILL }},
2360 { &hf_ulp_longitude,
2361 { "longitude", "ulp.longitude",
2362 FT_INT32, BASE_DEC, NULL, 0,
2363 "PositionEstimate/longitude", HFILL }},
2364 { &hf_ulp_uncertainty,
2365 { "uncertainty", "ulp.uncertainty",
2366 FT_NONE, BASE_NONE, NULL, 0,
2367 "PositionEstimate/uncertainty", HFILL }},
2368 { &hf_ulp_uncertaintySemiMajor,
2369 { "uncertaintySemiMajor", "ulp.uncertaintySemiMajor",
2370 FT_UINT32, BASE_DEC, NULL, 0,
2371 "PositionEstimate/uncertainty/uncertaintySemiMajor", HFILL }},
2372 { &hf_ulp_uncertaintySemiMinor,
2373 { "uncertaintySemiMinor", "ulp.uncertaintySemiMinor",
2374 FT_UINT32, BASE_DEC, NULL, 0,
2375 "PositionEstimate/uncertainty/uncertaintySemiMinor", HFILL }},
2376 { &hf_ulp_orientationMajorAxis,
2377 { "orientationMajorAxis", "ulp.orientationMajorAxis",
2378 FT_UINT32, BASE_DEC, NULL, 0,
2379 "PositionEstimate/uncertainty/orientationMajorAxis", HFILL }},
2380 { &hf_ulp_confidence,
2381 { "confidence", "ulp.confidence",
2382 FT_UINT32, BASE_DEC, NULL, 0,
2383 "PositionEstimate/confidence", HFILL }},
2384 { &hf_ulp_altitudeInfo,
2385 { "altitudeInfo", "ulp.altitudeInfo",
2386 FT_NONE, BASE_NONE, NULL, 0,
2387 "PositionEstimate/altitudeInfo", HFILL }},
2388 { &hf_ulp_altitudeDirection,
2389 { "altitudeDirection", "ulp.altitudeDirection",
2390 FT_UINT32, BASE_DEC, VALS(ulp_T_altitudeDirection_vals), 0,
2391 "AltitudeInfo/altitudeDirection", HFILL }},
2393 { "altitude", "ulp.altitude",
2394 FT_UINT32, BASE_DEC, NULL, 0,
2395 "AltitudeInfo/altitude", HFILL }},
2396 { &hf_ulp_altUncertainty,
2397 { "altUncertainty", "ulp.altUncertainty",
2398 FT_UINT32, BASE_DEC, NULL, 0,
2399 "AltitudeInfo/altUncertainty", HFILL }},
2401 { "refNID", "ulp.refNID",
2402 FT_UINT32, BASE_DEC, NULL, 0,
2403 "CdmaCellInformation/refNID", HFILL }},
2405 { "refSID", "ulp.refSID",
2406 FT_UINT32, BASE_DEC, NULL, 0,
2407 "CdmaCellInformation/refSID", HFILL }},
2408 { &hf_ulp_refBASEID,
2409 { "refBASEID", "ulp.refBASEID",
2410 FT_UINT32, BASE_DEC, NULL, 0,
2411 "CdmaCellInformation/refBASEID", HFILL }},
2412 { &hf_ulp_refBASELAT,
2413 { "refBASELAT", "ulp.refBASELAT",
2414 FT_UINT32, BASE_DEC, NULL, 0,
2415 "CdmaCellInformation/refBASELAT", HFILL }},
2416 { &hf_ulp_reBASELONG,
2417 { "reBASELONG", "ulp.reBASELONG",
2418 FT_UINT32, BASE_DEC, NULL, 0,
2419 "CdmaCellInformation/reBASELONG", HFILL }},
2421 { "refREFPN", "ulp.refREFPN",
2422 FT_UINT32, BASE_DEC, NULL, 0,
2423 "CdmaCellInformation/refREFPN", HFILL }},
2424 { &hf_ulp_refWeekNumber,
2425 { "refWeekNumber", "ulp.refWeekNumber",
2426 FT_UINT32, BASE_DEC, NULL, 0,
2427 "CdmaCellInformation/refWeekNumber", HFILL }},
2428 { &hf_ulp_refSeconds,
2429 { "refSeconds", "ulp.refSeconds",
2430 FT_UINT32, BASE_DEC, NULL, 0,
2431 "CdmaCellInformation/refSeconds", HFILL }},
2433 { "refMCC", "ulp.refMCC",
2434 FT_UINT32, BASE_DEC, NULL, 0,
2437 { "refMNC", "ulp.refMNC",
2438 FT_UINT32, BASE_DEC, NULL, 0,
2441 { "refLAC", "ulp.refLAC",
2442 FT_UINT32, BASE_DEC, NULL, 0,
2443 "GsmCellInformation/refLAC", HFILL }},
2445 { "refCI", "ulp.refCI",
2446 FT_UINT32, BASE_DEC, NULL, 0,
2447 "GsmCellInformation/refCI", HFILL }},
2450 FT_UINT32, BASE_DEC, NULL, 0,
2451 "GsmCellInformation/nMR", HFILL }},
2454 FT_UINT32, BASE_DEC, NULL, 0,
2455 "GsmCellInformation/tA", HFILL }},
2457 { "refUC", "ulp.refUC",
2458 FT_UINT32, BASE_DEC, NULL, 0,
2459 "WcdmaCellInformation/refUC", HFILL }},
2460 { &hf_ulp_frequencyInfo,
2461 { "frequencyInfo", "ulp.frequencyInfo",
2462 FT_NONE, BASE_NONE, NULL, 0,
2464 { &hf_ulp_primaryScramblingCode,
2465 { "primaryScramblingCode", "ulp.primaryScramblingCode",
2466 FT_UINT32, BASE_DEC, NULL, 0,
2468 { &hf_ulp_measuredResultsList,
2469 { "measuredResultsList", "ulp.measuredResultsList",
2470 FT_UINT32, BASE_DEC, NULL, 0,
2471 "WcdmaCellInformation/measuredResultsList", HFILL }},
2472 { &hf_ulp_modeSpecificInfo,
2473 { "modeSpecificInfo", "ulp.modeSpecificInfo",
2474 FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_vals), 0,
2475 "FrequencyInfo/modeSpecificInfo", HFILL }},
2478 FT_NONE, BASE_NONE, NULL, 0,
2479 "FrequencyInfo/modeSpecificInfo/fdd", HFILL }},
2482 FT_NONE, BASE_NONE, NULL, 0,
2483 "FrequencyInfo/modeSpecificInfo/tdd", HFILL }},
2484 { &hf_ulp_uarfcn_UL,
2485 { "uarfcn-UL", "ulp.uarfcn_UL",
2486 FT_UINT32, BASE_DEC, NULL, 0,
2487 "FrequencyInfoFDD/uarfcn-UL", HFILL }},
2488 { &hf_ulp_uarfcn_DL,
2489 { "uarfcn-DL", "ulp.uarfcn_DL",
2490 FT_UINT32, BASE_DEC, NULL, 0,
2491 "FrequencyInfoFDD/uarfcn-DL", HFILL }},
2492 { &hf_ulp_uarfcn_Nt,
2493 { "uarfcn-Nt", "ulp.uarfcn_Nt",
2494 FT_UINT32, BASE_DEC, NULL, 0,
2495 "FrequencyInfoTDD/uarfcn-Nt", HFILL }},
2497 { "Item", "ulp.NMR_item",
2498 FT_NONE, BASE_NONE, NULL, 0,
2499 "NMR/_item", HFILL }},
2501 { "aRFCN", "ulp.aRFCN",
2502 FT_UINT32, BASE_DEC, NULL, 0,
2503 "NMRelement/aRFCN", HFILL }},
2505 { "bSIC", "ulp.bSIC",
2506 FT_UINT32, BASE_DEC, NULL, 0,
2507 "NMRelement/bSIC", HFILL }},
2509 { "rxLev", "ulp.rxLev",
2510 FT_UINT32, BASE_DEC, NULL, 0,
2511 "NMRelement/rxLev", HFILL }},
2512 { &hf_ulp_MeasuredResultsList_item,
2513 { "Item", "ulp.MeasuredResultsList_item",
2514 FT_NONE, BASE_NONE, NULL, 0,
2515 "MeasuredResultsList/_item", HFILL }},
2516 { &hf_ulp_utra_CarrierRSSI,
2517 { "utra-CarrierRSSI", "ulp.utra_CarrierRSSI",
2518 FT_UINT32, BASE_DEC, NULL, 0,
2519 "MeasuredResults/utra-CarrierRSSI", HFILL }},
2520 { &hf_ulp_cellMeasuredResultsList,
2521 { "cellMeasuredResultsList", "ulp.cellMeasuredResultsList",
2522 FT_UINT32, BASE_DEC, NULL, 0,
2523 "MeasuredResults/cellMeasuredResultsList", HFILL }},
2524 { &hf_ulp_CellMeasuredResultsList_item,
2525 { "Item", "ulp.CellMeasuredResultsList_item",
2526 FT_NONE, BASE_NONE, NULL, 0,
2527 "CellMeasuredResultsList/_item", HFILL }},
2528 { &hf_ulp_cellIdentity,
2529 { "cellIdentity", "ulp.cellIdentity",
2530 FT_UINT32, BASE_DEC, NULL, 0,
2531 "CellMeasuredResults/cellIdentity", HFILL }},
2532 { &hf_ulp_modeSpecificInfo1,
2533 { "modeSpecificInfo", "ulp.modeSpecificInfo",
2534 FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo1_vals), 0,
2535 "CellMeasuredResults/modeSpecificInfo", HFILL }},
2538 FT_NONE, BASE_NONE, NULL, 0,
2539 "CellMeasuredResults/modeSpecificInfo/fdd", HFILL }},
2540 { &hf_ulp_primaryCPICH_Info,
2541 { "primaryCPICH-Info", "ulp.primaryCPICH_Info",
2542 FT_NONE, BASE_NONE, NULL, 0,
2543 "CellMeasuredResults/modeSpecificInfo/fdd/primaryCPICH-Info", HFILL }},
2544 { &hf_ulp_cpich_Ec_N0,
2545 { "cpich-Ec-N0", "ulp.cpich_Ec_N0",
2546 FT_UINT32, BASE_DEC, NULL, 0,
2547 "CellMeasuredResults/modeSpecificInfo/fdd/cpich-Ec-N0", HFILL }},
2548 { &hf_ulp_cpich_RSCP,
2549 { "cpich-RSCP", "ulp.cpich_RSCP",
2550 FT_UINT32, BASE_DEC, NULL, 0,
2551 "CellMeasuredResults/modeSpecificInfo/fdd/cpich-RSCP", HFILL }},
2553 { "pathloss", "ulp.pathloss",
2554 FT_UINT32, BASE_DEC, NULL, 0,
2558 FT_NONE, BASE_NONE, NULL, 0,
2559 "CellMeasuredResults/modeSpecificInfo/tdd", HFILL }},
2560 { &hf_ulp_cellParametersID,
2561 { "cellParametersID", "ulp.cellParametersID",
2562 FT_UINT32, BASE_DEC, NULL, 0,
2563 "CellMeasuredResults/modeSpecificInfo/tdd/cellParametersID", HFILL }},
2564 { &hf_ulp_proposedTGSN,
2565 { "proposedTGSN", "ulp.proposedTGSN",
2566 FT_UINT32, BASE_DEC, NULL, 0,
2567 "CellMeasuredResults/modeSpecificInfo/tdd/proposedTGSN", HFILL }},
2568 { &hf_ulp_primaryCCPCH_RSCP,
2569 { "primaryCCPCH-RSCP", "ulp.primaryCCPCH_RSCP",
2570 FT_UINT32, BASE_DEC, NULL, 0,
2571 "CellMeasuredResults/modeSpecificInfo/tdd/primaryCCPCH-RSCP", HFILL }},
2572 { &hf_ulp_timeslotISCP_List,
2573 { "timeslotISCP-List", "ulp.timeslotISCP_List",
2574 FT_UINT32, BASE_DEC, NULL, 0,
2575 "CellMeasuredResults/modeSpecificInfo/tdd/timeslotISCP-List", HFILL }},
2576 { &hf_ulp_TimeslotISCP_List_item,
2577 { "Item", "ulp.TimeslotISCP_List_item",
2578 FT_UINT32, BASE_DEC, NULL, 0,
2579 "TimeslotISCP-List/_item", HFILL }},
2581 { "horacc", "ulp.horacc",
2582 FT_UINT32, BASE_DEC, NULL, 0,
2583 "QoP/horacc", HFILL }},
2585 { "veracc", "ulp.veracc",
2586 FT_UINT32, BASE_DEC, NULL, 0,
2587 "QoP/veracc", HFILL }},
2588 { &hf_ulp_maxLocAge,
2589 { "maxLocAge", "ulp.maxLocAge",
2590 FT_UINT32, BASE_DEC, NULL, 0,
2591 "QoP/maxLocAge", HFILL }},
2593 { "delay", "ulp.delay",
2594 FT_UINT32, BASE_DEC, NULL, 0,
2595 "QoP/delay", HFILL }},
2597 { "horvel", "ulp.horvel",
2598 FT_NONE, BASE_NONE, NULL, 0,
2599 "Velocity/horvel", HFILL }},
2600 { &hf_ulp_horandvervel,
2601 { "horandvervel", "ulp.horandvervel",
2602 FT_NONE, BASE_NONE, NULL, 0,
2603 "Velocity/horandvervel", HFILL }},
2604 { &hf_ulp_horveluncert,
2605 { "horveluncert", "ulp.horveluncert",
2606 FT_NONE, BASE_NONE, NULL, 0,
2607 "Velocity/horveluncert", HFILL }},
2608 { &hf_ulp_horandveruncert,
2609 { "horandveruncert", "ulp.horandveruncert",
2610 FT_NONE, BASE_NONE, NULL, 0,
2611 "Velocity/horandveruncert", HFILL }},
2613 { "bearing", "ulp.bearing",
2614 FT_BYTES, BASE_HEX, NULL, 0,
2617 { "horspeed", "ulp.horspeed",
2618 FT_BYTES, BASE_HEX, NULL, 0,
2620 { &hf_ulp_verdirect,
2621 { "verdirect", "ulp.verdirect",
2622 FT_BYTES, BASE_HEX, NULL, 0,
2625 { "verspeed", "ulp.verspeed",
2626 FT_BYTES, BASE_HEX, NULL, 0,
2628 { &hf_ulp_uncertspeed,
2629 { "uncertspeed", "ulp.uncertspeed",
2630 FT_BYTES, BASE_HEX, NULL, 0,
2631 "Horveluncert/uncertspeed", HFILL }},
2632 { &hf_ulp_horuncertspeed,
2633 { "horuncertspeed", "ulp.horuncertspeed",
2634 FT_BYTES, BASE_HEX, NULL, 0,
2635 "Horandveruncert/horuncertspeed", HFILL }},
2636 { &hf_ulp_veruncertspeed,
2637 { "veruncertspeed", "ulp.veruncertspeed",
2638 FT_BYTES, BASE_HEX, NULL, 0,
2639 "Horandveruncert/veruncertspeed", HFILL }},
2641 { "sETNonce", "ulp.sETNonce",
2642 FT_BYTES, BASE_HEX, NULL, 0,
2643 "SUPLAUTHREQ/sETNonce", HFILL }},
2644 { &hf_ulp_keyIdentity2,
2645 { "keyIdentity2", "ulp.keyIdentity2",
2646 FT_BYTES, BASE_HEX, NULL, 0,
2647 "SUPLAUTHREQ/keyIdentity2", HFILL }},
2648 { &hf_ulp_sPCAuthKey,
2649 { "sPCAuthKey", "ulp.sPCAuthKey",
2650 FT_UINT32, BASE_DEC, VALS(ulp_SPCAuthKey_vals), 0,
2651 "SUPLAUTHRESP/sPCAuthKey", HFILL }},
2652 { &hf_ulp_keyIdentity3,
2653 { "keyIdentity3", "ulp.keyIdentity3",
2654 FT_BYTES, BASE_HEX, NULL, 0,
2655 "SUPLAUTHRESP/keyIdentity3", HFILL }},
2656 { &hf_ulp_statusCode,
2657 { "statusCode", "ulp.statusCode",
2658 FT_UINT32, BASE_DEC, VALS(ulp_StatusCode_vals), 0,
2661 { "shortKey", "ulp.shortKey",
2662 FT_BYTES, BASE_HEX, NULL, 0,
2665 { "longKey", "ulp.longKey",
2666 FT_BYTES, BASE_HEX, NULL, 0,
2669 { "position", "ulp.position",
2670 FT_NONE, BASE_NONE, NULL, 0,
2674 FT_BYTES, BASE_HEX, NULL, 0,
2676 { &hf_ulp_posMethod,
2677 { "posMethod", "ulp.posMethod",
2678 FT_UINT32, BASE_DEC, VALS(ulp_PosMethod_vals), 0,
2680 { &hf_ulp_notification,
2681 { "notification", "ulp.notification",
2682 FT_NONE, BASE_NONE, NULL, 0,
2683 "SUPLINIT/notification", HFILL }},
2684 { &hf_ulp_sLPAddress,
2685 { "sLPAddress", "ulp.sLPAddress",
2686 FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
2690 FT_NONE, BASE_NONE, NULL, 0,
2693 { "sLPMode", "ulp.sLPMode",
2694 FT_UINT32, BASE_DEC, VALS(ulp_SLPMode_vals), 0,
2695 "SUPLINIT/sLPMode", HFILL }},
2698 FT_BYTES, BASE_HEX, NULL, 0,
2699 "SUPLINIT/mAC", HFILL }},
2700 { &hf_ulp_keyIdentity,
2701 { "keyIdentity", "ulp.keyIdentity",
2702 FT_BYTES, BASE_HEX, NULL, 0,
2703 "SUPLINIT/keyIdentity", HFILL }},
2704 { &hf_ulp_notificationType,
2705 { "notificationType", "ulp.notificationType",
2706 FT_UINT32, BASE_DEC, VALS(ulp_NotificationType_vals), 0,
2707 "Notification/notificationType", HFILL }},
2708 { &hf_ulp_encodingType,
2709 { "encodingType", "ulp.encodingType",
2710 FT_UINT32, BASE_DEC, VALS(ulp_EncodingType_vals), 0,
2711 "Notification/encodingType", HFILL }},
2712 { &hf_ulp_requestorId,
2713 { "requestorId", "ulp.requestorId",
2714 FT_BYTES, BASE_HEX, NULL, 0,
2715 "Notification/requestorId", HFILL }},
2716 { &hf_ulp_requestorIdType,
2717 { "requestorIdType", "ulp.requestorIdType",
2718 FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
2719 "Notification/requestorIdType", HFILL }},
2720 { &hf_ulp_clientName,
2721 { "clientName", "ulp.clientName",
2722 FT_BYTES, BASE_HEX, NULL, 0,
2723 "Notification/clientName", HFILL }},
2724 { &hf_ulp_clientNameType,
2725 { "clientNameType", "ulp.clientNameType",
2726 FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
2727 "Notification/clientNameType", HFILL }},
2728 { &hf_ulp_posPayLoad,
2729 { "posPayLoad", "ulp.posPayLoad",
2730 FT_UINT32, BASE_DEC, VALS(ulp_PosPayLoad_vals), 0,
2731 "SUPLPOS/posPayLoad", HFILL }},
2732 { &hf_ulp_tia801payload,
2733 { "tia801payload", "ulp.tia801payload",
2734 FT_BYTES, BASE_HEX, NULL, 0,
2735 "PosPayLoad/tia801payload", HFILL }},
2736 { &hf_ulp_rrcPayload,
2737 { "rrcPayload", "ulp.rrcPayload",
2738 FT_BYTES, BASE_HEX, NULL, 0,
2739 "PosPayLoad/rrcPayload", HFILL }},
2740 { &hf_ulp_rrlpPayload,
2741 { "rrlpPayload", "ulp.rrlpPayload",
2742 FT_BYTES, BASE_HEX, NULL, 0,
2743 "PosPayLoad/rrlpPayload", HFILL }},
2744 { &hf_ulp_sETCapabilities,
2745 { "sETCapabilities", "ulp.sETCapabilities",
2746 FT_NONE, BASE_NONE, NULL, 0,
2748 { &hf_ulp_requestedAssistData,
2749 { "requestedAssistData", "ulp.requestedAssistData",
2750 FT_NONE, BASE_NONE, NULL, 0,
2751 "SUPLPOSINIT/requestedAssistData", HFILL }},
2752 { &hf_ulp_locationId,
2753 { "locationId", "ulp.locationId",
2754 FT_NONE, BASE_NONE, NULL, 0,
2757 { "sUPLPOS", "ulp.sUPLPOS",
2758 FT_NONE, BASE_NONE, NULL, 0,
2759 "SUPLPOSINIT/sUPLPOS", HFILL }},
2760 { &hf_ulp_almanacRequested,
2761 { "almanacRequested", "ulp.almanacRequested",
2762 FT_BOOLEAN, 8, NULL, 0,
2763 "RequestedAssistData/almanacRequested", HFILL }},
2764 { &hf_ulp_utcModelRequested,
2765 { "utcModelRequested", "ulp.utcModelRequested",
2766 FT_BOOLEAN, 8, NULL, 0,
2767 "RequestedAssistData/utcModelRequested", HFILL }},
2768 { &hf_ulp_ionosphericModelRequested,
2769 { "ionosphericModelRequested", "ulp.ionosphericModelRequested",
2770 FT_BOOLEAN, 8, NULL, 0,
2771 "RequestedAssistData/ionosphericModelRequested", HFILL }},
2772 { &hf_ulp_dgpsCorrectionsRequested,
2773 { "dgpsCorrectionsRequested", "ulp.dgpsCorrectionsRequested",
2774 FT_BOOLEAN, 8, NULL, 0,
2775 "RequestedAssistData/dgpsCorrectionsRequested", HFILL }},
2776 { &hf_ulp_referenceLocationRequested,
2777 { "referenceLocationRequested", "ulp.referenceLocationRequested",
2778 FT_BOOLEAN, 8, NULL, 0,
2779 "RequestedAssistData/referenceLocationRequested", HFILL }},
2780 { &hf_ulp_referenceTimeRequested,
2781 { "referenceTimeRequested", "ulp.referenceTimeRequested",
2782 FT_BOOLEAN, 8, NULL, 0,
2783 "RequestedAssistData/referenceTimeRequested", HFILL }},
2784 { &hf_ulp_acquisitionAssistanceRequested,
2785 { "acquisitionAssistanceRequested", "ulp.acquisitionAssistanceRequested",
2786 FT_BOOLEAN, 8, NULL, 0,
2787 "RequestedAssistData/acquisitionAssistanceRequested", HFILL }},
2788 { &hf_ulp_realTimeIntegrityRequested,
2789 { "realTimeIntegrityRequested", "ulp.realTimeIntegrityRequested",
2790 FT_BOOLEAN, 8, NULL, 0,
2791 "RequestedAssistData/realTimeIntegrityRequested", HFILL }},
2792 { &hf_ulp_navigationModelRequested,
2793 { "navigationModelRequested", "ulp.navigationModelRequested",
2794 FT_BOOLEAN, 8, NULL, 0,
2795 "RequestedAssistData/navigationModelRequested", HFILL }},
2796 { &hf_ulp_navigationModelData,
2797 { "navigationModelData", "ulp.navigationModelData",
2798 FT_NONE, BASE_NONE, NULL, 0,
2799 "RequestedAssistData/navigationModelData", HFILL }},
2801 { "gpsWeek", "ulp.gpsWeek",
2802 FT_UINT32, BASE_DEC, NULL, 0,
2803 "NavigationModel/gpsWeek", HFILL }},
2805 { "gpsToe", "ulp.gpsToe",
2806 FT_UINT32, BASE_DEC, NULL, 0,
2807 "NavigationModel/gpsToe", HFILL }},
2809 { "nSAT", "ulp.nSAT",
2810 FT_UINT32, BASE_DEC, NULL, 0,
2811 "NavigationModel/nSAT", HFILL }},
2813 { "toeLimit", "ulp.toeLimit",
2814 FT_UINT32, BASE_DEC, NULL, 0,
2815 "NavigationModel/toeLimit", HFILL }},
2817 { "satInfo", "ulp.satInfo",
2818 FT_UINT32, BASE_DEC, NULL, 0,
2819 "NavigationModel/satInfo", HFILL }},
2820 { &hf_ulp_SatelliteInfo_item,
2821 { "Item", "ulp.SatelliteInfo_item",
2822 FT_NONE, BASE_NONE, NULL, 0,
2823 "SatelliteInfo/_item", HFILL }},
2825 { "satId", "ulp.satId",
2826 FT_UINT32, BASE_DEC, NULL, 0,
2827 "SatelliteInfoElement/satId", HFILL }},
2829 { "iODE", "ulp.iODE",
2830 FT_UINT32, BASE_DEC, NULL, 0,
2831 "SatelliteInfoElement/iODE", HFILL }},
2832 { &hf_ulp_sETAuthKey,
2833 { "sETAuthKey", "ulp.sETAuthKey",
2834 FT_UINT32, BASE_DEC, VALS(ulp_SETAuthKey_vals), 0,
2835 "SUPLRESPONSE/sETAuthKey", HFILL }},
2836 { &hf_ulp_keyIdentity4,
2837 { "keyIdentity4", "ulp.keyIdentity4",
2838 FT_BYTES, BASE_HEX, NULL, 0,
2839 "SUPLRESPONSE/keyIdentity4", HFILL }},
2840 { &hf_ulp_posTechnology,
2841 { "posTechnology", "ulp.posTechnology",
2842 FT_NONE, BASE_NONE, NULL, 0,
2843 "SETCapabilities/posTechnology", HFILL }},
2844 { &hf_ulp_prefMethod,
2845 { "prefMethod", "ulp.prefMethod",
2846 FT_UINT32, BASE_DEC, VALS(ulp_PrefMethod_vals), 0,
2847 "SETCapabilities/prefMethod", HFILL }},
2848 { &hf_ulp_posProtocol,
2849 { "posProtocol", "ulp.posProtocol",
2850 FT_NONE, BASE_NONE, NULL, 0,
2851 "SETCapabilities/posProtocol", HFILL }},
2852 { &hf_ulp_agpsSETassisted,
2853 { "agpsSETassisted", "ulp.agpsSETassisted",
2854 FT_BOOLEAN, 8, NULL, 0,
2855 "PosTechnology/agpsSETassisted", HFILL }},
2856 { &hf_ulp_agpsSETBased,
2857 { "agpsSETBased", "ulp.agpsSETBased",
2858 FT_BOOLEAN, 8, NULL, 0,
2859 "PosTechnology/agpsSETBased", HFILL }},
2860 { &hf_ulp_autonomousGPS,
2861 { "autonomousGPS", "ulp.autonomousGPS",
2862 FT_BOOLEAN, 8, NULL, 0,
2863 "PosTechnology/autonomousGPS", HFILL }},
2865 { "aFLT", "ulp.aFLT",
2866 FT_BOOLEAN, 8, NULL, 0,
2867 "PosTechnology/aFLT", HFILL }},
2869 { "eCID", "ulp.eCID",
2870 FT_BOOLEAN, 8, NULL, 0,
2871 "PosTechnology/eCID", HFILL }},
2873 { "eOTD", "ulp.eOTD",
2874 FT_BOOLEAN, 8, NULL, 0,
2875 "PosTechnology/eOTD", HFILL }},
2877 { "oTDOA", "ulp.oTDOA",
2878 FT_BOOLEAN, 8, NULL, 0,
2879 "PosTechnology/oTDOA", HFILL }},
2881 { "tia801", "ulp.tia801",
2882 FT_BOOLEAN, 8, NULL, 0,
2883 "PosProtocol/tia801", HFILL }},
2885 { "rrlp", "ulp.rrlp",
2886 FT_BOOLEAN, 8, NULL, 0,
2887 "PosProtocol/rrlp", HFILL }},
2890 FT_BOOLEAN, 8, NULL, 0,
2891 "PosProtocol/rrc", HFILL }},
2893 /*--- End of included file: packet-ulp-hfarr.c ---*/
2894 #line 119 "packet-ulp-template.c"
2897 /* List of subtrees */
2898 static gint *ett[] = {
2901 /*--- Included file: packet-ulp-ettarr.c ---*/
2902 #line 1 "packet-ulp-ettarr.c"
2904 &ett_ulp_UlpMessage,
2907 &ett_ulp_SetSessionID,
2909 &ett_ulp_SlpSessionID,
2911 &ett_ulp_SLPAddress,
2912 &ett_ulp_LocationId,
2915 &ett_ulp_PositionEstimate,
2916 &ett_ulp_T_uncertainty,
2917 &ett_ulp_AltitudeInfo,
2918 &ett_ulp_CdmaCellInformation,
2919 &ett_ulp_GsmCellInformation,
2920 &ett_ulp_WcdmaCellInformation,
2921 &ett_ulp_FrequencyInfo,
2922 &ett_ulp_T_modeSpecificInfo,
2923 &ett_ulp_FrequencyInfoFDD,
2924 &ett_ulp_FrequencyInfoTDD,
2926 &ett_ulp_NMRelement,
2927 &ett_ulp_MeasuredResultsList,
2928 &ett_ulp_MeasuredResults,
2929 &ett_ulp_CellMeasuredResultsList,
2930 &ett_ulp_CellMeasuredResults,
2931 &ett_ulp_T_modeSpecificInfo1,
2934 &ett_ulp_TimeslotISCP_List,
2935 &ett_ulp_PrimaryCPICH_Info,
2939 &ett_ulp_Horandvervel,
2940 &ett_ulp_Horveluncert,
2941 &ett_ulp_Horandveruncert,
2942 &ett_ulp_SUPLAUTHREQ,
2943 &ett_ulp_SUPLAUTHRESP,
2944 &ett_ulp_SPCAuthKey,
2947 &ett_ulp_Notification,
2949 &ett_ulp_PosPayLoad,
2950 &ett_ulp_SUPLPOSINIT,
2951 &ett_ulp_RequestedAssistData,
2952 &ett_ulp_NavigationModel,
2953 &ett_ulp_SatelliteInfo,
2954 &ett_ulp_SatelliteInfoElement,
2955 &ett_ulp_SUPLRESPONSE,
2956 &ett_ulp_SETAuthKey,
2958 &ett_ulp_SETCapabilities,
2959 &ett_ulp_PosTechnology,
2960 &ett_ulp_PosProtocol,
2962 /*--- End of included file: packet-ulp-ettarr.c ---*/
2963 #line 125 "packet-ulp-template.c"
2966 module_t *ulp_module;
2969 /* Register protocol */
2970 proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
2971 /* Register fields and subtrees */
2972 proto_register_field_array(proto_ulp, hf, array_length(hf));
2973 proto_register_subtree_array(ett, array_length(ett));
2975 ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
2977 prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
2978 "Reassemble ULP messages spanning multiple TCP segments",
2979 "Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
2980 " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
2983 /* Register a configuration option for port */
2984 prefs_register_uint_preference(ulp_module, "tcp.port",
2986 "Set the TCP port for Ulp messages(IANA registerd port is 7275)",