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"
54 #define PNAME "OMA UserPlane Location Protocol"
58 static dissector_handle_t ulp_handle=NULL;
59 static dissector_handle_t rrlp_handle;
61 /* IANA Registered Ports
62 * oma-ulp 7275/tcp OMA UserPlane Location
63 * oma-ulp 7275/udp OMA UserPlane Location
65 guint gbl_ulp_port = 7275;
67 /* Initialize the protocol and registered fields */
68 static int proto_ulp = -1;
72 /*--- Included file: packet-ulp-hf.c ---*/
73 #line 1 "packet-ulp-hf.c"
74 static int hf_ulp_ULP_PDU_PDU = -1; /* ULP_PDU */
75 static int hf_ulp_length = -1; /* INTEGER_0_65535 */
76 static int hf_ulp_version = -1; /* Version */
77 static int hf_ulp_sessionID = -1; /* SessionID */
78 static int hf_ulp_message = -1; /* UlpMessage */
79 static int hf_ulp_msSUPLINIT = -1; /* SUPLINIT */
80 static int hf_ulp_msSUPLSTART = -1; /* SUPLSTART */
81 static int hf_ulp_msSUPLRESPONSE = -1; /* SUPLRESPONSE */
82 static int hf_ulp_msSUPLPOSINIT = -1; /* SUPLPOSINIT */
83 static int hf_ulp_msSUPLPOS = -1; /* SUPLPOS */
84 static int hf_ulp_msSUPLEND = -1; /* SUPLEND */
85 static int hf_ulp_msSUPLAUTHREQ = -1; /* SUPLAUTHREQ */
86 static int hf_ulp_msSUPLAUTHRESP = -1; /* SUPLAUTHRESP */
87 static int hf_ulp_maj = -1; /* INTEGER_0_255 */
88 static int hf_ulp_min = -1; /* INTEGER_0_255 */
89 static int hf_ulp_servind = -1; /* INTEGER_0_255 */
90 static int hf_ulp_setSessionID = -1; /* SetSessionID */
91 static int hf_ulp_slpSessionID = -1; /* SlpSessionID */
92 static int hf_ulp_sessionId = -1; /* INTEGER_0_65535 */
93 static int hf_ulp_setId = -1; /* SETId */
94 static int hf_ulp_msisdn = -1; /* OCTET_STRING_SIZE_8 */
95 static int hf_ulp_mdn = -1; /* OCTET_STRING_SIZE_8 */
96 static int hf_ulp_min1 = -1; /* BIT_STRING_SIZE_34 */
97 static int hf_ulp_imsi = -1; /* OCTET_STRING_SIZE_8 */
98 static int hf_ulp_nai = -1; /* IA5String_SIZE_1_1000 */
99 static int hf_ulp_iPAddress = -1; /* IPAddress */
100 static int hf_ulp_sessionID1 = -1; /* OCTET_STRING_SIZE_4 */
101 static int hf_ulp_slpId = -1; /* SLPAddress */
102 static int hf_ulp_ipv4Address = -1; /* IPv4Address */
103 static int hf_ulp_ipv6Address = -1; /* IPv6Address */
104 static int hf_ulp_fQDN = -1; /* FQDN */
105 static int hf_ulp_cellInfo = -1; /* CellInfo */
106 static int hf_ulp_status = -1; /* Status */
107 static int hf_ulp_gsmCell = -1; /* GsmCellInformation */
108 static int hf_ulp_wcdmaCell = -1; /* WcdmaCellInformation */
109 static int hf_ulp_cdmaCell = -1; /* CdmaCellInformation */
110 static int hf_ulp_timestamp = -1; /* UTCTime */
111 static int hf_ulp_positionEstimate = -1; /* PositionEstimate */
112 static int hf_ulp_velocity = -1; /* Velocity */
113 static int hf_ulp_latitudeSign = -1; /* T_latitudeSign */
114 static int hf_ulp_latitude = -1; /* INTEGER_0_8388607 */
115 static int hf_ulp_longitude = -1; /* INTEGER_M8388608_8388607 */
116 static int hf_ulp_uncertainty = -1; /* T_uncertainty */
117 static int hf_ulp_uncertaintySemiMajor = -1; /* INTEGER_0_127 */
118 static int hf_ulp_uncertaintySemiMinor = -1; /* INTEGER_0_127 */
119 static int hf_ulp_orientationMajorAxis = -1; /* INTEGER_0_180 */
120 static int hf_ulp_confidence = -1; /* INTEGER_0_100 */
121 static int hf_ulp_altitudeInfo = -1; /* AltitudeInfo */
122 static int hf_ulp_altitudeDirection = -1; /* T_altitudeDirection */
123 static int hf_ulp_altitude = -1; /* INTEGER_0_32767 */
124 static int hf_ulp_altUncertainty = -1; /* INTEGER_0_127 */
125 static int hf_ulp_refNID = -1; /* INTEGER_0_65535 */
126 static int hf_ulp_refSID = -1; /* INTEGER_0_32767 */
127 static int hf_ulp_refBASEID = -1; /* INTEGER_0_65535 */
128 static int hf_ulp_refBASELAT = -1; /* INTEGER_0_4194303 */
129 static int hf_ulp_reBASELONG = -1; /* INTEGER_0_8388607 */
130 static int hf_ulp_refREFPN = -1; /* INTEGER_0_511 */
131 static int hf_ulp_refWeekNumber = -1; /* INTEGER_0_65535 */
132 static int hf_ulp_refSeconds = -1; /* INTEGER_0_4194303 */
133 static int hf_ulp_refMCC = -1; /* INTEGER_0_999 */
134 static int hf_ulp_refMNC = -1; /* INTEGER_0_999 */
135 static int hf_ulp_refLAC = -1; /* INTEGER_0_65535 */
136 static int hf_ulp_refCI = -1; /* INTEGER_0_65535 */
137 static int hf_ulp_nMR = -1; /* NMR */
138 static int hf_ulp_tA = -1; /* INTEGER_0_255 */
139 static int hf_ulp_refUC = -1; /* INTEGER_0_268435455 */
140 static int hf_ulp_frequencyInfo = -1; /* FrequencyInfo */
141 static int hf_ulp_primaryScramblingCode = -1; /* INTEGER_0_511 */
142 static int hf_ulp_measuredResultsList = -1; /* MeasuredResultsList */
143 static int hf_ulp_modeSpecificInfo = -1; /* T_modeSpecificInfo */
144 static int hf_ulp_fdd = -1; /* FrequencyInfoFDD */
145 static int hf_ulp_tdd = -1; /* FrequencyInfoTDD */
146 static int hf_ulp_uarfcn_UL = -1; /* UARFCN */
147 static int hf_ulp_uarfcn_DL = -1; /* UARFCN */
148 static int hf_ulp_uarfcn_Nt = -1; /* UARFCN */
149 static int hf_ulp_NMR_item = -1; /* NMRelement */
150 static int hf_ulp_aRFCN = -1; /* INTEGER_0_1023 */
151 static int hf_ulp_bSIC = -1; /* INTEGER_0_63 */
152 static int hf_ulp_rxLev = -1; /* INTEGER_0_63 */
153 static int hf_ulp_MeasuredResultsList_item = -1; /* MeasuredResults */
154 static int hf_ulp_utra_CarrierRSSI = -1; /* UTRA_CarrierRSSI */
155 static int hf_ulp_cellMeasuredResultsList = -1; /* CellMeasuredResultsList */
156 static int hf_ulp_CellMeasuredResultsList_item = -1; /* CellMeasuredResults */
157 static int hf_ulp_cellIdentity = -1; /* INTEGER_0_268435455 */
158 static int hf_ulp_modeSpecificInfo1 = -1; /* T_modeSpecificInfo1 */
159 static int hf_ulp_fdd1 = -1; /* T_fdd */
160 static int hf_ulp_primaryCPICH_Info = -1; /* PrimaryCPICH_Info */
161 static int hf_ulp_cpich_Ec_N0 = -1; /* CPICH_Ec_N0 */
162 static int hf_ulp_cpich_RSCP = -1; /* CPICH_RSCP */
163 static int hf_ulp_pathloss = -1; /* Pathloss */
164 static int hf_ulp_tdd1 = -1; /* T_tdd */
165 static int hf_ulp_cellParametersID = -1; /* CellParametersID */
166 static int hf_ulp_proposedTGSN = -1; /* TGSN */
167 static int hf_ulp_primaryCCPCH_RSCP = -1; /* PrimaryCCPCH_RSCP */
168 static int hf_ulp_timeslotISCP_List = -1; /* TimeslotISCP_List */
169 static int hf_ulp_TimeslotISCP_List_item = -1; /* TimeslotISCP */
170 static int hf_ulp_horacc = -1; /* INTEGER_0_127 */
171 static int hf_ulp_veracc = -1; /* INTEGER_0_127 */
172 static int hf_ulp_maxLocAge = -1; /* INTEGER_0_65535 */
173 static int hf_ulp_delay = -1; /* INTEGER_0_7 */
174 static int hf_ulp_horvel = -1; /* Horvel */
175 static int hf_ulp_horandvervel = -1; /* Horandvervel */
176 static int hf_ulp_horveluncert = -1; /* Horveluncert */
177 static int hf_ulp_horandveruncert = -1; /* Horandveruncert */
178 static int hf_ulp_bearing = -1; /* BIT_STRING_SIZE_9 */
179 static int hf_ulp_horspeed = -1; /* BIT_STRING_SIZE_16 */
180 static int hf_ulp_verdirect = -1; /* BIT_STRING_SIZE_1 */
181 static int hf_ulp_verspeed = -1; /* BIT_STRING_SIZE_8 */
182 static int hf_ulp_uncertspeed = -1; /* BIT_STRING_SIZE_8 */
183 static int hf_ulp_horuncertspeed = -1; /* BIT_STRING_SIZE_8 */
184 static int hf_ulp_veruncertspeed = -1; /* BIT_STRING_SIZE_8 */
185 static int hf_ulp_sETNonce = -1; /* SETNonce */
186 static int hf_ulp_keyIdentity2 = -1; /* KeyIdentity2 */
187 static int hf_ulp_sPCAuthKey = -1; /* SPCAuthKey */
188 static int hf_ulp_keyIdentity3 = -1; /* KeyIdentity3 */
189 static int hf_ulp_statusCode = -1; /* StatusCode */
190 static int hf_ulp_shortKey = -1; /* BIT_STRING_SIZE_128 */
191 static int hf_ulp_longKey = -1; /* BIT_STRING_SIZE_256 */
192 static int hf_ulp_position = -1; /* Position */
193 static int hf_ulp_ver = -1; /* Ver */
194 static int hf_ulp_posMethod = -1; /* PosMethod */
195 static int hf_ulp_notification = -1; /* Notification */
196 static int hf_ulp_sLPAddress = -1; /* SLPAddress */
197 static int hf_ulp_qoP = -1; /* QoP */
198 static int hf_ulp_sLPMode = -1; /* SLPMode */
199 static int hf_ulp_mAC = -1; /* MAC */
200 static int hf_ulp_keyIdentity = -1; /* KeyIdentity */
201 static int hf_ulp_notificationType = -1; /* NotificationType */
202 static int hf_ulp_encodingType = -1; /* EncodingType */
203 static int hf_ulp_requestorId = -1; /* OCTET_STRING_SIZE_1_maxReqLength */
204 static int hf_ulp_requestorIdType = -1; /* FormatIndicator */
205 static int hf_ulp_clientName = -1; /* OCTET_STRING_SIZE_1_maxClientLength */
206 static int hf_ulp_clientNameType = -1; /* FormatIndicator */
207 static int hf_ulp_posPayLoad = -1; /* PosPayLoad */
208 static int hf_ulp_tia801payload = -1; /* OCTET_STRING_SIZE_1_8192 */
209 static int hf_ulp_rrcPayload = -1; /* OCTET_STRING_SIZE_1_8192 */
210 static int hf_ulp_rrlpPayload = -1; /* RRLPPayload */
211 static int hf_ulp_sETCapabilities = -1; /* SETCapabilities */
212 static int hf_ulp_requestedAssistData = -1; /* RequestedAssistData */
213 static int hf_ulp_locationId = -1; /* LocationId */
214 static int hf_ulp_sUPLPOS = -1; /* SUPLPOS */
215 static int hf_ulp_almanacRequested = -1; /* BOOLEAN */
216 static int hf_ulp_utcModelRequested = -1; /* BOOLEAN */
217 static int hf_ulp_ionosphericModelRequested = -1; /* BOOLEAN */
218 static int hf_ulp_dgpsCorrectionsRequested = -1; /* BOOLEAN */
219 static int hf_ulp_referenceLocationRequested = -1; /* BOOLEAN */
220 static int hf_ulp_referenceTimeRequested = -1; /* BOOLEAN */
221 static int hf_ulp_acquisitionAssistanceRequested = -1; /* BOOLEAN */
222 static int hf_ulp_realTimeIntegrityRequested = -1; /* BOOLEAN */
223 static int hf_ulp_navigationModelRequested = -1; /* BOOLEAN */
224 static int hf_ulp_navigationModelData = -1; /* NavigationModel */
225 static int hf_ulp_gpsWeek = -1; /* INTEGER_0_1023 */
226 static int hf_ulp_gpsToe = -1; /* INTEGER_0_167 */
227 static int hf_ulp_nSAT = -1; /* INTEGER_0_31 */
228 static int hf_ulp_toeLimit = -1; /* INTEGER_0_10 */
229 static int hf_ulp_satInfo = -1; /* SatelliteInfo */
230 static int hf_ulp_SatelliteInfo_item = -1; /* SatelliteInfoElement */
231 static int hf_ulp_satId = -1; /* INTEGER_0_63 */
232 static int hf_ulp_iODE = -1; /* INTEGER_0_255 */
233 static int hf_ulp_sETAuthKey = -1; /* SETAuthKey */
234 static int hf_ulp_keyIdentity4 = -1; /* KeyIdentity4 */
235 static int hf_ulp_posTechnology = -1; /* PosTechnology */
236 static int hf_ulp_prefMethod = -1; /* PrefMethod */
237 static int hf_ulp_posProtocol = -1; /* PosProtocol */
238 static int hf_ulp_agpsSETassisted = -1; /* BOOLEAN */
239 static int hf_ulp_agpsSETBased = -1; /* BOOLEAN */
240 static int hf_ulp_autonomousGPS = -1; /* BOOLEAN */
241 static int hf_ulp_aFLT = -1; /* BOOLEAN */
242 static int hf_ulp_eCID = -1; /* BOOLEAN */
243 static int hf_ulp_eOTD = -1; /* BOOLEAN */
244 static int hf_ulp_oTDOA = -1; /* BOOLEAN */
245 static int hf_ulp_tia801 = -1; /* BOOLEAN */
246 static int hf_ulp_rrlp = -1; /* BOOLEAN */
247 static int hf_ulp_rrc = -1; /* BOOLEAN */
249 /*--- End of included file: packet-ulp-hf.c ---*/
250 #line 64 "packet-ulp-template.c"
252 /* Initialize the subtree pointers */
253 static gint ett_ulp = -1;
255 /*--- Included file: packet-ulp-ett.c ---*/
256 #line 1 "packet-ulp-ett.c"
257 static gint ett_ulp_ULP_PDU = -1;
258 static gint ett_ulp_UlpMessage = -1;
259 static gint ett_ulp_Version = -1;
260 static gint ett_ulp_SessionID = -1;
261 static gint ett_ulp_SetSessionID = -1;
262 static gint ett_ulp_SETId = -1;
263 static gint ett_ulp_SlpSessionID = -1;
264 static gint ett_ulp_IPAddress = -1;
265 static gint ett_ulp_SLPAddress = -1;
266 static gint ett_ulp_LocationId = -1;
267 static gint ett_ulp_CellInfo = -1;
268 static gint ett_ulp_Position = -1;
269 static gint ett_ulp_PositionEstimate = -1;
270 static gint ett_ulp_T_uncertainty = -1;
271 static gint ett_ulp_AltitudeInfo = -1;
272 static gint ett_ulp_CdmaCellInformation = -1;
273 static gint ett_ulp_GsmCellInformation = -1;
274 static gint ett_ulp_WcdmaCellInformation = -1;
275 static gint ett_ulp_FrequencyInfo = -1;
276 static gint ett_ulp_T_modeSpecificInfo = -1;
277 static gint ett_ulp_FrequencyInfoFDD = -1;
278 static gint ett_ulp_FrequencyInfoTDD = -1;
279 static gint ett_ulp_NMR = -1;
280 static gint ett_ulp_NMRelement = -1;
281 static gint ett_ulp_MeasuredResultsList = -1;
282 static gint ett_ulp_MeasuredResults = -1;
283 static gint ett_ulp_CellMeasuredResultsList = -1;
284 static gint ett_ulp_CellMeasuredResults = -1;
285 static gint ett_ulp_T_modeSpecificInfo1 = -1;
286 static gint ett_ulp_T_fdd = -1;
287 static gint ett_ulp_T_tdd = -1;
288 static gint ett_ulp_TimeslotISCP_List = -1;
289 static gint ett_ulp_PrimaryCPICH_Info = -1;
290 static gint ett_ulp_QoP = -1;
291 static gint ett_ulp_Velocity = -1;
292 static gint ett_ulp_Horvel = -1;
293 static gint ett_ulp_Horandvervel = -1;
294 static gint ett_ulp_Horveluncert = -1;
295 static gint ett_ulp_Horandveruncert = -1;
296 static gint ett_ulp_SUPLAUTHREQ = -1;
297 static gint ett_ulp_SUPLAUTHRESP = -1;
298 static gint ett_ulp_SPCAuthKey = -1;
299 static gint ett_ulp_SUPLEND = -1;
300 static gint ett_ulp_SUPLINIT = -1;
301 static gint ett_ulp_Notification = -1;
302 static gint ett_ulp_SUPLPOS = -1;
303 static gint ett_ulp_PosPayLoad = -1;
304 static gint ett_ulp_SUPLPOSINIT = -1;
305 static gint ett_ulp_RequestedAssistData = -1;
306 static gint ett_ulp_NavigationModel = -1;
307 static gint ett_ulp_SatelliteInfo = -1;
308 static gint ett_ulp_SatelliteInfoElement = -1;
309 static gint ett_ulp_SUPLRESPONSE = -1;
310 static gint ett_ulp_SETAuthKey = -1;
311 static gint ett_ulp_SUPLSTART = -1;
312 static gint ett_ulp_SETCapabilities = -1;
313 static gint ett_ulp_PosTechnology = -1;
314 static gint ett_ulp_PosProtocol = -1;
316 /*--- End of included file: packet-ulp-ett.c ---*/
317 #line 68 "packet-ulp-template.c"
319 /* Include constants */
321 /*--- Included file: packet-ulp-val.h ---*/
322 #line 1 "packet-ulp-val.h"
323 #define maxCellMeas 32
326 #define maxReqLength 50
327 #define maxClientLength 50
329 /*--- End of included file: packet-ulp-val.h ---*/
330 #line 71 "packet-ulp-template.c"
333 /*--- Included file: packet-ulp-fn.c ---*/
334 #line 1 "packet-ulp-fn.c"
335 /*--- Fields for imported types ---*/
341 dissect_ulp_INTEGER_0_65535(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
342 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
343 0U, 65535U, NULL, FALSE);
347 static int dissect_length(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
348 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_length);
350 static int dissect_sessionId(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
351 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_sessionId);
353 static int dissect_refNID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
354 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_refNID);
356 static int dissect_refBASEID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
357 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_refBASEID);
359 static int dissect_refWeekNumber(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
360 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_refWeekNumber);
362 static int dissect_refLAC(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
363 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_refLAC);
365 static int dissect_refCI(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
366 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_refCI);
368 static int dissect_maxLocAge(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
369 return dissect_ulp_INTEGER_0_65535(tvb, offset, actx, tree, hf_ulp_maxLocAge);
375 dissect_ulp_INTEGER_0_255(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
376 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
377 0U, 255U, NULL, FALSE);
381 static int dissect_maj(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
382 return dissect_ulp_INTEGER_0_255(tvb, offset, actx, tree, hf_ulp_maj);
384 static int dissect_min(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
385 return dissect_ulp_INTEGER_0_255(tvb, offset, actx, tree, hf_ulp_min);
387 static int dissect_servind(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
388 return dissect_ulp_INTEGER_0_255(tvb, offset, actx, tree, hf_ulp_servind);
390 static int dissect_tA(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
391 return dissect_ulp_INTEGER_0_255(tvb, offset, actx, tree, hf_ulp_tA);
393 static int dissect_iODE(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
394 return dissect_ulp_INTEGER_0_255(tvb, offset, actx, tree, hf_ulp_iODE);
398 static const per_sequence_t Version_sequence[] = {
399 { "maj" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_maj },
400 { "min" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_min },
401 { "servind" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_servind },
406 dissect_ulp_Version(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
407 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
408 ett_ulp_Version, Version_sequence);
412 static int dissect_version(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
413 return dissect_ulp_Version(tvb, offset, actx, tree, hf_ulp_version);
419 dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
420 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
425 static int dissect_msisdn(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
426 return dissect_ulp_OCTET_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_msisdn);
428 static int dissect_mdn(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
429 return dissect_ulp_OCTET_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_mdn);
431 static int dissect_imsi(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
432 return dissect_ulp_OCTET_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_imsi);
438 dissect_ulp_BIT_STRING_SIZE_34(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
439 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
444 static int dissect_min1(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
445 return dissect_ulp_BIT_STRING_SIZE_34(tvb, offset, actx, tree, hf_ulp_min1);
451 dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
452 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
457 static int dissect_nai(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
458 return dissect_ulp_IA5String_SIZE_1_1000(tvb, offset, actx, tree, hf_ulp_nai);
464 dissect_ulp_IPv4Address(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
465 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
470 static int dissect_ipv4Address(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
471 return dissect_ulp_IPv4Address(tvb, offset, actx, tree, hf_ulp_ipv4Address);
477 dissect_ulp_IPv6Address(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
478 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
483 static int dissect_ipv6Address(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
484 return dissect_ulp_IPv6Address(tvb, offset, actx, tree, hf_ulp_ipv6Address);
488 static const value_string ulp_IPAddress_vals[] = {
489 { 0, "ipv4Address" },
490 { 1, "ipv6Address" },
494 static const per_choice_t IPAddress_choice[] = {
495 { 0, "ipv4Address" , ASN1_NO_EXTENSIONS , dissect_ipv4Address },
496 { 1, "ipv6Address" , ASN1_NO_EXTENSIONS , dissect_ipv6Address },
501 dissect_ulp_IPAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
502 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
503 ett_ulp_IPAddress, IPAddress_choice,
508 static int dissect_iPAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
509 return dissect_ulp_IPAddress(tvb, offset, actx, tree, hf_ulp_iPAddress);
513 static const value_string ulp_SETId_vals[] = {
523 static const per_choice_t SETId_choice[] = {
524 { 0, "msisdn" , ASN1_EXTENSION_ROOT , dissect_msisdn },
525 { 1, "mdn" , ASN1_EXTENSION_ROOT , dissect_mdn },
526 { 2, "min" , ASN1_EXTENSION_ROOT , dissect_min1 },
527 { 3, "imsi" , ASN1_EXTENSION_ROOT , dissect_imsi },
528 { 4, "nai" , ASN1_EXTENSION_ROOT , dissect_nai },
529 { 5, "iPAddress" , ASN1_EXTENSION_ROOT , dissect_iPAddress },
534 dissect_ulp_SETId(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
535 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
536 ett_ulp_SETId, SETId_choice,
541 static int dissect_setId(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
542 return dissect_ulp_SETId(tvb, offset, actx, tree, hf_ulp_setId);
546 static const per_sequence_t SetSessionID_sequence[] = {
547 { "sessionId" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_sessionId },
548 { "setId" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_setId },
553 dissect_ulp_SetSessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
554 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
555 ett_ulp_SetSessionID, SetSessionID_sequence);
559 static int dissect_setSessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
560 return dissect_ulp_SetSessionID(tvb, offset, actx, tree, hf_ulp_setSessionID);
566 dissect_ulp_OCTET_STRING_SIZE_4(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
567 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
572 static int dissect_sessionID1(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
573 return dissect_ulp_OCTET_STRING_SIZE_4(tvb, offset, actx, tree, hf_ulp_sessionID1);
579 dissect_ulp_FQDN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
580 offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
585 static int dissect_fQDN(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
586 return dissect_ulp_FQDN(tvb, offset, actx, tree, hf_ulp_fQDN);
590 static const value_string ulp_SLPAddress_vals[] = {
596 static const per_choice_t SLPAddress_choice[] = {
597 { 0, "iPAddress" , ASN1_EXTENSION_ROOT , dissect_iPAddress },
598 { 1, "fQDN" , ASN1_EXTENSION_ROOT , dissect_fQDN },
603 dissect_ulp_SLPAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
604 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
605 ett_ulp_SLPAddress, SLPAddress_choice,
610 static int dissect_slpId(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
611 return dissect_ulp_SLPAddress(tvb, offset, actx, tree, hf_ulp_slpId);
613 static int dissect_sLPAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
614 return dissect_ulp_SLPAddress(tvb, offset, actx, tree, hf_ulp_sLPAddress);
618 static const per_sequence_t SlpSessionID_sequence[] = {
619 { "sessionID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_sessionID1 },
620 { "slpId" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_slpId },
625 dissect_ulp_SlpSessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
626 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
627 ett_ulp_SlpSessionID, SlpSessionID_sequence);
631 static int dissect_slpSessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
632 return dissect_ulp_SlpSessionID(tvb, offset, actx, tree, hf_ulp_slpSessionID);
636 static const per_sequence_t SessionID_sequence[] = {
637 { "setSessionID" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_setSessionID },
638 { "slpSessionID" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_slpSessionID },
643 dissect_ulp_SessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
644 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
645 ett_ulp_SessionID, SessionID_sequence);
649 static int dissect_sessionID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
650 return dissect_ulp_SessionID(tvb, offset, actx, tree, hf_ulp_sessionID);
654 static const value_string ulp_PosMethod_vals[] = {
655 { 0, "agpsSETassisted" },
656 { 1, "agpsSETbased" },
657 { 2, "agpsSETassistedpref" },
658 { 3, "agpsSETbasedpref" },
659 { 4, "autonomousGPS" },
670 dissect_ulp_PosMethod(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
671 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
672 10, NULL, TRUE, 0, NULL);
676 static int dissect_posMethod(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
677 return dissect_ulp_PosMethod(tvb, offset, actx, tree, hf_ulp_posMethod);
681 static const value_string ulp_NotificationType_vals[] = {
682 { 0, "noNotificationNoVerification" },
683 { 1, "notificationOnly" },
684 { 2, "notificationAndVerficationAllowedNA" },
685 { 3, "notificationAndVerficationDeniedNA" },
686 { 4, "privacyOverride" },
692 dissect_ulp_NotificationType(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
693 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
694 5, NULL, TRUE, 0, NULL);
698 static int dissect_notificationType(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
699 return dissect_ulp_NotificationType(tvb, offset, actx, tree, hf_ulp_notificationType);
703 static const value_string ulp_EncodingType_vals[] = {
712 dissect_ulp_EncodingType(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
713 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
714 3, NULL, TRUE, 0, NULL);
718 static int dissect_encodingType(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
719 return dissect_ulp_EncodingType(tvb, offset, actx, tree, hf_ulp_encodingType);
725 dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
726 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
727 1, maxReqLength, NULL);
731 static int dissect_requestorId(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
732 return dissect_ulp_OCTET_STRING_SIZE_1_maxReqLength(tvb, offset, actx, tree, hf_ulp_requestorId);
736 static const value_string ulp_FormatIndicator_vals[] = {
737 { 0, "logicalName" },
738 { 1, "e-mailAddress" },
749 dissect_ulp_FormatIndicator(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
750 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
751 7, NULL, TRUE, 0, NULL);
755 static int dissect_requestorIdType(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
756 return dissect_ulp_FormatIndicator(tvb, offset, actx, tree, hf_ulp_requestorIdType);
758 static int dissect_clientNameType(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
759 return dissect_ulp_FormatIndicator(tvb, offset, actx, tree, hf_ulp_clientNameType);
765 dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
766 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
767 1, maxClientLength, NULL);
771 static int dissect_clientName(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
772 return dissect_ulp_OCTET_STRING_SIZE_1_maxClientLength(tvb, offset, actx, tree, hf_ulp_clientName);
776 static const per_sequence_t Notification_sequence[] = {
777 { "notificationType" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_notificationType },
778 { "encodingType" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_encodingType },
779 { "requestorId" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_requestorId },
780 { "requestorIdType" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_requestorIdType },
781 { "clientName" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_clientName },
782 { "clientNameType" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_clientNameType },
787 dissect_ulp_Notification(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
788 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
789 ett_ulp_Notification, Notification_sequence);
793 static int dissect_notification(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
794 return dissect_ulp_Notification(tvb, offset, actx, tree, hf_ulp_notification);
800 dissect_ulp_INTEGER_0_127(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
801 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
802 0U, 127U, NULL, FALSE);
806 static int dissect_uncertaintySemiMajor(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
807 return dissect_ulp_INTEGER_0_127(tvb, offset, actx, tree, hf_ulp_uncertaintySemiMajor);
809 static int dissect_uncertaintySemiMinor(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
810 return dissect_ulp_INTEGER_0_127(tvb, offset, actx, tree, hf_ulp_uncertaintySemiMinor);
812 static int dissect_altUncertainty(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
813 return dissect_ulp_INTEGER_0_127(tvb, offset, actx, tree, hf_ulp_altUncertainty);
815 static int dissect_horacc(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
816 return dissect_ulp_INTEGER_0_127(tvb, offset, actx, tree, hf_ulp_horacc);
818 static int dissect_veracc(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
819 return dissect_ulp_INTEGER_0_127(tvb, offset, actx, tree, hf_ulp_veracc);
825 dissect_ulp_INTEGER_0_7(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
826 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
827 0U, 7U, NULL, FALSE);
831 static int dissect_delay(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
832 return dissect_ulp_INTEGER_0_7(tvb, offset, actx, tree, hf_ulp_delay);
836 static const per_sequence_t QoP_sequence[] = {
837 { "horacc" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_horacc },
838 { "veracc" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_veracc },
839 { "maxLocAge" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_maxLocAge },
840 { "delay" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_delay },
845 dissect_ulp_QoP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
846 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
847 ett_ulp_QoP, QoP_sequence);
851 static int dissect_qoP(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
852 return dissect_ulp_QoP(tvb, offset, actx, tree, hf_ulp_qoP);
856 static const value_string ulp_SLPMode_vals[] = {
864 dissect_ulp_SLPMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
865 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
866 2, NULL, FALSE, 0, NULL);
870 static int dissect_sLPMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
871 return dissect_ulp_SLPMode(tvb, offset, actx, tree, hf_ulp_sLPMode);
877 dissect_ulp_MAC(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
878 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
883 static int dissect_mAC(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
884 return dissect_ulp_MAC(tvb, offset, actx, tree, hf_ulp_mAC);
890 dissect_ulp_KeyIdentity(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
891 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
896 static int dissect_keyIdentity(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
897 return dissect_ulp_KeyIdentity(tvb, offset, actx, tree, hf_ulp_keyIdentity);
901 static const per_sequence_t SUPLINIT_sequence[] = {
902 { "posMethod" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_posMethod },
903 { "notification" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_notification },
904 { "sLPAddress" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sLPAddress },
905 { "qoP" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_qoP },
906 { "sLPMode" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sLPMode },
907 { "mAC" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_mAC },
908 { "keyIdentity" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_keyIdentity },
913 dissect_ulp_SUPLINIT(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
914 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
915 ett_ulp_SUPLINIT, SUPLINIT_sequence);
919 static int dissect_msSUPLINIT(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
920 return dissect_ulp_SUPLINIT(tvb, offset, actx, tree, hf_ulp_msSUPLINIT);
926 dissect_ulp_BOOLEAN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
927 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
931 static int dissect_almanacRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
932 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_almanacRequested);
934 static int dissect_utcModelRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
935 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_utcModelRequested);
937 static int dissect_ionosphericModelRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
938 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_ionosphericModelRequested);
940 static int dissect_dgpsCorrectionsRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
941 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_dgpsCorrectionsRequested);
943 static int dissect_referenceLocationRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
944 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_referenceLocationRequested);
946 static int dissect_referenceTimeRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
947 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_referenceTimeRequested);
949 static int dissect_acquisitionAssistanceRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
950 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_acquisitionAssistanceRequested);
952 static int dissect_realTimeIntegrityRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
953 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_realTimeIntegrityRequested);
955 static int dissect_navigationModelRequested(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
956 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_navigationModelRequested);
958 static int dissect_agpsSETassisted(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
959 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_agpsSETassisted);
961 static int dissect_agpsSETBased(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
962 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_agpsSETBased);
964 static int dissect_autonomousGPS(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
965 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_autonomousGPS);
967 static int dissect_aFLT(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
968 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_aFLT);
970 static int dissect_eCID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
971 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_eCID);
973 static int dissect_eOTD(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
974 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_eOTD);
976 static int dissect_oTDOA(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
977 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_oTDOA);
979 static int dissect_tia801(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
980 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_tia801);
982 static int dissect_rrlp(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
983 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_rrlp);
985 static int dissect_rrc(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
986 return dissect_ulp_BOOLEAN(tvb, offset, actx, tree, hf_ulp_rrc);
990 static const per_sequence_t PosTechnology_sequence[] = {
991 { "agpsSETassisted" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_agpsSETassisted },
992 { "agpsSETBased" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_agpsSETBased },
993 { "autonomousGPS" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_autonomousGPS },
994 { "aFLT" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_aFLT },
995 { "eCID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_eCID },
996 { "eOTD" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_eOTD },
997 { "oTDOA" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_oTDOA },
1002 dissect_ulp_PosTechnology(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1003 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1004 ett_ulp_PosTechnology, PosTechnology_sequence);
1008 static int dissect_posTechnology(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1009 return dissect_ulp_PosTechnology(tvb, offset, actx, tree, hf_ulp_posTechnology);
1013 static const value_string ulp_PrefMethod_vals[] = {
1014 { 0, "agpsSETassistedPreferred" },
1015 { 1, "agpsSETBasedPreferred" },
1016 { 2, "noPreference" },
1022 dissect_ulp_PrefMethod(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1023 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1024 3, NULL, FALSE, 0, NULL);
1028 static int dissect_prefMethod(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1029 return dissect_ulp_PrefMethod(tvb, offset, actx, tree, hf_ulp_prefMethod);
1033 static const per_sequence_t PosProtocol_sequence[] = {
1034 { "tia801" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tia801 },
1035 { "rrlp" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp },
1036 { "rrc" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrc },
1037 { NULL, 0, 0, NULL }
1041 dissect_ulp_PosProtocol(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1042 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1043 ett_ulp_PosProtocol, PosProtocol_sequence);
1047 static int dissect_posProtocol(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1048 return dissect_ulp_PosProtocol(tvb, offset, actx, tree, hf_ulp_posProtocol);
1052 static const per_sequence_t SETCapabilities_sequence[] = {
1053 { "posTechnology" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_posTechnology },
1054 { "prefMethod" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_prefMethod },
1055 { "posProtocol" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_posProtocol },
1056 { NULL, 0, 0, NULL }
1060 dissect_ulp_SETCapabilities(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1061 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1062 ett_ulp_SETCapabilities, SETCapabilities_sequence);
1066 static int dissect_sETCapabilities(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1067 return dissect_ulp_SETCapabilities(tvb, offset, actx, tree, hf_ulp_sETCapabilities);
1073 dissect_ulp_INTEGER_0_999(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1074 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1075 0U, 999U, NULL, FALSE);
1079 static int dissect_refMCC(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1080 return dissect_ulp_INTEGER_0_999(tvb, offset, actx, tree, hf_ulp_refMCC);
1082 static int dissect_refMNC(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1083 return dissect_ulp_INTEGER_0_999(tvb, offset, actx, tree, hf_ulp_refMNC);
1089 dissect_ulp_INTEGER_0_1023(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1090 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1091 0U, 1023U, NULL, FALSE);
1095 static int dissect_aRFCN(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1096 return dissect_ulp_INTEGER_0_1023(tvb, offset, actx, tree, hf_ulp_aRFCN);
1098 static int dissect_gpsWeek(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1099 return dissect_ulp_INTEGER_0_1023(tvb, offset, actx, tree, hf_ulp_gpsWeek);
1105 dissect_ulp_INTEGER_0_63(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1106 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1107 0U, 63U, NULL, FALSE);
1111 static int dissect_bSIC(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1112 return dissect_ulp_INTEGER_0_63(tvb, offset, actx, tree, hf_ulp_bSIC);
1114 static int dissect_rxLev(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1115 return dissect_ulp_INTEGER_0_63(tvb, offset, actx, tree, hf_ulp_rxLev);
1117 static int dissect_satId(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1118 return dissect_ulp_INTEGER_0_63(tvb, offset, actx, tree, hf_ulp_satId);
1122 static const per_sequence_t NMRelement_sequence[] = {
1123 { "aRFCN" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_aRFCN },
1124 { "bSIC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_bSIC },
1125 { "rxLev" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rxLev },
1126 { NULL, 0, 0, NULL }
1130 dissect_ulp_NMRelement(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1131 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1132 ett_ulp_NMRelement, NMRelement_sequence);
1136 static int dissect_NMR_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1137 return dissect_ulp_NMRelement(tvb, offset, actx, tree, hf_ulp_NMR_item);
1141 static const per_sequence_t NMR_sequence_of[1] = {
1142 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_NMR_item },
1146 dissect_ulp_NMR(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1147 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1148 ett_ulp_NMR, NMR_sequence_of,
1153 static int dissect_nMR(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1154 return dissect_ulp_NMR(tvb, offset, actx, tree, hf_ulp_nMR);
1158 static const per_sequence_t GsmCellInformation_sequence[] = {
1159 { "refMCC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refMCC },
1160 { "refMNC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refMNC },
1161 { "refLAC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refLAC },
1162 { "refCI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refCI },
1163 { "nMR" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nMR },
1164 { "tA" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_tA },
1165 { NULL, 0, 0, NULL }
1169 dissect_ulp_GsmCellInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1170 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1171 ett_ulp_GsmCellInformation, GsmCellInformation_sequence);
1175 static int dissect_gsmCell(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1176 return dissect_ulp_GsmCellInformation(tvb, offset, actx, tree, hf_ulp_gsmCell);
1182 dissect_ulp_INTEGER_0_268435455(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1183 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1184 0U, 268435455U, NULL, FALSE);
1188 static int dissect_refUC(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1189 return dissect_ulp_INTEGER_0_268435455(tvb, offset, actx, tree, hf_ulp_refUC);
1191 static int dissect_cellIdentity(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1192 return dissect_ulp_INTEGER_0_268435455(tvb, offset, actx, tree, hf_ulp_cellIdentity);
1198 dissect_ulp_UARFCN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1199 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1200 0U, 16383U, NULL, FALSE);
1204 static int dissect_uarfcn_UL(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1205 return dissect_ulp_UARFCN(tvb, offset, actx, tree, hf_ulp_uarfcn_UL);
1207 static int dissect_uarfcn_DL(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1208 return dissect_ulp_UARFCN(tvb, offset, actx, tree, hf_ulp_uarfcn_DL);
1210 static int dissect_uarfcn_Nt(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1211 return dissect_ulp_UARFCN(tvb, offset, actx, tree, hf_ulp_uarfcn_Nt);
1215 static const per_sequence_t FrequencyInfoFDD_sequence[] = {
1216 { "uarfcn-UL" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uarfcn_UL },
1217 { "uarfcn-DL" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uarfcn_DL },
1218 { NULL, 0, 0, NULL }
1222 dissect_ulp_FrequencyInfoFDD(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1223 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1224 ett_ulp_FrequencyInfoFDD, FrequencyInfoFDD_sequence);
1228 static int dissect_fdd(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1229 return dissect_ulp_FrequencyInfoFDD(tvb, offset, actx, tree, hf_ulp_fdd);
1233 static const per_sequence_t FrequencyInfoTDD_sequence[] = {
1234 { "uarfcn-Nt" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uarfcn_Nt },
1235 { NULL, 0, 0, NULL }
1239 dissect_ulp_FrequencyInfoTDD(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1240 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1241 ett_ulp_FrequencyInfoTDD, FrequencyInfoTDD_sequence);
1245 static int dissect_tdd(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1246 return dissect_ulp_FrequencyInfoTDD(tvb, offset, actx, tree, hf_ulp_tdd);
1250 static const value_string ulp_T_modeSpecificInfo_vals[] = {
1256 static const per_choice_t T_modeSpecificInfo_choice[] = {
1257 { 0, "fdd" , ASN1_EXTENSION_ROOT , dissect_fdd },
1258 { 1, "tdd" , ASN1_EXTENSION_ROOT , dissect_tdd },
1259 { 0, NULL, 0, NULL }
1263 dissect_ulp_T_modeSpecificInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1264 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1265 ett_ulp_T_modeSpecificInfo, T_modeSpecificInfo_choice,
1270 static int dissect_modeSpecificInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1271 return dissect_ulp_T_modeSpecificInfo(tvb, offset, actx, tree, hf_ulp_modeSpecificInfo);
1275 static const per_sequence_t FrequencyInfo_sequence[] = {
1276 { "modeSpecificInfo" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_modeSpecificInfo },
1277 { NULL, 0, 0, NULL }
1281 dissect_ulp_FrequencyInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1282 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1283 ett_ulp_FrequencyInfo, FrequencyInfo_sequence);
1287 static int dissect_frequencyInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1288 return dissect_ulp_FrequencyInfo(tvb, offset, actx, tree, hf_ulp_frequencyInfo);
1294 dissect_ulp_INTEGER_0_511(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1295 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1296 0U, 511U, NULL, FALSE);
1300 static int dissect_refREFPN(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1301 return dissect_ulp_INTEGER_0_511(tvb, offset, actx, tree, hf_ulp_refREFPN);
1303 static int dissect_primaryScramblingCode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1304 return dissect_ulp_INTEGER_0_511(tvb, offset, actx, tree, hf_ulp_primaryScramblingCode);
1310 dissect_ulp_UTRA_CarrierRSSI(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1311 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1312 0U, 127U, NULL, FALSE);
1316 static int dissect_utra_CarrierRSSI(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1317 return dissect_ulp_UTRA_CarrierRSSI(tvb, offset, actx, tree, hf_ulp_utra_CarrierRSSI);
1321 static const per_sequence_t PrimaryCPICH_Info_sequence[] = {
1322 { "primaryScramblingCode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_primaryScramblingCode },
1323 { NULL, 0, 0, NULL }
1327 dissect_ulp_PrimaryCPICH_Info(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1328 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1329 ett_ulp_PrimaryCPICH_Info, PrimaryCPICH_Info_sequence);
1333 static int dissect_primaryCPICH_Info(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1334 return dissect_ulp_PrimaryCPICH_Info(tvb, offset, actx, tree, hf_ulp_primaryCPICH_Info);
1340 dissect_ulp_CPICH_Ec_N0(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1341 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1342 0U, 63U, NULL, FALSE);
1346 static int dissect_cpich_Ec_N0(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1347 return dissect_ulp_CPICH_Ec_N0(tvb, offset, actx, tree, hf_ulp_cpich_Ec_N0);
1353 dissect_ulp_CPICH_RSCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1354 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1355 0U, 127U, NULL, FALSE);
1359 static int dissect_cpich_RSCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1360 return dissect_ulp_CPICH_RSCP(tvb, offset, actx, tree, hf_ulp_cpich_RSCP);
1366 dissect_ulp_Pathloss(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1367 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1368 46U, 173U, NULL, FALSE);
1372 static int dissect_pathloss(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1373 return dissect_ulp_Pathloss(tvb, offset, actx, tree, hf_ulp_pathloss);
1377 static const per_sequence_t T_fdd_sequence[] = {
1378 { "primaryCPICH-Info" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_primaryCPICH_Info },
1379 { "cpich-Ec-N0" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_cpich_Ec_N0 },
1380 { "cpich-RSCP" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_cpich_RSCP },
1381 { "pathloss" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_pathloss },
1382 { NULL, 0, 0, NULL }
1386 dissect_ulp_T_fdd(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1387 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1388 ett_ulp_T_fdd, T_fdd_sequence);
1392 static int dissect_fdd1(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1393 return dissect_ulp_T_fdd(tvb, offset, actx, tree, hf_ulp_fdd1);
1399 dissect_ulp_CellParametersID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1400 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1401 0U, 127U, NULL, FALSE);
1405 static int dissect_cellParametersID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1406 return dissect_ulp_CellParametersID(tvb, offset, actx, tree, hf_ulp_cellParametersID);
1412 dissect_ulp_TGSN(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1413 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1414 0U, 14U, NULL, FALSE);
1418 static int dissect_proposedTGSN(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1419 return dissect_ulp_TGSN(tvb, offset, actx, tree, hf_ulp_proposedTGSN);
1425 dissect_ulp_PrimaryCCPCH_RSCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1426 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1427 0U, 127U, NULL, FALSE);
1431 static int dissect_primaryCCPCH_RSCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1432 return dissect_ulp_PrimaryCCPCH_RSCP(tvb, offset, actx, tree, hf_ulp_primaryCCPCH_RSCP);
1438 dissect_ulp_TimeslotISCP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1439 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1440 0U, 127U, NULL, FALSE);
1444 static int dissect_TimeslotISCP_List_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1445 return dissect_ulp_TimeslotISCP(tvb, offset, actx, tree, hf_ulp_TimeslotISCP_List_item);
1449 static const per_sequence_t TimeslotISCP_List_sequence_of[1] = {
1450 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_TimeslotISCP_List_item },
1454 dissect_ulp_TimeslotISCP_List(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1455 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1456 ett_ulp_TimeslotISCP_List, TimeslotISCP_List_sequence_of,
1461 static int dissect_timeslotISCP_List(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1462 return dissect_ulp_TimeslotISCP_List(tvb, offset, actx, tree, hf_ulp_timeslotISCP_List);
1466 static const per_sequence_t T_tdd_sequence[] = {
1467 { "cellParametersID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_cellParametersID },
1468 { "proposedTGSN" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_proposedTGSN },
1469 { "primaryCCPCH-RSCP" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_primaryCCPCH_RSCP },
1470 { "pathloss" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_pathloss },
1471 { "timeslotISCP-List" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_timeslotISCP_List },
1472 { NULL, 0, 0, NULL }
1476 dissect_ulp_T_tdd(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1477 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1478 ett_ulp_T_tdd, T_tdd_sequence);
1482 static int dissect_tdd1(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1483 return dissect_ulp_T_tdd(tvb, offset, actx, tree, hf_ulp_tdd1);
1487 static const value_string ulp_T_modeSpecificInfo1_vals[] = {
1493 static const per_choice_t T_modeSpecificInfo1_choice[] = {
1494 { 0, "fdd" , ASN1_NO_EXTENSIONS , dissect_fdd1 },
1495 { 1, "tdd" , ASN1_NO_EXTENSIONS , dissect_tdd1 },
1496 { 0, NULL, 0, NULL }
1500 dissect_ulp_T_modeSpecificInfo1(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1501 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1502 ett_ulp_T_modeSpecificInfo1, T_modeSpecificInfo1_choice,
1507 static int dissect_modeSpecificInfo1(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1508 return dissect_ulp_T_modeSpecificInfo1(tvb, offset, actx, tree, hf_ulp_modeSpecificInfo1);
1512 static const per_sequence_t CellMeasuredResults_sequence[] = {
1513 { "cellIdentity" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_cellIdentity },
1514 { "modeSpecificInfo" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_modeSpecificInfo1 },
1515 { NULL, 0, 0, NULL }
1519 dissect_ulp_CellMeasuredResults(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1520 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1521 ett_ulp_CellMeasuredResults, CellMeasuredResults_sequence);
1525 static int dissect_CellMeasuredResultsList_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1526 return dissect_ulp_CellMeasuredResults(tvb, offset, actx, tree, hf_ulp_CellMeasuredResultsList_item);
1530 static const per_sequence_t CellMeasuredResultsList_sequence_of[1] = {
1531 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_CellMeasuredResultsList_item },
1535 dissect_ulp_CellMeasuredResultsList(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1536 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1537 ett_ulp_CellMeasuredResultsList, CellMeasuredResultsList_sequence_of,
1542 static int dissect_cellMeasuredResultsList(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1543 return dissect_ulp_CellMeasuredResultsList(tvb, offset, actx, tree, hf_ulp_cellMeasuredResultsList);
1547 static const per_sequence_t MeasuredResults_sequence[] = {
1548 { "frequencyInfo" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_frequencyInfo },
1549 { "utra-CarrierRSSI" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_utra_CarrierRSSI },
1550 { "cellMeasuredResultsList" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_cellMeasuredResultsList },
1551 { NULL, 0, 0, NULL }
1555 dissect_ulp_MeasuredResults(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1556 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1557 ett_ulp_MeasuredResults, MeasuredResults_sequence);
1561 static int dissect_MeasuredResultsList_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1562 return dissect_ulp_MeasuredResults(tvb, offset, actx, tree, hf_ulp_MeasuredResultsList_item);
1566 static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
1567 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_MeasuredResultsList_item },
1571 dissect_ulp_MeasuredResultsList(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1572 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1573 ett_ulp_MeasuredResultsList, MeasuredResultsList_sequence_of,
1578 static int dissect_measuredResultsList(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1579 return dissect_ulp_MeasuredResultsList(tvb, offset, actx, tree, hf_ulp_measuredResultsList);
1583 static const per_sequence_t WcdmaCellInformation_sequence[] = {
1584 { "refMCC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refMCC },
1585 { "refMNC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refMNC },
1586 { "refUC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refUC },
1587 { "frequencyInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_frequencyInfo },
1588 { "primaryScramblingCode" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_primaryScramblingCode },
1589 { "measuredResultsList" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_measuredResultsList },
1590 { NULL, 0, 0, NULL }
1594 dissect_ulp_WcdmaCellInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1595 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1596 ett_ulp_WcdmaCellInformation, WcdmaCellInformation_sequence);
1600 static int dissect_wcdmaCell(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1601 return dissect_ulp_WcdmaCellInformation(tvb, offset, actx, tree, hf_ulp_wcdmaCell);
1607 dissect_ulp_INTEGER_0_32767(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1608 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1609 0U, 32767U, NULL, FALSE);
1613 static int dissect_altitude(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1614 return dissect_ulp_INTEGER_0_32767(tvb, offset, actx, tree, hf_ulp_altitude);
1616 static int dissect_refSID(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1617 return dissect_ulp_INTEGER_0_32767(tvb, offset, actx, tree, hf_ulp_refSID);
1623 dissect_ulp_INTEGER_0_4194303(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1624 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1625 0U, 4194303U, NULL, FALSE);
1629 static int dissect_refBASELAT(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1630 return dissect_ulp_INTEGER_0_4194303(tvb, offset, actx, tree, hf_ulp_refBASELAT);
1632 static int dissect_refSeconds(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1633 return dissect_ulp_INTEGER_0_4194303(tvb, offset, actx, tree, hf_ulp_refSeconds);
1639 dissect_ulp_INTEGER_0_8388607(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1640 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1641 0U, 8388607U, NULL, FALSE);
1645 static int dissect_latitude(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1646 return dissect_ulp_INTEGER_0_8388607(tvb, offset, actx, tree, hf_ulp_latitude);
1648 static int dissect_reBASELONG(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1649 return dissect_ulp_INTEGER_0_8388607(tvb, offset, actx, tree, hf_ulp_reBASELONG);
1653 static const per_sequence_t CdmaCellInformation_sequence[] = {
1654 { "refNID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refNID },
1655 { "refSID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refSID },
1656 { "refBASEID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refBASEID },
1657 { "refBASELAT" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refBASELAT },
1658 { "reBASELONG" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_reBASELONG },
1659 { "refREFPN" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refREFPN },
1660 { "refWeekNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refWeekNumber },
1661 { "refSeconds" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_refSeconds },
1662 { NULL, 0, 0, NULL }
1666 dissect_ulp_CdmaCellInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1667 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1668 ett_ulp_CdmaCellInformation, CdmaCellInformation_sequence);
1672 static int dissect_cdmaCell(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1673 return dissect_ulp_CdmaCellInformation(tvb, offset, actx, tree, hf_ulp_cdmaCell);
1677 static const value_string ulp_CellInfo_vals[] = {
1684 static const per_choice_t CellInfo_choice[] = {
1685 { 0, "gsmCell" , ASN1_EXTENSION_ROOT , dissect_gsmCell },
1686 { 1, "wcdmaCell" , ASN1_EXTENSION_ROOT , dissect_wcdmaCell },
1687 { 2, "cdmaCell" , ASN1_EXTENSION_ROOT , dissect_cdmaCell },
1688 { 0, NULL, 0, NULL }
1692 dissect_ulp_CellInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1693 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1694 ett_ulp_CellInfo, CellInfo_choice,
1699 static int dissect_cellInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1700 return dissect_ulp_CellInfo(tvb, offset, actx, tree, hf_ulp_cellInfo);
1704 static const value_string ulp_Status_vals[] = {
1713 dissect_ulp_Status(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1714 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1715 3, NULL, TRUE, 0, NULL);
1719 static int dissect_status(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1720 return dissect_ulp_Status(tvb, offset, actx, tree, hf_ulp_status);
1724 static const per_sequence_t LocationId_sequence[] = {
1725 { "cellInfo" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cellInfo },
1726 { "status" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_status },
1727 { NULL, 0, 0, NULL }
1731 dissect_ulp_LocationId(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1732 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1733 ett_ulp_LocationId, LocationId_sequence);
1737 static int dissect_locationId(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1738 return dissect_ulp_LocationId(tvb, offset, actx, tree, hf_ulp_locationId);
1742 static const per_sequence_t SUPLSTART_sequence[] = {
1743 { "sETCapabilities" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sETCapabilities },
1744 { "locationId" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_locationId },
1745 { "qoP" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_qoP },
1746 { NULL, 0, 0, NULL }
1750 dissect_ulp_SUPLSTART(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1751 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1752 ett_ulp_SUPLSTART, SUPLSTART_sequence);
1756 static int dissect_msSUPLSTART(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1757 return dissect_ulp_SUPLSTART(tvb, offset, actx, tree, hf_ulp_msSUPLSTART);
1763 dissect_ulp_BIT_STRING_SIZE_128(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1764 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1769 static int dissect_shortKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1770 return dissect_ulp_BIT_STRING_SIZE_128(tvb, offset, actx, tree, hf_ulp_shortKey);
1776 dissect_ulp_BIT_STRING_SIZE_256(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1777 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1782 static int dissect_longKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1783 return dissect_ulp_BIT_STRING_SIZE_256(tvb, offset, actx, tree, hf_ulp_longKey);
1787 static const value_string ulp_SETAuthKey_vals[] = {
1793 static const per_choice_t SETAuthKey_choice[] = {
1794 { 0, "shortKey" , ASN1_EXTENSION_ROOT , dissect_shortKey },
1795 { 1, "longKey" , ASN1_EXTENSION_ROOT , dissect_longKey },
1796 { 0, NULL, 0, NULL }
1800 dissect_ulp_SETAuthKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1801 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1802 ett_ulp_SETAuthKey, SETAuthKey_choice,
1807 static int dissect_sETAuthKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1808 return dissect_ulp_SETAuthKey(tvb, offset, actx, tree, hf_ulp_sETAuthKey);
1814 dissect_ulp_KeyIdentity4(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1815 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1820 static int dissect_keyIdentity4(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1821 return dissect_ulp_KeyIdentity4(tvb, offset, actx, tree, hf_ulp_keyIdentity4);
1825 static const per_sequence_t SUPLRESPONSE_sequence[] = {
1826 { "posMethod" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_posMethod },
1827 { "sLPAddress" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sLPAddress },
1828 { "sETAuthKey" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sETAuthKey },
1829 { "keyIdentity4" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_keyIdentity4 },
1830 { NULL, 0, 0, NULL }
1834 dissect_ulp_SUPLRESPONSE(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1835 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1836 ett_ulp_SUPLRESPONSE, SUPLRESPONSE_sequence);
1840 static int dissect_msSUPLRESPONSE(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1841 return dissect_ulp_SUPLRESPONSE(tvb, offset, actx, tree, hf_ulp_msSUPLRESPONSE);
1847 dissect_ulp_INTEGER_0_167(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1848 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1849 0U, 167U, NULL, FALSE);
1853 static int dissect_gpsToe(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1854 return dissect_ulp_INTEGER_0_167(tvb, offset, actx, tree, hf_ulp_gpsToe);
1860 dissect_ulp_INTEGER_0_31(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1861 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1862 0U, 31U, NULL, FALSE);
1866 static int dissect_nSAT(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1867 return dissect_ulp_INTEGER_0_31(tvb, offset, actx, tree, hf_ulp_nSAT);
1873 dissect_ulp_INTEGER_0_10(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1874 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1875 0U, 10U, NULL, FALSE);
1879 static int dissect_toeLimit(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1880 return dissect_ulp_INTEGER_0_10(tvb, offset, actx, tree, hf_ulp_toeLimit);
1884 static const per_sequence_t SatelliteInfoElement_sequence[] = {
1885 { "satId" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_satId },
1886 { "iODE" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iODE },
1887 { NULL, 0, 0, NULL }
1891 dissect_ulp_SatelliteInfoElement(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1892 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1893 ett_ulp_SatelliteInfoElement, SatelliteInfoElement_sequence);
1897 static int dissect_SatelliteInfo_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1898 return dissect_ulp_SatelliteInfoElement(tvb, offset, actx, tree, hf_ulp_SatelliteInfo_item);
1902 static const per_sequence_t SatelliteInfo_sequence_of[1] = {
1903 { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SatelliteInfo_item },
1907 dissect_ulp_SatelliteInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1908 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1909 ett_ulp_SatelliteInfo, SatelliteInfo_sequence_of,
1914 static int dissect_satInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1915 return dissect_ulp_SatelliteInfo(tvb, offset, actx, tree, hf_ulp_satInfo);
1919 static const per_sequence_t NavigationModel_sequence[] = {
1920 { "gpsWeek" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_gpsWeek },
1921 { "gpsToe" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_gpsToe },
1922 { "nSAT" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nSAT },
1923 { "toeLimit" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_toeLimit },
1924 { "satInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_satInfo },
1925 { NULL, 0, 0, NULL }
1929 dissect_ulp_NavigationModel(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_NavigationModel, NavigationModel_sequence);
1935 static int dissect_navigationModelData(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1936 return dissect_ulp_NavigationModel(tvb, offset, actx, tree, hf_ulp_navigationModelData);
1940 static const per_sequence_t RequestedAssistData_sequence[] = {
1941 { "almanacRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_almanacRequested },
1942 { "utcModelRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_utcModelRequested },
1943 { "ionosphericModelRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ionosphericModelRequested },
1944 { "dgpsCorrectionsRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_dgpsCorrectionsRequested },
1945 { "referenceLocationRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_referenceLocationRequested },
1946 { "referenceTimeRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_referenceTimeRequested },
1947 { "acquisitionAssistanceRequested", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_acquisitionAssistanceRequested },
1948 { "realTimeIntegrityRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_realTimeIntegrityRequested },
1949 { "navigationModelRequested" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_navigationModelRequested },
1950 { "navigationModelData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_navigationModelData },
1951 { NULL, 0, 0, NULL }
1955 dissect_ulp_RequestedAssistData(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1956 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1957 ett_ulp_RequestedAssistData, RequestedAssistData_sequence);
1961 static int dissect_requestedAssistData(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1962 return dissect_ulp_RequestedAssistData(tvb, offset, actx, tree, hf_ulp_requestedAssistData);
1968 dissect_ulp_UTCTime(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1969 offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
1970 NO_BOUND, NO_BOUND);
1974 static int dissect_timestamp(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1975 return dissect_ulp_UTCTime(tvb, offset, actx, tree, hf_ulp_timestamp);
1979 static const value_string ulp_T_latitudeSign_vals[] = {
1987 dissect_ulp_T_latitudeSign(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1988 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1989 2, NULL, FALSE, 0, NULL);
1993 static int dissect_latitudeSign(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
1994 return dissect_ulp_T_latitudeSign(tvb, offset, actx, tree, hf_ulp_latitudeSign);
2000 dissect_ulp_INTEGER_M8388608_8388607(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2001 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2002 -8388608, 8388607U, NULL, FALSE);
2006 static int dissect_longitude(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2007 return dissect_ulp_INTEGER_M8388608_8388607(tvb, offset, actx, tree, hf_ulp_longitude);
2013 dissect_ulp_INTEGER_0_180(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2014 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2015 0U, 180U, NULL, FALSE);
2019 static int dissect_orientationMajorAxis(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2020 return dissect_ulp_INTEGER_0_180(tvb, offset, actx, tree, hf_ulp_orientationMajorAxis);
2024 static const per_sequence_t T_uncertainty_sequence[] = {
2025 { "uncertaintySemiMajor" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_uncertaintySemiMajor },
2026 { "uncertaintySemiMinor" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_uncertaintySemiMinor },
2027 { "orientationMajorAxis" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_orientationMajorAxis },
2028 { NULL, 0, 0, NULL }
2032 dissect_ulp_T_uncertainty(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2033 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2034 ett_ulp_T_uncertainty, T_uncertainty_sequence);
2038 static int dissect_uncertainty(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2039 return dissect_ulp_T_uncertainty(tvb, offset, actx, tree, hf_ulp_uncertainty);
2045 dissect_ulp_INTEGER_0_100(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2046 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2047 0U, 100U, NULL, FALSE);
2051 static int dissect_confidence(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2052 return dissect_ulp_INTEGER_0_100(tvb, offset, actx, tree, hf_ulp_confidence);
2056 static const value_string ulp_T_altitudeDirection_vals[] = {
2064 dissect_ulp_T_altitudeDirection(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2065 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2066 2, NULL, FALSE, 0, NULL);
2070 static int dissect_altitudeDirection(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2071 return dissect_ulp_T_altitudeDirection(tvb, offset, actx, tree, hf_ulp_altitudeDirection);
2075 static const per_sequence_t AltitudeInfo_sequence[] = {
2076 { "altitudeDirection" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altitudeDirection },
2077 { "altitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altitude },
2078 { "altUncertainty" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altUncertainty },
2079 { NULL, 0, 0, NULL }
2083 dissect_ulp_AltitudeInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2084 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2085 ett_ulp_AltitudeInfo, AltitudeInfo_sequence);
2089 static int dissect_altitudeInfo(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2090 return dissect_ulp_AltitudeInfo(tvb, offset, actx, tree, hf_ulp_altitudeInfo);
2094 static const per_sequence_t PositionEstimate_sequence[] = {
2095 { "latitudeSign" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_latitudeSign },
2096 { "latitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_latitude },
2097 { "longitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_longitude },
2098 { "uncertainty" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uncertainty },
2099 { "confidence" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_confidence },
2100 { "altitudeInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_altitudeInfo },
2101 { NULL, 0, 0, NULL }
2105 dissect_ulp_PositionEstimate(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2106 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2107 ett_ulp_PositionEstimate, PositionEstimate_sequence);
2111 static int dissect_positionEstimate(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2112 return dissect_ulp_PositionEstimate(tvb, offset, actx, tree, hf_ulp_positionEstimate);
2118 dissect_ulp_BIT_STRING_SIZE_9(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2119 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2124 static int dissect_bearing(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2125 return dissect_ulp_BIT_STRING_SIZE_9(tvb, offset, actx, tree, hf_ulp_bearing);
2131 dissect_ulp_BIT_STRING_SIZE_16(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2132 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2137 static int dissect_horspeed(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2138 return dissect_ulp_BIT_STRING_SIZE_16(tvb, offset, actx, tree, hf_ulp_horspeed);
2142 static const per_sequence_t Horvel_sequence[] = {
2143 { "bearing" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_bearing },
2144 { "horspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_horspeed },
2145 { NULL, 0, 0, NULL }
2149 dissect_ulp_Horvel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2150 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2151 ett_ulp_Horvel, Horvel_sequence);
2155 static int dissect_horvel(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2156 return dissect_ulp_Horvel(tvb, offset, actx, tree, hf_ulp_horvel);
2162 dissect_ulp_BIT_STRING_SIZE_1(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2163 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2168 static int dissect_verdirect(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2169 return dissect_ulp_BIT_STRING_SIZE_1(tvb, offset, actx, tree, hf_ulp_verdirect);
2175 dissect_ulp_BIT_STRING_SIZE_8(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2176 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2181 static int dissect_verspeed(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2182 return dissect_ulp_BIT_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_verspeed);
2184 static int dissect_uncertspeed(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2185 return dissect_ulp_BIT_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_uncertspeed);
2187 static int dissect_horuncertspeed(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2188 return dissect_ulp_BIT_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_horuncertspeed);
2190 static int dissect_veruncertspeed(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2191 return dissect_ulp_BIT_STRING_SIZE_8(tvb, offset, actx, tree, hf_ulp_veruncertspeed);
2195 static const per_sequence_t Horandvervel_sequence[] = {
2196 { "verdirect" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_verdirect },
2197 { "bearing" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_bearing },
2198 { "horspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_horspeed },
2199 { "verspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_verspeed },
2200 { NULL, 0, 0, NULL }
2204 dissect_ulp_Horandvervel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2205 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2206 ett_ulp_Horandvervel, Horandvervel_sequence);
2210 static int dissect_horandvervel(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2211 return dissect_ulp_Horandvervel(tvb, offset, actx, tree, hf_ulp_horandvervel);
2215 static const per_sequence_t Horveluncert_sequence[] = {
2216 { "bearing" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_bearing },
2217 { "horspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_horspeed },
2218 { "uncertspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertspeed },
2219 { NULL, 0, 0, NULL }
2223 dissect_ulp_Horveluncert(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2224 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2225 ett_ulp_Horveluncert, Horveluncert_sequence);
2229 static int dissect_horveluncert(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2230 return dissect_ulp_Horveluncert(tvb, offset, actx, tree, hf_ulp_horveluncert);
2234 static const per_sequence_t Horandveruncert_sequence[] = {
2235 { "verdirect" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_verdirect },
2236 { "bearing" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_bearing },
2237 { "horspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_horspeed },
2238 { "verspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_verspeed },
2239 { "horuncertspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_horuncertspeed },
2240 { "veruncertspeed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_veruncertspeed },
2241 { NULL, 0, 0, NULL }
2245 dissect_ulp_Horandveruncert(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2246 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2247 ett_ulp_Horandveruncert, Horandveruncert_sequence);
2251 static int dissect_horandveruncert(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2252 return dissect_ulp_Horandveruncert(tvb, offset, actx, tree, hf_ulp_horandveruncert);
2256 static const value_string ulp_Velocity_vals[] = {
2258 { 1, "horandvervel" },
2259 { 2, "horveluncert" },
2260 { 3, "horandveruncert" },
2264 static const per_choice_t Velocity_choice[] = {
2265 { 0, "horvel" , ASN1_EXTENSION_ROOT , dissect_horvel },
2266 { 1, "horandvervel" , ASN1_EXTENSION_ROOT , dissect_horandvervel },
2267 { 2, "horveluncert" , ASN1_EXTENSION_ROOT , dissect_horveluncert },
2268 { 3, "horandveruncert" , ASN1_EXTENSION_ROOT , dissect_horandveruncert },
2269 { 0, NULL, 0, NULL }
2273 dissect_ulp_Velocity(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2274 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2275 ett_ulp_Velocity, Velocity_choice,
2280 static int dissect_velocity(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2281 return dissect_ulp_Velocity(tvb, offset, actx, tree, hf_ulp_velocity);
2285 static const per_sequence_t Position_sequence[] = {
2286 { "timestamp" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_timestamp },
2287 { "positionEstimate" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_positionEstimate },
2288 { "velocity" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_velocity },
2289 { NULL, 0, 0, NULL }
2293 dissect_ulp_Position(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2294 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2295 ett_ulp_Position, Position_sequence);
2299 static int dissect_position(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2300 return dissect_ulp_Position(tvb, offset, actx, tree, hf_ulp_position);
2306 dissect_ulp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2307 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2312 static int dissect_tia801payload(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2313 return dissect_ulp_OCTET_STRING_SIZE_1_8192(tvb, offset, actx, tree, hf_ulp_tia801payload);
2315 static int dissect_rrcPayload(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2316 return dissect_ulp_OCTET_STRING_SIZE_1_8192(tvb, offset, actx, tree, hf_ulp_rrcPayload);
2322 dissect_ulp_RRLPPayload(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2326 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2327 1, 8192, &rrlp_tvb);
2331 call_dissector(rrlp_handle, rrlp_tvb, actx->pinfo, tree);
2337 static int dissect_rrlpPayload(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2338 return dissect_ulp_RRLPPayload(tvb, offset, actx, tree, hf_ulp_rrlpPayload);
2342 static const value_string ulp_PosPayLoad_vals[] = {
2343 { 0, "tia801payload" },
2344 { 1, "rrcPayload" },
2345 { 2, "rrlpPayload" },
2349 static const per_choice_t PosPayLoad_choice[] = {
2350 { 0, "tia801payload" , ASN1_EXTENSION_ROOT , dissect_tia801payload },
2351 { 1, "rrcPayload" , ASN1_EXTENSION_ROOT , dissect_rrcPayload },
2352 { 2, "rrlpPayload" , ASN1_EXTENSION_ROOT , dissect_rrlpPayload },
2353 { 0, NULL, 0, NULL }
2357 dissect_ulp_PosPayLoad(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2358 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2359 ett_ulp_PosPayLoad, PosPayLoad_choice,
2364 static int dissect_posPayLoad(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2365 return dissect_ulp_PosPayLoad(tvb, offset, actx, tree, hf_ulp_posPayLoad);
2369 static const per_sequence_t SUPLPOS_sequence[] = {
2370 { "posPayLoad" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_posPayLoad },
2371 { "velocity" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_velocity },
2372 { NULL, 0, 0, NULL }
2376 dissect_ulp_SUPLPOS(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2377 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2378 ett_ulp_SUPLPOS, SUPLPOS_sequence);
2382 static int dissect_msSUPLPOS(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2383 return dissect_ulp_SUPLPOS(tvb, offset, actx, tree, hf_ulp_msSUPLPOS);
2385 static int dissect_sUPLPOS(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2386 return dissect_ulp_SUPLPOS(tvb, offset, actx, tree, hf_ulp_sUPLPOS);
2392 dissect_ulp_Ver(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2393 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2398 static int dissect_ver(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2399 return dissect_ulp_Ver(tvb, offset, actx, tree, hf_ulp_ver);
2403 static const per_sequence_t SUPLPOSINIT_sequence[] = {
2404 { "sETCapabilities" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sETCapabilities },
2405 { "requestedAssistData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_requestedAssistData },
2406 { "locationId" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_locationId },
2407 { "position" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_position },
2408 { "sUPLPOS" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sUPLPOS },
2409 { "ver" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ver },
2410 { NULL, 0, 0, NULL }
2414 dissect_ulp_SUPLPOSINIT(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2415 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2416 ett_ulp_SUPLPOSINIT, SUPLPOSINIT_sequence);
2420 static int dissect_msSUPLPOSINIT(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2421 return dissect_ulp_SUPLPOSINIT(tvb, offset, actx, tree, hf_ulp_msSUPLPOSINIT);
2425 static const value_string ulp_StatusCode_vals[] = {
2426 { 0, "unspecified" },
2427 { 1, "systemFailure" },
2428 { 2, "unexpectedMessage" },
2429 { 3, "protocolError" },
2430 { 4, "dataMissing" },
2431 { 5, "unexpectedDataValue" },
2432 { 6, "posMethodFailure" },
2433 { 7, "posMethodMismatch" },
2434 { 8, "posProtocolMismatch" },
2435 { 9, "targetSETnotReachable" },
2436 { 10, "versionNotSupported" },
2437 { 11, "resourceShortage" },
2438 { 12, "invalidSessionId" },
2439 { 13, "nonProxyModeNotSupported" },
2440 { 14, "proxyModeNotSupported" },
2441 { 15, "positioningNotPermitted" },
2442 { 16, "authNetFailure" },
2443 { 17, "authSuplinitFailure" },
2444 { 100, "consentDeniedByUser" },
2445 { 101, "consentGrantedByUser" },
2449 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};
2452 dissect_ulp_StatusCode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2453 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2454 20, NULL, TRUE, 0, StatusCode_value_map);
2458 static int dissect_statusCode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2459 return dissect_ulp_StatusCode(tvb, offset, actx, tree, hf_ulp_statusCode);
2463 static const per_sequence_t SUPLEND_sequence[] = {
2464 { "position" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_position },
2465 { "statusCode" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_statusCode },
2466 { "ver" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ver },
2467 { NULL, 0, 0, NULL }
2471 dissect_ulp_SUPLEND(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2472 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2473 ett_ulp_SUPLEND, SUPLEND_sequence);
2477 static int dissect_msSUPLEND(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2478 return dissect_ulp_SUPLEND(tvb, offset, actx, tree, hf_ulp_msSUPLEND);
2484 dissect_ulp_SETNonce(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2485 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2490 static int dissect_sETNonce(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2491 return dissect_ulp_SETNonce(tvb, offset, actx, tree, hf_ulp_sETNonce);
2497 dissect_ulp_KeyIdentity2(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2498 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2503 static int dissect_keyIdentity2(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2504 return dissect_ulp_KeyIdentity2(tvb, offset, actx, tree, hf_ulp_keyIdentity2);
2508 static const per_sequence_t SUPLAUTHREQ_sequence[] = {
2509 { "sETNonce" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sETNonce },
2510 { "keyIdentity2" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_keyIdentity2 },
2511 { NULL, 0, 0, NULL }
2515 dissect_ulp_SUPLAUTHREQ(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2516 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2517 ett_ulp_SUPLAUTHREQ, SUPLAUTHREQ_sequence);
2521 static int dissect_msSUPLAUTHREQ(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2522 return dissect_ulp_SUPLAUTHREQ(tvb, offset, actx, tree, hf_ulp_msSUPLAUTHREQ);
2526 static const value_string ulp_SPCAuthKey_vals[] = {
2532 static const per_choice_t SPCAuthKey_choice[] = {
2533 { 0, "shortKey" , ASN1_EXTENSION_ROOT , dissect_shortKey },
2534 { 1, "longKey" , ASN1_EXTENSION_ROOT , dissect_longKey },
2535 { 0, NULL, 0, NULL }
2539 dissect_ulp_SPCAuthKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2540 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2541 ett_ulp_SPCAuthKey, SPCAuthKey_choice,
2546 static int dissect_sPCAuthKey(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2547 return dissect_ulp_SPCAuthKey(tvb, offset, actx, tree, hf_ulp_sPCAuthKey);
2553 dissect_ulp_KeyIdentity3(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2554 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2559 static int dissect_keyIdentity3(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2560 return dissect_ulp_KeyIdentity3(tvb, offset, actx, tree, hf_ulp_keyIdentity3);
2564 static const per_sequence_t SUPLAUTHRESP_sequence[] = {
2565 { "sPCAuthKey" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sPCAuthKey },
2566 { "keyIdentity3" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_keyIdentity3 },
2567 { "statusCode" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_statusCode },
2568 { NULL, 0, 0, NULL }
2572 dissect_ulp_SUPLAUTHRESP(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2573 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2574 ett_ulp_SUPLAUTHRESP, SUPLAUTHRESP_sequence);
2578 static int dissect_msSUPLAUTHRESP(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2579 return dissect_ulp_SUPLAUTHRESP(tvb, offset, actx, tree, hf_ulp_msSUPLAUTHRESP);
2583 static const value_string ulp_UlpMessage_vals[] = {
2584 { 0, "msSUPLINIT" },
2585 { 1, "msSUPLSTART" },
2586 { 2, "msSUPLRESPONSE" },
2587 { 3, "msSUPLPOSINIT" },
2590 { 6, "msSUPLAUTHREQ" },
2591 { 7, "msSUPLAUTHRESP" },
2595 static const per_choice_t UlpMessage_choice[] = {
2596 { 0, "msSUPLINIT" , ASN1_EXTENSION_ROOT , dissect_msSUPLINIT },
2597 { 1, "msSUPLSTART" , ASN1_EXTENSION_ROOT , dissect_msSUPLSTART },
2598 { 2, "msSUPLRESPONSE" , ASN1_EXTENSION_ROOT , dissect_msSUPLRESPONSE },
2599 { 3, "msSUPLPOSINIT" , ASN1_EXTENSION_ROOT , dissect_msSUPLPOSINIT },
2600 { 4, "msSUPLPOS" , ASN1_EXTENSION_ROOT , dissect_msSUPLPOS },
2601 { 5, "msSUPLEND" , ASN1_EXTENSION_ROOT , dissect_msSUPLEND },
2602 { 6, "msSUPLAUTHREQ" , ASN1_EXTENSION_ROOT , dissect_msSUPLAUTHREQ },
2603 { 7, "msSUPLAUTHRESP" , ASN1_EXTENSION_ROOT , dissect_msSUPLAUTHRESP },
2604 { 0, NULL, 0, NULL }
2608 dissect_ulp_UlpMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2613 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2614 ett_ulp_UlpMessage, UlpMessage_choice,
2618 if (check_col(actx->pinfo->cinfo, COL_INFO))
2620 col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
2626 static int dissect_message(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) {
2627 return dissect_ulp_UlpMessage(tvb, offset, actx, tree, hf_ulp_message);
2631 static const per_sequence_t ULP_PDU_sequence[] = {
2632 { "length" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_length },
2633 { "version" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_version },
2634 { "sessionID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_sessionID },
2635 { "message" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_message },
2636 { NULL, 0, 0, NULL }
2640 dissect_ulp_ULP_PDU(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2643 proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, FALSE);
2645 if (check_col(actx->pinfo->cinfo, COL_PROTOCOL))
2646 col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME);
2647 if (check_col(actx->pinfo->cinfo, COL_INFO))
2648 col_clear(actx->pinfo->cinfo, COL_INFO);
2650 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2651 ett_ulp_ULP_PDU, ULP_PDU_sequence);
2661 static void dissect_ULP_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2663 asn_ctx_init(&asn_ctx, ASN_ENC_PER, FALSE, pinfo);
2664 dissect_ulp_ULP_PDU(tvb, 0, &asn_ctx, tree, hf_ulp_ULP_PDU_PDU);
2668 /*--- End of included file: packet-ulp-fn.c ---*/
2669 #line 73 "packet-ulp-template.c"
2671 /*--- proto_reg_handoff_ulp ---------------------------------------*/
2673 proto_reg_handoff_ulp(void)
2676 ulp_handle = create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
2678 dissector_add("tcp.port", gbl_ulp_port, ulp_handle);
2680 /* application/oma-supl-ulp */
2681 dissector_add_string("media_type","application/oma-supl-ulp", ulp_handle);
2683 rrlp_handle = find_dissector("rrlp");
2688 /*--- proto_register_ulp -------------------------------------------*/
2689 void proto_register_ulp(void) {
2691 /* List of fields */
2692 static hf_register_info hf[] = {
2695 /*--- Included file: packet-ulp-hfarr.c ---*/
2696 #line 1 "packet-ulp-hfarr.c"
2697 { &hf_ulp_ULP_PDU_PDU,
2698 { "ULP-PDU", "ulp.ULP_PDU",
2699 FT_NONE, BASE_NONE, NULL, 0,
2700 "ULP-PDU", HFILL }},
2702 { "length", "ulp.length",
2703 FT_UINT32, BASE_DEC, NULL, 0,
2704 "ULP-PDU/length", HFILL }},
2706 { "version", "ulp.version",
2707 FT_NONE, BASE_NONE, NULL, 0,
2708 "ULP-PDU/version", HFILL }},
2709 { &hf_ulp_sessionID,
2710 { "sessionID", "ulp.sessionID",
2711 FT_NONE, BASE_NONE, NULL, 0,
2712 "ULP-PDU/sessionID", HFILL }},
2714 { "message", "ulp.message",
2715 FT_UINT32, BASE_DEC, VALS(ulp_UlpMessage_vals), 0,
2716 "ULP-PDU/message", HFILL }},
2717 { &hf_ulp_msSUPLINIT,
2718 { "msSUPLINIT", "ulp.msSUPLINIT",
2719 FT_NONE, BASE_NONE, NULL, 0,
2720 "UlpMessage/msSUPLINIT", HFILL }},
2721 { &hf_ulp_msSUPLSTART,
2722 { "msSUPLSTART", "ulp.msSUPLSTART",
2723 FT_NONE, BASE_NONE, NULL, 0,
2724 "UlpMessage/msSUPLSTART", HFILL }},
2725 { &hf_ulp_msSUPLRESPONSE,
2726 { "msSUPLRESPONSE", "ulp.msSUPLRESPONSE",
2727 FT_NONE, BASE_NONE, NULL, 0,
2728 "UlpMessage/msSUPLRESPONSE", HFILL }},
2729 { &hf_ulp_msSUPLPOSINIT,
2730 { "msSUPLPOSINIT", "ulp.msSUPLPOSINIT",
2731 FT_NONE, BASE_NONE, NULL, 0,
2732 "UlpMessage/msSUPLPOSINIT", HFILL }},
2733 { &hf_ulp_msSUPLPOS,
2734 { "msSUPLPOS", "ulp.msSUPLPOS",
2735 FT_NONE, BASE_NONE, NULL, 0,
2736 "UlpMessage/msSUPLPOS", HFILL }},
2737 { &hf_ulp_msSUPLEND,
2738 { "msSUPLEND", "ulp.msSUPLEND",
2739 FT_NONE, BASE_NONE, NULL, 0,
2740 "UlpMessage/msSUPLEND", HFILL }},
2741 { &hf_ulp_msSUPLAUTHREQ,
2742 { "msSUPLAUTHREQ", "ulp.msSUPLAUTHREQ",
2743 FT_NONE, BASE_NONE, NULL, 0,
2744 "UlpMessage/msSUPLAUTHREQ", HFILL }},
2745 { &hf_ulp_msSUPLAUTHRESP,
2746 { "msSUPLAUTHRESP", "ulp.msSUPLAUTHRESP",
2747 FT_NONE, BASE_NONE, NULL, 0,
2748 "UlpMessage/msSUPLAUTHRESP", HFILL }},
2751 FT_UINT32, BASE_DEC, NULL, 0,
2752 "Version/maj", HFILL }},
2755 FT_UINT32, BASE_DEC, NULL, 0,
2756 "Version/min", HFILL }},
2758 { "servind", "ulp.servind",
2759 FT_UINT32, BASE_DEC, NULL, 0,
2760 "Version/servind", HFILL }},
2761 { &hf_ulp_setSessionID,
2762 { "setSessionID", "ulp.setSessionID",
2763 FT_NONE, BASE_NONE, NULL, 0,
2764 "SessionID/setSessionID", HFILL }},
2765 { &hf_ulp_slpSessionID,
2766 { "slpSessionID", "ulp.slpSessionID",
2767 FT_NONE, BASE_NONE, NULL, 0,
2768 "SessionID/slpSessionID", HFILL }},
2769 { &hf_ulp_sessionId,
2770 { "sessionId", "ulp.sessionId",
2771 FT_UINT32, BASE_DEC, NULL, 0,
2772 "SetSessionID/sessionId", HFILL }},
2774 { "setId", "ulp.setId",
2775 FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
2776 "SetSessionID/setId", HFILL }},
2778 { "msisdn", "ulp.msisdn",
2779 FT_BYTES, BASE_HEX, NULL, 0,
2780 "SETId/msisdn", HFILL }},
2783 FT_BYTES, BASE_HEX, NULL, 0,
2784 "SETId/mdn", HFILL }},
2787 FT_BYTES, BASE_HEX, NULL, 0,
2788 "SETId/min", HFILL }},
2790 { "imsi", "ulp.imsi",
2791 FT_BYTES, BASE_HEX, NULL, 0,
2792 "SETId/imsi", HFILL }},
2795 FT_STRING, BASE_NONE, NULL, 0,
2796 "SETId/nai", HFILL }},
2797 { &hf_ulp_iPAddress,
2798 { "iPAddress", "ulp.iPAddress",
2799 FT_UINT32, BASE_DEC, VALS(ulp_IPAddress_vals), 0,
2801 { &hf_ulp_sessionID1,
2802 { "sessionID", "ulp.sessionID",
2803 FT_BYTES, BASE_HEX, NULL, 0,
2804 "SlpSessionID/sessionID", HFILL }},
2806 { "slpId", "ulp.slpId",
2807 FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
2808 "SlpSessionID/slpId", HFILL }},
2809 { &hf_ulp_ipv4Address,
2810 { "ipv4Address", "ulp.ipv4Address",
2811 FT_BYTES, BASE_HEX, NULL, 0,
2812 "IPAddress/ipv4Address", HFILL }},
2813 { &hf_ulp_ipv6Address,
2814 { "ipv6Address", "ulp.ipv6Address",
2815 FT_BYTES, BASE_HEX, NULL, 0,
2816 "IPAddress/ipv6Address", HFILL }},
2818 { "fQDN", "ulp.fQDN",
2819 FT_STRING, BASE_NONE, NULL, 0,
2820 "SLPAddress/fQDN", HFILL }},
2822 { "cellInfo", "ulp.cellInfo",
2823 FT_UINT32, BASE_DEC, VALS(ulp_CellInfo_vals), 0,
2824 "LocationId/cellInfo", HFILL }},
2826 { "status", "ulp.status",
2827 FT_UINT32, BASE_DEC, VALS(ulp_Status_vals), 0,
2828 "LocationId/status", HFILL }},
2830 { "gsmCell", "ulp.gsmCell",
2831 FT_NONE, BASE_NONE, NULL, 0,
2832 "CellInfo/gsmCell", HFILL }},
2833 { &hf_ulp_wcdmaCell,
2834 { "wcdmaCell", "ulp.wcdmaCell",
2835 FT_NONE, BASE_NONE, NULL, 0,
2836 "CellInfo/wcdmaCell", HFILL }},
2838 { "cdmaCell", "ulp.cdmaCell",
2839 FT_NONE, BASE_NONE, NULL, 0,
2840 "CellInfo/cdmaCell", HFILL }},
2841 { &hf_ulp_timestamp,
2842 { "timestamp", "ulp.timestamp",
2843 FT_STRING, BASE_NONE, NULL, 0,
2844 "Position/timestamp", HFILL }},
2845 { &hf_ulp_positionEstimate,
2846 { "positionEstimate", "ulp.positionEstimate",
2847 FT_NONE, BASE_NONE, NULL, 0,
2848 "Position/positionEstimate", HFILL }},
2850 { "velocity", "ulp.velocity",
2851 FT_UINT32, BASE_DEC, VALS(ulp_Velocity_vals), 0,
2853 { &hf_ulp_latitudeSign,
2854 { "latitudeSign", "ulp.latitudeSign",
2855 FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_vals), 0,
2856 "PositionEstimate/latitudeSign", HFILL }},
2858 { "latitude", "ulp.latitude",
2859 FT_UINT32, BASE_DEC, NULL, 0,
2860 "PositionEstimate/latitude", HFILL }},
2861 { &hf_ulp_longitude,
2862 { "longitude", "ulp.longitude",
2863 FT_INT32, BASE_DEC, NULL, 0,
2864 "PositionEstimate/longitude", HFILL }},
2865 { &hf_ulp_uncertainty,
2866 { "uncertainty", "ulp.uncertainty",
2867 FT_NONE, BASE_NONE, NULL, 0,
2868 "PositionEstimate/uncertainty", HFILL }},
2869 { &hf_ulp_uncertaintySemiMajor,
2870 { "uncertaintySemiMajor", "ulp.uncertaintySemiMajor",
2871 FT_UINT32, BASE_DEC, NULL, 0,
2872 "PositionEstimate/uncertainty/uncertaintySemiMajor", HFILL }},
2873 { &hf_ulp_uncertaintySemiMinor,
2874 { "uncertaintySemiMinor", "ulp.uncertaintySemiMinor",
2875 FT_UINT32, BASE_DEC, NULL, 0,
2876 "PositionEstimate/uncertainty/uncertaintySemiMinor", HFILL }},
2877 { &hf_ulp_orientationMajorAxis,
2878 { "orientationMajorAxis", "ulp.orientationMajorAxis",
2879 FT_UINT32, BASE_DEC, NULL, 0,
2880 "PositionEstimate/uncertainty/orientationMajorAxis", HFILL }},
2881 { &hf_ulp_confidence,
2882 { "confidence", "ulp.confidence",
2883 FT_UINT32, BASE_DEC, NULL, 0,
2884 "PositionEstimate/confidence", HFILL }},
2885 { &hf_ulp_altitudeInfo,
2886 { "altitudeInfo", "ulp.altitudeInfo",
2887 FT_NONE, BASE_NONE, NULL, 0,
2888 "PositionEstimate/altitudeInfo", HFILL }},
2889 { &hf_ulp_altitudeDirection,
2890 { "altitudeDirection", "ulp.altitudeDirection",
2891 FT_UINT32, BASE_DEC, VALS(ulp_T_altitudeDirection_vals), 0,
2892 "AltitudeInfo/altitudeDirection", HFILL }},
2894 { "altitude", "ulp.altitude",
2895 FT_UINT32, BASE_DEC, NULL, 0,
2896 "AltitudeInfo/altitude", HFILL }},
2897 { &hf_ulp_altUncertainty,
2898 { "altUncertainty", "ulp.altUncertainty",
2899 FT_UINT32, BASE_DEC, NULL, 0,
2900 "AltitudeInfo/altUncertainty", HFILL }},
2902 { "refNID", "ulp.refNID",
2903 FT_UINT32, BASE_DEC, NULL, 0,
2904 "CdmaCellInformation/refNID", HFILL }},
2906 { "refSID", "ulp.refSID",
2907 FT_UINT32, BASE_DEC, NULL, 0,
2908 "CdmaCellInformation/refSID", HFILL }},
2909 { &hf_ulp_refBASEID,
2910 { "refBASEID", "ulp.refBASEID",
2911 FT_UINT32, BASE_DEC, NULL, 0,
2912 "CdmaCellInformation/refBASEID", HFILL }},
2913 { &hf_ulp_refBASELAT,
2914 { "refBASELAT", "ulp.refBASELAT",
2915 FT_UINT32, BASE_DEC, NULL, 0,
2916 "CdmaCellInformation/refBASELAT", HFILL }},
2917 { &hf_ulp_reBASELONG,
2918 { "reBASELONG", "ulp.reBASELONG",
2919 FT_UINT32, BASE_DEC, NULL, 0,
2920 "CdmaCellInformation/reBASELONG", HFILL }},
2922 { "refREFPN", "ulp.refREFPN",
2923 FT_UINT32, BASE_DEC, NULL, 0,
2924 "CdmaCellInformation/refREFPN", HFILL }},
2925 { &hf_ulp_refWeekNumber,
2926 { "refWeekNumber", "ulp.refWeekNumber",
2927 FT_UINT32, BASE_DEC, NULL, 0,
2928 "CdmaCellInformation/refWeekNumber", HFILL }},
2929 { &hf_ulp_refSeconds,
2930 { "refSeconds", "ulp.refSeconds",
2931 FT_UINT32, BASE_DEC, NULL, 0,
2932 "CdmaCellInformation/refSeconds", HFILL }},
2934 { "refMCC", "ulp.refMCC",
2935 FT_UINT32, BASE_DEC, NULL, 0,
2938 { "refMNC", "ulp.refMNC",
2939 FT_UINT32, BASE_DEC, NULL, 0,
2942 { "refLAC", "ulp.refLAC",
2943 FT_UINT32, BASE_DEC, NULL, 0,
2944 "GsmCellInformation/refLAC", HFILL }},
2946 { "refCI", "ulp.refCI",
2947 FT_UINT32, BASE_DEC, NULL, 0,
2948 "GsmCellInformation/refCI", HFILL }},
2951 FT_UINT32, BASE_DEC, NULL, 0,
2952 "GsmCellInformation/nMR", HFILL }},
2955 FT_UINT32, BASE_DEC, NULL, 0,
2956 "GsmCellInformation/tA", HFILL }},
2958 { "refUC", "ulp.refUC",
2959 FT_UINT32, BASE_DEC, NULL, 0,
2960 "WcdmaCellInformation/refUC", HFILL }},
2961 { &hf_ulp_frequencyInfo,
2962 { "frequencyInfo", "ulp.frequencyInfo",
2963 FT_NONE, BASE_NONE, NULL, 0,
2965 { &hf_ulp_primaryScramblingCode,
2966 { "primaryScramblingCode", "ulp.primaryScramblingCode",
2967 FT_UINT32, BASE_DEC, NULL, 0,
2969 { &hf_ulp_measuredResultsList,
2970 { "measuredResultsList", "ulp.measuredResultsList",
2971 FT_UINT32, BASE_DEC, NULL, 0,
2972 "WcdmaCellInformation/measuredResultsList", HFILL }},
2973 { &hf_ulp_modeSpecificInfo,
2974 { "modeSpecificInfo", "ulp.modeSpecificInfo",
2975 FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_vals), 0,
2976 "FrequencyInfo/modeSpecificInfo", HFILL }},
2979 FT_NONE, BASE_NONE, NULL, 0,
2980 "FrequencyInfo/modeSpecificInfo/fdd", HFILL }},
2983 FT_NONE, BASE_NONE, NULL, 0,
2984 "FrequencyInfo/modeSpecificInfo/tdd", HFILL }},
2985 { &hf_ulp_uarfcn_UL,
2986 { "uarfcn-UL", "ulp.uarfcn_UL",
2987 FT_UINT32, BASE_DEC, NULL, 0,
2988 "FrequencyInfoFDD/uarfcn-UL", HFILL }},
2989 { &hf_ulp_uarfcn_DL,
2990 { "uarfcn-DL", "ulp.uarfcn_DL",
2991 FT_UINT32, BASE_DEC, NULL, 0,
2992 "FrequencyInfoFDD/uarfcn-DL", HFILL }},
2993 { &hf_ulp_uarfcn_Nt,
2994 { "uarfcn-Nt", "ulp.uarfcn_Nt",
2995 FT_UINT32, BASE_DEC, NULL, 0,
2996 "FrequencyInfoTDD/uarfcn-Nt", HFILL }},
2998 { "Item", "ulp.NMR_item",
2999 FT_NONE, BASE_NONE, NULL, 0,
3000 "NMR/_item", HFILL }},
3002 { "aRFCN", "ulp.aRFCN",
3003 FT_UINT32, BASE_DEC, NULL, 0,
3004 "NMRelement/aRFCN", HFILL }},
3006 { "bSIC", "ulp.bSIC",
3007 FT_UINT32, BASE_DEC, NULL, 0,
3008 "NMRelement/bSIC", HFILL }},
3010 { "rxLev", "ulp.rxLev",
3011 FT_UINT32, BASE_DEC, NULL, 0,
3012 "NMRelement/rxLev", HFILL }},
3013 { &hf_ulp_MeasuredResultsList_item,
3014 { "Item", "ulp.MeasuredResultsList_item",
3015 FT_NONE, BASE_NONE, NULL, 0,
3016 "MeasuredResultsList/_item", HFILL }},
3017 { &hf_ulp_utra_CarrierRSSI,
3018 { "utra-CarrierRSSI", "ulp.utra_CarrierRSSI",
3019 FT_UINT32, BASE_DEC, NULL, 0,
3020 "MeasuredResults/utra-CarrierRSSI", HFILL }},
3021 { &hf_ulp_cellMeasuredResultsList,
3022 { "cellMeasuredResultsList", "ulp.cellMeasuredResultsList",
3023 FT_UINT32, BASE_DEC, NULL, 0,
3024 "MeasuredResults/cellMeasuredResultsList", HFILL }},
3025 { &hf_ulp_CellMeasuredResultsList_item,
3026 { "Item", "ulp.CellMeasuredResultsList_item",
3027 FT_NONE, BASE_NONE, NULL, 0,
3028 "CellMeasuredResultsList/_item", HFILL }},
3029 { &hf_ulp_cellIdentity,
3030 { "cellIdentity", "ulp.cellIdentity",
3031 FT_UINT32, BASE_DEC, NULL, 0,
3032 "CellMeasuredResults/cellIdentity", HFILL }},
3033 { &hf_ulp_modeSpecificInfo1,
3034 { "modeSpecificInfo", "ulp.modeSpecificInfo",
3035 FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo1_vals), 0,
3036 "CellMeasuredResults/modeSpecificInfo", HFILL }},
3039 FT_NONE, BASE_NONE, NULL, 0,
3040 "CellMeasuredResults/modeSpecificInfo/fdd", HFILL }},
3041 { &hf_ulp_primaryCPICH_Info,
3042 { "primaryCPICH-Info", "ulp.primaryCPICH_Info",
3043 FT_NONE, BASE_NONE, NULL, 0,
3044 "CellMeasuredResults/modeSpecificInfo/fdd/primaryCPICH-Info", HFILL }},
3045 { &hf_ulp_cpich_Ec_N0,
3046 { "cpich-Ec-N0", "ulp.cpich_Ec_N0",
3047 FT_UINT32, BASE_DEC, NULL, 0,
3048 "CellMeasuredResults/modeSpecificInfo/fdd/cpich-Ec-N0", HFILL }},
3049 { &hf_ulp_cpich_RSCP,
3050 { "cpich-RSCP", "ulp.cpich_RSCP",
3051 FT_UINT32, BASE_DEC, NULL, 0,
3052 "CellMeasuredResults/modeSpecificInfo/fdd/cpich-RSCP", HFILL }},
3054 { "pathloss", "ulp.pathloss",
3055 FT_UINT32, BASE_DEC, NULL, 0,
3059 FT_NONE, BASE_NONE, NULL, 0,
3060 "CellMeasuredResults/modeSpecificInfo/tdd", HFILL }},
3061 { &hf_ulp_cellParametersID,
3062 { "cellParametersID", "ulp.cellParametersID",
3063 FT_UINT32, BASE_DEC, NULL, 0,
3064 "CellMeasuredResults/modeSpecificInfo/tdd/cellParametersID", HFILL }},
3065 { &hf_ulp_proposedTGSN,
3066 { "proposedTGSN", "ulp.proposedTGSN",
3067 FT_UINT32, BASE_DEC, NULL, 0,
3068 "CellMeasuredResults/modeSpecificInfo/tdd/proposedTGSN", HFILL }},
3069 { &hf_ulp_primaryCCPCH_RSCP,
3070 { "primaryCCPCH-RSCP", "ulp.primaryCCPCH_RSCP",
3071 FT_UINT32, BASE_DEC, NULL, 0,
3072 "CellMeasuredResults/modeSpecificInfo/tdd/primaryCCPCH-RSCP", HFILL }},
3073 { &hf_ulp_timeslotISCP_List,
3074 { "timeslotISCP-List", "ulp.timeslotISCP_List",
3075 FT_UINT32, BASE_DEC, NULL, 0,
3076 "CellMeasuredResults/modeSpecificInfo/tdd/timeslotISCP-List", HFILL }},
3077 { &hf_ulp_TimeslotISCP_List_item,
3078 { "Item", "ulp.TimeslotISCP_List_item",
3079 FT_UINT32, BASE_DEC, NULL, 0,
3080 "TimeslotISCP-List/_item", HFILL }},
3082 { "horacc", "ulp.horacc",
3083 FT_UINT32, BASE_DEC, NULL, 0,
3084 "QoP/horacc", HFILL }},
3086 { "veracc", "ulp.veracc",
3087 FT_UINT32, BASE_DEC, NULL, 0,
3088 "QoP/veracc", HFILL }},
3089 { &hf_ulp_maxLocAge,
3090 { "maxLocAge", "ulp.maxLocAge",
3091 FT_UINT32, BASE_DEC, NULL, 0,
3092 "QoP/maxLocAge", HFILL }},
3094 { "delay", "ulp.delay",
3095 FT_UINT32, BASE_DEC, NULL, 0,
3096 "QoP/delay", HFILL }},
3098 { "horvel", "ulp.horvel",
3099 FT_NONE, BASE_NONE, NULL, 0,
3100 "Velocity/horvel", HFILL }},
3101 { &hf_ulp_horandvervel,
3102 { "horandvervel", "ulp.horandvervel",
3103 FT_NONE, BASE_NONE, NULL, 0,
3104 "Velocity/horandvervel", HFILL }},
3105 { &hf_ulp_horveluncert,
3106 { "horveluncert", "ulp.horveluncert",
3107 FT_NONE, BASE_NONE, NULL, 0,
3108 "Velocity/horveluncert", HFILL }},
3109 { &hf_ulp_horandveruncert,
3110 { "horandveruncert", "ulp.horandveruncert",
3111 FT_NONE, BASE_NONE, NULL, 0,
3112 "Velocity/horandveruncert", HFILL }},
3114 { "bearing", "ulp.bearing",
3115 FT_BYTES, BASE_HEX, NULL, 0,
3118 { "horspeed", "ulp.horspeed",
3119 FT_BYTES, BASE_HEX, NULL, 0,
3121 { &hf_ulp_verdirect,
3122 { "verdirect", "ulp.verdirect",
3123 FT_BYTES, BASE_HEX, NULL, 0,
3126 { "verspeed", "ulp.verspeed",
3127 FT_BYTES, BASE_HEX, NULL, 0,
3129 { &hf_ulp_uncertspeed,
3130 { "uncertspeed", "ulp.uncertspeed",
3131 FT_BYTES, BASE_HEX, NULL, 0,
3132 "Horveluncert/uncertspeed", HFILL }},
3133 { &hf_ulp_horuncertspeed,
3134 { "horuncertspeed", "ulp.horuncertspeed",
3135 FT_BYTES, BASE_HEX, NULL, 0,
3136 "Horandveruncert/horuncertspeed", HFILL }},
3137 { &hf_ulp_veruncertspeed,
3138 { "veruncertspeed", "ulp.veruncertspeed",
3139 FT_BYTES, BASE_HEX, NULL, 0,
3140 "Horandveruncert/veruncertspeed", HFILL }},
3142 { "sETNonce", "ulp.sETNonce",
3143 FT_BYTES, BASE_HEX, NULL, 0,
3144 "SUPLAUTHREQ/sETNonce", HFILL }},
3145 { &hf_ulp_keyIdentity2,
3146 { "keyIdentity2", "ulp.keyIdentity2",
3147 FT_BYTES, BASE_HEX, NULL, 0,
3148 "SUPLAUTHREQ/keyIdentity2", HFILL }},
3149 { &hf_ulp_sPCAuthKey,
3150 { "sPCAuthKey", "ulp.sPCAuthKey",
3151 FT_UINT32, BASE_DEC, VALS(ulp_SPCAuthKey_vals), 0,
3152 "SUPLAUTHRESP/sPCAuthKey", HFILL }},
3153 { &hf_ulp_keyIdentity3,
3154 { "keyIdentity3", "ulp.keyIdentity3",
3155 FT_BYTES, BASE_HEX, NULL, 0,
3156 "SUPLAUTHRESP/keyIdentity3", HFILL }},
3157 { &hf_ulp_statusCode,
3158 { "statusCode", "ulp.statusCode",
3159 FT_UINT32, BASE_DEC, VALS(ulp_StatusCode_vals), 0,
3162 { "shortKey", "ulp.shortKey",
3163 FT_BYTES, BASE_HEX, NULL, 0,
3166 { "longKey", "ulp.longKey",
3167 FT_BYTES, BASE_HEX, NULL, 0,
3170 { "position", "ulp.position",
3171 FT_NONE, BASE_NONE, NULL, 0,
3175 FT_BYTES, BASE_HEX, NULL, 0,
3177 { &hf_ulp_posMethod,
3178 { "posMethod", "ulp.posMethod",
3179 FT_UINT32, BASE_DEC, VALS(ulp_PosMethod_vals), 0,
3181 { &hf_ulp_notification,
3182 { "notification", "ulp.notification",
3183 FT_NONE, BASE_NONE, NULL, 0,
3184 "SUPLINIT/notification", HFILL }},
3185 { &hf_ulp_sLPAddress,
3186 { "sLPAddress", "ulp.sLPAddress",
3187 FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
3191 FT_NONE, BASE_NONE, NULL, 0,
3194 { "sLPMode", "ulp.sLPMode",
3195 FT_UINT32, BASE_DEC, VALS(ulp_SLPMode_vals), 0,
3196 "SUPLINIT/sLPMode", HFILL }},
3199 FT_BYTES, BASE_HEX, NULL, 0,
3200 "SUPLINIT/mAC", HFILL }},
3201 { &hf_ulp_keyIdentity,
3202 { "keyIdentity", "ulp.keyIdentity",
3203 FT_BYTES, BASE_HEX, NULL, 0,
3204 "SUPLINIT/keyIdentity", HFILL }},
3205 { &hf_ulp_notificationType,
3206 { "notificationType", "ulp.notificationType",
3207 FT_UINT32, BASE_DEC, VALS(ulp_NotificationType_vals), 0,
3208 "Notification/notificationType", HFILL }},
3209 { &hf_ulp_encodingType,
3210 { "encodingType", "ulp.encodingType",
3211 FT_UINT32, BASE_DEC, VALS(ulp_EncodingType_vals), 0,
3212 "Notification/encodingType", HFILL }},
3213 { &hf_ulp_requestorId,
3214 { "requestorId", "ulp.requestorId",
3215 FT_BYTES, BASE_HEX, NULL, 0,
3216 "Notification/requestorId", HFILL }},
3217 { &hf_ulp_requestorIdType,
3218 { "requestorIdType", "ulp.requestorIdType",
3219 FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
3220 "Notification/requestorIdType", HFILL }},
3221 { &hf_ulp_clientName,
3222 { "clientName", "ulp.clientName",
3223 FT_BYTES, BASE_HEX, NULL, 0,
3224 "Notification/clientName", HFILL }},
3225 { &hf_ulp_clientNameType,
3226 { "clientNameType", "ulp.clientNameType",
3227 FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
3228 "Notification/clientNameType", HFILL }},
3229 { &hf_ulp_posPayLoad,
3230 { "posPayLoad", "ulp.posPayLoad",
3231 FT_UINT32, BASE_DEC, VALS(ulp_PosPayLoad_vals), 0,
3232 "SUPLPOS/posPayLoad", HFILL }},
3233 { &hf_ulp_tia801payload,
3234 { "tia801payload", "ulp.tia801payload",
3235 FT_BYTES, BASE_HEX, NULL, 0,
3236 "PosPayLoad/tia801payload", HFILL }},
3237 { &hf_ulp_rrcPayload,
3238 { "rrcPayload", "ulp.rrcPayload",
3239 FT_BYTES, BASE_HEX, NULL, 0,
3240 "PosPayLoad/rrcPayload", HFILL }},
3241 { &hf_ulp_rrlpPayload,
3242 { "rrlpPayload", "ulp.rrlpPayload",
3243 FT_BYTES, BASE_HEX, NULL, 0,
3244 "PosPayLoad/rrlpPayload", HFILL }},
3245 { &hf_ulp_sETCapabilities,
3246 { "sETCapabilities", "ulp.sETCapabilities",
3247 FT_NONE, BASE_NONE, NULL, 0,
3249 { &hf_ulp_requestedAssistData,
3250 { "requestedAssistData", "ulp.requestedAssistData",
3251 FT_NONE, BASE_NONE, NULL, 0,
3252 "SUPLPOSINIT/requestedAssistData", HFILL }},
3253 { &hf_ulp_locationId,
3254 { "locationId", "ulp.locationId",
3255 FT_NONE, BASE_NONE, NULL, 0,
3258 { "sUPLPOS", "ulp.sUPLPOS",
3259 FT_NONE, BASE_NONE, NULL, 0,
3260 "SUPLPOSINIT/sUPLPOS", HFILL }},
3261 { &hf_ulp_almanacRequested,
3262 { "almanacRequested", "ulp.almanacRequested",
3263 FT_BOOLEAN, 8, NULL, 0,
3264 "RequestedAssistData/almanacRequested", HFILL }},
3265 { &hf_ulp_utcModelRequested,
3266 { "utcModelRequested", "ulp.utcModelRequested",
3267 FT_BOOLEAN, 8, NULL, 0,
3268 "RequestedAssistData/utcModelRequested", HFILL }},
3269 { &hf_ulp_ionosphericModelRequested,
3270 { "ionosphericModelRequested", "ulp.ionosphericModelRequested",
3271 FT_BOOLEAN, 8, NULL, 0,
3272 "RequestedAssistData/ionosphericModelRequested", HFILL }},
3273 { &hf_ulp_dgpsCorrectionsRequested,
3274 { "dgpsCorrectionsRequested", "ulp.dgpsCorrectionsRequested",
3275 FT_BOOLEAN, 8, NULL, 0,
3276 "RequestedAssistData/dgpsCorrectionsRequested", HFILL }},
3277 { &hf_ulp_referenceLocationRequested,
3278 { "referenceLocationRequested", "ulp.referenceLocationRequested",
3279 FT_BOOLEAN, 8, NULL, 0,
3280 "RequestedAssistData/referenceLocationRequested", HFILL }},
3281 { &hf_ulp_referenceTimeRequested,
3282 { "referenceTimeRequested", "ulp.referenceTimeRequested",
3283 FT_BOOLEAN, 8, NULL, 0,
3284 "RequestedAssistData/referenceTimeRequested", HFILL }},
3285 { &hf_ulp_acquisitionAssistanceRequested,
3286 { "acquisitionAssistanceRequested", "ulp.acquisitionAssistanceRequested",
3287 FT_BOOLEAN, 8, NULL, 0,
3288 "RequestedAssistData/acquisitionAssistanceRequested", HFILL }},
3289 { &hf_ulp_realTimeIntegrityRequested,
3290 { "realTimeIntegrityRequested", "ulp.realTimeIntegrityRequested",
3291 FT_BOOLEAN, 8, NULL, 0,
3292 "RequestedAssistData/realTimeIntegrityRequested", HFILL }},
3293 { &hf_ulp_navigationModelRequested,
3294 { "navigationModelRequested", "ulp.navigationModelRequested",
3295 FT_BOOLEAN, 8, NULL, 0,
3296 "RequestedAssistData/navigationModelRequested", HFILL }},
3297 { &hf_ulp_navigationModelData,
3298 { "navigationModelData", "ulp.navigationModelData",
3299 FT_NONE, BASE_NONE, NULL, 0,
3300 "RequestedAssistData/navigationModelData", HFILL }},
3302 { "gpsWeek", "ulp.gpsWeek",
3303 FT_UINT32, BASE_DEC, NULL, 0,
3304 "NavigationModel/gpsWeek", HFILL }},
3306 { "gpsToe", "ulp.gpsToe",
3307 FT_UINT32, BASE_DEC, NULL, 0,
3308 "NavigationModel/gpsToe", HFILL }},
3310 { "nSAT", "ulp.nSAT",
3311 FT_UINT32, BASE_DEC, NULL, 0,
3312 "NavigationModel/nSAT", HFILL }},
3314 { "toeLimit", "ulp.toeLimit",
3315 FT_UINT32, BASE_DEC, NULL, 0,
3316 "NavigationModel/toeLimit", HFILL }},
3318 { "satInfo", "ulp.satInfo",
3319 FT_UINT32, BASE_DEC, NULL, 0,
3320 "NavigationModel/satInfo", HFILL }},
3321 { &hf_ulp_SatelliteInfo_item,
3322 { "Item", "ulp.SatelliteInfo_item",
3323 FT_NONE, BASE_NONE, NULL, 0,
3324 "SatelliteInfo/_item", HFILL }},
3326 { "satId", "ulp.satId",
3327 FT_UINT32, BASE_DEC, NULL, 0,
3328 "SatelliteInfoElement/satId", HFILL }},
3330 { "iODE", "ulp.iODE",
3331 FT_UINT32, BASE_DEC, NULL, 0,
3332 "SatelliteInfoElement/iODE", HFILL }},
3333 { &hf_ulp_sETAuthKey,
3334 { "sETAuthKey", "ulp.sETAuthKey",
3335 FT_UINT32, BASE_DEC, VALS(ulp_SETAuthKey_vals), 0,
3336 "SUPLRESPONSE/sETAuthKey", HFILL }},
3337 { &hf_ulp_keyIdentity4,
3338 { "keyIdentity4", "ulp.keyIdentity4",
3339 FT_BYTES, BASE_HEX, NULL, 0,
3340 "SUPLRESPONSE/keyIdentity4", HFILL }},
3341 { &hf_ulp_posTechnology,
3342 { "posTechnology", "ulp.posTechnology",
3343 FT_NONE, BASE_NONE, NULL, 0,
3344 "SETCapabilities/posTechnology", HFILL }},
3345 { &hf_ulp_prefMethod,
3346 { "prefMethod", "ulp.prefMethod",
3347 FT_UINT32, BASE_DEC, VALS(ulp_PrefMethod_vals), 0,
3348 "SETCapabilities/prefMethod", HFILL }},
3349 { &hf_ulp_posProtocol,
3350 { "posProtocol", "ulp.posProtocol",
3351 FT_NONE, BASE_NONE, NULL, 0,
3352 "SETCapabilities/posProtocol", HFILL }},
3353 { &hf_ulp_agpsSETassisted,
3354 { "agpsSETassisted", "ulp.agpsSETassisted",
3355 FT_BOOLEAN, 8, NULL, 0,
3356 "PosTechnology/agpsSETassisted", HFILL }},
3357 { &hf_ulp_agpsSETBased,
3358 { "agpsSETBased", "ulp.agpsSETBased",
3359 FT_BOOLEAN, 8, NULL, 0,
3360 "PosTechnology/agpsSETBased", HFILL }},
3361 { &hf_ulp_autonomousGPS,
3362 { "autonomousGPS", "ulp.autonomousGPS",
3363 FT_BOOLEAN, 8, NULL, 0,
3364 "PosTechnology/autonomousGPS", HFILL }},
3366 { "aFLT", "ulp.aFLT",
3367 FT_BOOLEAN, 8, NULL, 0,
3368 "PosTechnology/aFLT", HFILL }},
3370 { "eCID", "ulp.eCID",
3371 FT_BOOLEAN, 8, NULL, 0,
3372 "PosTechnology/eCID", HFILL }},
3374 { "eOTD", "ulp.eOTD",
3375 FT_BOOLEAN, 8, NULL, 0,
3376 "PosTechnology/eOTD", HFILL }},
3378 { "oTDOA", "ulp.oTDOA",
3379 FT_BOOLEAN, 8, NULL, 0,
3380 "PosTechnology/oTDOA", HFILL }},
3382 { "tia801", "ulp.tia801",
3383 FT_BOOLEAN, 8, NULL, 0,
3384 "PosProtocol/tia801", HFILL }},
3386 { "rrlp", "ulp.rrlp",
3387 FT_BOOLEAN, 8, NULL, 0,
3388 "PosProtocol/rrlp", HFILL }},
3391 FT_BOOLEAN, 8, NULL, 0,
3392 "PosProtocol/rrc", HFILL }},
3394 /*--- End of included file: packet-ulp-hfarr.c ---*/
3395 #line 98 "packet-ulp-template.c"
3398 /* List of subtrees */
3399 static gint *ett[] = {
3402 /*--- Included file: packet-ulp-ettarr.c ---*/
3403 #line 1 "packet-ulp-ettarr.c"
3405 &ett_ulp_UlpMessage,
3408 &ett_ulp_SetSessionID,
3410 &ett_ulp_SlpSessionID,
3412 &ett_ulp_SLPAddress,
3413 &ett_ulp_LocationId,
3416 &ett_ulp_PositionEstimate,
3417 &ett_ulp_T_uncertainty,
3418 &ett_ulp_AltitudeInfo,
3419 &ett_ulp_CdmaCellInformation,
3420 &ett_ulp_GsmCellInformation,
3421 &ett_ulp_WcdmaCellInformation,
3422 &ett_ulp_FrequencyInfo,
3423 &ett_ulp_T_modeSpecificInfo,
3424 &ett_ulp_FrequencyInfoFDD,
3425 &ett_ulp_FrequencyInfoTDD,
3427 &ett_ulp_NMRelement,
3428 &ett_ulp_MeasuredResultsList,
3429 &ett_ulp_MeasuredResults,
3430 &ett_ulp_CellMeasuredResultsList,
3431 &ett_ulp_CellMeasuredResults,
3432 &ett_ulp_T_modeSpecificInfo1,
3435 &ett_ulp_TimeslotISCP_List,
3436 &ett_ulp_PrimaryCPICH_Info,
3440 &ett_ulp_Horandvervel,
3441 &ett_ulp_Horveluncert,
3442 &ett_ulp_Horandveruncert,
3443 &ett_ulp_SUPLAUTHREQ,
3444 &ett_ulp_SUPLAUTHRESP,
3445 &ett_ulp_SPCAuthKey,
3448 &ett_ulp_Notification,
3450 &ett_ulp_PosPayLoad,
3451 &ett_ulp_SUPLPOSINIT,
3452 &ett_ulp_RequestedAssistData,
3453 &ett_ulp_NavigationModel,
3454 &ett_ulp_SatelliteInfo,
3455 &ett_ulp_SatelliteInfoElement,
3456 &ett_ulp_SUPLRESPONSE,
3457 &ett_ulp_SETAuthKey,
3459 &ett_ulp_SETCapabilities,
3460 &ett_ulp_PosTechnology,
3461 &ett_ulp_PosProtocol,
3463 /*--- End of included file: packet-ulp-ettarr.c ---*/
3464 #line 104 "packet-ulp-template.c"
3467 module_t *ulp_module;
3470 /* Register protocol */
3471 proto_ulp = proto_register_protocol(PNAME, PSNAME, PFNAME);
3472 /* Register fields and subtrees */
3473 proto_register_field_array(proto_ulp, hf, array_length(hf));
3474 proto_register_subtree_array(ett, array_length(ett));
3477 /* Register a configuration option for port */
3478 ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
3479 prefs_register_uint_preference(ulp_module, "tcp.port",
3481 "Set the TCP port for Ulp messages(IANA registerd port is 7275)",