Coverage Report

Created: 2026-06-30 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-ulp.c
Line
Count
Source
1
/* Do not modify this file. Changes will be overwritten.                      */
2
/* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3
/* packet-ulp.c                                                               */
4
/* asn2wrs.py -q -L -p ulp -c ./ulp.cnf -s ./packet-ulp-template -D . -O ../.. ULP.asn SUPL.asn ULP-Components.asn */
5
6
/* packet-ulp.c
7
 * Routines for OMA UserPlane Location Protocol packet dissection
8
 * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
9
 * Copyright 2014-2019, Pascal Quantin <pascal@wireshark.org>
10
 * Copyright 2020, Stig Bjorlykke <stig@bjorlykke.org>
11
 *
12
 * Wireshark - Network traffic analyzer
13
 * By Gerald Combs <gerald@wireshark.org>
14
 * Copyright 1998 Gerald Combs
15
 *
16
 * SPDX-License-Identifier: GPL-2.0-or-later
17
 *
18
 * ref OMA-TS-ULP-V2_0_5-20191028-A
19
 * http://www.openmobilealliance.org
20
 */
21
22
#include "config.h"
23
24
#include "math.h"
25
26
#include <epan/packet.h>
27
#include <epan/prefs.h>
28
#include <epan/asn1.h>
29
#include <epan/tfs.h>
30
#include <epan/unit_strings.h>
31
#include <wsutil/array.h>
32
33
#include "packet-per.h"
34
#include "packet-tcp.h"
35
#include "packet-e164.h"
36
#include "packet-e212.h"
37
38
void proto_register_ulp(void);
39
40
static dissector_handle_t rrlp_handle;
41
static dissector_handle_t lpp_handle;
42
43
/* IANA Registered Ports
44
 * oma-ulp         7275/tcp    OMA UserPlane Location
45
 * oma-ulp         7275/udp    OMA UserPlane Location
46
 */
47
28
#define ULP_PORT    7275
48
49
/* Initialize the protocol and registered fields */
50
static int proto_ulp;
51
52
53
181
#define ULP_HEADER_SIZE 2
54
55
static bool ulp_desegment = true;
56
57
static int hf_ulp_ULP_PDU_PDU;                    /* ULP_PDU */
58
static int hf_ulp_length;                         /* INTEGER_0_65535 */
59
static int hf_ulp_version;                        /* Version */
60
static int hf_ulp_sessionID;                      /* SessionID */
61
static int hf_ulp_message;                        /* UlpMessage */
62
static int hf_ulp_msSUPLINIT;                     /* SUPLINIT */
63
static int hf_ulp_msSUPLSTART;                    /* SUPLSTART */
64
static int hf_ulp_msSUPLRESPONSE;                 /* SUPLRESPONSE */
65
static int hf_ulp_msSUPLPOSINIT;                  /* SUPLPOSINIT */
66
static int hf_ulp_msSUPLPOS;                      /* SUPLPOS */
67
static int hf_ulp_msSUPLEND;                      /* SUPLEND */
68
static int hf_ulp_msSUPLAUTHREQ;                  /* SUPLAUTHREQ */
69
static int hf_ulp_msSUPLAUTHRESP;                 /* SUPLAUTHRESP */
70
static int hf_ulp_msSUPLTRIGGEREDSTART;           /* Ver2_SUPLTRIGGEREDSTART */
71
static int hf_ulp_msSUPLTRIGGEREDRESPONSE;        /* Ver2_SUPLTRIGGEREDRESPONSE */
72
static int hf_ulp_msSUPLTRIGGEREDSTOP;            /* Ver2_SUPLTRIGGEREDSTOP */
73
static int hf_ulp_msSUPLNOTIFY;                   /* Ver2_SUPLNOTIFY */
74
static int hf_ulp_msSUPLNOTIFYRESPONSE;           /* Ver2_SUPLNOTIFYRESPONSE */
75
static int hf_ulp_msSUPLSETINIT;                  /* Ver2_SUPLSETINIT */
76
static int hf_ulp_msSUPLREPORT;                   /* Ver2_SUPLREPORT */
77
static int hf_ulp_posMethod;                      /* PosMethod */
78
static int hf_ulp_notification;                   /* Notification */
79
static int hf_ulp_sLPAddress;                     /* SLPAddress */
80
static int hf_ulp_qoP;                            /* QoP */
81
static int hf_ulp_sLPMode;                        /* SLPMode */
82
static int hf_ulp_mac;                            /* MAC */
83
static int hf_ulp_keyIdentity;                    /* KeyIdentity */
84
static int hf_ulp_ver2_SUPL_INIT_extension;       /* Ver2_SUPL_INIT_extension */
85
static int hf_ulp_notificationType;               /* NotificationType */
86
static int hf_ulp_encodingType;                   /* EncodingType */
87
static int hf_ulp_requestorId;                    /* T_requestorId */
88
static int hf_ulp_requestorIdType;                /* FormatIndicator */
89
static int hf_ulp_clientName;                     /* T_clientName */
90
static int hf_ulp_clientNameType;                 /* FormatIndicator */
91
static int hf_ulp_ver2_Notification_extension;    /* Ver2_Notification_extension */
92
static int hf_ulp_sETCapabilities;                /* SETCapabilities */
93
static int hf_ulp_locationId;                     /* LocationId */
94
static int hf_ulp_ver2_SUPL_START_extension;      /* Ver2_SUPL_START_extension */
95
static int hf_ulp_posTechnology;                  /* PosTechnology */
96
static int hf_ulp_prefMethod;                     /* PrefMethod */
97
static int hf_ulp_posProtocol;                    /* PosProtocol */
98
static int hf_ulp_ver2_SETCapabilities_extension;  /* Ver2_SETCapabilities_extension */
99
static int hf_ulp_agpsSETassisted;                /* BOOLEAN */
100
static int hf_ulp_agpsSETBased;                   /* BOOLEAN */
101
static int hf_ulp_autonomousGPS;                  /* BOOLEAN */
102
static int hf_ulp_aflt;                           /* BOOLEAN */
103
static int hf_ulp_ecid;                           /* BOOLEAN */
104
static int hf_ulp_eotd;                           /* BOOLEAN */
105
static int hf_ulp_otdoa;                          /* BOOLEAN */
106
static int hf_ulp_ver2_PosTechnology_extension;   /* Ver2_PosTechnology_extension */
107
static int hf_ulp_tia801;                         /* BOOLEAN */
108
static int hf_ulp_rrlp;                           /* BOOLEAN */
109
static int hf_ulp_rrc;                            /* BOOLEAN */
110
static int hf_ulp_ver2_PosProtocol_extension;     /* Ver2_PosProtocol_extension */
111
static int hf_ulp_sETAuthKey;                     /* SETAuthKey */
112
static int hf_ulp_keyIdentity4;                   /* KeyIdentity4 */
113
static int hf_ulp_ver2_SUPL_RESPONSE_extension;   /* Ver2_SUPL_RESPONSE_extension */
114
static int hf_ulp_shortKey;                       /* BIT_STRING_SIZE_128 */
115
static int hf_ulp_longKey;                        /* BIT_STRING_SIZE_256 */
116
static int hf_ulp_requestedAssistData;            /* RequestedAssistData */
117
static int hf_ulp_position;                       /* Position */
118
static int hf_ulp_suplpos;                        /* SUPLPOS */
119
static int hf_ulp_ver;                            /* Ver */
120
static int hf_ulp_ver2_SUPL_POS_INIT_extension;   /* Ver2_SUPL_POS_INIT_extension */
121
static int hf_ulp_almanacRequested;               /* BOOLEAN */
122
static int hf_ulp_utcModelRequested;              /* BOOLEAN */
123
static int hf_ulp_ionosphericModelRequested;      /* BOOLEAN */
124
static int hf_ulp_dgpsCorrectionsRequested;       /* BOOLEAN */
125
static int hf_ulp_referenceLocationRequested;     /* BOOLEAN */
126
static int hf_ulp_referenceTimeRequested;         /* BOOLEAN */
127
static int hf_ulp_acquisitionAssistanceRequested;  /* BOOLEAN */
128
static int hf_ulp_realTimeIntegrityRequested;     /* BOOLEAN */
129
static int hf_ulp_navigationModelRequested;       /* BOOLEAN */
130
static int hf_ulp_navigationModelData;            /* NavigationModel */
131
static int hf_ulp_ver2_RequestedAssistData_extension;  /* Ver2_RequestedAssistData_extension */
132
static int hf_ulp_gpsWeek;                        /* INTEGER_0_1023 */
133
static int hf_ulp_gpsToe;                         /* INTEGER_0_167 */
134
static int hf_ulp_nsat;                           /* INTEGER_0_31 */
135
static int hf_ulp_toeLimit;                       /* INTEGER_0_10 */
136
static int hf_ulp_satInfo;                        /* SatelliteInfo */
137
static int hf_ulp_SatelliteInfo_item;             /* SatelliteInfoElement */
138
static int hf_ulp_satId;                          /* INTEGER_0_63 */
139
static int hf_ulp_iode;                           /* INTEGER_0_255 */
140
static int hf_ulp_posPayLoad;                     /* PosPayLoad */
141
static int hf_ulp_velocity;                       /* Velocity */
142
static int hf_ulp_ver2_SUPL_POS_extension;        /* Ver2_SUPL_POS_extension */
143
static int hf_ulp_tia801payload;                  /* OCTET_STRING_SIZE_1_8192 */
144
static int hf_ulp_rrcPayload;                     /* OCTET_STRING_SIZE_1_8192 */
145
static int hf_ulp_rrlpPayload;                    /* T_rrlpPayload */
146
static int hf_ulp_ver2_PosPayLoad_extension;      /* Ver2_PosPayLoad_extension */
147
static int hf_ulp_statusCode;                     /* StatusCode */
148
static int hf_ulp_ver2_SUPL_END_extension;        /* Ver2_SUPL_END_extension */
149
static int hf_ulp_sPCSETKey;                      /* SPCSETKey */
150
static int hf_ulp_spctid;                         /* SPCTID */
151
static int hf_ulp_sPCSETKeylifetime;              /* SPCSETKeylifetime */
152
static int hf_ulp_notificationResponse;           /* NotificationResponse */
153
static int hf_ulp_targetSETID;                    /* SETId */
154
static int hf_ulp_applicationID;                  /* ApplicationID */
155
static int hf_ulp_multipleLocationIds;            /* MultipleLocationIds */
156
static int hf_ulp_thirdParty;                     /* ThirdParty */
157
static int hf_ulp_triggerType;                    /* TriggerType */
158
static int hf_ulp_triggerParams;                  /* TriggerParams */
159
static int hf_ulp_reportingCap;                   /* ReportingCap */
160
static int hf_ulp_causeCode;                      /* CauseCode */
161
static int hf_ulp_periodicParams;                 /* PeriodicParams */
162
static int hf_ulp_areaEventParams;                /* AreaEventParams */
163
static int hf_ulp_numberOfFixes;                  /* INTEGER_1_8639999 */
164
static int hf_ulp_intervalBetweenFixes;           /* INTEGER_1_8639999 */
165
static int hf_ulp_startTime;                      /* INTEGER_0_2678400 */
166
static int hf_ulp_areaEventType;                  /* AreaEventType */
167
static int hf_ulp_locationEstimate;               /* BOOLEAN */
168
static int hf_ulp_repeatedReportingParams;        /* RepeatedReportingParams */
169
static int hf_ulp_stopTime;                       /* INTEGER_0_11318399 */
170
static int hf_ulp_geographicTargetAreaList;       /* GeographicTargetAreaList */
171
static int hf_ulp_areaIdLists;                    /* SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList */
172
static int hf_ulp_areaIdLists_item;               /* AreaIdList */
173
static int hf_ulp_minimumIntervalTime;            /* INTEGER_1_604800 */
174
static int hf_ulp_maximumNumberOfReports;         /* INTEGER_1_1024 */
175
static int hf_ulp_GeographicTargetAreaList_item;  /* GeographicTargetArea */
176
static int hf_ulp_circularArea;                   /* CircularArea */
177
static int hf_ulp_ellipticalArea;                 /* EllipticalArea */
178
static int hf_ulp_polygonArea;                    /* PolygonArea */
179
static int hf_ulp_areaIdSet;                      /* AreaIdSet */
180
static int hf_ulp_areaIdSetType;                  /* AreaIdSetType */
181
static int hf_ulp_geoAreaMappingList;             /* GeoAreaMappingList */
182
static int hf_ulp_AreaIdSet_item;                 /* AreaId */
183
static int hf_ulp_gSMAreaId;                      /* GSMAreaId */
184
static int hf_ulp_wCDMAAreaId;                    /* WCDMAAreaId */
185
static int hf_ulp_cDMAAreaId;                     /* CDMAAreaId */
186
static int hf_ulp_hRPDAreaId;                     /* HRPDAreaId */
187
static int hf_ulp_uMBAreaId;                      /* UMBAreaId */
188
static int hf_ulp_lTEAreaId;                      /* LTEAreaId */
189
static int hf_ulp_wLANAreaId;                     /* WLANAreaId */
190
static int hf_ulp_wiMAXAreaId;                    /* WimaxAreaId */
191
static int hf_ulp_nRAreaId;                       /* NRAreaId */
192
static int hf_ulp_refMCC;                         /* INTEGER_0_999 */
193
static int hf_ulp_refMNC;                         /* INTEGER_0_999 */
194
static int hf_ulp_refLAC;                         /* INTEGER_0_65535 */
195
static int hf_ulp_refCI;                          /* INTEGER_0_65535 */
196
static int hf_ulp_refUC;                          /* INTEGER_0_268435455 */
197
static int hf_ulp_refSID;                         /* INTEGER_0_65535 */
198
static int hf_ulp_refNID;                         /* INTEGER_0_32767 */
199
static int hf_ulp_refBASEID;                      /* INTEGER_0_65535 */
200
static int hf_ulp_refSECTORID;                    /* BIT_STRING_SIZE_128 */
201
static int hf_ulp_refCI_LTE_Cell_Id;              /* BIT_STRING_SIZE_29 */
202
static int hf_ulp_apMACAddress;                   /* T_apMACAddress */
203
static int hf_ulp_bsID_MSB;                       /* BIT_STRING_SIZE_24 */
204
static int hf_ulp_bsID_LSB;                       /* BIT_STRING_SIZE_24 */
205
static int hf_ulp_refCI_NR_Cell_Id;               /* BIT_STRING_SIZE_36 */
206
static int hf_ulp_GeoAreaMappingList_item;        /* GeoAreaIndex */
207
static int hf_ulp_supportedNetworkInformation;    /* SupportedNetworkInformation */
208
static int hf_ulp_reportingMode;                  /* ReportingMode */
209
static int hf_ulp_gnssPosTechnology;              /* GNSSPosTechnology */
210
static int hf_ulp_repMode;                        /* RepModee */
211
static int hf_ulp_batchRepConditions;             /* BatchRepConditions */
212
static int hf_ulp_batchRepType;                   /* BatchRepType */
213
static int hf_ulp_num_interval;                   /* INTEGER_1_1024 */
214
static int hf_ulp_num_minutes;                    /* INTEGER_1_2048 */
215
static int hf_ulp_endofsession;                   /* NULL */
216
static int hf_ulp_reportPosition;                 /* BOOLEAN */
217
static int hf_ulp_reportMeasurements;             /* BOOLEAN */
218
static int hf_ulp_intermediateReports;            /* BOOLEAN */
219
static int hf_ulp_discardOldest;                  /* BOOLEAN */
220
static int hf_ulp_sessionList;                    /* SessionList */
221
static int hf_ulp_reportDataList;                 /* ReportDataList */
222
static int hf_ulp_moreComponents;                 /* NULL */
223
static int hf_ulp_SessionList_item;               /* SessionInformation */
224
static int hf_ulp_ReportDataList_item;            /* ReportData */
225
static int hf_ulp_positionData;                   /* PositionData */
226
static int hf_ulp_resultCode;                     /* ResultCode */
227
static int hf_ulp_timestamp_choice;               /* TimeStamp */
228
static int hf_ulp_ganssSignalsInfo;               /* GANSSsignalsInfo */
229
static int hf_ulp_GANSSsignalsInfo_item;          /* GANSSSignalsDescription */
230
static int hf_ulp_ganssId;                        /* INTEGER_0_15 */
231
static int hf_ulp_gANSSSignals;                   /* GANSSSignals */
232
static int hf_ulp_absoluteTime;                   /* UTCTime */
233
static int hf_ulp_relativeTime;                   /* INTEGER_0_31536000 */
234
static int hf_ulp_notificationMode;               /* NotificationMode */
235
static int hf_ulp_e_SLPAddress;                   /* SLPAddress */
236
static int hf_ulp_historicReporting;              /* HistoricReporting */
237
static int hf_ulp_protectionLevel;                /* ProtectionLevel */
238
static int hf_ulp_minimumMajorVersion;            /* INTEGER_0_255 */
239
static int hf_ulp_allowedReportingType;           /* AllowedReportingType */
240
static int hf_ulp_reportingCriteria;              /* ReportingCriteria */
241
static int hf_ulp_timeWindow;                     /* TimeWindow */
242
static int hf_ulp_maxNumberofReports;             /* INTEGER_1_65536 */
243
static int hf_ulp_minTimeInterval;                /* INTEGER_1_86400 */
244
static int hf_ulp_startTime_01;                   /* INTEGER_M525600_M1 */
245
static int hf_ulp_stopTime_01;                    /* INTEGER_M525599_0 */
246
static int hf_ulp_protlevel;                      /* ProtLevel */
247
static int hf_ulp_basicProtectionParams;          /* BasicProtectionParams */
248
static int hf_ulp_keyIdentifier;                  /* OCTET_STRING_SIZE_8 */
249
static int hf_ulp_basicReplayCounter;             /* INTEGER_0_65535 */
250
static int hf_ulp_basicMAC;                       /* BIT_STRING_SIZE_32 */
251
static int hf_ulp_initialApproximateposition;     /* Position */
252
static int hf_ulp_utran_GPSReferenceTimeResult;   /* UTRAN_GPSReferenceTimeResult */
253
static int hf_ulp_utran_GANSSReferenceTimeResult;  /* UTRAN_GANSSReferenceTimeResult */
254
static int hf_ulp_utran_GPSReferenceTimeAssistance;  /* UTRAN_GPSReferenceTimeAssistance */
255
static int hf_ulp_utran_GANSSReferenceTimeAssistance;  /* UTRAN_GANSSReferenceTimeAssistance */
256
static int hf_ulp_ver2_HighAccuracyPosition;      /* Ver2_HighAccuracyPosition */
257
static int hf_ulp_emergencyCallLocation;          /* NULL */
258
static int hf_ulp_serviceCapabilities;            /* ServiceCapabilities */
259
static int hf_ulp_supportedBearers;               /* SupportedBearers */
260
static int hf_ulp_servicesSupported;              /* ServicesSupported */
261
static int hf_ulp_reportingCapabilities;          /* ReportingCap */
262
static int hf_ulp_eventTriggerCapabilities;       /* EventTriggerCapabilities */
263
static int hf_ulp_sessionCapabilities;            /* SessionCapabilities */
264
static int hf_ulp_periodicTrigger;                /* BOOLEAN */
265
static int hf_ulp_areaEventTrigger;               /* BOOLEAN */
266
static int hf_ulp_geoAreaShapesSupported;         /* GeoAreaShapesSupported */
267
static int hf_ulp_maxNumGeoAreaSupported;         /* INTEGER_0_maxNumGeoArea */
268
static int hf_ulp_maxAreaIdListSupported;         /* INTEGER_0_maxAreaIdList */
269
static int hf_ulp_maxAreaIdSupportedPerList;      /* INTEGER_0_maxAreaId */
270
static int hf_ulp_ellipticalArea_01;              /* BOOLEAN */
271
static int hf_ulp_polygonArea_01;                 /* BOOLEAN */
272
static int hf_ulp_maxNumberTotalSessions;         /* INTEGER_1_128 */
273
static int hf_ulp_maxNumberPeriodicSessions;      /* INTEGER_1_32 */
274
static int hf_ulp_maxNumberTriggeredSessions;     /* INTEGER_1_32 */
275
static int hf_ulp_gsm;                            /* BOOLEAN */
276
static int hf_ulp_wcdma;                          /* BOOLEAN */
277
static int hf_ulp_lte;                            /* BOOLEAN */
278
static int hf_ulp_cdma;                           /* BOOLEAN */
279
static int hf_ulp_hprd;                           /* BOOLEAN */
280
static int hf_ulp_umb;                            /* BOOLEAN */
281
static int hf_ulp_wlan;                           /* BOOLEAN */
282
static int hf_ulp_wiMAX;                          /* BOOLEAN */
283
static int hf_ulp_nr;                             /* BOOLEAN */
284
static int hf_ulp_lpp;                            /* BOOLEAN */
285
static int hf_ulp_posProtocolVersionRRLP;         /* PosProtocolVersion3GPP */
286
static int hf_ulp_posProtocolVersionRRC;          /* PosProtocolVersion3GPP */
287
static int hf_ulp_posProtocolVersionTIA801;       /* PosProtocolVersion3GPP2 */
288
static int hf_ulp_posProtocolVersionLPP;          /* PosProtocolVersion3GPP */
289
static int hf_ulp_lppe;                           /* BOOLEAN */
290
static int hf_ulp_posProtocolVersionLPPe;         /* PosProtocolVersionOMA */
291
static int hf_ulp_majorVersionField;              /* INTEGER_0_255 */
292
static int hf_ulp_technicalVersionField;          /* INTEGER_0_255 */
293
static int hf_ulp_editorialVersionField;          /* INTEGER_0_255 */
294
static int hf_ulp_PosProtocolVersion3GPP2_item;   /* Supported3GPP2PosProtocolVersion */
295
static int hf_ulp_revisionNumber;                 /* BIT_STRING_SIZE_6 */
296
static int hf_ulp_pointReleaseNumber;             /* INTEGER_0_255 */
297
static int hf_ulp_internalEditLevel;              /* INTEGER_0_255 */
298
static int hf_ulp_minorVersionField;              /* INTEGER_0_255 */
299
static int hf_ulp_gANSSPositionMethods;           /* GANSSPositionMethods */
300
static int hf_ulp_additionalPositioningMethods;   /* AdditionalPositioningMethods */
301
static int hf_ulp_GANSSPositionMethods_item;      /* GANSSPositionMethod */
302
static int hf_ulp_ganssSBASid;                    /* T_ganssSBASid */
303
static int hf_ulp_gANSSPositioningMethodTypes;    /* GANSSPositioningMethodTypes */
304
static int hf_ulp_rtk;                            /* RTK */
305
static int hf_ulp_osr;                            /* BOOLEAN */
306
static int hf_ulp_setAssisted;                    /* BOOLEAN */
307
static int hf_ulp_setBased;                       /* BOOLEAN */
308
static int hf_ulp_autonomous;                     /* BOOLEAN */
309
static int hf_ulp_AdditionalPositioningMethods_item;  /* AddPosSupport_Element */
310
static int hf_ulp_addPosID;                       /* T_addPosID */
311
static int hf_ulp_addPosMode;                     /* T_addPosMode */
312
static int hf_ulp_ganssRequestedCommonAssistanceDataList;  /* GanssRequestedCommonAssistanceDataList */
313
static int hf_ulp_ganssRequestedGenericAssistanceDataList;  /* GanssRequestedGenericAssistanceDataList */
314
static int hf_ulp_extendedEphemeris;              /* ExtendedEphemeris */
315
static int hf_ulp_extendedEphemerisCheck;         /* ExtendedEphCheck */
316
static int hf_ulp_ganssReferenceTime;             /* BOOLEAN */
317
static int hf_ulp_ganssIonosphericModel;          /* BOOLEAN */
318
static int hf_ulp_ganssAdditionalIonosphericModelForDataID00;  /* BOOLEAN */
319
static int hf_ulp_ganssAdditionalIonosphericModelForDataID11;  /* BOOLEAN */
320
static int hf_ulp_ganssEarthOrientationParameters;  /* BOOLEAN */
321
static int hf_ulp_ganssAdditionalIonosphericModelForDataID01;  /* BOOLEAN */
322
static int hf_ulp_GanssRequestedGenericAssistanceDataList_item;  /* GanssReqGenericData */
323
static int hf_ulp_ganssId_01;                     /* T_ganssId */
324
static int hf_ulp_ganssSBASid_01;                 /* T_ganssSBASid_01 */
325
static int hf_ulp_ganssRealTimeIntegrity;         /* BOOLEAN */
326
static int hf_ulp_ganssDifferentialCorrection;    /* DGANSS_Sig_Id_Req */
327
static int hf_ulp_ganssAlmanac;                   /* BOOLEAN */
328
static int hf_ulp_ganssNavigationModelData;       /* GanssNavigationModelData */
329
static int hf_ulp_ganssTimeModels;                /* T_ganssTimeModels */
330
static int hf_ulp_ganssReferenceMeasurementInfo;  /* BOOLEAN */
331
static int hf_ulp_ganssDataBits;                  /* GanssDataBits */
332
static int hf_ulp_ganssUTCModel;                  /* BOOLEAN */
333
static int hf_ulp_ganssAdditionalDataChoices;     /* GanssAdditionalDataChoices */
334
static int hf_ulp_ganssAuxiliaryInformation;      /* BOOLEAN */
335
static int hf_ulp_ganssExtendedEphemeris;         /* ExtendedEphemeris */
336
static int hf_ulp_ganssExtendedEphemerisCheck;    /* GanssExtendedEphCheck */
337
static int hf_ulp_bds_DifferentialCorrection;     /* BDS_Sig_Id_Req */
338
static int hf_ulp_bds_GridModelReq;               /* BOOLEAN */
339
static int hf_ulp_ganssWeek;                      /* T_ganssWeek */
340
static int hf_ulp_ganssToe;                       /* T_ganssToe */
341
static int hf_ulp_t_toeLimit;                     /* T_t_toeLimit */
342
static int hf_ulp_satellitesListRelatedDataList;  /* SatellitesListRelatedDataList */
343
static int hf_ulp_SatellitesListRelatedDataList_item;  /* SatellitesListRelatedData */
344
static int hf_ulp_iod;                            /* INTEGER_0_1023 */
345
static int hf_ulp_ganssTODmin;                    /* INTEGER_0_59 */
346
static int hf_ulp_reqDataBitAssistanceList;       /* ReqDataBitAssistanceList */
347
static int hf_ulp_gnssSignals;                    /* GANSSSignals */
348
static int hf_ulp_ganssDataBitInterval;           /* INTEGER_0_15 */
349
static int hf_ulp_ganssDataBitSatList;            /* T_ganssDataBitSatList */
350
static int hf_ulp_ganssDataBitSatList_item;       /* INTEGER_0_63 */
351
static int hf_ulp_orbitModelID;                   /* INTEGER_0_7 */
352
static int hf_ulp_clockModelID;                   /* INTEGER_0_7 */
353
static int hf_ulp_utcModelID;                     /* INTEGER_0_7 */
354
static int hf_ulp_almanacModelID;                 /* INTEGER_0_7 */
355
static int hf_ulp_validity;                       /* INTEGER_1_256 */
356
static int hf_ulp_beginTime;                      /* GPSTime */
357
static int hf_ulp_endTime;                        /* GPSTime */
358
static int hf_ulp_beginTime_01;                   /* GANSSextEphTime */
359
static int hf_ulp_endTime_01;                     /* GANSSextEphTime */
360
static int hf_ulp_gPSWeek;                        /* INTEGER_0_1023 */
361
static int hf_ulp_gPSTOWhour;                     /* INTEGER_0_167 */
362
static int hf_ulp_gANSSday;                       /* INTEGER_0_8191 */
363
static int hf_ulp_gANSSTODhour;                   /* INTEGER_0_23 */
364
static int hf_ulp_lPPPayload;                     /* T_lPPPayload */
365
static int hf_ulp_lPPPayload_item;                /* T_lPPPayload_item */
366
static int hf_ulp_tia801Payload;                  /* T_tia801Payload */
367
static int hf_ulp_tia801Payload_item;             /* OCTET_STRING_SIZE_1_60000 */
368
static int hf_ulp_maj;                            /* INTEGER_0_255 */
369
static int hf_ulp_min;                            /* INTEGER_0_255 */
370
static int hf_ulp_servind;                        /* INTEGER_0_255 */
371
static int hf_ulp_setSessionID;                   /* SetSessionID */
372
static int hf_ulp_slpSessionID;                   /* SlpSessionID */
373
static int hf_ulp_sessionId;                      /* INTEGER_0_65535 */
374
static int hf_ulp_setId;                          /* SETId */
375
static int hf_ulp_msisdn;                         /* T_msisdn */
376
static int hf_ulp_mdn;                            /* T_mdn */
377
static int hf_ulp_min_bit_string;                 /* BIT_STRING_SIZE_34 */
378
static int hf_ulp_imsi;                           /* T_imsi */
379
static int hf_ulp_nai;                            /* IA5String_SIZE_1_1000 */
380
static int hf_ulp_iPAddress;                      /* IPAddress */
381
static int hf_ulp_ver2_imei;                      /* OCTET_STRING_SIZE_8 */
382
static int hf_ulp_sessionSlpID;                   /* OCTET_STRING_SIZE_4 */
383
static int hf_ulp_slpId;                          /* SLPAddress */
384
static int hf_ulp_ipv4Address;                    /* OCTET_STRING_SIZE_4 */
385
static int hf_ulp_ipv6Address;                    /* OCTET_STRING_SIZE_16 */
386
static int hf_ulp_fqdn;                           /* FQDN */
387
static int hf_ulp_cellInfo;                       /* CellInfo */
388
static int hf_ulp_status;                         /* Status */
389
static int hf_ulp_gsmCell;                        /* GsmCellInformation */
390
static int hf_ulp_wcdmaCell;                      /* WcdmaCellInformation */
391
static int hf_ulp_cdmaCell;                       /* CdmaCellInformation */
392
static int hf_ulp_ver2_CellInfo_extension;        /* Ver2_CellInfo_extension */
393
static int hf_ulp_timestamp;                      /* UTCTime */
394
static int hf_ulp_positionEstimate;               /* PositionEstimate */
395
static int hf_ulp_latitudeSign;                   /* T_latitudeSign */
396
static int hf_ulp_latitude;                       /* INTEGER_0_8388607 */
397
static int hf_ulp_longitude;                      /* INTEGER_M8388608_8388607 */
398
static int hf_ulp_uncertainty;                    /* T_uncertainty */
399
static int hf_ulp_uncertaintySemiMajor;           /* INTEGER_0_127 */
400
static int hf_ulp_uncertaintySemiMinor;           /* INTEGER_0_127 */
401
static int hf_ulp_orientationMajorAxis;           /* INTEGER_0_180 */
402
static int hf_ulp_confidence;                     /* INTEGER_0_100 */
403
static int hf_ulp_altitudeInfo;                   /* AltitudeInfo */
404
static int hf_ulp_altitudeDirection;              /* T_altitudeDirection */
405
static int hf_ulp_altitude;                       /* INTEGER_0_32767 */
406
static int hf_ulp_altUncertainty;                 /* INTEGER_0_127 */
407
static int hf_ulp_refNID_01;                      /* INTEGER_0_65535 */
408
static int hf_ulp_refSID_01;                      /* INTEGER_0_32767 */
409
static int hf_ulp_refBASELAT;                     /* INTEGER_0_4194303 */
410
static int hf_ulp_reBASELONG;                     /* INTEGER_0_8388607 */
411
static int hf_ulp_refREFPN;                       /* INTEGER_0_511 */
412
static int hf_ulp_refWeekNumber;                  /* INTEGER_0_65535 */
413
static int hf_ulp_refSeconds;                     /* INTEGER_0_4194303 */
414
static int hf_ulp_nmr;                            /* NMR */
415
static int hf_ulp_ta;                             /* INTEGER_0_255 */
416
static int hf_ulp_frequencyInfo;                  /* FrequencyInfo */
417
static int hf_ulp_primaryScramblingCode;          /* INTEGER_0_511 */
418
static int hf_ulp_measuredResultsList;            /* MeasuredResultsList */
419
static int hf_ulp_cellParametersId;               /* INTEGER_0_127 */
420
static int hf_ulp_timingAdvance;                  /* TimingAdvance */
421
static int hf_ulp_ta_01;                          /* INTEGER_0_8191 */
422
static int hf_ulp_tAResolution;                   /* TAResolution */
423
static int hf_ulp_chipRate;                       /* ChipRate */
424
static int hf_ulp_modeSpecificFrequencyInfo;      /* FrequencySpecificInfo */
425
static int hf_ulp_fdd_fr;                         /* FrequencyInfoFDD */
426
static int hf_ulp_tdd_fr;                         /* FrequencyInfoTDD */
427
static int hf_ulp_uarfcn_UL;                      /* UARFCN */
428
static int hf_ulp_uarfcn_DL;                      /* UARFCN */
429
static int hf_ulp_uarfcn_Nt;                      /* UARFCN */
430
static int hf_ulp_NMR_item;                       /* NMRelement */
431
static int hf_ulp_arfcn;                          /* INTEGER_0_1023 */
432
static int hf_ulp_bsic;                           /* INTEGER_0_63 */
433
static int hf_ulp_rxLev;                          /* INTEGER_0_63 */
434
static int hf_ulp_MeasuredResultsList_item;       /* MeasuredResults */
435
static int hf_ulp_utra_CarrierRSSI;               /* UTRA_CarrierRSSI */
436
static int hf_ulp_cellMeasuredResultsList;        /* CellMeasuredResultsList */
437
static int hf_ulp_CellMeasuredResultsList_item;   /* CellMeasuredResults */
438
static int hf_ulp_cellIdentity_uint;              /* INTEGER_0_268435455 */
439
static int hf_ulp_modeSpecificInfo;               /* T_modeSpecificInfo */
440
static int hf_ulp_fdd;                            /* T_fdd */
441
static int hf_ulp_primaryCPICH_Info;              /* PrimaryCPICH_Info */
442
static int hf_ulp_cpich_Ec_N0;                    /* CPICH_Ec_N0 */
443
static int hf_ulp_cpich_RSCP;                     /* CPICH_RSCP */
444
static int hf_ulp_pathloss;                       /* Pathloss */
445
static int hf_ulp_tdd;                            /* T_tdd */
446
static int hf_ulp_cellParametersID;               /* CellParametersID */
447
static int hf_ulp_proposedTGSN;                   /* TGSN */
448
static int hf_ulp_primaryCCPCH_RSCP;              /* PrimaryCCPCH_RSCP */
449
static int hf_ulp_timeslotISCP_List;              /* TimeslotISCP_List */
450
static int hf_ulp_TimeslotISCP_List_item;         /* TimeslotISCP */
451
static int hf_ulp_horacc;                         /* INTEGER_0_127 */
452
static int hf_ulp_veracc;                         /* INTEGER_0_127 */
453
static int hf_ulp_maxLocAge;                      /* INTEGER_0_65535 */
454
static int hf_ulp_delay;                          /* INTEGER_0_7 */
455
static int hf_ulp_ver2_responseTime;              /* INTEGER_1_128 */
456
static int hf_ulp_horvel;                         /* Horvel */
457
static int hf_ulp_horandvervel;                   /* Horandvervel */
458
static int hf_ulp_horveluncert;                   /* Horveluncert */
459
static int hf_ulp_horandveruncert;                /* Horandveruncert */
460
static int hf_ulp_bearing;                        /* T_bearing */
461
static int hf_ulp_horspeed;                       /* T_horspeed */
462
static int hf_ulp_verdirect;                      /* T_verdirect */
463
static int hf_ulp_bearing_01;                     /* T_bearing_01 */
464
static int hf_ulp_horspeed_01;                    /* T_horspeed_01 */
465
static int hf_ulp_verspeed;                       /* T_verspeed */
466
static int hf_ulp_bearing_02;                     /* T_bearing_02 */
467
static int hf_ulp_horspeed_02;                    /* T_horspeed_02 */
468
static int hf_ulp_uncertspeed;                    /* T_uncertspeed */
469
static int hf_ulp_verdirect_01;                   /* T_verdirect_01 */
470
static int hf_ulp_bearing_03;                     /* T_bearing_03 */
471
static int hf_ulp_horspeed_03;                    /* T_horspeed_03 */
472
static int hf_ulp_verspeed_01;                    /* T_verspeed_01 */
473
static int hf_ulp_horuncertspeed;                 /* T_horuncertspeed */
474
static int hf_ulp_veruncertspeed;                 /* T_veruncertspeed */
475
static int hf_ulp_MultipleLocationIds_item;       /* LocationIdData */
476
static int hf_ulp_relativetimestamp;              /* RelativeTime */
477
static int hf_ulp_servingFlag;                    /* BOOLEAN */
478
static int hf_ulp_supportedWLANInfo;              /* SupportedWLANInfo */
479
static int hf_ulp_supportedWLANApsList;           /* SupportedWLANApsList */
480
static int hf_ulp_supportedWCDMAInfo;             /* SupportedWCDMAInfo */
481
static int hf_ulp_hrdp;                           /* BOOLEAN */
482
static int hf_ulp_wimax;                          /* BOOLEAN */
483
static int hf_ulp_historic;                       /* BOOLEAN */
484
static int hf_ulp_nonServing;                     /* BOOLEAN */
485
static int hf_ulp_uTRANGPSReferenceTime;          /* BOOLEAN */
486
static int hf_ulp_uTRANGANSSReferenceTime;        /* BOOLEAN */
487
static int hf_ulp_apTP;                           /* BOOLEAN */
488
static int hf_ulp_apAG;                           /* BOOLEAN */
489
static int hf_ulp_apSN;                           /* BOOLEAN */
490
static int hf_ulp_apDevType;                      /* BOOLEAN */
491
static int hf_ulp_apRSSI;                         /* BOOLEAN */
492
static int hf_ulp_apChanFreq;                     /* BOOLEAN */
493
static int hf_ulp_apRTD;                          /* BOOLEAN */
494
static int hf_ulp_setTP;                          /* BOOLEAN */
495
static int hf_ulp_setAG;                          /* BOOLEAN */
496
static int hf_ulp_setSN;                          /* BOOLEAN */
497
static int hf_ulp_setRSSI;                        /* BOOLEAN */
498
static int hf_ulp_apRepLoc;                       /* BOOLEAN */
499
static int hf_ulp_apRL;                           /* BOOLEAN */
500
static int hf_ulp_opClass;                        /* BOOLEAN */
501
static int hf_ulp_apSSID_bool;                    /* BOOLEAN */
502
static int hf_ulp_apPHYType_bool;                 /* BOOLEAN */
503
static int hf_ulp_setMACAddress_bool;             /* BOOLEAN */
504
static int hf_ulp_supportedWLANApDataList;        /* SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData */
505
static int hf_ulp_supportedWLANApDataList_item;   /* SupportedWLANApData */
506
static int hf_ulp_supportedWLANapsChannel11a;     /* SupportedWLANApsChannel11a */
507
static int hf_ulp_supportedWLANapsChannel11bg;    /* SupportedWLANApsChannel11bg */
508
static int hf_ulp_ch34;                           /* BOOLEAN */
509
static int hf_ulp_ch36;                           /* BOOLEAN */
510
static int hf_ulp_ch38;                           /* BOOLEAN */
511
static int hf_ulp_ch40;                           /* BOOLEAN */
512
static int hf_ulp_ch42;                           /* BOOLEAN */
513
static int hf_ulp_ch44;                           /* BOOLEAN */
514
static int hf_ulp_ch46;                           /* BOOLEAN */
515
static int hf_ulp_ch48;                           /* BOOLEAN */
516
static int hf_ulp_ch52;                           /* BOOLEAN */
517
static int hf_ulp_ch56;                           /* BOOLEAN */
518
static int hf_ulp_ch60;                           /* BOOLEAN */
519
static int hf_ulp_ch64;                           /* BOOLEAN */
520
static int hf_ulp_ch149;                          /* BOOLEAN */
521
static int hf_ulp_ch153;                          /* BOOLEAN */
522
static int hf_ulp_ch157;                          /* BOOLEAN */
523
static int hf_ulp_ch161;                          /* BOOLEAN */
524
static int hf_ulp_ch1;                            /* BOOLEAN */
525
static int hf_ulp_ch2;                            /* BOOLEAN */
526
static int hf_ulp_ch3;                            /* BOOLEAN */
527
static int hf_ulp_ch4;                            /* BOOLEAN */
528
static int hf_ulp_ch5;                            /* BOOLEAN */
529
static int hf_ulp_ch6;                            /* BOOLEAN */
530
static int hf_ulp_ch7;                            /* BOOLEAN */
531
static int hf_ulp_ch8;                            /* BOOLEAN */
532
static int hf_ulp_ch9;                            /* BOOLEAN */
533
static int hf_ulp_ch10;                           /* BOOLEAN */
534
static int hf_ulp_ch11;                           /* BOOLEAN */
535
static int hf_ulp_ch12;                           /* BOOLEAN */
536
static int hf_ulp_ch13;                           /* BOOLEAN */
537
static int hf_ulp_ch14;                           /* BOOLEAN */
538
static int hf_ulp_apMACAddress_01;                /* T_apMACAddress_01 */
539
static int hf_ulp_apDevType_enum;                 /* T_apDevType_enum */
540
static int hf_ulp_mrl;                            /* BOOLEAN */
541
static int hf_ulp_hrpdCell;                       /* HrpdCellInformation */
542
static int hf_ulp_umbCell;                        /* UmbCellInformation */
543
static int hf_ulp_lteCell;                        /* LteCellInformation */
544
static int hf_ulp_wlanAP;                         /* WlanAPInformation */
545
static int hf_ulp_wimaxBS;                        /* WimaxBSInformation */
546
static int hf_ulp_nrCell;                         /* NRCellInformation */
547
static int hf_ulp_cellGlobalIdEUTRA;              /* CellGlobalIdEUTRA */
548
static int hf_ulp_physCellId;                     /* PhysCellId */
549
static int hf_ulp_trackingAreaCode;               /* TrackingAreaCode */
550
static int hf_ulp_rsrpResult;                     /* RSRP_Range */
551
static int hf_ulp_rsrqResult;                     /* RSRQ_Range */
552
static int hf_ulp_ta_02;                          /* INTEGER_0_1282 */
553
static int hf_ulp_measResultListEUTRA;            /* MeasResultListEUTRA */
554
static int hf_ulp_earfcn;                         /* INTEGER_0_65535 */
555
static int hf_ulp_earfcn_ext;                     /* INTEGER_65536_262143 */
556
static int hf_ulp_rsrpResult_ext;                 /* RSRP_Range_Ext */
557
static int hf_ulp_rsrqResult_ext;                 /* RSRQ_Range_Ext */
558
static int hf_ulp_rs_sinrResult;                  /* RS_SINR_Range */
559
static int hf_ulp_servingInformation5G;           /* ServingInformation5G */
560
static int hf_ulp_MeasResultListEUTRA_item;       /* MeasResultEUTRA */
561
static int hf_ulp_cgi_Info;                       /* T_cgi_Info */
562
static int hf_ulp_cellGlobalId;                   /* CellGlobalIdEUTRA */
563
static int hf_ulp_measResult;                     /* T_measResult */
564
static int hf_ulp_neighbourInformation5G;         /* NeighbourInformation5G */
565
static int hf_ulp_plmn_Identity;                  /* PLMN_Identity */
566
static int hf_ulp_cellIdentity;                   /* CellIdentity */
567
static int hf_ulp_mcc;                            /* MCC */
568
static int hf_ulp_mnc;                            /* MNC */
569
static int hf_ulp_MCC_item;                       /* MCC_MNC_Digit */
570
static int hf_ulp_MNC_item;                       /* MCC_MNC_Digit */
571
static int hf_ulp_trackingAreaCode_01;            /* TrackingAreaCodeNR */
572
static int hf_ulp_apMACAddress_02;                /* T_apMACAddress_02 */
573
static int hf_ulp_apTransmitPower;                /* INTEGER_M127_128 */
574
static int hf_ulp_apAntennaGain;                  /* INTEGER_M127_128 */
575
static int hf_ulp_apSignaltoNoise;                /* INTEGER_M127_128 */
576
static int hf_ulp_apDeviceType;                   /* T_apDeviceType */
577
static int hf_ulp_apSignalStrength;               /* INTEGER_M127_128 */
578
static int hf_ulp_apChannelFrequency;             /* INTEGER_0_256 */
579
static int hf_ulp_apRoundTripDelay;               /* RTD */
580
static int hf_ulp_setTransmitPower;               /* INTEGER_M127_128 */
581
static int hf_ulp_setAntennaGain;                 /* INTEGER_M127_128 */
582
static int hf_ulp_setSignaltoNoise;               /* INTEGER_M127_128 */
583
static int hf_ulp_setSignalStrength;              /* INTEGER_M127_128 */
584
static int hf_ulp_apReportedLocation;             /* ReportedLocation */
585
static int hf_ulp_apRepLocation;                  /* RepLocation */
586
static int hf_ulp_apSignalStrengthDelta;          /* INTEGER_0_1 */
587
static int hf_ulp_apSignaltoNoiseDelta;           /* INTEGER_0_1 */
588
static int hf_ulp_setSignalStrengthDelta;         /* INTEGER_0_1 */
589
static int hf_ulp_setSignaltoNoiseDelta;          /* INTEGER_0_1 */
590
static int hf_ulp_operatingClass;                 /* INTEGER_0_255 */
591
static int hf_ulp_apSSID;                         /* T_apSSID */
592
static int hf_ulp_apPHYType;                      /* T_apPHYType */
593
static int hf_ulp_setMACAddress;                  /* T_setMACAddress */
594
static int hf_ulp_rTDValue;                       /* INTEGER_0_16777216 */
595
static int hf_ulp_rTDUnits;                       /* RTDUnits */
596
static int hf_ulp_rTDAccuracy;                    /* INTEGER_0_255 */
597
static int hf_ulp_locationEncodingDescriptor;     /* LocationEncodingDescriptor */
598
static int hf_ulp_locationData;                   /* LocationData */
599
static int hf_ulp_locationAccuracy;               /* INTEGER_0_4294967295 */
600
static int hf_ulp_locationValue;                  /* OCTET_STRING_SIZE_1_128 */
601
static int hf_ulp_lciLocData;                     /* LciLocData */
602
static int hf_ulp_locationDataLCI;                /* LocationDataLCI */
603
static int hf_ulp_latitudeResolution;             /* BIT_STRING_SIZE_6 */
604
static int hf_ulp_latitude_bit_string;            /* BIT_STRING_SIZE_34 */
605
static int hf_ulp_longitudeResolution;            /* BIT_STRING_SIZE_6 */
606
static int hf_ulp_longitude_bit_string;           /* BIT_STRING_SIZE_34 */
607
static int hf_ulp_altitudeType;                   /* BIT_STRING_SIZE_4 */
608
static int hf_ulp_altitudeResolution;             /* BIT_STRING_SIZE_6 */
609
static int hf_ulp_altitude_bit_string;            /* BIT_STRING_SIZE_30 */
610
static int hf_ulp_datum;                          /* BIT_STRING_SIZE_8 */
611
static int hf_ulp_wimaxBsID;                      /* WimaxBsID */
612
static int hf_ulp_wimaxRTD;                       /* WimaxRTD */
613
static int hf_ulp_wimaxNMRList;                   /* WimaxNMRList */
614
static int hf_ulp_rtd;                            /* INTEGER_0_65535 */
615
static int hf_ulp_rTDstd;                         /* INTEGER_0_1023 */
616
static int hf_ulp_WimaxNMRList_item;              /* WimaxNMR */
617
static int hf_ulp_relDelay;                       /* INTEGER_M32768_32767 */
618
static int hf_ulp_relDelaystd;                    /* INTEGER_0_1023 */
619
static int hf_ulp_rssi;                           /* INTEGER_0_255 */
620
static int hf_ulp_rSSIstd;                        /* INTEGER_0_63 */
621
static int hf_ulp_bSTxPower;                      /* INTEGER_0_255 */
622
static int hf_ulp_cinr;                           /* INTEGER_0_255 */
623
static int hf_ulp_cINRstd;                        /* INTEGER_0_63 */
624
static int hf_ulp_bSLocation;                     /* ReportedLocation */
625
static int hf_ulp_servingCellInformation;         /* ServingCellInformationNR */
626
static int hf_ulp_measuredResultsListNR;          /* MeasResultListNR */
627
static int hf_ulp_ServingCellInformationNR_item;  /* ServCellNR */
628
static int hf_ulp_physCellId_01;                  /* PhysCellIdNR */
629
static int hf_ulp_arfcn_NR;                       /* ARFCN_NR */
630
static int hf_ulp_cellGlobalId_01;                /* CellGlobalIdNR */
631
static int hf_ulp_ssb_Measurements;               /* NR_Measurements */
632
static int hf_ulp_csi_rs_Measurements;            /* NR_Measurements */
633
static int hf_ulp_ta_03;                          /* INTEGER_0_3846 */
634
static int hf_ulp_MeasResultListNR_item;          /* MeasResultNR */
635
static int hf_ulp_cellIdentityNR;                 /* CellIdentityNR */
636
static int hf_ulp_rsrp_Range;                     /* INTEGER_0_127 */
637
static int hf_ulp_rsrq_Range;                     /* INTEGER_0_127 */
638
static int hf_ulp_sinr_Range;                     /* INTEGER_0_127 */
639
static int hf_ulp_utran_GPSReferenceTime;         /* UTRAN_GPSReferenceTime */
640
static int hf_ulp_gpsReferenceTimeUncertainty;    /* INTEGER_0_127 */
641
static int hf_ulp_utranGPSDriftRate;              /* UTRANGPSDriftRate */
642
static int hf_ulp_utran_GPSTimingOfCell;          /* T_utran_GPSTimingOfCell */
643
static int hf_ulp_ms_part;                        /* INTEGER_0_1023 */
644
static int hf_ulp_ls_part;                        /* INTEGER_0_4294967295 */
645
static int hf_ulp_modeSpecificInfo_01;            /* T_modeSpecificInfo_01 */
646
static int hf_ulp_fdd_01;                         /* T_fdd_01 */
647
static int hf_ulp_referenceIdentity;              /* PrimaryCPICH_Info */
648
static int hf_ulp_tdd_01;                         /* T_tdd_01 */
649
static int hf_ulp_referenceIdentity_01;           /* CellParametersID */
650
static int hf_ulp_sfn;                            /* INTEGER_0_4095 */
651
static int hf_ulp_set_GPSTimingOfCell;            /* T_set_GPSTimingOfCell */
652
static int hf_ulp_ms_part_01;                     /* INTEGER_0_16383 */
653
static int hf_ulp_modeSpecificInfo_02;            /* T_modeSpecificInfo_02 */
654
static int hf_ulp_fdd_02;                         /* T_fdd_02 */
655
static int hf_ulp_tdd_02;                         /* T_tdd_02 */
656
static int hf_ulp_ganssDay;                       /* INTEGER_0_8191 */
657
static int hf_ulp_ganssTimeID;                    /* INTEGER_0_15 */
658
static int hf_ulp_utran_GANSSReferenceTime;       /* UTRAN_GANSSReferenceTime */
659
static int hf_ulp_utranGANSSDriftRate;            /* UTRANGANSSDriftRate */
660
static int hf_ulp_ganssTOD;                       /* INTEGER_0_86399 */
661
static int hf_ulp_utran_GANSSTimingOfCell;        /* INTEGER_0_3999999 */
662
static int hf_ulp_modeSpecificInfo_03;            /* T_modeSpecificInfo_03 */
663
static int hf_ulp_fdd_03;                         /* T_fdd_03 */
664
static int hf_ulp_tdd_03;                         /* T_tdd_03 */
665
static int hf_ulp_ganss_TODUncertainty;           /* INTEGER_0_127 */
666
static int hf_ulp_set_GANSSReferenceTime;         /* SET_GANSSReferenceTime */
667
static int hf_ulp_set_GANSSTimingOfCell;          /* T_set_GANSSTimingOfCell */
668
static int hf_ulp_ms_part_02;                     /* INTEGER_0_80 */
669
static int hf_ulp_modeSpecificInfo_04;            /* T_modeSpecificInfo_04 */
670
static int hf_ulp_fdd_04;                         /* T_fdd_04 */
671
static int hf_ulp_tdd_04;                         /* T_tdd_04 */
672
static int hf_ulp_gps;                            /* BOOLEAN */
673
static int hf_ulp_galileo;                        /* BOOLEAN */
674
static int hf_ulp_sbas;                           /* BOOLEAN */
675
static int hf_ulp_modernized_gps;                 /* BOOLEAN */
676
static int hf_ulp_qzss;                           /* BOOLEAN */
677
static int hf_ulp_glonass;                        /* BOOLEAN */
678
static int hf_ulp_bds;                            /* BOOLEAN */
679
static int hf_ulp_rtk_osr;                        /* BOOLEAN */
680
static int hf_ulp_rand;                           /* BIT_STRING_SIZE_128 */
681
static int hf_ulp_slpFQDN;                        /* FQDN */
682
static int hf_ulp_ThirdParty_item;                /* ThirdPartyID */
683
static int hf_ulp_logicalName;                    /* IA5String_SIZE_1_1000 */
684
static int hf_ulp_msisdn_01;                      /* T_msisdn_01 */
685
static int hf_ulp_emailaddr;                      /* IA5String_SIZE_1_1000 */
686
static int hf_ulp_sip_uri;                        /* T_sip_uri */
687
static int hf_ulp_ims_public_identity;            /* T_ims_public_identity */
688
static int hf_ulp_mdn_01;                         /* T_mdn_01 */
689
static int hf_ulp_uri;                            /* T_uri */
690
static int hf_ulp_appProvider;                    /* IA5String_SIZE_1_24 */
691
static int hf_ulp_appName;                        /* IA5String_SIZE_1_32 */
692
static int hf_ulp_appVersion;                     /* IA5String_SIZE_1_8 */
693
static int hf_ulp_minInt;                         /* INTEGER_1_3600 */
694
static int hf_ulp_maxInt;                         /* INTEGER_1_1440 */
695
static int hf_ulp_repMode_01;                     /* RepMode */
696
static int hf_ulp_batchRepCap;                    /* BatchRepCap */
697
static int hf_ulp_realtime;                       /* BOOLEAN */
698
static int hf_ulp_quasirealtime;                  /* BOOLEAN */
699
static int hf_ulp_batch;                          /* BOOLEAN */
700
static int hf_ulp_report_position;                /* BOOLEAN */
701
static int hf_ulp_report_measurements;            /* BOOLEAN */
702
static int hf_ulp_max_num_positions;              /* INTEGER_1_1024 */
703
static int hf_ulp_max_num_measurements;           /* INTEGER_1_1024 */
704
static int hf_ulp_latitudeSign_01;                /* T_latitudeSign_01 */
705
static int hf_ulp_coordinateLatitude;             /* INTEGER_0_8388607 */
706
static int hf_ulp_coordinateLongitude;            /* INTEGER_M8388608_8388607 */
707
static int hf_ulp_coordinate;                     /* Coordinate */
708
static int hf_ulp_radius;                         /* INTEGER_1_1000000 */
709
static int hf_ulp_radius_min;                     /* INTEGER_1_1000000 */
710
static int hf_ulp_radius_max;                     /* INTEGER_1_1500000 */
711
static int hf_ulp_semiMajor;                      /* INTEGER_1_1000000 */
712
static int hf_ulp_semiMajor_min;                  /* INTEGER_1_1000000 */
713
static int hf_ulp_semiMajor_max;                  /* INTEGER_1_1500000 */
714
static int hf_ulp_semiMinor;                      /* INTEGER_1_1000000 */
715
static int hf_ulp_semiMinor_min;                  /* INTEGER_1_1000000 */
716
static int hf_ulp_semiMinor_max;                  /* INTEGER_1_1500000 */
717
static int hf_ulp_angle;                          /* INTEGER_0_179 */
718
static int hf_ulp_polygonDescription;             /* PolygonDescription */
719
static int hf_ulp_polygonHysteresis;              /* INTEGER_1_100000 */
720
static int hf_ulp_PolygonDescription_item;        /* Coordinate */
721
static int hf_ulp_highAccuracyPositionEstimate;   /* HighAccuracyPositionEstimate */
722
static int hf_ulp_degreesLatitude;                /* INTEGER_M2147483648_2147483647 */
723
static int hf_ulp_degreesLongitude;               /* INTEGER_M2147483648_2147483647 */
724
static int hf_ulp_uncertaintySemiMajor_01;        /* INTEGER_0_255 */
725
static int hf_ulp_uncertaintySemiMinor_01;        /* INTEGER_0_255 */
726
static int hf_ulp_orientationMajorAxis_01;        /* INTEGER_0_179 */
727
static int hf_ulp_horizontalConfidence;           /* INTEGER_0_100 */
728
static int hf_ulp_highAccuracyAltitudeInfo;       /* HighAccuracyAltitudeInfo */
729
static int hf_ulp_altitude_01;                    /* INTEGER_64000_1280000 */
730
static int hf_ulp_uncertaintyAltitude;            /* INTEGER_0_255 */
731
static int hf_ulp_verticalConfidence;             /* INTEGER_0_100 */
732
/* named bits */
733
static int hf_ulp_T_addPosMode_standalone;
734
static int hf_ulp_T_addPosMode_setBased;
735
static int hf_ulp_T_addPosMode_setAssisted;
736
static int hf_ulp_GANSSSignals_signal1;
737
static int hf_ulp_GANSSSignals_signal2;
738
static int hf_ulp_GANSSSignals_signal3;
739
static int hf_ulp_GANSSSignals_signal4;
740
static int hf_ulp_GANSSSignals_signal5;
741
static int hf_ulp_GANSSSignals_signal6;
742
static int hf_ulp_GANSSSignals_signal7;
743
static int hf_ulp_GANSSSignals_signal8;
744
static int hf_ulp_mobile_directory_number;
745
static int hf_ulp_ganssTimeModels_bit0;
746
static int hf_ulp_ganssTimeModels_bit1;
747
static int hf_ulp_ganssTimeModels_bit2;
748
static int hf_ulp_ganssTimeModels_bit3;
749
static int hf_ulp_ganssTimeModels_bit4;
750
static int hf_ulp_ganssTimeModels_spare;
751
752
/* Initialize the subtree pointers */
753
static int ett_ulp;
754
static int ett_ulp_setid;
755
static int ett_ulp_thirdPartyId;
756
static int ett_ulp_ganssTimeModels;
757
static int ett_ulp_ULP_PDU;
758
static int ett_ulp_UlpMessage;
759
static int ett_ulp_SUPLINIT;
760
static int ett_ulp_Notification;
761
static int ett_ulp_SUPLSTART;
762
static int ett_ulp_SETCapabilities;
763
static int ett_ulp_PosTechnology;
764
static int ett_ulp_PosProtocol;
765
static int ett_ulp_SUPLRESPONSE;
766
static int ett_ulp_SETAuthKey;
767
static int ett_ulp_SUPLPOSINIT;
768
static int ett_ulp_RequestedAssistData;
769
static int ett_ulp_NavigationModel;
770
static int ett_ulp_SatelliteInfo;
771
static int ett_ulp_SatelliteInfoElement;
772
static int ett_ulp_SUPLPOS;
773
static int ett_ulp_PosPayLoad;
774
static int ett_ulp_SUPLEND;
775
static int ett_ulp_SUPLAUTHREQ;
776
static int ett_ulp_SUPLAUTHRESP;
777
static int ett_ulp_Ver2_SUPLNOTIFY;
778
static int ett_ulp_Ver2_SUPLNOTIFYRESPONSE;
779
static int ett_ulp_Ver2_SUPLSETINIT;
780
static int ett_ulp_Ver2_SUPLTRIGGEREDSTART;
781
static int ett_ulp_TriggerParams;
782
static int ett_ulp_PeriodicParams;
783
static int ett_ulp_AreaEventParams;
784
static int ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList;
785
static int ett_ulp_RepeatedReportingParams;
786
static int ett_ulp_GeographicTargetAreaList;
787
static int ett_ulp_GeographicTargetArea;
788
static int ett_ulp_AreaIdList;
789
static int ett_ulp_AreaIdSet;
790
static int ett_ulp_AreaId;
791
static int ett_ulp_GSMAreaId;
792
static int ett_ulp_WCDMAAreaId;
793
static int ett_ulp_CDMAAreaId;
794
static int ett_ulp_HRPDAreaId;
795
static int ett_ulp_UMBAreaId;
796
static int ett_ulp_LTEAreaId;
797
static int ett_ulp_WLANAreaId;
798
static int ett_ulp_WimaxAreaId;
799
static int ett_ulp_NRAreaId;
800
static int ett_ulp_GeoAreaMappingList;
801
static int ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE;
802
static int ett_ulp_ReportingMode;
803
static int ett_ulp_BatchRepConditions;
804
static int ett_ulp_BatchRepType;
805
static int ett_ulp_Ver2_SUPLREPORT;
806
static int ett_ulp_SessionList;
807
static int ett_ulp_SessionInformation;
808
static int ett_ulp_ReportDataList;
809
static int ett_ulp_ReportData;
810
static int ett_ulp_PositionData;
811
static int ett_ulp_GANSSsignalsInfo;
812
static int ett_ulp_GANSSSignalsDescription;
813
static int ett_ulp_TimeStamp;
814
static int ett_ulp_Ver2_SUPLTRIGGEREDSTOP;
815
static int ett_ulp_Ver2_SUPL_INIT_extension;
816
static int ett_ulp_HistoricReporting;
817
static int ett_ulp_ReportingCriteria;
818
static int ett_ulp_TimeWindow;
819
static int ett_ulp_ProtectionLevel;
820
static int ett_ulp_BasicProtectionParams;
821
static int ett_ulp_Ver2_SUPL_START_extension;
822
static int ett_ulp_Ver2_SUPL_RESPONSE_extension;
823
static int ett_ulp_Ver2_SUPL_POS_INIT_extension;
824
static int ett_ulp_Ver2_SUPL_POS_extension;
825
static int ett_ulp_Ver2_SUPL_END_extension;
826
static int ett_ulp_Ver2_Notification_extension;
827
static int ett_ulp_Ver2_SETCapabilities_extension;
828
static int ett_ulp_ServiceCapabilities;
829
static int ett_ulp_ServicesSupported;
830
static int ett_ulp_EventTriggerCapabilities;
831
static int ett_ulp_GeoAreaShapesSupported;
832
static int ett_ulp_SessionCapabilities;
833
static int ett_ulp_SupportedBearers;
834
static int ett_ulp_Ver2_PosProtocol_extension;
835
static int ett_ulp_PosProtocolVersion3GPP;
836
static int ett_ulp_PosProtocolVersion3GPP2;
837
static int ett_ulp_Supported3GPP2PosProtocolVersion;
838
static int ett_ulp_PosProtocolVersionOMA;
839
static int ett_ulp_Ver2_PosTechnology_extension;
840
static int ett_ulp_GANSSPositionMethods;
841
static int ett_ulp_GANSSPositionMethod;
842
static int ett_ulp_RTK;
843
static int ett_ulp_GANSSPositioningMethodTypes;
844
static int ett_ulp_AdditionalPositioningMethods;
845
static int ett_ulp_AddPosSupport_Element;
846
static int ett_ulp_T_addPosMode;
847
static int ett_ulp_Ver2_RequestedAssistData_extension;
848
static int ett_ulp_GanssRequestedCommonAssistanceDataList;
849
static int ett_ulp_GanssRequestedGenericAssistanceDataList;
850
static int ett_ulp_GanssReqGenericData;
851
static int ett_ulp_GanssNavigationModelData;
852
static int ett_ulp_SatellitesListRelatedDataList;
853
static int ett_ulp_SatellitesListRelatedData;
854
static int ett_ulp_GanssDataBits;
855
static int ett_ulp_ReqDataBitAssistanceList;
856
static int ett_ulp_T_ganssDataBitSatList;
857
static int ett_ulp_GanssAdditionalDataChoices;
858
static int ett_ulp_ExtendedEphemeris;
859
static int ett_ulp_ExtendedEphCheck;
860
static int ett_ulp_GanssExtendedEphCheck;
861
static int ett_ulp_GPSTime;
862
static int ett_ulp_GANSSextEphTime;
863
static int ett_ulp_Ver2_PosPayLoad_extension;
864
static int ett_ulp_T_lPPPayload;
865
static int ett_ulp_T_tia801Payload;
866
static int ett_ulp_Version;
867
static int ett_ulp_SessionID;
868
static int ett_ulp_SetSessionID;
869
static int ett_ulp_SETId;
870
static int ett_ulp_SlpSessionID;
871
static int ett_ulp_IPAddress;
872
static int ett_ulp_SLPAddress;
873
static int ett_ulp_LocationId;
874
static int ett_ulp_CellInfo;
875
static int ett_ulp_Position;
876
static int ett_ulp_PositionEstimate;
877
static int ett_ulp_T_uncertainty;
878
static int ett_ulp_AltitudeInfo;
879
static int ett_ulp_CdmaCellInformation;
880
static int ett_ulp_GsmCellInformation;
881
static int ett_ulp_WcdmaCellInformation;
882
static int ett_ulp_TimingAdvance;
883
static int ett_ulp_FrequencyInfo;
884
static int ett_ulp_FrequencySpecificInfo;
885
static int ett_ulp_FrequencyInfoFDD;
886
static int ett_ulp_FrequencyInfoTDD;
887
static int ett_ulp_NMR;
888
static int ett_ulp_NMRelement;
889
static int ett_ulp_MeasuredResultsList;
890
static int ett_ulp_MeasuredResults;
891
static int ett_ulp_CellMeasuredResultsList;
892
static int ett_ulp_CellMeasuredResults;
893
static int ett_ulp_T_modeSpecificInfo;
894
static int ett_ulp_T_fdd;
895
static int ett_ulp_T_tdd;
896
static int ett_ulp_TimeslotISCP_List;
897
static int ett_ulp_PrimaryCPICH_Info;
898
static int ett_ulp_QoP;
899
static int ett_ulp_Velocity;
900
static int ett_ulp_Horvel;
901
static int ett_ulp_Horandvervel;
902
static int ett_ulp_Horveluncert;
903
static int ett_ulp_Horandveruncert;
904
static int ett_ulp_MultipleLocationIds;
905
static int ett_ulp_LocationIdData;
906
static int ett_ulp_SupportedNetworkInformation;
907
static int ett_ulp_SupportedWLANInfo;
908
static int ett_ulp_SupportedWLANApsList;
909
static int ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData;
910
static int ett_ulp_SupportedWLANApsChannel11a;
911
static int ett_ulp_SupportedWLANApsChannel11bg;
912
static int ett_ulp_SupportedWLANApData;
913
static int ett_ulp_SupportedWCDMAInfo;
914
static int ett_ulp_Ver2_CellInfo_extension;
915
static int ett_ulp_HrpdCellInformation;
916
static int ett_ulp_UmbCellInformation;
917
static int ett_ulp_LteCellInformation;
918
static int ett_ulp_MeasResultListEUTRA;
919
static int ett_ulp_MeasResultEUTRA;
920
static int ett_ulp_T_cgi_Info;
921
static int ett_ulp_T_measResult;
922
static int ett_ulp_CellGlobalIdEUTRA;
923
static int ett_ulp_PLMN_Identity;
924
static int ett_ulp_MCC;
925
static int ett_ulp_MNC;
926
static int ett_ulp_ServingInformation5G;
927
static int ett_ulp_NeighbourInformation5G;
928
static int ett_ulp_WlanAPInformation;
929
static int ett_ulp_RTD;
930
static int ett_ulp_ReportedLocation;
931
static int ett_ulp_LocationData;
932
static int ett_ulp_RepLocation;
933
static int ett_ulp_LciLocData;
934
static int ett_ulp_LocationDataLCI;
935
static int ett_ulp_WimaxBSInformation;
936
static int ett_ulp_WimaxBsID;
937
static int ett_ulp_WimaxRTD;
938
static int ett_ulp_WimaxNMRList;
939
static int ett_ulp_WimaxNMR;
940
static int ett_ulp_NRCellInformation;
941
static int ett_ulp_ServingCellInformationNR;
942
static int ett_ulp_ServCellNR;
943
static int ett_ulp_MeasResultListNR;
944
static int ett_ulp_MeasResultNR;
945
static int ett_ulp_CellGlobalIdNR;
946
static int ett_ulp_NR_Measurements;
947
static int ett_ulp_UTRAN_GPSReferenceTimeAssistance;
948
static int ett_ulp_UTRAN_GPSReferenceTime;
949
static int ett_ulp_T_utran_GPSTimingOfCell;
950
static int ett_ulp_T_modeSpecificInfo_01;
951
static int ett_ulp_T_fdd_01;
952
static int ett_ulp_T_tdd_01;
953
static int ett_ulp_UTRAN_GPSReferenceTimeResult;
954
static int ett_ulp_T_set_GPSTimingOfCell;
955
static int ett_ulp_T_modeSpecificInfo_02;
956
static int ett_ulp_T_fdd_02;
957
static int ett_ulp_T_tdd_02;
958
static int ett_ulp_UTRAN_GANSSReferenceTimeAssistance;
959
static int ett_ulp_UTRAN_GANSSReferenceTime;
960
static int ett_ulp_T_modeSpecificInfo_03;
961
static int ett_ulp_T_fdd_03;
962
static int ett_ulp_T_tdd_03;
963
static int ett_ulp_UTRAN_GANSSReferenceTimeResult;
964
static int ett_ulp_SET_GANSSReferenceTime;
965
static int ett_ulp_T_set_GANSSTimingOfCell;
966
static int ett_ulp_T_modeSpecificInfo_04;
967
static int ett_ulp_T_fdd_04;
968
static int ett_ulp_T_tdd_04;
969
static int ett_ulp_GNSSPosTechnology;
970
static int ett_ulp_GANSSSignals;
971
static int ett_ulp_SPCTID;
972
static int ett_ulp_ThirdParty;
973
static int ett_ulp_ThirdPartyID;
974
static int ett_ulp_ApplicationID;
975
static int ett_ulp_ReportingCap;
976
static int ett_ulp_RepMode;
977
static int ett_ulp_BatchRepCap;
978
static int ett_ulp_Coordinate;
979
static int ett_ulp_CircularArea;
980
static int ett_ulp_EllipticalArea;
981
static int ett_ulp_PolygonArea;
982
static int ett_ulp_PolygonDescription;
983
static int ett_ulp_Ver2_HighAccuracyPosition;
984
static int ett_ulp_HighAccuracyPositionEstimate;
985
static int ett_ulp_HighAccuracyAltitudeInfo;
986
987
static dissector_handle_t ulp_tcp_handle;
988
static dissector_handle_t ulp_pdu_handle;
989
990
static const value_string ulp_ganss_id_vals[] = {
991
  {  0, "Galileo"},
992
  {  1, "SBAS"},
993
  {  2, "Modernized GPS"},
994
  {  3, "QZSS"},
995
  {  4, "GLONASS"},
996
  {  5, "BDS"},
997
  {  0, NULL},
998
};
999
1000
static const value_string ulp_ganss_sbas_id_vals[] = {
1001
  {  0, "WAAS"},
1002
  {  1, "EGNOS"},
1003
  {  2, "MSAS"},
1004
  {  3, "GAGAN"},
1005
  {  0, NULL},
1006
};
1007
1008
static void
1009
ulp_ganssDataBitInterval_fmt(char *s, uint32_t v)
1010
0
{
1011
0
  if (v == 15) {
1012
0
    snprintf(s, ITEM_LABEL_LENGTH, "Time interval is not specified (15)");
1013
0
  } else {
1014
0
    double interval = (0.1*pow(2, (double)v));
1015
1016
0
    snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", interval, v);
1017
0
  }
1018
0
}
1019
1020
static void
1021
ulp_ExtendedEphemeris_validity_fmt(char *s, uint32_t v)
1022
0
{
1023
0
  snprintf(s, ITEM_LABEL_LENGTH, "%uh (%u)", 4*v, v);
1024
0
}
1025
1026
static void
1027
ulp_PositionEstimate_latitude_fmt(char *s, uint32_t v)
1028
0
{
1029
0
  double latitude = ((double)v*90)/pow(2,23);
1030
1031
0
  snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", latitude, v);
1032
0
}
1033
1034
static void
1035
ulp_PositionEstimate_longitude_fmt(char *s, uint32_t v)
1036
0
{
1037
0
  double longitude = ((double)(int32_t)v*360)/pow(2,24);
1038
1039
0
  snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", longitude, v);
1040
0
}
1041
1042
static void
1043
ulp_NMRelement_rxLev_fmt(char *s, uint32_t v)
1044
0
{
1045
0
  if (v == 0) {
1046
0
    snprintf(s, ITEM_LABEL_LENGTH, "RxLev < -110dBm (0)");
1047
0
  } else if (v == 63) {
1048
0
    snprintf(s, ITEM_LABEL_LENGTH, "RxLev >= -48dBm (63)");
1049
0
  } else {
1050
0
    snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RxLev < %ddBm (%u)", -111+v, -110+v, v);
1051
0
  }
1052
0
}
1053
1054
static void
1055
ulp_UTRA_CarrierRSSI_fmt(char *s, uint32_t v)
1056
0
{
1057
0
  if (v == 0) {
1058
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
1059
0
  } else if (v == 76) {
1060
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSSI >= -25dBm (76)");
1061
0
  } else if (v > 76) {
1062
0
    snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
1063
0
  } else {
1064
0
    snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSSI < %ddBm (%u)", -101+v, -100+v, v);
1065
0
  }
1066
0
}
1067
1068
static void
1069
ulp_PrimaryCCPCH_RSCP_fmt(char *s, uint32_t v)
1070
0
{
1071
0
  if (v == 0) {
1072
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSCP < -115dBm (0)");
1073
0
  } else if (v == 91) {
1074
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSCP >= -25dBm (91)");
1075
0
  } else if (v > 91) {
1076
0
    snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
1077
0
  } else {
1078
0
    snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSCP < %ddBm (%u)", -116+v, -115+v, v);
1079
0
  }
1080
0
}
1081
1082
static void
1083
ulp_CPICH_Ec_N0_fmt(char *s, uint32_t v)
1084
0
{
1085
0
  if (v == 0) {
1086
0
    snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 < -24dB (0)");
1087
0
  } else if (v == 49) {
1088
0
    snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 >= 0dB (49)");
1089
0
  } else if (v > 49) {
1090
0
    snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
1091
0
  } else {
1092
0
    snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= CPICH Ec/N0 < %.1fdB (%u)", -24.5+((float)v/2), -24+((float)v/2), v);
1093
0
  }
1094
0
}
1095
1096
static void
1097
ulp_CPICH_RSCP_fmt(char *s, uint32_t v)
1098
0
{
1099
0
  if (v == 123) {
1100
0
    snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP < -120dBm (123)");
1101
0
  } else if (v > 123) {
1102
0
    snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= CPICH RSCP < %ddBm (%u)", -244+v, -243+v, v);
1103
0
  } else if (v == 91) {
1104
0
    snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP >= -25dBm (91)");
1105
0
  } else if (v < 91) {
1106
0
    snprintf(s, ITEM_LABEL_LENGTH, "%ddBm < CPICH RSCP <= %ddBm (%u)", -116+v, -115+v, v);
1107
0
  } else {
1108
0
    snprintf(s, ITEM_LABEL_LENGTH, "Spare (%u)", v);
1109
0
  }
1110
0
}
1111
1112
static void
1113
ulp_QoP_horacc_fmt(char *s, uint32_t v)
1114
0
{
1115
0
  double uncertainty = 10*(pow(1.1, (double)v)-1);
1116
1117
0
  if (uncertainty < 1000) {
1118
0
    snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
1119
0
  } else {
1120
0
    snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%u)", uncertainty/1000, v);
1121
0
  }
1122
0
}
1123
1124
static void
1125
ulp_QoP_veracc_fmt(char *s, uint32_t v)
1126
0
{
1127
0
  double uncertainty = 45*(pow(1.025, (double)v)-1);
1128
1129
0
  snprintf(s, ITEM_LABEL_LENGTH, "%fm (%u)", uncertainty, v);
1130
0
}
1131
1132
static void
1133
ulp_QoP_delay_fmt(char *s, uint32_t v)
1134
0
{
1135
0
  snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", pow(2, (double)v), v);
1136
0
}
1137
1138
static const true_false_string ulp_vertical_dir_val = {
1139
  "Downward",
1140
  "Upward"
1141
};
1142
1143
static void
1144
ulp_RelativeTime_fmt(char *s, uint32_t v)
1145
0
{
1146
0
  snprintf(s, ITEM_LABEL_LENGTH, "%.2fs (%u)", 0.01*v, v);
1147
0
}
1148
1149
static void
1150
ulp_RSRP_Range_fmt(char *s, uint32_t v)
1151
0
{
1152
0
  if (v == 0) {
1153
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
1154
0
  } else if (v == 97) {
1155
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSRP >= -44dBm (97)");
1156
0
  } else {
1157
0
    snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%u)", -141+v, -140+v, v);
1158
0
  }
1159
0
}
1160
1161
static void
1162
ulp_RSRQ_Range_fmt(char *s, uint32_t v)
1163
0
{
1164
0
  if (v == 0) {
1165
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
1166
0
  } else if (v == 64) {
1167
0
    snprintf(s, ITEM_LABEL_LENGTH, "RSRQ >= -3dB (34)");
1168
0
  } else {
1169
0
    snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%u)", -20+((float)v/2), -19.5+((float)v/2), v);
1170
0
  }
1171
0
}
1172
1173
static void
1174
ulp_SignalDelta_fmt(char *s, uint32_t v)
1175
0
{
1176
0
  snprintf(s, ITEM_LABEL_LENGTH, "%sdB (%u)", v ? "0.5" : "0", v);
1177
0
}
1178
1179
static void
1180
ulp_locationAccuracy_fmt(char *s, uint32_t v)
1181
0
{
1182
0
  snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%u)", 0.1*v, v);
1183
0
}
1184
1185
static void
1186
ulp_WimaxRTD_fmt(char *s, uint32_t v)
1187
0
{
1188
0
  snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.01*v, v);
1189
0
}
1190
1191
static void
1192
ulp_WimaxNMR_rssi_fmt(char *s, uint32_t v)
1193
0
{
1194
0
  snprintf(s, ITEM_LABEL_LENGTH, "%.2fdBm (%u)", -103.75+(0.25*v), v);
1195
0
}
1196
1197
static void
1198
ulp_UTRAN_gpsReferenceTimeUncertainty_fmt(char *s, uint32_t v)
1199
0
{
1200
0
  double uncertainty = 0.0022*(pow(1.18, (double)v)-1);
1201
1202
0
  snprintf(s, ITEM_LABEL_LENGTH, "%fus (%u)", uncertainty, v);
1203
0
}
1204
1205
static const value_string ulp_ganss_time_id_vals[] = {
1206
  {  0, "Galileo"},
1207
  {  1, "QZSS"},
1208
  {  2, "GLONASS"},
1209
  {  3, "BDS"},
1210
  {  0, NULL},
1211
};
1212
1213
static void
1214
ulp_utran_GANSSTimingOfCell_fmt(char *s, uint32_t v)
1215
0
{
1216
0
  snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.25*v, v);
1217
0
}
1218
1219
static void
1220
ulp_Coordinate_latitude_fmt(char *s, uint32_t v)
1221
0
{
1222
0
  snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
1223
0
             ((float)v/8388607.0)*90, v);
1224
0
}
1225
1226
static void
1227
ulp_Coordinate_longitude_fmt(char *s, uint32_t v)
1228
0
{
1229
0
  int32_t longitude = (int32_t) v;
1230
1231
0
  snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
1232
0
             ((float)longitude/8388608.0)*180, longitude);
1233
0
}
1234
1235
/* Include constants */
1236
7
#define maxReqLength                   50
1237
3
#define maxClientLength                50
1238
130
#define maxNumGeoArea                  32
1239
125
#define maxAreaId                      256
1240
38
#define maxAreaIdList                  32
1241
9
#define maxnumSessions                 64
1242
57
#define maxGANSS                       16
1243
21
#define maxGANSSSat                    32
1244
70
#define maxCellMeas                    32
1245
47
#define maxFreq                        8
1246
126
#define maxTS                          14
1247
111
#define maxLidSize                     64
1248
0
#define maxWLANApDataSize              128
1249
4
#define maxCellReport                  8
1250
1
#define maxWimaxBSMeas                 32
1251
18
#define maxNRServingCell               32
1252
1
#define maxCellReportNR                32
1253
1254
typedef struct
1255
{
1256
  uint8_t notif_enc_type;
1257
  uint8_t ganss_req_gen_data_ganss_id;
1258
} ulp_private_data_t;
1259
1260
static ulp_private_data_t* ulp_get_private_data(asn1_ctx_t *actx)
1261
257
{
1262
257
  if (actx->private_data == NULL) {
1263
38
    actx->private_data = wmem_new0(actx->pinfo->pool, ulp_private_data_t);
1264
38
  }
1265
257
  return (ulp_private_data_t*)actx->private_data;
1266
257
}
1267
1268
1269
1270
static unsigned
1271
1.61k
dissect_ulp_INTEGER_0_65535(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1272
1.61k
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1273
1.61k
                                                            0U, 65535U, NULL, false);
1274
1275
1.61k
  return offset;
1276
1.61k
}
1277
1278
1279
1280
static unsigned
1281
1.45k
dissect_ulp_INTEGER_0_255(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1282
1.45k
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1283
1.45k
                                                            0U, 255U, NULL, false);
1284
1285
1.45k
  return offset;
1286
1.45k
}
1287
1288
1289
static const per_sequence_t Version_sequence[] = {
1290
  { &hf_ulp_maj             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1291
  { &hf_ulp_min             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1292
  { &hf_ulp_servind         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
1293
  { NULL, 0, 0, NULL }
1294
};
1295
1296
static unsigned
1297
463
dissect_ulp_Version(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1298
463
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1299
463
                                   ett_ulp_Version, Version_sequence);
1300
1301
463
  return offset;
1302
463
}
1303
1304
1305
1306
static unsigned
1307
38
dissect_ulp_T_msisdn(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1308
38
  tvbuff_t *msisdn_tvb;
1309
38
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1310
38
                                       8, 8, false, &msisdn_tvb);
1311
1312
38
  if (msisdn_tvb) {
1313
36
    proto_tree *subtree;
1314
1315
36
    subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
1316
36
    dissect_e164_msisdn(msisdn_tvb, actx->pinfo, subtree, 0, 8, E164_ENC_BCD);
1317
36
  }
1318
1319
1320
38
  return offset;
1321
38
}
1322
1323
1324
1325
static unsigned
1326
24
dissect_ulp_T_mdn(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1327
24
  tvbuff_t *mdn_tvb;
1328
24
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1329
24
                                       8, 8, false, &mdn_tvb);
1330
1331
24
  if (mdn_tvb) {
1332
23
    proto_tree *subtree;
1333
1334
23
    subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
1335
23
    proto_tree_add_item(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
1336
23
  }
1337
1338
1339
24
  return offset;
1340
24
}
1341
1342
1343
1344
static unsigned
1345
27
dissect_ulp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1346
27
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1347
27
                                     34, 34, false, NULL, 0, NULL, NULL);
1348
1349
27
  return offset;
1350
27
}
1351
1352
1353
1354
static unsigned
1355
8
dissect_ulp_T_imsi(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356
8
  tvbuff_t *imsi_tvb;
1357
8
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1358
8
                                       8, 8, false, &imsi_tvb);
1359
1360
8
  if (imsi_tvb) {
1361
8
    proto_tree *subtree;
1362
1363
8
    subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
1364
8
    dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, false);
1365
8
  }
1366
1367
1368
8
  return offset;
1369
8
}
1370
1371
1372
1373
static unsigned
1374
253
dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1375
253
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1376
253
                                          1, 1000, false,
1377
253
                                          NULL);
1378
1379
253
  return offset;
1380
253
}
1381
1382
1383
1384
static unsigned
1385
174
dissect_ulp_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1386
174
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1387
174
                                       4, 4, false, NULL);
1388
1389
174
  return offset;
1390
174
}
1391
1392
1393
1394
static unsigned
1395
11
dissect_ulp_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1396
11
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1397
11
                                       16, 16, false, NULL);
1398
1399
11
  return offset;
1400
11
}
1401
1402
1403
static const value_string ulp_IPAddress_vals[] = {
1404
  {   0, "ipv4Address" },
1405
  {   1, "ipv6Address" },
1406
  { 0, NULL }
1407
};
1408
1409
static const per_choice_t IPAddress_choice[] = {
1410
  {   0, &hf_ulp_ipv4Address     , ASN1_NO_EXTENSIONS     , dissect_ulp_OCTET_STRING_SIZE_4 },
1411
  {   1, &hf_ulp_ipv6Address     , ASN1_NO_EXTENSIONS     , dissect_ulp_OCTET_STRING_SIZE_16 },
1412
  { 0, NULL, 0, NULL }
1413
};
1414
1415
static unsigned
1416
86
dissect_ulp_IPAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1417
86
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1418
86
                                 ett_ulp_IPAddress, IPAddress_choice,
1419
86
                                 NULL);
1420
1421
86
  return offset;
1422
86
}
1423
1424
1425
1426
static unsigned
1427
2
dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1428
2
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1429
2
                                       8, 8, false, NULL);
1430
1431
2
  return offset;
1432
2
}
1433
1434
1435
static const value_string ulp_SETId_vals[] = {
1436
  {   0, "msisdn" },
1437
  {   1, "mdn" },
1438
  {   2, "min" },
1439
  {   3, "imsi" },
1440
  {   4, "nai" },
1441
  {   5, "iPAddress" },
1442
  {   6, "ver2-imei" },
1443
  { 0, NULL }
1444
};
1445
1446
static const per_choice_t SETId_choice[] = {
1447
  {   0, &hf_ulp_msisdn          , ASN1_EXTENSION_ROOT    , dissect_ulp_T_msisdn },
1448
  {   1, &hf_ulp_mdn             , ASN1_EXTENSION_ROOT    , dissect_ulp_T_mdn },
1449
  {   2, &hf_ulp_min_bit_string  , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_34 },
1450
  {   3, &hf_ulp_imsi            , ASN1_EXTENSION_ROOT    , dissect_ulp_T_imsi },
1451
  {   4, &hf_ulp_nai             , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
1452
  {   5, &hf_ulp_iPAddress       , ASN1_EXTENSION_ROOT    , dissect_ulp_IPAddress },
1453
  {   6, &hf_ulp_ver2_imei       , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_OCTET_STRING_SIZE_8 },
1454
  { 0, NULL, 0, NULL }
1455
};
1456
1457
static unsigned
1458
101
dissect_ulp_SETId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1459
101
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1460
101
                                 ett_ulp_SETId, SETId_choice,
1461
101
                                 NULL);
1462
1463
101
  return offset;
1464
101
}
1465
1466
1467
static const per_sequence_t SetSessionID_sequence[] = {
1468
  { &hf_ulp_sessionId       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
1469
  { &hf_ulp_setId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SETId },
1470
  { NULL, 0, 0, NULL }
1471
};
1472
1473
static unsigned
1474
99
dissect_ulp_SetSessionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1475
99
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1476
99
                                   ett_ulp_SetSessionID, SetSessionID_sequence);
1477
1478
99
  return offset;
1479
99
}
1480
1481
1482
1483
static unsigned
1484
20
dissect_ulp_FQDN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1485
20
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1486
20
                                                      1, 255, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-", 64,
1487
20
                                                      NULL);
1488
1489
20
  return offset;
1490
20
}
1491
1492
1493
static const value_string ulp_SLPAddress_vals[] = {
1494
  {   0, "iPAddress" },
1495
  {   1, "fqdn" },
1496
  { 0, NULL }
1497
};
1498
1499
static const per_choice_t SLPAddress_choice[] = {
1500
  {   0, &hf_ulp_iPAddress       , ASN1_EXTENSION_ROOT    , dissect_ulp_IPAddress },
1501
  {   1, &hf_ulp_fqdn            , ASN1_EXTENSION_ROOT    , dissect_ulp_FQDN },
1502
  { 0, NULL, 0, NULL }
1503
};
1504
1505
static unsigned
1506
120
dissect_ulp_SLPAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507
120
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1508
120
                                 ett_ulp_SLPAddress, SLPAddress_choice,
1509
120
                                 NULL);
1510
1511
120
  return offset;
1512
120
}
1513
1514
1515
static const per_sequence_t SlpSessionID_sequence[] = {
1516
  { &hf_ulp_sessionSlpID    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_4 },
1517
  { &hf_ulp_slpId           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SLPAddress },
1518
  { NULL, 0, 0, NULL }
1519
};
1520
1521
static unsigned
1522
99
dissect_ulp_SlpSessionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1523
99
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1524
99
                                   ett_ulp_SlpSessionID, SlpSessionID_sequence);
1525
1526
99
  return offset;
1527
99
}
1528
1529
1530
static const per_sequence_t SessionID_sequence[] = {
1531
  { &hf_ulp_setSessionID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_SetSessionID },
1532
  { &hf_ulp_slpSessionID    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_SlpSessionID },
1533
  { NULL, 0, 0, NULL }
1534
};
1535
1536
static unsigned
1537
560
dissect_ulp_SessionID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1538
560
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1539
560
                                   ett_ulp_SessionID, SessionID_sequence);
1540
1541
560
  return offset;
1542
560
}
1543
1544
1545
static const value_string ulp_PosMethod_vals[] = {
1546
  {   0, "agpsSETassisted" },
1547
  {   1, "agpsSETbased" },
1548
  {   2, "agpsSETassistedpref" },
1549
  {   3, "agpsSETbasedpref" },
1550
  {   4, "autonomousGPS" },
1551
  {   5, "aflt" },
1552
  {   6, "ecid" },
1553
  {   7, "eotd" },
1554
  {   8, "otdoa" },
1555
  {   9, "noPosition" },
1556
  {  10, "ver2-historicalDataRetrieval" },
1557
  {  11, "ver2-agnssSETassisted" },
1558
  {  12, "ver2-agnssSETbased" },
1559
  {  13, "ver2-agnssSETassistedpref" },
1560
  {  14, "ver2-agnssSETbasedpref" },
1561
  {  15, "ver2-autonomousGNSS" },
1562
  {  16, "ver2-sessioninfoquery" },
1563
  {  17, "ver2-mbs" },
1564
  { 0, NULL }
1565
};
1566
1567
1568
static unsigned
1569
117
dissect_ulp_PosMethod(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1570
117
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1571
117
                                     10, NULL, true, 8, NULL);
1572
1573
117
  return offset;
1574
117
}
1575
1576
1577
static const value_string ulp_NotificationType_vals[] = {
1578
  {   0, "noNotificationNoVerification" },
1579
  {   1, "notificationOnly" },
1580
  {   2, "notificationAndVerficationAllowedNA" },
1581
  {   3, "notificationAndVerficationDeniedNA" },
1582
  {   4, "privacyOverride" },
1583
  { 0, NULL }
1584
};
1585
1586
1587
static unsigned
1588
15
dissect_ulp_NotificationType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1589
15
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1590
15
                                     5, NULL, true, 0, NULL);
1591
1592
15
  return offset;
1593
15
}
1594
1595
1596
static const value_string ulp_EncodingType_vals[] = {
1597
  {   0, "ucs2" },
1598
  {   1, "gsmDefault" },
1599
  {   2, "utf8" },
1600
  { 0, NULL }
1601
};
1602
1603
1604
static unsigned
1605
7
dissect_ulp_EncodingType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1606
7
  uint32_t val;
1607
7
  ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
1608
1609
7
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1610
7
                                     3, &val, true, 0, NULL);
1611
1612
7
  ulp_priv->notif_enc_type = (uint8_t) val;
1613
1614
1615
7
  return offset;
1616
7
}
1617
1618
1619
1620
static unsigned
1621
7
dissect_ulp_T_requestorId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1622
7
  tvbuff_t *val_tvb;
1623
1624
7
  offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
1625
7
                                       1, maxReqLength, false, &val_tvb);
1626
1627
7
  if (val_tvb) {
1628
6
    ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
1629
6
    switch(ulp_priv->notif_enc_type) {
1630
2
      case 0: /* UCS-2 */
1631
2
        actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
1632
2
                                                 tvb_reported_length(val_tvb),
1633
2
                                                 ENC_UCS_2|ENC_BIG_ENDIAN);
1634
2
        break;
1635
1
      case 1: /* GSM 7bits */
1636
1
        actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
1637
1
                                                 tvb_reported_length(val_tvb), ENC_3GPP_TS_23_038_7BITS|ENC_NA);
1638
1
        break;
1639
1
      case 2: /* UTF-8 */
1640
1
        actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
1641
1
                                                 tvb_reported_length(val_tvb), ENC_UTF_8|ENC_NA);
1642
1
        break;
1643
2
      default:
1644
2
        actx->created_item = proto_tree_add_string(tree, hf_index, val_tvb, 0,
1645
2
                                                   tvb_reported_length(val_tvb),
1646
2
                                                   tvb_bytes_to_str(actx->pinfo->pool, val_tvb, 0,
1647
2
                                                                    tvb_reported_length(val_tvb)));
1648
2
        break;
1649
6
    }
1650
6
  }
1651
1652
1653
7
  return offset;
1654
7
}
1655
1656
1657
static const value_string ulp_FormatIndicator_vals[] = {
1658
  {   0, "logicalName" },
1659
  {   1, "e-mailAddress" },
1660
  {   2, "msisdn" },
1661
  {   3, "url" },
1662
  {   4, "sipUrl" },
1663
  {   5, "min" },
1664
  {   6, "mdn" },
1665
  {   7, "iMSPublicidentity" },
1666
  { 0, NULL }
1667
};
1668
1669
1670
static unsigned
1671
9
dissect_ulp_FormatIndicator(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1672
9
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1673
9
                                     8, NULL, true, 0, NULL);
1674
1675
9
  return offset;
1676
9
}
1677
1678
1679
1680
static unsigned
1681
3
dissect_ulp_T_clientName(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1682
3
  tvbuff_t *val_tvb;
1683
1684
3
  offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
1685
3
                                       1, maxClientLength, false, &val_tvb);
1686
1687
3
  if (val_tvb) {
1688
3
    ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
1689
3
    switch(ulp_priv->notif_enc_type) {
1690
2
      case 0: /* UCS-2 */
1691
2
        actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
1692
2
                                                 tvb_reported_length(val_tvb),
1693
2
                                                 ENC_UCS_2|ENC_BIG_ENDIAN);
1694
2
        break;
1695
0
      case 1: /* GSM 7bits */
1696
0
        actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
1697
0
                                                 tvb_reported_length(val_tvb), ENC_3GPP_TS_23_038_7BITS|ENC_NA);
1698
0
        break;
1699
0
      case 2: /* UTF-8 */
1700
0
        actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0,
1701
0
                                                 tvb_reported_length(val_tvb), ENC_UTF_8|ENC_NA);
1702
0
        break;
1703
1
      default:
1704
1
        actx->created_item = proto_tree_add_string(tree, hf_index, val_tvb, 0,
1705
1
                                                   tvb_reported_length(val_tvb),
1706
1
                                                   tvb_bytes_to_str(actx->pinfo->pool, val_tvb, 0,
1707
1
                                                                    tvb_reported_length(val_tvb)));
1708
1
        break;
1709
3
    }
1710
3
  }
1711
1712
1713
3
  return offset;
1714
3
}
1715
1716
1717
1718
static unsigned
1719
3
dissect_ulp_NULL(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1720
3
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1721
1722
3
  return offset;
1723
3
}
1724
1725
1726
static const per_sequence_t Ver2_Notification_extension_sequence[] = {
1727
  { &hf_ulp_emergencyCallLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NULL },
1728
  { NULL, 0, 0, NULL }
1729
};
1730
1731
static unsigned
1732
0
dissect_ulp_Ver2_Notification_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1733
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1734
0
                                   ett_ulp_Ver2_Notification_extension, Ver2_Notification_extension_sequence);
1735
1736
0
  return offset;
1737
0
}
1738
1739
1740
static const per_sequence_t Notification_sequence[] = {
1741
  { &hf_ulp_notificationType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_NotificationType },
1742
  { &hf_ulp_encodingType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_EncodingType },
1743
  { &hf_ulp_requestorId     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_requestorId },
1744
  { &hf_ulp_requestorIdType , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_FormatIndicator },
1745
  { &hf_ulp_clientName      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_clientName },
1746
  { &hf_ulp_clientNameType  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_FormatIndicator },
1747
  { &hf_ulp_ver2_Notification_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_Notification_extension },
1748
  { NULL, 0, 0, NULL }
1749
};
1750
1751
static unsigned
1752
15
dissect_ulp_Notification(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1753
15
  ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
1754
1755
15
  ulp_priv->notif_enc_type = -1;
1756
15
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1757
15
                                   ett_ulp_Notification, Notification_sequence);
1758
1759
1760
1761
15
  return offset;
1762
15
}
1763
1764
1765
1766
static unsigned
1767
107
dissect_ulp_INTEGER_0_127(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1768
107
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1769
107
                                                            0U, 127U, NULL, false);
1770
1771
107
  return offset;
1772
107
}
1773
1774
1775
1776
static unsigned
1777
21
dissect_ulp_INTEGER_0_7(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1778
21
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1779
21
                                                            0U, 7U, NULL, false);
1780
1781
21
  return offset;
1782
21
}
1783
1784
1785
1786
static unsigned
1787
2
dissect_ulp_INTEGER_1_128(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1788
2
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1789
2
                                                            1U, 128U, NULL, false);
1790
1791
2
  return offset;
1792
2
}
1793
1794
1795
static const per_sequence_t QoP_sequence[] = {
1796
  { &hf_ulp_horacc          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
1797
  { &hf_ulp_veracc          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
1798
  { &hf_ulp_maxLocAge       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
1799
  { &hf_ulp_delay           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
1800
  { &hf_ulp_ver2_responseTime, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_128 },
1801
  { NULL, 0, 0, NULL }
1802
};
1803
1804
static unsigned
1805
20
dissect_ulp_QoP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1806
20
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1807
20
                                   ett_ulp_QoP, QoP_sequence);
1808
1809
20
  return offset;
1810
20
}
1811
1812
1813
static const value_string ulp_SLPMode_vals[] = {
1814
  {   0, "proxy" },
1815
  {   1, "nonProxy" },
1816
  { 0, NULL }
1817
};
1818
1819
1820
static unsigned
1821
30
dissect_ulp_SLPMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1822
30
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1823
30
                                     2, NULL, false, 0, NULL);
1824
1825
30
  return offset;
1826
30
}
1827
1828
1829
1830
static unsigned
1831
3
dissect_ulp_MAC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1832
3
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1833
3
                                     64, 64, false, NULL, 0, NULL, NULL);
1834
1835
3
  return offset;
1836
3
}
1837
1838
1839
1840
static unsigned
1841
5
dissect_ulp_KeyIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1842
5
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1843
5
                                     128, 128, false, NULL, 0, NULL, NULL);
1844
1845
5
  return offset;
1846
5
}
1847
1848
1849
static const value_string ulp_NotificationMode_vals[] = {
1850
  {   0, "normal" },
1851
  {   1, "basedOnLocation" },
1852
  { 0, NULL }
1853
};
1854
1855
1856
static unsigned
1857
1
dissect_ulp_NotificationMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1858
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1859
1
                                     2, NULL, true, 0, NULL);
1860
1861
1
  return offset;
1862
1
}
1863
1864
1865
1866
static unsigned
1867
3.47k
dissect_ulp_BOOLEAN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1868
3.47k
  offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1869
1870
3.47k
  return offset;
1871
3.47k
}
1872
1873
1874
static const per_sequence_t SupportedWLANInfo_sequence[] = {
1875
  { &hf_ulp_apTP            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1876
  { &hf_ulp_apAG            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1877
  { &hf_ulp_apSN            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1878
  { &hf_ulp_apDevType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1879
  { &hf_ulp_apRSSI          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1880
  { &hf_ulp_apChanFreq      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1881
  { &hf_ulp_apRTD           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1882
  { &hf_ulp_setTP           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1883
  { &hf_ulp_setAG           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1884
  { &hf_ulp_setSN           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1885
  { &hf_ulp_setRSSI         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1886
  { &hf_ulp_apRepLoc        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1887
  { &hf_ulp_apRL            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
1888
  { &hf_ulp_opClass         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
1889
  { &hf_ulp_apSSID_bool     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
1890
  { &hf_ulp_apPHYType_bool  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
1891
  { &hf_ulp_setMACAddress_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
1892
  { NULL, 0, 0, NULL }
1893
};
1894
1895
static unsigned
1896
0
dissect_ulp_SupportedWLANInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1897
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1898
0
                                   ett_ulp_SupportedWLANInfo, SupportedWLANInfo_sequence);
1899
1900
0
  return offset;
1901
0
}
1902
1903
1904
1905
static unsigned
1906
0
dissect_ulp_T_apMACAddress_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1907
0
  tvbuff_t *val_tvb;
1908
1909
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
1910
0
                                     48, 48, false, NULL, 0, &val_tvb, NULL);
1911
1912
0
  if (val_tvb) {
1913
0
    proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
1914
0
  }
1915
1916
1917
0
  return offset;
1918
0
}
1919
1920
1921
static const value_string ulp_T_apDevType_enum_vals[] = {
1922
  {   0, "wlan802-11a" },
1923
  {   1, "wlan802-11b" },
1924
  {   2, "wlan802-11g" },
1925
  { 0, NULL }
1926
};
1927
1928
1929
static unsigned
1930
0
dissect_ulp_T_apDevType_enum(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1931
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1932
0
                                     3, NULL, true, 0, NULL);
1933
1934
0
  return offset;
1935
0
}
1936
1937
1938
static const per_sequence_t SupportedWLANApData_sequence[] = {
1939
  { &hf_ulp_apMACAddress_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_apMACAddress_01 },
1940
  { &hf_ulp_apDevType_enum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_apDevType_enum },
1941
  { NULL, 0, 0, NULL }
1942
};
1943
1944
static unsigned
1945
0
dissect_ulp_SupportedWLANApData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1946
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1947
0
                                   ett_ulp_SupportedWLANApData, SupportedWLANApData_sequence);
1948
1949
0
  return offset;
1950
0
}
1951
1952
1953
static const per_sequence_t SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData_sequence_of[1] = {
1954
  { &hf_ulp_supportedWLANApDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SupportedWLANApData },
1955
};
1956
1957
static unsigned
1958
0
dissect_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1959
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1960
0
                                                  ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData, SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData_sequence_of,
1961
0
                                                  1, maxWLANApDataSize, false);
1962
1963
0
  return offset;
1964
0
}
1965
1966
1967
static const per_sequence_t SupportedWLANApsChannel11a_sequence[] = {
1968
  { &hf_ulp_ch34            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1969
  { &hf_ulp_ch36            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1970
  { &hf_ulp_ch38            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1971
  { &hf_ulp_ch40            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1972
  { &hf_ulp_ch42            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1973
  { &hf_ulp_ch44            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1974
  { &hf_ulp_ch46            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1975
  { &hf_ulp_ch48            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1976
  { &hf_ulp_ch52            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1977
  { &hf_ulp_ch56            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1978
  { &hf_ulp_ch60            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1979
  { &hf_ulp_ch64            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1980
  { &hf_ulp_ch149           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1981
  { &hf_ulp_ch153           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1982
  { &hf_ulp_ch157           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1983
  { &hf_ulp_ch161           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1984
  { NULL, 0, 0, NULL }
1985
};
1986
1987
static unsigned
1988
0
dissect_ulp_SupportedWLANApsChannel11a(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1989
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1990
0
                                   ett_ulp_SupportedWLANApsChannel11a, SupportedWLANApsChannel11a_sequence);
1991
1992
0
  return offset;
1993
0
}
1994
1995
1996
static const per_sequence_t SupportedWLANApsChannel11bg_sequence[] = {
1997
  { &hf_ulp_ch1             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1998
  { &hf_ulp_ch2             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
1999
  { &hf_ulp_ch3             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2000
  { &hf_ulp_ch4             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2001
  { &hf_ulp_ch5             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2002
  { &hf_ulp_ch6             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2003
  { &hf_ulp_ch7             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2004
  { &hf_ulp_ch8             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2005
  { &hf_ulp_ch9             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2006
  { &hf_ulp_ch10            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2007
  { &hf_ulp_ch11            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2008
  { &hf_ulp_ch12            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2009
  { &hf_ulp_ch13            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2010
  { &hf_ulp_ch14            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2011
  { NULL, 0, 0, NULL }
2012
};
2013
2014
static unsigned
2015
0
dissect_ulp_SupportedWLANApsChannel11bg(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2016
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2017
0
                                   ett_ulp_SupportedWLANApsChannel11bg, SupportedWLANApsChannel11bg_sequence);
2018
2019
0
  return offset;
2020
0
}
2021
2022
2023
static const per_sequence_t SupportedWLANApsList_sequence[] = {
2024
  { &hf_ulp_supportedWLANApDataList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData },
2025
  { &hf_ulp_supportedWLANapsChannel11a, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANApsChannel11a },
2026
  { &hf_ulp_supportedWLANapsChannel11bg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANApsChannel11bg },
2027
  { NULL, 0, 0, NULL }
2028
};
2029
2030
static unsigned
2031
0
dissect_ulp_SupportedWLANApsList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2032
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2033
0
                                   ett_ulp_SupportedWLANApsList, SupportedWLANApsList_sequence);
2034
2035
0
  return offset;
2036
0
}
2037
2038
2039
static const per_sequence_t SupportedWCDMAInfo_sequence[] = {
2040
  { &hf_ulp_mrl             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2041
  { NULL, 0, 0, NULL }
2042
};
2043
2044
static unsigned
2045
1
dissect_ulp_SupportedWCDMAInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2046
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2047
1
                                   ett_ulp_SupportedWCDMAInfo, SupportedWCDMAInfo_sequence);
2048
2049
1
  return offset;
2050
1
}
2051
2052
2053
static const per_sequence_t SupportedNetworkInformation_sequence[] = {
2054
  { &hf_ulp_wlan            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2055
  { &hf_ulp_supportedWLANInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANInfo },
2056
  { &hf_ulp_supportedWLANApsList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWLANApsList },
2057
  { &hf_ulp_gsm             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2058
  { &hf_ulp_wcdma           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2059
  { &hf_ulp_supportedWCDMAInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedWCDMAInfo },
2060
  { &hf_ulp_cdma            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2061
  { &hf_ulp_hrdp            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2062
  { &hf_ulp_umb             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2063
  { &hf_ulp_lte             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2064
  { &hf_ulp_wimax           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2065
  { &hf_ulp_historic        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2066
  { &hf_ulp_nonServing      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2067
  { &hf_ulp_uTRANGPSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2068
  { &hf_ulp_uTRANGANSSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2069
  { &hf_ulp_nr              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
2070
  { NULL, 0, 0, NULL }
2071
};
2072
2073
static unsigned
2074
7
dissect_ulp_SupportedNetworkInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2075
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2076
7
                                   ett_ulp_SupportedNetworkInformation, SupportedNetworkInformation_sequence);
2077
2078
7
  return offset;
2079
7
}
2080
2081
2082
static const value_string ulp_TriggerType_vals[] = {
2083
  {   0, "periodic" },
2084
  {   1, "areaEvent" },
2085
  { 0, NULL }
2086
};
2087
2088
2089
static unsigned
2090
11
dissect_ulp_TriggerType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2091
11
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2092
11
                                     2, NULL, true, 0, NULL);
2093
2094
11
  return offset;
2095
11
}
2096
2097
2098
static const value_string ulp_AllowedReportingType_vals[] = {
2099
  {   0, "positionsOnly" },
2100
  {   1, "measurementsOnly" },
2101
  {   2, "positionsAndMeasurements" },
2102
  { 0, NULL }
2103
};
2104
2105
2106
static unsigned
2107
1
dissect_ulp_AllowedReportingType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2108
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2109
1
                                     3, NULL, true, 0, NULL);
2110
2111
1
  return offset;
2112
1
}
2113
2114
2115
2116
static unsigned
2117
0
dissect_ulp_INTEGER_M525600_M1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2118
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2119
0
                                                            -525600, -1, NULL, false);
2120
2121
0
  return offset;
2122
0
}
2123
2124
2125
2126
static unsigned
2127
0
dissect_ulp_INTEGER_M525599_0(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2128
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2129
0
                                                            -525599, 0U, NULL, false);
2130
2131
0
  return offset;
2132
0
}
2133
2134
2135
static const per_sequence_t TimeWindow_sequence[] = {
2136
  { &hf_ulp_startTime_01    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M525600_M1 },
2137
  { &hf_ulp_stopTime_01     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M525599_0 },
2138
  { NULL, 0, 0, NULL }
2139
};
2140
2141
static unsigned
2142
0
dissect_ulp_TimeWindow(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2143
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2144
0
                                   ett_ulp_TimeWindow, TimeWindow_sequence);
2145
2146
0
  return offset;
2147
0
}
2148
2149
2150
2151
static unsigned
2152
0
dissect_ulp_INTEGER_1_65536(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2153
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2154
0
                                                            1U, 65536U, NULL, false);
2155
2156
0
  return offset;
2157
0
}
2158
2159
2160
2161
static unsigned
2162
0
dissect_ulp_INTEGER_1_86400(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2163
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2164
0
                                                            1U, 86400U, NULL, false);
2165
2166
0
  return offset;
2167
0
}
2168
2169
2170
static const per_sequence_t ReportingCriteria_sequence[] = {
2171
  { &hf_ulp_timeWindow      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TimeWindow },
2172
  { &hf_ulp_maxNumberofReports, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_65536 },
2173
  { &hf_ulp_minTimeInterval , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_86400 },
2174
  { NULL, 0, 0, NULL }
2175
};
2176
2177
static unsigned
2178
1
dissect_ulp_ReportingCriteria(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2179
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2180
1
                                   ett_ulp_ReportingCriteria, ReportingCriteria_sequence);
2181
2182
1
  return offset;
2183
1
}
2184
2185
2186
static const per_sequence_t HistoricReporting_sequence[] = {
2187
  { &hf_ulp_allowedReportingType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_AllowedReportingType },
2188
  { &hf_ulp_reportingCriteria, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCriteria },
2189
  { NULL, 0, 0, NULL }
2190
};
2191
2192
static unsigned
2193
1
dissect_ulp_HistoricReporting(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2194
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2195
1
                                   ett_ulp_HistoricReporting, HistoricReporting_sequence);
2196
2197
1
  return offset;
2198
1
}
2199
2200
2201
static const value_string ulp_ProtLevel_vals[] = {
2202
  {   0, "nullProtection" },
2203
  {   1, "basicProtection" },
2204
  { 0, NULL }
2205
};
2206
2207
2208
static unsigned
2209
2
dissect_ulp_ProtLevel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2210
2
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2211
2
                                     2, NULL, true, 0, NULL);
2212
2213
2
  return offset;
2214
2
}
2215
2216
2217
2218
static unsigned
2219
0
dissect_ulp_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2220
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2221
0
                                     32, 32, false, NULL, 0, NULL, NULL);
2222
2223
0
  return offset;
2224
0
}
2225
2226
2227
static const per_sequence_t BasicProtectionParams_sequence[] = {
2228
  { &hf_ulp_keyIdentifier   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_8 },
2229
  { &hf_ulp_basicReplayCounter, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2230
  { &hf_ulp_basicMAC        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_32 },
2231
  { NULL, 0, 0, NULL }
2232
};
2233
2234
static unsigned
2235
0
dissect_ulp_BasicProtectionParams(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2236
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2237
0
                                   ett_ulp_BasicProtectionParams, BasicProtectionParams_sequence);
2238
2239
0
  return offset;
2240
0
}
2241
2242
2243
static const per_sequence_t ProtectionLevel_sequence[] = {
2244
  { &hf_ulp_protlevel       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ProtLevel },
2245
  { &hf_ulp_basicProtectionParams, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BasicProtectionParams },
2246
  { NULL, 0, 0, NULL }
2247
};
2248
2249
static unsigned
2250
2
dissect_ulp_ProtectionLevel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2251
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2252
2
                                   ett_ulp_ProtectionLevel, ProtectionLevel_sequence);
2253
2254
2
  return offset;
2255
2
}
2256
2257
2258
static const per_sequence_t GNSSPosTechnology_sequence[] = {
2259
  { &hf_ulp_gps             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2260
  { &hf_ulp_galileo         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2261
  { &hf_ulp_sbas            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2262
  { &hf_ulp_modernized_gps  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2263
  { &hf_ulp_qzss            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2264
  { &hf_ulp_glonass         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2265
  { &hf_ulp_bds             , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
2266
  { &hf_ulp_rtk_osr         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
2267
  { NULL, 0, 0, NULL }
2268
};
2269
2270
static unsigned
2271
24
dissect_ulp_GNSSPosTechnology(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2272
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2273
24
                                   ett_ulp_GNSSPosTechnology, GNSSPosTechnology_sequence);
2274
2275
24
  return offset;
2276
24
}
2277
2278
2279
static const per_sequence_t Ver2_SUPL_INIT_extension_sequence[] = {
2280
  { &hf_ulp_notificationMode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NotificationMode },
2281
  { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
2282
  { &hf_ulp_triggerType     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerType },
2283
  { &hf_ulp_e_SLPAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
2284
  { &hf_ulp_historicReporting, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_HistoricReporting },
2285
  { &hf_ulp_protectionLevel , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ProtectionLevel },
2286
  { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
2287
  { &hf_ulp_minimumMajorVersion, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
2288
  { NULL, 0, 0, NULL }
2289
};
2290
2291
static unsigned
2292
3
dissect_ulp_Ver2_SUPL_INIT_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2293
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2294
3
                                   ett_ulp_Ver2_SUPL_INIT_extension, Ver2_SUPL_INIT_extension_sequence);
2295
2296
3
  return offset;
2297
3
}
2298
2299
2300
static const per_sequence_t SUPLINIT_sequence[] = {
2301
  { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
2302
  { &hf_ulp_notification    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Notification },
2303
  { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
2304
  { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
2305
  { &hf_ulp_sLPMode         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SLPMode },
2306
  { &hf_ulp_mac             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MAC },
2307
  { &hf_ulp_keyIdentity     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_KeyIdentity },
2308
  { &hf_ulp_ver2_SUPL_INIT_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_INIT_extension },
2309
  { NULL, 0, 0, NULL }
2310
};
2311
2312
static unsigned
2313
40
dissect_ulp_SUPLINIT(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2314
40
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2315
40
                                   ett_ulp_SUPLINIT, SUPLINIT_sequence);
2316
2317
40
  return offset;
2318
40
}
2319
2320
2321
2322
static unsigned
2323
169
dissect_ulp_INTEGER_0_15(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2324
169
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2325
169
                                                            0U, 15U, NULL, false);
2326
2327
169
  return offset;
2328
169
}
2329
2330
2331
2332
static unsigned
2333
12
dissect_ulp_T_ganssSBASid(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2334
12
  tvbuff_t *val_tvb;
2335
2336
12
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2337
12
                                     3, 3, false, NULL, 0, &val_tvb, NULL);
2338
2339
12
  if (val_tvb) {
2340
12
    proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 3, ENC_NA);
2341
12
  }
2342
2343
2344
12
  return offset;
2345
12
}
2346
2347
2348
static const per_sequence_t GANSSPositioningMethodTypes_sequence[] = {
2349
  { &hf_ulp_setAssisted     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2350
  { &hf_ulp_setBased        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2351
  { &hf_ulp_autonomous      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2352
  { NULL, 0, 0, NULL }
2353
};
2354
2355
static unsigned
2356
52
dissect_ulp_GANSSPositioningMethodTypes(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2357
52
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2358
52
                                   ett_ulp_GANSSPositioningMethodTypes, GANSSPositioningMethodTypes_sequence);
2359
2360
52
  return offset;
2361
52
}
2362
2363
2364
static int * const GANSSSignals_bits[] = {
2365
  &hf_ulp_GANSSSignals_signal1,
2366
  &hf_ulp_GANSSSignals_signal2,
2367
  &hf_ulp_GANSSSignals_signal3,
2368
  &hf_ulp_GANSSSignals_signal4,
2369
  &hf_ulp_GANSSSignals_signal5,
2370
  &hf_ulp_GANSSSignals_signal6,
2371
  &hf_ulp_GANSSSignals_signal7,
2372
  &hf_ulp_GANSSSignals_signal8,
2373
  NULL
2374
};
2375
2376
static unsigned
2377
158
dissect_ulp_GANSSSignals(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2378
158
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2379
158
                                     1, 8, false, GANSSSignals_bits, 8, NULL, NULL);
2380
2381
158
  return offset;
2382
158
}
2383
2384
2385
static const per_sequence_t RTK_sequence[] = {
2386
  { &hf_ulp_osr             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2387
  { NULL, 0, 0, NULL }
2388
};
2389
2390
static unsigned
2391
8
dissect_ulp_RTK(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2392
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2393
8
                                   ett_ulp_RTK, RTK_sequence);
2394
2395
8
  return offset;
2396
8
}
2397
2398
2399
static const per_sequence_t GANSSPositionMethod_sequence[] = {
2400
  { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
2401
  { &hf_ulp_ganssSBASid     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_ganssSBASid },
2402
  { &hf_ulp_gANSSPositioningMethodTypes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSPositioningMethodTypes },
2403
  { &hf_ulp_gANSSSignals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
2404
  { &hf_ulp_rtk             , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RTK },
2405
  { NULL, 0, 0, NULL }
2406
};
2407
2408
static unsigned
2409
52
dissect_ulp_GANSSPositionMethod(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2410
52
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2411
52
                                   ett_ulp_GANSSPositionMethod, GANSSPositionMethod_sequence);
2412
2413
52
  return offset;
2414
52
}
2415
2416
2417
static const per_sequence_t GANSSPositionMethods_sequence_of[1] = {
2418
  { &hf_ulp_GANSSPositionMethods_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSPositionMethod },
2419
};
2420
2421
static unsigned
2422
8
dissect_ulp_GANSSPositionMethods(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2423
8
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2424
8
                                                  ett_ulp_GANSSPositionMethods, GANSSPositionMethods_sequence_of,
2425
8
                                                  1, 16, false);
2426
2427
8
  return offset;
2428
8
}
2429
2430
2431
static const value_string ulp_T_addPosID_vals[] = {
2432
  {   0, "mBS" },
2433
  { 0, NULL }
2434
};
2435
2436
2437
static unsigned
2438
2
dissect_ulp_T_addPosID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2439
2
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2440
2
                                     1, NULL, true, 0, NULL);
2441
2442
2
  return offset;
2443
2
}
2444
2445
2446
static int * const T_addPosMode_bits[] = {
2447
  &hf_ulp_T_addPosMode_standalone,
2448
  &hf_ulp_T_addPosMode_setBased,
2449
  &hf_ulp_T_addPosMode_setAssisted,
2450
  NULL
2451
};
2452
2453
static unsigned
2454
1
dissect_ulp_T_addPosMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2455
1
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2456
1
                                     1, 8, false, T_addPosMode_bits, 3, NULL, NULL);
2457
2458
1
  return offset;
2459
1
}
2460
2461
2462
static const per_sequence_t AddPosSupport_Element_sequence[] = {
2463
  { &hf_ulp_addPosID        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_addPosID },
2464
  { &hf_ulp_addPosMode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_addPosMode },
2465
  { NULL, 0, 0, NULL }
2466
};
2467
2468
static unsigned
2469
2
dissect_ulp_AddPosSupport_Element(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2470
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2471
2
                                   ett_ulp_AddPosSupport_Element, AddPosSupport_Element_sequence);
2472
2473
2
  return offset;
2474
2
}
2475
2476
2477
static const per_sequence_t AdditionalPositioningMethods_sequence_of[1] = {
2478
  { &hf_ulp_AdditionalPositioningMethods_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AddPosSupport_Element },
2479
};
2480
2481
static unsigned
2482
2
dissect_ulp_AdditionalPositioningMethods(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2483
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2484
2
                                                  ett_ulp_AdditionalPositioningMethods, AdditionalPositioningMethods_sequence_of,
2485
2
                                                  1, 8, false);
2486
2487
2
  return offset;
2488
2
}
2489
2490
2491
static const per_sequence_t Ver2_PosTechnology_extension_sequence[] = {
2492
  { &hf_ulp_gANSSPositionMethods, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GANSSPositionMethods },
2493
  { &hf_ulp_additionalPositioningMethods, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_AdditionalPositioningMethods },
2494
  { NULL, 0, 0, NULL }
2495
};
2496
2497
static unsigned
2498
14
dissect_ulp_Ver2_PosTechnology_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2499
14
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2500
14
                                   ett_ulp_Ver2_PosTechnology_extension, Ver2_PosTechnology_extension_sequence);
2501
2502
14
  return offset;
2503
14
}
2504
2505
2506
static const per_sequence_t PosTechnology_sequence[] = {
2507
  { &hf_ulp_agpsSETassisted , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2508
  { &hf_ulp_agpsSETBased    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2509
  { &hf_ulp_autonomousGPS   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2510
  { &hf_ulp_aflt            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2511
  { &hf_ulp_ecid            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2512
  { &hf_ulp_eotd            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2513
  { &hf_ulp_otdoa           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2514
  { &hf_ulp_ver2_PosTechnology_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_PosTechnology_extension },
2515
  { NULL, 0, 0, NULL }
2516
};
2517
2518
static unsigned
2519
180
dissect_ulp_PosTechnology(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2520
180
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2521
180
                                   ett_ulp_PosTechnology, PosTechnology_sequence);
2522
2523
180
  return offset;
2524
180
}
2525
2526
2527
static const value_string ulp_PrefMethod_vals[] = {
2528
  {   0, "agpsSETassistedPreferred" },
2529
  {   1, "agpsSETBasedPreferred" },
2530
  {   2, "noPreference" },
2531
  { 0, NULL }
2532
};
2533
2534
2535
static unsigned
2536
166
dissect_ulp_PrefMethod(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2537
166
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2538
166
                                     3, NULL, false, 0, NULL);
2539
2540
166
  return offset;
2541
166
}
2542
2543
2544
static const per_sequence_t PosProtocolVersion3GPP_sequence[] = {
2545
  { &hf_ulp_majorVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2546
  { &hf_ulp_technicalVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2547
  { &hf_ulp_editorialVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2548
  { NULL, 0, 0, NULL }
2549
};
2550
2551
static unsigned
2552
7
dissect_ulp_PosProtocolVersion3GPP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2553
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2554
7
                                   ett_ulp_PosProtocolVersion3GPP, PosProtocolVersion3GPP_sequence);
2555
2556
7
  return offset;
2557
7
}
2558
2559
2560
2561
static unsigned
2562
13
dissect_ulp_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2563
13
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2564
13
                                     6, 6, false, NULL, 0, NULL, NULL);
2565
2566
13
  return offset;
2567
13
}
2568
2569
2570
static const per_sequence_t Supported3GPP2PosProtocolVersion_sequence[] = {
2571
  { &hf_ulp_revisionNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_6 },
2572
  { &hf_ulp_pointReleaseNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2573
  { &hf_ulp_internalEditLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2574
  { NULL, 0, 0, NULL }
2575
};
2576
2577
static unsigned
2578
13
dissect_ulp_Supported3GPP2PosProtocolVersion(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2579
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2580
13
                                   ett_ulp_Supported3GPP2PosProtocolVersion, Supported3GPP2PosProtocolVersion_sequence);
2581
2582
13
  return offset;
2583
13
}
2584
2585
2586
static const per_sequence_t PosProtocolVersion3GPP2_sequence_of[1] = {
2587
  { &hf_ulp_PosProtocolVersion3GPP2_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Supported3GPP2PosProtocolVersion },
2588
};
2589
2590
static unsigned
2591
5
dissect_ulp_PosProtocolVersion3GPP2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2592
5
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2593
5
                                                  ett_ulp_PosProtocolVersion3GPP2, PosProtocolVersion3GPP2_sequence_of,
2594
5
                                                  1, 8, false);
2595
2596
5
  return offset;
2597
5
}
2598
2599
2600
static const per_sequence_t PosProtocolVersionOMA_sequence[] = {
2601
  { &hf_ulp_majorVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2602
  { &hf_ulp_minorVersionField, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
2603
  { NULL, 0, 0, NULL }
2604
};
2605
2606
static unsigned
2607
0
dissect_ulp_PosProtocolVersionOMA(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2608
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2609
0
                                   ett_ulp_PosProtocolVersionOMA, PosProtocolVersionOMA_sequence);
2610
2611
0
  return offset;
2612
0
}
2613
2614
2615
static const per_sequence_t Ver2_PosProtocol_extension_sequence[] = {
2616
  { &hf_ulp_lpp             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2617
  { &hf_ulp_posProtocolVersionRRLP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP },
2618
  { &hf_ulp_posProtocolVersionRRC, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP },
2619
  { &hf_ulp_posProtocolVersionTIA801, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP2 },
2620
  { &hf_ulp_posProtocolVersionLPP, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersion3GPP },
2621
  { &hf_ulp_lppe            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
2622
  { &hf_ulp_posProtocolVersionLPPe, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_PosProtocolVersionOMA },
2623
  { NULL, 0, 0, NULL }
2624
};
2625
2626
static unsigned
2627
6
dissect_ulp_Ver2_PosProtocol_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2628
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2629
6
                                   ett_ulp_Ver2_PosProtocol_extension, Ver2_PosProtocol_extension_sequence);
2630
2631
6
  return offset;
2632
6
}
2633
2634
2635
static const per_sequence_t PosProtocol_sequence[] = {
2636
  { &hf_ulp_tia801          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2637
  { &hf_ulp_rrlp            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2638
  { &hf_ulp_rrc             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2639
  { &hf_ulp_ver2_PosProtocol_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_PosProtocol_extension },
2640
  { NULL, 0, 0, NULL }
2641
};
2642
2643
static unsigned
2644
166
dissect_ulp_PosProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2645
166
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2646
166
                                   ett_ulp_PosProtocol, PosProtocol_sequence);
2647
2648
166
  return offset;
2649
166
}
2650
2651
2652
static const per_sequence_t ServicesSupported_sequence[] = {
2653
  { &hf_ulp_periodicTrigger , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2654
  { &hf_ulp_areaEventTrigger, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2655
  { NULL, 0, 0, NULL }
2656
};
2657
2658
static unsigned
2659
1
dissect_ulp_ServicesSupported(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2660
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2661
1
                                   ett_ulp_ServicesSupported, ServicesSupported_sequence);
2662
2663
1
  return offset;
2664
1
}
2665
2666
2667
2668
static unsigned
2669
4
dissect_ulp_INTEGER_1_3600(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2670
4
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2671
4
                                                            1U, 3600U, NULL, false);
2672
2673
4
  return offset;
2674
4
}
2675
2676
2677
2678
static unsigned
2679
1
dissect_ulp_INTEGER_1_1440(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2680
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2681
1
                                                            1U, 1440U, NULL, false);
2682
2683
1
  return offset;
2684
1
}
2685
2686
2687
static const per_sequence_t RepMode_sequence[] = {
2688
  { &hf_ulp_realtime        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2689
  { &hf_ulp_quasirealtime   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2690
  { &hf_ulp_batch           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2691
  { NULL, 0, 0, NULL }
2692
};
2693
2694
static unsigned
2695
4
dissect_ulp_RepMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2696
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2697
4
                                   ett_ulp_RepMode, RepMode_sequence);
2698
2699
4
  return offset;
2700
4
}
2701
2702
2703
2704
static unsigned
2705
48
dissect_ulp_INTEGER_1_1024(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2706
48
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2707
48
                                                            1U, 1024U, NULL, false);
2708
2709
48
  return offset;
2710
48
}
2711
2712
2713
static const per_sequence_t BatchRepCap_sequence[] = {
2714
  { &hf_ulp_report_position , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2715
  { &hf_ulp_report_measurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2716
  { &hf_ulp_max_num_positions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1024 },
2717
  { &hf_ulp_max_num_measurements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1024 },
2718
  { NULL, 0, 0, NULL }
2719
};
2720
2721
static unsigned
2722
1
dissect_ulp_BatchRepCap(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2723
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2724
1
                                   ett_ulp_BatchRepCap, BatchRepCap_sequence);
2725
2726
1
  return offset;
2727
1
}
2728
2729
2730
static const per_sequence_t ReportingCap_sequence[] = {
2731
  { &hf_ulp_minInt          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_3600 },
2732
  { &hf_ulp_maxInt          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1440 },
2733
  { &hf_ulp_repMode_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RepMode },
2734
  { &hf_ulp_batchRepCap     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepCap },
2735
  { NULL, 0, 0, NULL }
2736
};
2737
2738
static unsigned
2739
4
dissect_ulp_ReportingCap(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2740
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2741
4
                                   ett_ulp_ReportingCap, ReportingCap_sequence);
2742
2743
4
  return offset;
2744
4
}
2745
2746
2747
static const per_sequence_t GeoAreaShapesSupported_sequence[] = {
2748
  { &hf_ulp_ellipticalArea_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2749
  { &hf_ulp_polygonArea_01  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2750
  { NULL, 0, 0, NULL }
2751
};
2752
2753
static unsigned
2754
1
dissect_ulp_GeoAreaShapesSupported(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2756
1
                                   ett_ulp_GeoAreaShapesSupported, GeoAreaShapesSupported_sequence);
2757
2758
1
  return offset;
2759
1
}
2760
2761
2762
2763
static unsigned
2764
1
dissect_ulp_INTEGER_0_maxNumGeoArea(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2765
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2766
1
                                                            0U, maxNumGeoArea, NULL, false);
2767
2768
1
  return offset;
2769
1
}
2770
2771
2772
2773
static unsigned
2774
0
dissect_ulp_INTEGER_0_maxAreaIdList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2775
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2776
0
                                                            0U, maxAreaIdList, NULL, false);
2777
2778
0
  return offset;
2779
0
}
2780
2781
2782
2783
static unsigned
2784
1
dissect_ulp_INTEGER_0_maxAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2785
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2786
1
                                                            0U, maxAreaId, NULL, false);
2787
2788
1
  return offset;
2789
1
}
2790
2791
2792
static const per_sequence_t EventTriggerCapabilities_sequence[] = {
2793
  { &hf_ulp_geoAreaShapesSupported, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GeoAreaShapesSupported },
2794
  { &hf_ulp_maxNumGeoAreaSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_maxNumGeoArea },
2795
  { &hf_ulp_maxAreaIdListSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_maxAreaIdList },
2796
  { &hf_ulp_maxAreaIdSupportedPerList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_maxAreaId },
2797
  { NULL, 0, 0, NULL }
2798
};
2799
2800
static unsigned
2801
1
dissect_ulp_EventTriggerCapabilities(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2802
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2803
1
                                   ett_ulp_EventTriggerCapabilities, EventTriggerCapabilities_sequence);
2804
2805
1
  return offset;
2806
1
}
2807
2808
2809
2810
static unsigned
2811
2
dissect_ulp_INTEGER_1_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2812
2
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2813
2
                                                            1U, 32U, NULL, false);
2814
2815
2
  return offset;
2816
2
}
2817
2818
2819
static const per_sequence_t SessionCapabilities_sequence[] = {
2820
  { &hf_ulp_maxNumberTotalSessions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_128 },
2821
  { &hf_ulp_maxNumberPeriodicSessions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_32 },
2822
  { &hf_ulp_maxNumberTriggeredSessions, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_32 },
2823
  { NULL, 0, 0, NULL }
2824
};
2825
2826
static unsigned
2827
1
dissect_ulp_SessionCapabilities(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2828
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2829
1
                                   ett_ulp_SessionCapabilities, SessionCapabilities_sequence);
2830
2831
1
  return offset;
2832
1
}
2833
2834
2835
static const per_sequence_t ServiceCapabilities_sequence[] = {
2836
  { &hf_ulp_servicesSupported, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ServicesSupported },
2837
  { &hf_ulp_reportingCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCap },
2838
  { &hf_ulp_eventTriggerCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_EventTriggerCapabilities },
2839
  { &hf_ulp_sessionCapabilities, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SessionCapabilities },
2840
  { NULL, 0, 0, NULL }
2841
};
2842
2843
static unsigned
2844
1
dissect_ulp_ServiceCapabilities(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2845
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2846
1
                                   ett_ulp_ServiceCapabilities, ServiceCapabilities_sequence);
2847
2848
1
  return offset;
2849
1
}
2850
2851
2852
static const per_sequence_t SupportedBearers_sequence[] = {
2853
  { &hf_ulp_gsm             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2854
  { &hf_ulp_wcdma           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2855
  { &hf_ulp_lte             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2856
  { &hf_ulp_cdma            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2857
  { &hf_ulp_hprd            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2858
  { &hf_ulp_umb             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2859
  { &hf_ulp_wlan            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2860
  { &hf_ulp_wiMAX           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
2861
  { &hf_ulp_nr              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
2862
  { NULL, 0, 0, NULL }
2863
};
2864
2865
static unsigned
2866
0
dissect_ulp_SupportedBearers(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2867
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2868
0
                                   ett_ulp_SupportedBearers, SupportedBearers_sequence);
2869
2870
0
  return offset;
2871
0
}
2872
2873
2874
static const per_sequence_t Ver2_SETCapabilities_extension_sequence[] = {
2875
  { &hf_ulp_serviceCapabilities, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ServiceCapabilities },
2876
  { &hf_ulp_supportedBearers, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_SupportedBearers },
2877
  { NULL, 0, 0, NULL }
2878
};
2879
2880
static unsigned
2881
1
dissect_ulp_Ver2_SETCapabilities_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2882
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2883
1
                                   ett_ulp_Ver2_SETCapabilities_extension, Ver2_SETCapabilities_extension_sequence);
2884
2885
1
  return offset;
2886
1
}
2887
2888
2889
static const per_sequence_t SETCapabilities_sequence[] = {
2890
  { &hf_ulp_posTechnology   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosTechnology },
2891
  { &hf_ulp_prefMethod      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PrefMethod },
2892
  { &hf_ulp_posProtocol     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosProtocol },
2893
  { &hf_ulp_ver2_SETCapabilities_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SETCapabilities_extension },
2894
  { NULL, 0, 0, NULL }
2895
};
2896
2897
static unsigned
2898
181
dissect_ulp_SETCapabilities(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2899
181
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2900
181
                                   ett_ulp_SETCapabilities, SETCapabilities_sequence);
2901
2902
181
  return offset;
2903
181
}
2904
2905
2906
2907
static unsigned
2908
1.11k
dissect_ulp_INTEGER_0_999(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2909
1.11k
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2910
1.11k
                                                            0U, 999U, NULL, false);
2911
2912
1.11k
  return offset;
2913
1.11k
}
2914
2915
2916
2917
static unsigned
2918
196
dissect_ulp_INTEGER_0_1023(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2919
196
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2920
196
                                                            0U, 1023U, NULL, false);
2921
2922
196
  return offset;
2923
196
}
2924
2925
2926
2927
static unsigned
2928
290
dissect_ulp_INTEGER_0_63(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2929
290
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2930
290
                                                            0U, 63U, NULL, false);
2931
2932
290
  return offset;
2933
290
}
2934
2935
2936
static const per_sequence_t NMRelement_sequence[] = {
2937
  { &hf_ulp_arfcn           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
2938
  { &hf_ulp_bsic            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
2939
  { &hf_ulp_rxLev           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
2940
  { NULL, 0, 0, NULL }
2941
};
2942
2943
static unsigned
2944
82
dissect_ulp_NMRelement(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2945
82
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2946
82
                                   ett_ulp_NMRelement, NMRelement_sequence);
2947
2948
82
  return offset;
2949
82
}
2950
2951
2952
static const per_sequence_t NMR_sequence_of[1] = {
2953
  { &hf_ulp_NMR_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_NMRelement },
2954
};
2955
2956
static unsigned
2957
26
dissect_ulp_NMR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2958
26
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2959
26
                                                  ett_ulp_NMR, NMR_sequence_of,
2960
26
                                                  1, 15, false);
2961
2962
26
  return offset;
2963
26
}
2964
2965
2966
static const per_sequence_t GsmCellInformation_sequence[] = {
2967
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2968
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
2969
  { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2970
  { &hf_ulp_refCI           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
2971
  { &hf_ulp_nmr             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NMR },
2972
  { &hf_ulp_ta              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
2973
  { NULL, 0, 0, NULL }
2974
};
2975
2976
static unsigned
2977
412
dissect_ulp_GsmCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2978
412
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2979
412
                                   ett_ulp_GsmCellInformation, GsmCellInformation_sequence);
2980
2981
412
  return offset;
2982
412
}
2983
2984
2985
2986
static unsigned
2987
409
dissect_ulp_INTEGER_0_268435455(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2988
409
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2989
409
                                                            0U, 268435455U, NULL, false);
2990
2991
409
  return offset;
2992
409
}
2993
2994
2995
2996
static unsigned
2997
65
dissect_ulp_UARFCN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2998
65
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2999
65
                                                            0U, 16383U, NULL, false);
3000
3001
65
  return offset;
3002
65
}
3003
3004
3005
static const per_sequence_t FrequencyInfoFDD_sequence[] = {
3006
  { &hf_ulp_uarfcn_UL       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UARFCN },
3007
  { &hf_ulp_uarfcn_DL       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UARFCN },
3008
  { NULL, 0, 0, NULL }
3009
};
3010
3011
static unsigned
3012
34
dissect_ulp_FrequencyInfoFDD(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3013
34
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3014
34
                                   ett_ulp_FrequencyInfoFDD, FrequencyInfoFDD_sequence);
3015
3016
34
  return offset;
3017
34
}
3018
3019
3020
static const per_sequence_t FrequencyInfoTDD_sequence[] = {
3021
  { &hf_ulp_uarfcn_Nt       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UARFCN },
3022
  { NULL, 0, 0, NULL }
3023
};
3024
3025
static unsigned
3026
18
dissect_ulp_FrequencyInfoTDD(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3027
18
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3028
18
                                   ett_ulp_FrequencyInfoTDD, FrequencyInfoTDD_sequence);
3029
3030
18
  return offset;
3031
18
}
3032
3033
3034
static const value_string ulp_FrequencySpecificInfo_vals[] = {
3035
  {   0, "fdd" },
3036
  {   1, "tdd" },
3037
  { 0, NULL }
3038
};
3039
3040
static const per_choice_t FrequencySpecificInfo_choice[] = {
3041
  {   0, &hf_ulp_fdd_fr          , ASN1_EXTENSION_ROOT    , dissect_ulp_FrequencyInfoFDD },
3042
  {   1, &hf_ulp_tdd_fr          , ASN1_EXTENSION_ROOT    , dissect_ulp_FrequencyInfoTDD },
3043
  { 0, NULL, 0, NULL }
3044
};
3045
3046
static unsigned
3047
57
dissect_ulp_FrequencySpecificInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3048
57
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3049
57
                                 ett_ulp_FrequencySpecificInfo, FrequencySpecificInfo_choice,
3050
57
                                 NULL);
3051
3052
57
  return offset;
3053
57
}
3054
3055
3056
static const per_sequence_t FrequencyInfo_sequence[] = {
3057
  { &hf_ulp_modeSpecificFrequencyInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_FrequencySpecificInfo },
3058
  { NULL, 0, 0, NULL }
3059
};
3060
3061
static unsigned
3062
57
dissect_ulp_FrequencyInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3063
57
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3064
57
                                   ett_ulp_FrequencyInfo, FrequencyInfo_sequence);
3065
3066
57
  return offset;
3067
57
}
3068
3069
3070
3071
static unsigned
3072
586
dissect_ulp_INTEGER_0_511(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3073
586
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3074
586
                                                            0U, 511U, NULL, false);
3075
3076
586
  return offset;
3077
586
}
3078
3079
3080
3081
static unsigned
3082
62
dissect_ulp_UTRA_CarrierRSSI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3083
62
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3084
62
                                                            0U, 127U, NULL, false);
3085
3086
62
  return offset;
3087
62
}
3088
3089
3090
static const per_sequence_t PrimaryCPICH_Info_sequence[] = {
3091
  { &hf_ulp_primaryScramblingCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_511 },
3092
  { NULL, 0, 0, NULL }
3093
};
3094
3095
static unsigned
3096
545
dissect_ulp_PrimaryCPICH_Info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3097
545
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3098
545
                                   ett_ulp_PrimaryCPICH_Info, PrimaryCPICH_Info_sequence);
3099
3100
545
  return offset;
3101
545
}
3102
3103
3104
3105
static unsigned
3106
98
dissect_ulp_CPICH_Ec_N0(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3107
98
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3108
98
                                                            0U, 63U, NULL, false);
3109
3110
98
  return offset;
3111
98
}
3112
3113
3114
3115
static unsigned
3116
208
dissect_ulp_CPICH_RSCP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3117
208
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3118
208
                                                            0U, 127U, NULL, false);
3119
3120
208
  return offset;
3121
208
}
3122
3123
3124
3125
static unsigned
3126
441
dissect_ulp_Pathloss(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3127
441
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3128
441
                                                            46U, 173U, NULL, false);
3129
3130
441
  return offset;
3131
441
}
3132
3133
3134
static const per_sequence_t T_fdd_sequence[] = {
3135
  { &hf_ulp_primaryCPICH_Info, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
3136
  { &hf_ulp_cpich_Ec_N0     , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_CPICH_Ec_N0 },
3137
  { &hf_ulp_cpich_RSCP      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_CPICH_RSCP },
3138
  { &hf_ulp_pathloss        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_Pathloss },
3139
  { NULL, 0, 0, NULL }
3140
};
3141
3142
static unsigned
3143
543
dissect_ulp_T_fdd(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3144
543
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3145
543
                                   ett_ulp_T_fdd, T_fdd_sequence);
3146
3147
543
  return offset;
3148
543
}
3149
3150
3151
3152
static unsigned
3153
365
dissect_ulp_CellParametersID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3154
365
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3155
365
                                                            0U, 127U, NULL, false);
3156
3157
365
  return offset;
3158
365
}
3159
3160
3161
3162
static unsigned
3163
252
dissect_ulp_TGSN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3164
252
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3165
252
                                                            0U, 14U, NULL, false);
3166
3167
252
  return offset;
3168
252
}
3169
3170
3171
3172
static unsigned
3173
232
dissect_ulp_PrimaryCCPCH_RSCP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3174
232
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3175
232
                                                            0U, 127U, NULL, false);
3176
3177
232
  return offset;
3178
232
}
3179
3180
3181
3182
static unsigned
3183
1.38k
dissect_ulp_TimeslotISCP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3184
1.38k
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3185
1.38k
                                                            0U, 127U, NULL, false);
3186
3187
1.38k
  return offset;
3188
1.38k
}
3189
3190
3191
static const per_sequence_t TimeslotISCP_List_sequence_of[1] = {
3192
  { &hf_ulp_TimeslotISCP_List_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_TimeslotISCP },
3193
};
3194
3195
static unsigned
3196
126
dissect_ulp_TimeslotISCP_List(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3197
126
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3198
126
                                                  ett_ulp_TimeslotISCP_List, TimeslotISCP_List_sequence_of,
3199
126
                                                  1, maxTS, false);
3200
3201
126
  return offset;
3202
126
}
3203
3204
3205
static const per_sequence_t T_tdd_sequence[] = {
3206
  { &hf_ulp_cellParametersID, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
3207
  { &hf_ulp_proposedTGSN    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_TGSN },
3208
  { &hf_ulp_primaryCCPCH_RSCP, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_PrimaryCCPCH_RSCP },
3209
  { &hf_ulp_pathloss        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_Pathloss },
3210
  { &hf_ulp_timeslotISCP_List, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_TimeslotISCP_List },
3211
  { NULL, 0, 0, NULL }
3212
};
3213
3214
static unsigned
3215
361
dissect_ulp_T_tdd(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3216
361
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3217
361
                                   ett_ulp_T_tdd, T_tdd_sequence);
3218
3219
361
  return offset;
3220
361
}
3221
3222
3223
static const value_string ulp_T_modeSpecificInfo_vals[] = {
3224
  {   0, "fdd" },
3225
  {   1, "tdd" },
3226
  { 0, NULL }
3227
};
3228
3229
static const per_choice_t T_modeSpecificInfo_choice[] = {
3230
  {   0, &hf_ulp_fdd             , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd },
3231
  {   1, &hf_ulp_tdd             , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd },
3232
  { 0, NULL, 0, NULL }
3233
};
3234
3235
static unsigned
3236
907
dissect_ulp_T_modeSpecificInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3237
907
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3238
907
                                 ett_ulp_T_modeSpecificInfo, T_modeSpecificInfo_choice,
3239
907
                                 NULL);
3240
3241
907
  return offset;
3242
907
}
3243
3244
3245
static const per_sequence_t CellMeasuredResults_sequence[] = {
3246
  { &hf_ulp_cellIdentity_uint, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_268435455 },
3247
  { &hf_ulp_modeSpecificInfo, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_modeSpecificInfo },
3248
  { NULL, 0, 0, NULL }
3249
};
3250
3251
static unsigned
3252
911
dissect_ulp_CellMeasuredResults(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3253
911
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3254
911
                                   ett_ulp_CellMeasuredResults, CellMeasuredResults_sequence);
3255
3256
911
  return offset;
3257
911
}
3258
3259
3260
static const per_sequence_t CellMeasuredResultsList_sequence_of[1] = {
3261
  { &hf_ulp_CellMeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellMeasuredResults },
3262
};
3263
3264
static unsigned
3265
70
dissect_ulp_CellMeasuredResultsList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3266
70
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3267
70
                                                  ett_ulp_CellMeasuredResultsList, CellMeasuredResultsList_sequence_of,
3268
70
                                                  1, maxCellMeas, false);
3269
3270
70
  return offset;
3271
70
}
3272
3273
3274
static const per_sequence_t MeasuredResults_sequence[] = {
3275
  { &hf_ulp_frequencyInfo   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_FrequencyInfo },
3276
  { &hf_ulp_utra_CarrierRSSI, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRA_CarrierRSSI },
3277
  { &hf_ulp_cellMeasuredResultsList, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_CellMeasuredResultsList },
3278
  { NULL, 0, 0, NULL }
3279
};
3280
3281
static unsigned
3282
153
dissect_ulp_MeasuredResults(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3283
153
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3284
153
                                   ett_ulp_MeasuredResults, MeasuredResults_sequence);
3285
3286
153
  return offset;
3287
153
}
3288
3289
3290
static const per_sequence_t MeasuredResultsList_sequence_of[1] = {
3291
  { &hf_ulp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MeasuredResults },
3292
};
3293
3294
static unsigned
3295
47
dissect_ulp_MeasuredResultsList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3296
47
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3297
47
                                                  ett_ulp_MeasuredResultsList, MeasuredResultsList_sequence_of,
3298
47
                                                  1, maxFreq, false);
3299
3300
47
  return offset;
3301
47
}
3302
3303
3304
3305
static unsigned
3306
22
dissect_ulp_INTEGER_0_8191(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3307
22
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3308
22
                                                            0U, 8191U, NULL, false);
3309
3310
22
  return offset;
3311
22
}
3312
3313
3314
static const value_string ulp_TAResolution_vals[] = {
3315
  {   0, "res10chip" },
3316
  {   1, "res05chip" },
3317
  {   2, "res0125chip" },
3318
  { 0, NULL }
3319
};
3320
3321
3322
static unsigned
3323
0
dissect_ulp_TAResolution(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3324
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3325
0
                                     3, NULL, true, 0, NULL);
3326
3327
0
  return offset;
3328
0
}
3329
3330
3331
static const value_string ulp_ChipRate_vals[] = {
3332
  {   0, "tdd128" },
3333
  {   1, "tdd384" },
3334
  {   2, "tdd768" },
3335
  { 0, NULL }
3336
};
3337
3338
3339
static unsigned
3340
1
dissect_ulp_ChipRate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3341
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3342
1
                                     3, NULL, true, 0, NULL);
3343
3344
1
  return offset;
3345
1
}
3346
3347
3348
static const per_sequence_t TimingAdvance_sequence[] = {
3349
  { &hf_ulp_ta_01           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8191 },
3350
  { &hf_ulp_tAResolution    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TAResolution },
3351
  { &hf_ulp_chipRate        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ChipRate },
3352
  { NULL, 0, 0, NULL }
3353
};
3354
3355
static unsigned
3356
1
dissect_ulp_TimingAdvance(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3357
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3358
1
                                   ett_ulp_TimingAdvance, TimingAdvance_sequence);
3359
3360
1
  return offset;
3361
1
}
3362
3363
3364
static const per_sequence_t WcdmaCellInformation_sequence[] = {
3365
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
3366
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
3367
  { &hf_ulp_refUC           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_268435455 },
3368
  { &hf_ulp_frequencyInfo   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_FrequencyInfo },
3369
  { &hf_ulp_primaryScramblingCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_511 },
3370
  { &hf_ulp_measuredResultsList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MeasuredResultsList },
3371
  { &hf_ulp_cellParametersId, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
3372
  { &hf_ulp_timingAdvance   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_TimingAdvance },
3373
  { NULL, 0, 0, NULL }
3374
};
3375
3376
static unsigned
3377
61
dissect_ulp_WcdmaCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3378
61
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3379
61
                                   ett_ulp_WcdmaCellInformation, WcdmaCellInformation_sequence);
3380
3381
61
  return offset;
3382
61
}
3383
3384
3385
3386
static unsigned
3387
79
dissect_ulp_INTEGER_0_32767(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3388
79
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3389
79
                                                            0U, 32767U, NULL, false);
3390
3391
79
  return offset;
3392
79
}
3393
3394
3395
3396
static unsigned
3397
65
dissect_ulp_INTEGER_0_4194303(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3398
65
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3399
65
                                                            0U, 4194303U, NULL, false);
3400
3401
65
  return offset;
3402
65
}
3403
3404
3405
3406
static unsigned
3407
319
dissect_ulp_INTEGER_0_8388607(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3408
319
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3409
319
                                                            0U, 8388607U, NULL, false);
3410
3411
319
  return offset;
3412
319
}
3413
3414
3415
static const per_sequence_t CdmaCellInformation_sequence[] = {
3416
  { &hf_ulp_refNID_01       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3417
  { &hf_ulp_refSID_01       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
3418
  { &hf_ulp_refBASEID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3419
  { &hf_ulp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
3420
  { &hf_ulp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
3421
  { &hf_ulp_refREFPN        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_511 },
3422
  { &hf_ulp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3423
  { &hf_ulp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
3424
  { NULL, 0, 0, NULL }
3425
};
3426
3427
static unsigned
3428
18
dissect_ulp_CdmaCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3429
18
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3430
18
                                   ett_ulp_CdmaCellInformation, CdmaCellInformation_sequence);
3431
3432
18
  return offset;
3433
18
}
3434
3435
3436
3437
static unsigned
3438
41
dissect_ulp_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3439
41
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3440
41
                                     128, 128, false, NULL, 0, NULL, NULL);
3441
3442
41
  return offset;
3443
41
}
3444
3445
3446
static const per_sequence_t HrpdCellInformation_sequence[] = {
3447
  { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_128 },
3448
  { &hf_ulp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
3449
  { &hf_ulp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
3450
  { &hf_ulp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3451
  { &hf_ulp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
3452
  { NULL, 0, 0, NULL }
3453
};
3454
3455
static unsigned
3456
17
dissect_ulp_HrpdCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3457
17
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3458
17
                                   ett_ulp_HrpdCellInformation, HrpdCellInformation_sequence);
3459
3460
17
  return offset;
3461
17
}
3462
3463
3464
static const per_sequence_t UmbCellInformation_sequence[] = {
3465
  { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
3466
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
3467
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_999 },
3468
  { &hf_ulp_refBASELAT      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
3469
  { &hf_ulp_reBASELONG      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
3470
  { &hf_ulp_refWeekNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
3471
  { &hf_ulp_refSeconds      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4194303 },
3472
  { NULL, 0, 0, NULL }
3473
};
3474
3475
static unsigned
3476
2
dissect_ulp_UmbCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3477
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3478
2
                                   ett_ulp_UmbCellInformation, UmbCellInformation_sequence);
3479
3480
2
  return offset;
3481
2
}
3482
3483
3484
3485
static unsigned
3486
430
dissect_ulp_MCC_MNC_Digit(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3487
430
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3488
430
                                                            0U, 9U, NULL, false);
3489
3490
430
  return offset;
3491
430
}
3492
3493
3494
static const per_sequence_t MCC_sequence_of[1] = {
3495
  { &hf_ulp_MCC_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MCC_MNC_Digit },
3496
};
3497
3498
static unsigned
3499
22
dissect_ulp_MCC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3500
22
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3501
22
                                                  ett_ulp_MCC, MCC_sequence_of,
3502
22
                                                  3, 3, false);
3503
3504
22
  return offset;
3505
22
}
3506
3507
3508
static const per_sequence_t MNC_sequence_of[1] = {
3509
  { &hf_ulp_MNC_item        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MCC_MNC_Digit },
3510
};
3511
3512
static unsigned
3513
174
dissect_ulp_MNC(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3514
174
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3515
174
                                                  ett_ulp_MNC, MNC_sequence_of,
3516
174
                                                  2, 3, false);
3517
3518
174
  return offset;
3519
174
}
3520
3521
3522
static const per_sequence_t PLMN_Identity_sequence[] = {
3523
  { &hf_ulp_mcc             , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_MCC },
3524
  { &hf_ulp_mnc             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MNC },
3525
  { NULL, 0, 0, NULL }
3526
};
3527
3528
static unsigned
3529
174
dissect_ulp_PLMN_Identity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3530
174
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3531
174
                                   ett_ulp_PLMN_Identity, PLMN_Identity_sequence);
3532
3533
174
  return offset;
3534
174
}
3535
3536
3537
3538
static unsigned
3539
11
dissect_ulp_CellIdentity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3540
11
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3541
11
                                     28, 28, false, NULL, 0, NULL, NULL);
3542
3543
11
  return offset;
3544
11
}
3545
3546
3547
static const per_sequence_t CellGlobalIdEUTRA_sequence[] = {
3548
  { &hf_ulp_plmn_Identity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PLMN_Identity },
3549
  { &hf_ulp_cellIdentity    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellIdentity },
3550
  { NULL, 0, 0, NULL }
3551
};
3552
3553
static unsigned
3554
11
dissect_ulp_CellGlobalIdEUTRA(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3555
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3556
11
                                   ett_ulp_CellGlobalIdEUTRA, CellGlobalIdEUTRA_sequence);
3557
3558
11
  return offset;
3559
11
}
3560
3561
3562
3563
static unsigned
3564
22
dissect_ulp_PhysCellId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3565
22
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3566
22
                                                            0U, 503U, NULL, false);
3567
3568
22
  return offset;
3569
22
}
3570
3571
3572
3573
static unsigned
3574
11
dissect_ulp_TrackingAreaCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3575
11
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3576
11
                                     16, 16, false, NULL, 0, NULL, NULL);
3577
3578
11
  return offset;
3579
11
}
3580
3581
3582
3583
static unsigned
3584
8
dissect_ulp_RSRP_Range(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3585
8
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3586
8
                                                            0U, 97U, NULL, false);
3587
3588
8
  return offset;
3589
8
}
3590
3591
3592
3593
static unsigned
3594
6
dissect_ulp_RSRQ_Range(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3595
6
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3596
6
                                                            0U, 34U, NULL, false);
3597
3598
6
  return offset;
3599
6
}
3600
3601
3602
3603
static unsigned
3604
5
dissect_ulp_INTEGER_0_1282(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3605
5
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3606
5
                                                            0U, 1282U, NULL, false);
3607
3608
5
  return offset;
3609
5
}
3610
3611
3612
static const per_sequence_t T_cgi_Info_sequence[] = {
3613
  { &hf_ulp_cellGlobalId    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellGlobalIdEUTRA },
3614
  { &hf_ulp_trackingAreaCode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCode },
3615
  { NULL, 0, 0, NULL }
3616
};
3617
3618
static unsigned
3619
4
dissect_ulp_T_cgi_Info(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3620
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3621
4
                                   ett_ulp_T_cgi_Info, T_cgi_Info_sequence);
3622
3623
4
  return offset;
3624
4
}
3625
3626
3627
3628
static unsigned
3629
1
dissect_ulp_INTEGER_65536_262143(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3630
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3631
1
                                                            65536U, 262143U, NULL, false);
3632
3633
1
  return offset;
3634
1
}
3635
3636
3637
3638
static unsigned
3639
0
dissect_ulp_RSRP_Range_Ext(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3640
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3641
0
                                                            -17, -1, NULL, false);
3642
3643
0
  return offset;
3644
0
}
3645
3646
3647
3648
static unsigned
3649
0
dissect_ulp_RSRQ_Range_Ext(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3650
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3651
0
                                                            -30, 46U, NULL, false);
3652
3653
0
  return offset;
3654
0
}
3655
3656
3657
3658
static unsigned
3659
0
dissect_ulp_RS_SINR_Range(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3660
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3661
0
                                                            0U, 127U, NULL, false);
3662
3663
0
  return offset;
3664
0
}
3665
3666
3667
3668
static unsigned
3669
158
dissect_ulp_TrackingAreaCodeNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3670
158
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3671
158
                                     24, 24, false, NULL, 0, NULL, NULL);
3672
3673
158
  return offset;
3674
158
}
3675
3676
3677
static const per_sequence_t NeighbourInformation5G_sequence[] = {
3678
  { &hf_ulp_trackingAreaCode_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TrackingAreaCodeNR },
3679
  { NULL, 0, 0, NULL }
3680
};
3681
3682
static unsigned
3683
0
dissect_ulp_NeighbourInformation5G(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3684
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3685
0
                                   ett_ulp_NeighbourInformation5G, NeighbourInformation5G_sequence);
3686
3687
0
  return offset;
3688
0
}
3689
3690
3691
static const per_sequence_t T_measResult_sequence[] = {
3692
  { &hf_ulp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRP_Range },
3693
  { &hf_ulp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range },
3694
  { &hf_ulp_earfcn          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
3695
  { &hf_ulp_earfcn_ext      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_65536_262143 },
3696
  { &hf_ulp_rsrpResult_ext  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RSRP_Range_Ext },
3697
  { &hf_ulp_rsrqResult_ext  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range_Ext },
3698
  { &hf_ulp_rs_sinrResult   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RS_SINR_Range },
3699
  { &hf_ulp_neighbourInformation5G, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_NeighbourInformation5G },
3700
  { NULL, 0, 0, NULL }
3701
};
3702
3703
static unsigned
3704
15
dissect_ulp_T_measResult(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3705
15
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3706
15
                                   ett_ulp_T_measResult, T_measResult_sequence);
3707
3708
15
  return offset;
3709
15
}
3710
3711
3712
static const per_sequence_t MeasResultEUTRA_sequence[] = {
3713
  { &hf_ulp_physCellId      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellId },
3714
  { &hf_ulp_cgi_Info        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_T_cgi_Info },
3715
  { &hf_ulp_measResult      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_measResult },
3716
  { NULL, 0, 0, NULL }
3717
};
3718
3719
static unsigned
3720
15
dissect_ulp_MeasResultEUTRA(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3721
15
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3722
15
                                   ett_ulp_MeasResultEUTRA, MeasResultEUTRA_sequence);
3723
3724
15
  return offset;
3725
15
}
3726
3727
3728
static const per_sequence_t MeasResultListEUTRA_sequence_of[1] = {
3729
  { &hf_ulp_MeasResultListEUTRA_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MeasResultEUTRA },
3730
};
3731
3732
static unsigned
3733
4
dissect_ulp_MeasResultListEUTRA(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3734
4
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3735
4
                                                  ett_ulp_MeasResultListEUTRA, MeasResultListEUTRA_sequence_of,
3736
4
                                                  1, maxCellReport, false);
3737
3738
4
  return offset;
3739
4
}
3740
3741
3742
static const per_sequence_t ServingInformation5G_sequence[] = {
3743
  { &hf_ulp_trackingAreaCode_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCodeNR },
3744
  { NULL, 0, 0, NULL }
3745
};
3746
3747
static unsigned
3748
0
dissect_ulp_ServingInformation5G(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3749
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3750
0
                                   ett_ulp_ServingInformation5G, ServingInformation5G_sequence);
3751
3752
0
  return offset;
3753
0
}
3754
3755
3756
static const per_sequence_t LteCellInformation_sequence[] = {
3757
  { &hf_ulp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellGlobalIdEUTRA },
3758
  { &hf_ulp_physCellId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellId },
3759
  { &hf_ulp_trackingAreaCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCode },
3760
  { &hf_ulp_rsrpResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRP_Range },
3761
  { &hf_ulp_rsrqResult      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range },
3762
  { &hf_ulp_ta_02           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1282 },
3763
  { &hf_ulp_measResultListEUTRA, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MeasResultListEUTRA },
3764
  { &hf_ulp_earfcn          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
3765
  { &hf_ulp_earfcn_ext      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_65536_262143 },
3766
  { &hf_ulp_rsrpResult_ext  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RSRP_Range_Ext },
3767
  { &hf_ulp_rsrqResult_ext  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RSRQ_Range_Ext },
3768
  { &hf_ulp_rs_sinrResult   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RS_SINR_Range },
3769
  { &hf_ulp_servingInformation5G, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_ServingInformation5G },
3770
  { NULL, 0, 0, NULL }
3771
};
3772
3773
static unsigned
3774
7
dissect_ulp_LteCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3775
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3776
7
                                   ett_ulp_LteCellInformation, LteCellInformation_sequence);
3777
3778
7
  return offset;
3779
7
}
3780
3781
3782
3783
static unsigned
3784
1
dissect_ulp_T_apMACAddress_02(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3785
1
  tvbuff_t *val_tvb;
3786
3787
1
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
3788
1
                                     48, 48, false, NULL, 0, &val_tvb, NULL);
3789
3790
1
  if (val_tvb) {
3791
1
    proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
3792
1
  }
3793
3794
3795
1
  return offset;
3796
1
}
3797
3798
3799
3800
static unsigned
3801
1
dissect_ulp_INTEGER_M127_128(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3802
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3803
1
                                                            -127, 128U, NULL, false);
3804
3805
1
  return offset;
3806
1
}
3807
3808
3809
static const value_string ulp_T_apDeviceType_vals[] = {
3810
  {   0, "wlan802-11a" },
3811
  {   1, "wlan802-11b" },
3812
  {   2, "wlan802-11g" },
3813
  {   3, "wlan802-11n" },
3814
  {   4, "wlan802-11ac" },
3815
  {   5, "wlan802-11ad" },
3816
  { 0, NULL }
3817
};
3818
3819
3820
static unsigned
3821
0
dissect_ulp_T_apDeviceType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3822
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3823
0
                                     3, NULL, true, 3, NULL);
3824
3825
0
  return offset;
3826
0
}
3827
3828
3829
3830
static unsigned
3831
0
dissect_ulp_INTEGER_0_256(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3832
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3833
0
                                                            0U, 256U, NULL, false);
3834
3835
0
  return offset;
3836
0
}
3837
3838
3839
3840
static unsigned
3841
0
dissect_ulp_INTEGER_0_16777216(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3842
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3843
0
                                                            0U, 16777216U, NULL, false);
3844
3845
0
  return offset;
3846
0
}
3847
3848
3849
static const value_string ulp_RTDUnits_vals[] = {
3850
  {   0, "microseconds" },
3851
  {   1, "hundredsofnanoseconds" },
3852
  {   2, "tensofnanoseconds" },
3853
  {   3, "nanoseconds" },
3854
  {   4, "tenthsofnanoseconds" },
3855
  { 0, NULL }
3856
};
3857
3858
3859
static unsigned
3860
0
dissect_ulp_RTDUnits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3861
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3862
0
                                     5, NULL, true, 0, NULL);
3863
3864
0
  return offset;
3865
0
}
3866
3867
3868
static const per_sequence_t RTD_sequence[] = {
3869
  { &hf_ulp_rTDValue        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_16777216 },
3870
  { &hf_ulp_rTDUnits        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RTDUnits },
3871
  { &hf_ulp_rTDAccuracy     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
3872
  { NULL, 0, 0, NULL }
3873
};
3874
3875
static unsigned
3876
0
dissect_ulp_RTD(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3877
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3878
0
                                   ett_ulp_RTD, RTD_sequence);
3879
3880
0
  return offset;
3881
0
}
3882
3883
3884
static const value_string ulp_LocationEncodingDescriptor_vals[] = {
3885
  {   0, "lci" },
3886
  {   1, "asn1" },
3887
  { 0, NULL }
3888
};
3889
3890
3891
static unsigned
3892
0
dissect_ulp_LocationEncodingDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3893
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3894
0
                                     2, NULL, true, 0, NULL);
3895
3896
0
  return offset;
3897
0
}
3898
3899
3900
3901
static unsigned
3902
9
dissect_ulp_INTEGER_0_4294967295(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3903
9
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3904
9
                                                            0U, 4294967295U, NULL, false);
3905
3906
9
  return offset;
3907
9
}
3908
3909
3910
3911
static unsigned
3912
0
dissect_ulp_OCTET_STRING_SIZE_1_128(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3913
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3914
0
                                       1, 128, false, NULL);
3915
3916
0
  return offset;
3917
0
}
3918
3919
3920
static const per_sequence_t LocationData_sequence[] = {
3921
  { &hf_ulp_locationAccuracy, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_4294967295 },
3922
  { &hf_ulp_locationValue   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_1_128 },
3923
  { NULL, 0, 0, NULL }
3924
};
3925
3926
static unsigned
3927
0
dissect_ulp_LocationData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3928
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3929
0
                                   ett_ulp_LocationData, LocationData_sequence);
3930
3931
0
  return offset;
3932
0
}
3933
3934
3935
static const per_sequence_t ReportedLocation_sequence[] = {
3936
  { &hf_ulp_locationEncodingDescriptor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationEncodingDescriptor },
3937
  { &hf_ulp_locationData    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationData },
3938
  { NULL, 0, 0, NULL }
3939
};
3940
3941
static unsigned
3942
0
dissect_ulp_ReportedLocation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3943
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3944
0
                                   ett_ulp_ReportedLocation, ReportedLocation_sequence);
3945
3946
0
  return offset;
3947
0
}
3948
3949
3950
3951
static unsigned
3952
0
dissect_ulp_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3953
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3954
0
                                     4, 4, false, NULL, 0, NULL, NULL);
3955
3956
0
  return offset;
3957
0
}
3958
3959
3960
3961
static unsigned
3962
0
dissect_ulp_BIT_STRING_SIZE_30(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3963
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3964
0
                                     30, 30, false, NULL, 0, NULL, NULL);
3965
3966
0
  return offset;
3967
0
}
3968
3969
3970
3971
static unsigned
3972
0
dissect_ulp_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3973
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
3974
0
                                     8, 8, false, NULL, 0, NULL, NULL);
3975
3976
0
  return offset;
3977
0
}
3978
3979
3980
static const per_sequence_t LocationDataLCI_sequence[] = {
3981
  { &hf_ulp_latitudeResolution, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_6 },
3982
  { &hf_ulp_latitude_bit_string, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_34 },
3983
  { &hf_ulp_longitudeResolution, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_6 },
3984
  { &hf_ulp_longitude_bit_string, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_34 },
3985
  { &hf_ulp_altitudeType    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_4 },
3986
  { &hf_ulp_altitudeResolution, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_6 },
3987
  { &hf_ulp_altitude_bit_string, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_30 },
3988
  { &hf_ulp_datum           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_8 },
3989
  { NULL, 0, 0, NULL }
3990
};
3991
3992
static unsigned
3993
0
dissect_ulp_LocationDataLCI(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3994
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3995
0
                                   ett_ulp_LocationDataLCI, LocationDataLCI_sequence);
3996
3997
0
  return offset;
3998
0
}
3999
4000
4001
static const per_sequence_t LciLocData_sequence[] = {
4002
  { &hf_ulp_locationDataLCI , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_LocationDataLCI },
4003
  { NULL, 0, 0, NULL }
4004
};
4005
4006
static unsigned
4007
1
dissect_ulp_LciLocData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4008
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4009
1
                                   ett_ulp_LciLocData, LciLocData_sequence);
4010
4011
1
  return offset;
4012
1
}
4013
4014
4015
static const value_string ulp_RepLocation_vals[] = {
4016
  {   0, "lciLocData" },
4017
  { 0, NULL }
4018
};
4019
4020
static const per_choice_t RepLocation_choice[] = {
4021
  {   0, &hf_ulp_lciLocData      , ASN1_EXTENSION_ROOT    , dissect_ulp_LciLocData },
4022
  { 0, NULL, 0, NULL }
4023
};
4024
4025
static unsigned
4026
1
dissect_ulp_RepLocation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4027
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4028
1
                                 ett_ulp_RepLocation, RepLocation_choice,
4029
1
                                 NULL);
4030
4031
1
  return offset;
4032
1
}
4033
4034
4035
4036
static unsigned
4037
1
dissect_ulp_INTEGER_0_1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4038
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4039
1
                                                            0U, 1U, NULL, false);
4040
4041
1
  return offset;
4042
1
}
4043
4044
4045
4046
static unsigned
4047
0
dissect_ulp_T_apSSID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4048
0
  tvbuff_t *ssid_tvb;
4049
4050
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
4051
0
                                       1, 32, false, &ssid_tvb);
4052
4053
0
  if (ssid_tvb) {
4054
0
    actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA);
4055
0
  }
4056
4057
4058
0
  return offset;
4059
0
}
4060
4061
4062
static const value_string ulp_T_apPHYType_vals[] = {
4063
  {   0, "unknown" },
4064
  {   1, "any" },
4065
  {   2, "fhss" },
4066
  {   3, "dsss" },
4067
  {   4, "irbaseband" },
4068
  {   5, "ofdm" },
4069
  {   6, "hrdsss" },
4070
  {   7, "erp" },
4071
  {   8, "ht" },
4072
  {   9, "ihv" },
4073
  { 0, NULL }
4074
};
4075
4076
4077
static unsigned
4078
0
dissect_ulp_T_apPHYType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4079
0
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4080
0
                                     10, NULL, true, 0, NULL);
4081
4082
0
  return offset;
4083
0
}
4084
4085
4086
4087
static unsigned
4088
0
dissect_ulp_T_setMACAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4089
0
  tvbuff_t *val_tvb;
4090
4091
0
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4092
0
                                     48, 48, false, NULL, 0, &val_tvb, NULL);
4093
4094
0
  if (val_tvb) {
4095
0
    proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
4096
0
  }
4097
4098
4099
0
  return offset;
4100
0
}
4101
4102
4103
static const per_sequence_t WlanAPInformation_sequence[] = {
4104
  { &hf_ulp_apMACAddress_02 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_apMACAddress_02 },
4105
  { &hf_ulp_apTransmitPower , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4106
  { &hf_ulp_apAntennaGain   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4107
  { &hf_ulp_apSignaltoNoise , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4108
  { &hf_ulp_apDeviceType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_apDeviceType },
4109
  { &hf_ulp_apSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4110
  { &hf_ulp_apChannelFrequency, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_256 },
4111
  { &hf_ulp_apRoundTripDelay, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RTD },
4112
  { &hf_ulp_setTransmitPower, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4113
  { &hf_ulp_setAntennaGain  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4114
  { &hf_ulp_setSignaltoNoise, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4115
  { &hf_ulp_setSignalStrength, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M127_128 },
4116
  { &hf_ulp_apReportedLocation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportedLocation },
4117
  { &hf_ulp_apRepLocation   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_RepLocation },
4118
  { &hf_ulp_apSignalStrengthDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1 },
4119
  { &hf_ulp_apSignaltoNoiseDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1 },
4120
  { &hf_ulp_setSignalStrengthDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1 },
4121
  { &hf_ulp_setSignaltoNoiseDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1 },
4122
  { &hf_ulp_operatingClass  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
4123
  { &hf_ulp_apSSID          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_T_apSSID },
4124
  { &hf_ulp_apPHYType       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_T_apPHYType },
4125
  { &hf_ulp_setMACAddress   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_T_setMACAddress },
4126
  { NULL, 0, 0, NULL }
4127
};
4128
4129
static unsigned
4130
1
dissect_ulp_WlanAPInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4131
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4132
1
                                   ett_ulp_WlanAPInformation, WlanAPInformation_sequence);
4133
4134
1
  return offset;
4135
1
}
4136
4137
4138
4139
static unsigned
4140
25
dissect_ulp_BIT_STRING_SIZE_24(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4141
25
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4142
25
                                     24, 24, false, NULL, 0, NULL, NULL);
4143
4144
25
  return offset;
4145
25
}
4146
4147
4148
static const per_sequence_t WimaxBsID_sequence[] = {
4149
  { &hf_ulp_bsID_MSB        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_24 },
4150
  { &hf_ulp_bsID_LSB        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_24 },
4151
  { NULL, 0, 0, NULL }
4152
};
4153
4154
static unsigned
4155
6
dissect_ulp_WimaxBsID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4156
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4157
6
                                   ett_ulp_WimaxBsID, WimaxBsID_sequence);
4158
4159
6
  return offset;
4160
6
}
4161
4162
4163
static const per_sequence_t WimaxRTD_sequence[] = {
4164
  { &hf_ulp_rtd             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
4165
  { &hf_ulp_rTDstd          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1023 },
4166
  { NULL, 0, 0, NULL }
4167
};
4168
4169
static unsigned
4170
1
dissect_ulp_WimaxRTD(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4171
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4172
1
                                   ett_ulp_WimaxRTD, WimaxRTD_sequence);
4173
4174
1
  return offset;
4175
1
}
4176
4177
4178
4179
static unsigned
4180
1
dissect_ulp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4181
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4182
1
                                                            -32768, 32767U, NULL, false);
4183
4184
1
  return offset;
4185
1
}
4186
4187
4188
static const per_sequence_t WimaxNMR_sequence[] = {
4189
  { &hf_ulp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxBsID },
4190
  { &hf_ulp_relDelay        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_M32768_32767 },
4191
  { &hf_ulp_relDelaystd     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_1023 },
4192
  { &hf_ulp_rssi            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
4193
  { &hf_ulp_rSSIstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_63 },
4194
  { &hf_ulp_bSTxPower       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
4195
  { &hf_ulp_cinr            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_255 },
4196
  { &hf_ulp_cINRstd         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_63 },
4197
  { &hf_ulp_bSLocation      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportedLocation },
4198
  { NULL, 0, 0, NULL }
4199
};
4200
4201
static unsigned
4202
3
dissect_ulp_WimaxNMR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4203
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4204
3
                                   ett_ulp_WimaxNMR, WimaxNMR_sequence);
4205
4206
3
  return offset;
4207
3
}
4208
4209
4210
static const per_sequence_t WimaxNMRList_sequence_of[1] = {
4211
  { &hf_ulp_WimaxNMRList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxNMR },
4212
};
4213
4214
static unsigned
4215
1
dissect_ulp_WimaxNMRList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4216
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4217
1
                                                  ett_ulp_WimaxNMRList, WimaxNMRList_sequence_of,
4218
1
                                                  1, maxWimaxBSMeas, false);
4219
4220
1
  return offset;
4221
1
}
4222
4223
4224
static const per_sequence_t WimaxBSInformation_sequence[] = {
4225
  { &hf_ulp_wimaxBsID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_WimaxBsID },
4226
  { &hf_ulp_wimaxRTD        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_WimaxRTD },
4227
  { &hf_ulp_wimaxNMRList    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_WimaxNMRList },
4228
  { NULL, 0, 0, NULL }
4229
};
4230
4231
static unsigned
4232
3
dissect_ulp_WimaxBSInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4233
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4234
3
                                   ett_ulp_WimaxBSInformation, WimaxBSInformation_sequence);
4235
4236
3
  return offset;
4237
3
}
4238
4239
4240
4241
static unsigned
4242
165
dissect_ulp_PhysCellIdNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4243
165
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4244
165
                                                            0U, 1007U, NULL, false);
4245
4246
165
  return offset;
4247
165
}
4248
4249
4250
4251
static unsigned
4252
164
dissect_ulp_ARFCN_NR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4253
164
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4254
164
                                                            0U, 3279165U, NULL, false);
4255
4256
164
  return offset;
4257
164
}
4258
4259
4260
4261
static unsigned
4262
162
dissect_ulp_CellIdentityNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4263
162
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
4264
162
                                     36, 36, false, NULL, 0, NULL, NULL);
4265
4266
162
  return offset;
4267
162
}
4268
4269
4270
static const per_sequence_t CellGlobalIdNR_sequence[] = {
4271
  { &hf_ulp_plmn_Identity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PLMN_Identity },
4272
  { &hf_ulp_cellIdentityNR  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellIdentityNR },
4273
  { NULL, 0, 0, NULL }
4274
};
4275
4276
static unsigned
4277
163
dissect_ulp_CellGlobalIdNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4278
163
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4279
163
                                   ett_ulp_CellGlobalIdNR, CellGlobalIdNR_sequence);
4280
4281
163
  return offset;
4282
163
}
4283
4284
4285
static const per_sequence_t NR_Measurements_sequence[] = {
4286
  { &hf_ulp_rsrp_Range      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4287
  { &hf_ulp_rsrq_Range      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4288
  { &hf_ulp_sinr_Range      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
4289
  { NULL, 0, 0, NULL }
4290
};
4291
4292
static unsigned
4293
37
dissect_ulp_NR_Measurements(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4294
37
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4295
37
                                   ett_ulp_NR_Measurements, NR_Measurements_sequence);
4296
4297
37
  return offset;
4298
37
}
4299
4300
4301
4302
static unsigned
4303
20
dissect_ulp_INTEGER_0_3846(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4304
20
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4305
20
                                                            0U, 3846U, NULL, false);
4306
4307
20
  return offset;
4308
20
}
4309
4310
4311
static const per_sequence_t ServCellNR_sequence[] = {
4312
  { &hf_ulp_physCellId_01   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellIdNR },
4313
  { &hf_ulp_arfcn_NR        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ARFCN_NR },
4314
  { &hf_ulp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellGlobalIdNR },
4315
  { &hf_ulp_trackingAreaCode_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_TrackingAreaCodeNR },
4316
  { &hf_ulp_ssb_Measurements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NR_Measurements },
4317
  { &hf_ulp_csi_rs_Measurements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NR_Measurements },
4318
  { &hf_ulp_ta_03           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_3846 },
4319
  { NULL, 0, 0, NULL }
4320
};
4321
4322
static unsigned
4323
165
dissect_ulp_ServCellNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4324
165
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4325
165
                                   ett_ulp_ServCellNR, ServCellNR_sequence);
4326
4327
165
  return offset;
4328
165
}
4329
4330
4331
static const per_sequence_t ServingCellInformationNR_sequence_of[1] = {
4332
  { &hf_ulp_ServingCellInformationNR_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ServCellNR },
4333
};
4334
4335
static unsigned
4336
18
dissect_ulp_ServingCellInformationNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4337
18
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4338
18
                                                  ett_ulp_ServingCellInformationNR, ServingCellInformationNR_sequence_of,
4339
18
                                                  1, maxNRServingCell, false);
4340
4341
18
  return offset;
4342
18
}
4343
4344
4345
static const per_sequence_t MeasResultNR_sequence[] = {
4346
  { &hf_ulp_physCellId_01   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PhysCellIdNR },
4347
  { &hf_ulp_arfcn_NR        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ARFCN_NR },
4348
  { &hf_ulp_cellGlobalId_01 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_CellGlobalIdNR },
4349
  { &hf_ulp_trackingAreaCode_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TrackingAreaCodeNR },
4350
  { &hf_ulp_ssb_Measurements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NR_Measurements },
4351
  { &hf_ulp_csi_rs_Measurements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NR_Measurements },
4352
  { NULL, 0, 0, NULL }
4353
};
4354
4355
static unsigned
4356
1
dissect_ulp_MeasResultNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4357
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4358
1
                                   ett_ulp_MeasResultNR, MeasResultNR_sequence);
4359
4360
1
  return offset;
4361
1
}
4362
4363
4364
static const per_sequence_t MeasResultListNR_sequence_of[1] = {
4365
  { &hf_ulp_MeasResultListNR_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_MeasResultNR },
4366
};
4367
4368
static unsigned
4369
1
dissect_ulp_MeasResultListNR(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4370
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4371
1
                                                  ett_ulp_MeasResultListNR, MeasResultListNR_sequence_of,
4372
1
                                                  1, maxCellReportNR, false);
4373
4374
1
  return offset;
4375
1
}
4376
4377
4378
static const per_sequence_t NRCellInformation_sequence[] = {
4379
  { &hf_ulp_servingCellInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ServingCellInformationNR },
4380
  { &hf_ulp_measuredResultsListNR, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MeasResultListNR },
4381
  { NULL, 0, 0, NULL }
4382
};
4383
4384
static unsigned
4385
18
dissect_ulp_NRCellInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4386
18
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4387
18
                                   ett_ulp_NRCellInformation, NRCellInformation_sequence);
4388
4389
18
  return offset;
4390
18
}
4391
4392
4393
static const value_string ulp_Ver2_CellInfo_extension_vals[] = {
4394
  {   0, "hrpdCell" },
4395
  {   1, "umbCell" },
4396
  {   2, "lteCell" },
4397
  {   3, "wlanAP" },
4398
  {   4, "wimaxBS" },
4399
  {   5, "nrCell" },
4400
  { 0, NULL }
4401
};
4402
4403
static const per_choice_t Ver2_CellInfo_extension_choice[] = {
4404
  {   0, &hf_ulp_hrpdCell        , ASN1_EXTENSION_ROOT    , dissect_ulp_HrpdCellInformation },
4405
  {   1, &hf_ulp_umbCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_UmbCellInformation },
4406
  {   2, &hf_ulp_lteCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_LteCellInformation },
4407
  {   3, &hf_ulp_wlanAP          , ASN1_EXTENSION_ROOT    , dissect_ulp_WlanAPInformation },
4408
  {   4, &hf_ulp_wimaxBS         , ASN1_EXTENSION_ROOT    , dissect_ulp_WimaxBSInformation },
4409
  {   5, &hf_ulp_nrCell          , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_NRCellInformation },
4410
  { 0, NULL, 0, NULL }
4411
};
4412
4413
static unsigned
4414
48
dissect_ulp_Ver2_CellInfo_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4415
48
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4416
48
                                 ett_ulp_Ver2_CellInfo_extension, Ver2_CellInfo_extension_choice,
4417
48
                                 NULL);
4418
4419
48
  return offset;
4420
48
}
4421
4422
4423
static const value_string ulp_CellInfo_vals[] = {
4424
  {   0, "gsmCell" },
4425
  {   1, "wcdmaCell" },
4426
  {   2, "cdmaCell" },
4427
  {   3, "ver2-CellInfo-extension" },
4428
  { 0, NULL }
4429
};
4430
4431
static const per_choice_t CellInfo_choice[] = {
4432
  {   0, &hf_ulp_gsmCell         , ASN1_EXTENSION_ROOT    , dissect_ulp_GsmCellInformation },
4433
  {   1, &hf_ulp_wcdmaCell       , ASN1_EXTENSION_ROOT    , dissect_ulp_WcdmaCellInformation },
4434
  {   2, &hf_ulp_cdmaCell        , ASN1_EXTENSION_ROOT    , dissect_ulp_CdmaCellInformation },
4435
  {   3, &hf_ulp_ver2_CellInfo_extension, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_CellInfo_extension },
4436
  { 0, NULL, 0, NULL }
4437
};
4438
4439
static unsigned
4440
553
dissect_ulp_CellInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4441
553
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4442
553
                                 ett_ulp_CellInfo, CellInfo_choice,
4443
553
                                 NULL);
4444
4445
553
  return offset;
4446
553
}
4447
4448
4449
static const value_string ulp_Status_vals[] = {
4450
  {   0, "stale" },
4451
  {   1, "current" },
4452
  {   2, "unknown" },
4453
  { 0, NULL }
4454
};
4455
4456
4457
static unsigned
4458
475
dissect_ulp_Status(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4459
475
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4460
475
                                     3, NULL, true, 0, NULL);
4461
4462
475
  return offset;
4463
475
}
4464
4465
4466
static const per_sequence_t LocationId_sequence[] = {
4467
  { &hf_ulp_cellInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_CellInfo },
4468
  { &hf_ulp_status          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Status },
4469
  { NULL, 0, 0, NULL }
4470
};
4471
4472
static unsigned
4473
553
dissect_ulp_LocationId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4474
553
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4475
553
                                   ett_ulp_LocationId, LocationId_sequence);
4476
4477
553
  return offset;
4478
553
}
4479
4480
4481
4482
static unsigned
4483
21
dissect_ulp_RelativeTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4484
21
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4485
21
                                                            0U, 65535U, NULL, false);
4486
4487
21
  return offset;
4488
21
}
4489
4490
4491
static const per_sequence_t LocationIdData_sequence[] = {
4492
  { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
4493
  { &hf_ulp_relativetimestamp, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RelativeTime },
4494
  { &hf_ulp_servingFlag     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
4495
  { NULL, 0, 0, NULL }
4496
};
4497
4498
static unsigned
4499
439
dissect_ulp_LocationIdData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4500
439
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4501
439
                                   ett_ulp_LocationIdData, LocationIdData_sequence);
4502
4503
439
  return offset;
4504
439
}
4505
4506
4507
static const per_sequence_t MultipleLocationIds_sequence_of[1] = {
4508
  { &hf_ulp_MultipleLocationIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_LocationIdData },
4509
};
4510
4511
static unsigned
4512
111
dissect_ulp_MultipleLocationIds(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4513
111
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4514
111
                                                  ett_ulp_MultipleLocationIds, MultipleLocationIds_sequence_of,
4515
111
                                                  1, maxLidSize, false);
4516
4517
111
  return offset;
4518
111
}
4519
4520
4521
4522
static unsigned
4523
48
dissect_ulp_T_msisdn_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4524
48
  tvbuff_t *msisdn_tvb;
4525
48
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4526
48
                                       8, 8, false, &msisdn_tvb);
4527
4528
48
  if (msisdn_tvb) {
4529
48
    proto_tree *subtree;
4530
4531
48
    subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
4532
48
    dissect_e164_msisdn(msisdn_tvb, actx->pinfo, subtree, 0, 8, E164_ENC_BCD);
4533
48
  }
4534
4535
4536
48
  return offset;
4537
48
}
4538
4539
4540
4541
static unsigned
4542
14
dissect_ulp_T_sip_uri(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4543
14
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
4544
14
                                                      1, 255, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
4545
14
                                                      NULL);
4546
4547
14
  return offset;
4548
14
}
4549
4550
4551
4552
static unsigned
4553
17
dissect_ulp_T_ims_public_identity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4554
17
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
4555
17
                                                      1, 255, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
4556
17
                                                      NULL);
4557
4558
17
  return offset;
4559
17
}
4560
4561
4562
4563
static unsigned
4564
15
dissect_ulp_T_mdn_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4565
15
  tvbuff_t *mdn_tvb;
4566
15
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4567
15
                                       8, 8, false, &mdn_tvb);
4568
4569
15
  if (mdn_tvb) {
4570
15
    proto_tree *subtree;
4571
4572
15
    subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
4573
15
    proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_str(actx->pinfo->pool, mdn_tvb, 0, 8, NULL, false));
4574
15
  }
4575
4576
4577
15
  return offset;
4578
15
}
4579
4580
4581
4582
static unsigned
4583
24
dissect_ulp_T_uri(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4584
24
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
4585
24
                                                      1, 255, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%#", 69,
4586
24
                                                      NULL);
4587
4588
4589
24
  return offset;
4590
24
}
4591
4592
4593
static const value_string ulp_ThirdPartyID_vals[] = {
4594
  {   0, "logicalName" },
4595
  {   1, "msisdn" },
4596
  {   2, "emailaddr" },
4597
  {   3, "sip-uri" },
4598
  {   4, "ims-public-identity" },
4599
  {   5, "min" },
4600
  {   6, "mdn" },
4601
  {   7, "uri" },
4602
  { 0, NULL }
4603
};
4604
4605
static const per_choice_t ThirdPartyID_choice[] = {
4606
  {   0, &hf_ulp_logicalName     , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
4607
  {   1, &hf_ulp_msisdn_01       , ASN1_EXTENSION_ROOT    , dissect_ulp_T_msisdn_01 },
4608
  {   2, &hf_ulp_emailaddr       , ASN1_EXTENSION_ROOT    , dissect_ulp_IA5String_SIZE_1_1000 },
4609
  {   3, &hf_ulp_sip_uri         , ASN1_EXTENSION_ROOT    , dissect_ulp_T_sip_uri },
4610
  {   4, &hf_ulp_ims_public_identity, ASN1_EXTENSION_ROOT    , dissect_ulp_T_ims_public_identity },
4611
  {   5, &hf_ulp_min_bit_string  , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_34 },
4612
  {   6, &hf_ulp_mdn_01          , ASN1_EXTENSION_ROOT    , dissect_ulp_T_mdn_01 },
4613
  {   7, &hf_ulp_uri             , ASN1_EXTENSION_ROOT    , dissect_ulp_T_uri },
4614
  { 0, NULL, 0, NULL }
4615
};
4616
4617
static unsigned
4618
415
dissect_ulp_ThirdPartyID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4619
415
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4620
415
                                 ett_ulp_ThirdPartyID, ThirdPartyID_choice,
4621
415
                                 NULL);
4622
4623
415
  return offset;
4624
415
}
4625
4626
4627
static const per_sequence_t ThirdParty_sequence_of[1] = {
4628
  { &hf_ulp_ThirdParty_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ThirdPartyID },
4629
};
4630
4631
static unsigned
4632
42
dissect_ulp_ThirdParty(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4633
42
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4634
42
                                                  ett_ulp_ThirdParty, ThirdParty_sequence_of,
4635
42
                                                  1, 64, false);
4636
4637
42
  return offset;
4638
42
}
4639
4640
4641
4642
static unsigned
4643
20
dissect_ulp_IA5String_SIZE_1_24(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4644
20
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
4645
20
                                          1, 24, false,
4646
20
                                          NULL);
4647
4648
20
  return offset;
4649
20
}
4650
4651
4652
4653
static unsigned
4654
20
dissect_ulp_IA5String_SIZE_1_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4655
20
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
4656
20
                                          1, 32, false,
4657
20
                                          NULL);
4658
4659
20
  return offset;
4660
20
}
4661
4662
4663
4664
static unsigned
4665
12
dissect_ulp_IA5String_SIZE_1_8(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4666
12
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
4667
12
                                          1, 8, false,
4668
12
                                          NULL);
4669
4670
12
  return offset;
4671
12
}
4672
4673
4674
static const per_sequence_t ApplicationID_sequence[] = {
4675
  { &hf_ulp_appProvider     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_IA5String_SIZE_1_24 },
4676
  { &hf_ulp_appName         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_IA5String_SIZE_1_32 },
4677
  { &hf_ulp_appVersion      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_IA5String_SIZE_1_8 },
4678
  { NULL, 0, 0, NULL }
4679
};
4680
4681
static unsigned
4682
20
dissect_ulp_ApplicationID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4683
20
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4684
20
                                   ett_ulp_ApplicationID, ApplicationID_sequence);
4685
4686
20
  return offset;
4687
20
}
4688
4689
4690
4691
static unsigned
4692
195
dissect_ulp_UTCTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4693
195
  offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
4694
195
                                        NO_BOUND, NO_BOUND, false,
4695
195
                                        NULL);
4696
4697
195
  return offset;
4698
195
}
4699
4700
4701
static const value_string ulp_T_latitudeSign_vals[] = {
4702
  {   0, "north" },
4703
  {   1, "south" },
4704
  { 0, NULL }
4705
};
4706
4707
4708
static unsigned
4709
117
dissect_ulp_T_latitudeSign(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4710
117
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4711
117
                                     2, NULL, false, 0, NULL);
4712
4713
117
  return offset;
4714
117
}
4715
4716
4717
4718
static unsigned
4719
285
dissect_ulp_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4720
285
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4721
285
                                                            -8388608, 8388607U, NULL, false);
4722
4723
285
  return offset;
4724
285
}
4725
4726
4727
4728
static unsigned
4729
23
dissect_ulp_INTEGER_0_180(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4730
23
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4731
23
                                                            0U, 180U, NULL, false);
4732
4733
23
  return offset;
4734
23
}
4735
4736
4737
static const per_sequence_t T_uncertainty_sequence[] = {
4738
  { &hf_ulp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
4739
  { &hf_ulp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
4740
  { &hf_ulp_orientationMajorAxis, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_180 },
4741
  { NULL, 0, 0, NULL }
4742
};
4743
4744
static unsigned
4745
24
dissect_ulp_T_uncertainty(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4746
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4747
24
                                   ett_ulp_T_uncertainty, T_uncertainty_sequence);
4748
4749
24
  return offset;
4750
24
}
4751
4752
4753
4754
static unsigned
4755
19
dissect_ulp_INTEGER_0_100(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4756
19
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4757
19
                                                            0U, 100U, NULL, false);
4758
4759
19
  return offset;
4760
19
}
4761
4762
4763
static const value_string ulp_T_altitudeDirection_vals[] = {
4764
  {   0, "height" },
4765
  {   1, "depth" },
4766
  { 0, NULL }
4767
};
4768
4769
4770
static unsigned
4771
17
dissect_ulp_T_altitudeDirection(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4772
17
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4773
17
                                     2, NULL, false, 0, NULL);
4774
4775
17
  return offset;
4776
17
}
4777
4778
4779
static const per_sequence_t AltitudeInfo_sequence[] = {
4780
  { &hf_ulp_altitudeDirection, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_altitudeDirection },
4781
  { &hf_ulp_altitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_32767 },
4782
  { &hf_ulp_altUncertainty  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_127 },
4783
  { NULL, 0, 0, NULL }
4784
};
4785
4786
static unsigned
4787
17
dissect_ulp_AltitudeInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4788
17
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4789
17
                                   ett_ulp_AltitudeInfo, AltitudeInfo_sequence);
4790
4791
17
  return offset;
4792
17
}
4793
4794
4795
static const per_sequence_t PositionEstimate_sequence[] = {
4796
  { &hf_ulp_latitudeSign    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign },
4797
  { &hf_ulp_latitude        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
4798
  { &hf_ulp_longitude       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
4799
  { &hf_ulp_uncertainty     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_uncertainty },
4800
  { &hf_ulp_confidence      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_100 },
4801
  { &hf_ulp_altitudeInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_AltitudeInfo },
4802
  { NULL, 0, 0, NULL }
4803
};
4804
4805
static unsigned
4806
117
dissect_ulp_PositionEstimate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4807
117
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4808
117
                                   ett_ulp_PositionEstimate, PositionEstimate_sequence);
4809
4810
117
  return offset;
4811
117
}
4812
4813
4814
4815
static unsigned
4816
31
dissect_ulp_T_bearing(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4817
31
  tvbuff_t *val_tvb;
4818
4819
31
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4820
31
                                     9, 9, false, NULL, 0, &val_tvb, NULL);
4821
4822
31
  if (val_tvb) {
4823
31
    actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
4824
31
  }
4825
4826
4827
31
  return offset;
4828
31
}
4829
4830
4831
4832
static unsigned
4833
31
dissect_ulp_T_horspeed(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4834
31
  tvbuff_t *val_tvb;
4835
4836
31
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4837
31
                                     16, 16, false, NULL, 0, &val_tvb, NULL);
4838
4839
31
  if (val_tvb) {
4840
31
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
4841
31
  }
4842
4843
4844
31
  return offset;
4845
31
}
4846
4847
4848
static const per_sequence_t Horvel_sequence[] = {
4849
  { &hf_ulp_bearing         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_bearing },
4850
  { &hf_ulp_horspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_horspeed },
4851
  { NULL, 0, 0, NULL }
4852
};
4853
4854
static unsigned
4855
31
dissect_ulp_Horvel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4856
31
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4857
31
                                   ett_ulp_Horvel, Horvel_sequence);
4858
4859
31
  return offset;
4860
31
}
4861
4862
4863
4864
static unsigned
4865
3
dissect_ulp_T_verdirect(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4866
3
  tvbuff_t *val_tvb;
4867
4868
3
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4869
3
                                     1, 1, false, NULL, 0, &val_tvb, NULL);
4870
4871
3
  if (val_tvb) {
4872
3
    actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 1, ENC_NA);
4873
3
  }
4874
4875
4876
3
  return offset;
4877
3
}
4878
4879
4880
4881
static unsigned
4882
3
dissect_ulp_T_bearing_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4883
3
  tvbuff_t *val_tvb;
4884
4885
3
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4886
3
                                     9, 9, false, NULL, 0, &val_tvb, NULL);
4887
4888
3
  if (val_tvb) {
4889
2
    actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
4890
2
  }
4891
4892
4893
3
  return offset;
4894
3
}
4895
4896
4897
4898
static unsigned
4899
2
dissect_ulp_T_horspeed_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4900
2
  tvbuff_t *val_tvb;
4901
4902
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4903
2
                                     16, 16, false, NULL, 0, &val_tvb, NULL);
4904
4905
2
  if (val_tvb) {
4906
2
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
4907
2
  }
4908
4909
4910
2
  return offset;
4911
2
}
4912
4913
4914
4915
static unsigned
4916
2
dissect_ulp_T_verspeed(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4917
2
  tvbuff_t *val_tvb;
4918
4919
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4920
2
                                     8, 8, false, NULL, 0, &val_tvb, NULL);
4921
4922
2
  if (val_tvb) {
4923
2
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
4924
2
  }
4925
4926
4927
2
  return offset;
4928
2
}
4929
4930
4931
static const per_sequence_t Horandvervel_sequence[] = {
4932
  { &hf_ulp_verdirect       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_verdirect },
4933
  { &hf_ulp_bearing_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_bearing_01 },
4934
  { &hf_ulp_horspeed_01     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_horspeed_01 },
4935
  { &hf_ulp_verspeed        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_verspeed },
4936
  { NULL, 0, 0, NULL }
4937
};
4938
4939
static unsigned
4940
3
dissect_ulp_Horandvervel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4941
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4942
3
                                   ett_ulp_Horandvervel, Horandvervel_sequence);
4943
4944
3
  return offset;
4945
3
}
4946
4947
4948
4949
static unsigned
4950
2
dissect_ulp_T_bearing_02(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4951
2
  tvbuff_t *val_tvb;
4952
4953
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4954
2
                                     9, 9, false, NULL, 0, &val_tvb, NULL);
4955
4956
2
  if (val_tvb) {
4957
2
    actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
4958
2
  }
4959
4960
4961
2
  return offset;
4962
2
}
4963
4964
4965
4966
static unsigned
4967
2
dissect_ulp_T_horspeed_02(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4968
2
  tvbuff_t *val_tvb;
4969
4970
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4971
2
                                     16, 16, false, NULL, 0, &val_tvb, NULL);
4972
4973
2
  if (val_tvb) {
4974
2
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
4975
2
  }
4976
4977
4978
2
  return offset;
4979
2
}
4980
4981
4982
4983
static unsigned
4984
2
dissect_ulp_T_uncertspeed(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4985
2
  tvbuff_t *val_tvb;
4986
4987
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4988
2
                                     8, 8, false, NULL, 0, &val_tvb, NULL);
4989
4990
2
  if (val_tvb) {
4991
2
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
4992
2
  }
4993
4994
4995
2
  return offset;
4996
2
}
4997
4998
4999
static const per_sequence_t Horveluncert_sequence[] = {
5000
  { &hf_ulp_bearing_02      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_bearing_02 },
5001
  { &hf_ulp_horspeed_02     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_horspeed_02 },
5002
  { &hf_ulp_uncertspeed     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_uncertspeed },
5003
  { NULL, 0, 0, NULL }
5004
};
5005
5006
static unsigned
5007
2
dissect_ulp_Horveluncert(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5008
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5009
2
                                   ett_ulp_Horveluncert, Horveluncert_sequence);
5010
5011
2
  return offset;
5012
2
}
5013
5014
5015
5016
static unsigned
5017
6
dissect_ulp_T_verdirect_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5018
6
  tvbuff_t *val_tvb;
5019
5020
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5021
6
                                     1, 1, false, NULL, 0, &val_tvb, NULL);
5022
5023
6
  if (val_tvb) {
5024
6
    actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 1, ENC_NA);
5025
6
  }
5026
5027
5028
6
  return offset;
5029
6
}
5030
5031
5032
5033
static unsigned
5034
6
dissect_ulp_T_bearing_03(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5035
6
  tvbuff_t *val_tvb;
5036
5037
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5038
6
                                     9, 9, false, NULL, 0, &val_tvb, NULL);
5039
5040
6
  if (val_tvb) {
5041
6
    actx->created_item = proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 9, ENC_BIG_ENDIAN);
5042
6
  }
5043
5044
5045
6
  return offset;
5046
6
}
5047
5048
5049
5050
static unsigned
5051
6
dissect_ulp_T_horspeed_03(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5052
6
  tvbuff_t *val_tvb;
5053
5054
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5055
6
                                     16, 16, false, NULL, 0, &val_tvb, NULL);
5056
5057
6
  if (val_tvb) {
5058
6
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5059
6
  }
5060
5061
5062
6
  return offset;
5063
6
}
5064
5065
5066
5067
static unsigned
5068
6
dissect_ulp_T_verspeed_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5069
6
  tvbuff_t *val_tvb;
5070
5071
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5072
6
                                     8, 8, false, NULL, 0, &val_tvb, NULL);
5073
5074
6
  if (val_tvb) {
5075
6
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
5076
6
  }
5077
5078
5079
6
  return offset;
5080
6
}
5081
5082
5083
5084
static unsigned
5085
6
dissect_ulp_T_horuncertspeed(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5086
6
  tvbuff_t *val_tvb;
5087
5088
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5089
6
                                     8, 8, false, NULL, 0, &val_tvb, NULL);
5090
5091
6
  if (val_tvb) {
5092
6
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
5093
6
  }
5094
5095
5096
6
  return offset;
5097
6
}
5098
5099
5100
5101
static unsigned
5102
6
dissect_ulp_T_veruncertspeed(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5103
6
  tvbuff_t *val_tvb;
5104
5105
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5106
6
                                     8, 8, false, NULL, 0, &val_tvb, NULL);
5107
5108
6
  if (val_tvb) {
5109
6
    actx->created_item = proto_tree_add_item(tree, hf_index, val_tvb, 0, 1, ENC_BIG_ENDIAN);
5110
6
  }
5111
5112
5113
6
  return offset;
5114
6
}
5115
5116
5117
static const per_sequence_t Horandveruncert_sequence[] = {
5118
  { &hf_ulp_verdirect_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_verdirect_01 },
5119
  { &hf_ulp_bearing_03      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_bearing_03 },
5120
  { &hf_ulp_horspeed_03     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_horspeed_03 },
5121
  { &hf_ulp_verspeed_01     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_verspeed_01 },
5122
  { &hf_ulp_horuncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_horuncertspeed },
5123
  { &hf_ulp_veruncertspeed  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_veruncertspeed },
5124
  { NULL, 0, 0, NULL }
5125
};
5126
5127
static unsigned
5128
6
dissect_ulp_Horandveruncert(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5129
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5130
6
                                   ett_ulp_Horandveruncert, Horandveruncert_sequence);
5131
5132
6
  return offset;
5133
6
}
5134
5135
5136
static const value_string ulp_Velocity_vals[] = {
5137
  {   0, "horvel" },
5138
  {   1, "horandvervel" },
5139
  {   2, "horveluncert" },
5140
  {   3, "horandveruncert" },
5141
  { 0, NULL }
5142
};
5143
5144
static const per_choice_t Velocity_choice[] = {
5145
  {   0, &hf_ulp_horvel          , ASN1_EXTENSION_ROOT    , dissect_ulp_Horvel },
5146
  {   1, &hf_ulp_horandvervel    , ASN1_EXTENSION_ROOT    , dissect_ulp_Horandvervel },
5147
  {   2, &hf_ulp_horveluncert    , ASN1_EXTENSION_ROOT    , dissect_ulp_Horveluncert },
5148
  {   3, &hf_ulp_horandveruncert , ASN1_EXTENSION_ROOT    , dissect_ulp_Horandveruncert },
5149
  { 0, NULL, 0, NULL }
5150
};
5151
5152
static unsigned
5153
45
dissect_ulp_Velocity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5154
45
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5155
45
                                 ett_ulp_Velocity, Velocity_choice,
5156
45
                                 NULL);
5157
5158
45
  return offset;
5159
45
}
5160
5161
5162
static const per_sequence_t Position_sequence[] = {
5163
  { &hf_ulp_timestamp       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UTCTime },
5164
  { &hf_ulp_positionEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PositionEstimate },
5165
  { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
5166
  { NULL, 0, 0, NULL }
5167
};
5168
5169
static unsigned
5170
128
dissect_ulp_Position(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5171
128
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5172
128
                                   ett_ulp_Position, Position_sequence);
5173
5174
128
  return offset;
5175
128
}
5176
5177
5178
static const per_sequence_t Ver2_SUPL_START_extension_sequence[] = {
5179
  { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
5180
  { &hf_ulp_thirdParty      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ThirdParty },
5181
  { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
5182
  { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5183
  { NULL, 0, 0, NULL }
5184
};
5185
5186
static unsigned
5187
3
dissect_ulp_Ver2_SUPL_START_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5188
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5189
3
                                   ett_ulp_Ver2_SUPL_START_extension, Ver2_SUPL_START_extension_sequence);
5190
5191
3
  return offset;
5192
3
}
5193
5194
5195
static const per_sequence_t SUPLSTART_sequence[] = {
5196
  { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
5197
  { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
5198
  { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
5199
  { &hf_ulp_ver2_SUPL_START_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_START_extension },
5200
  { NULL, 0, 0, NULL }
5201
};
5202
5203
static unsigned
5204
29
dissect_ulp_SUPLSTART(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5205
29
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5206
29
                                   ett_ulp_SUPLSTART, SUPLSTART_sequence);
5207
5208
29
  return offset;
5209
29
}
5210
5211
5212
5213
static unsigned
5214
4
dissect_ulp_BIT_STRING_SIZE_256(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5215
4
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5216
4
                                     256, 256, false, NULL, 0, NULL, NULL);
5217
5218
4
  return offset;
5219
4
}
5220
5221
5222
static const value_string ulp_SETAuthKey_vals[] = {
5223
  {   0, "shortKey" },
5224
  {   1, "longKey" },
5225
  { 0, NULL }
5226
};
5227
5228
static const per_choice_t SETAuthKey_choice[] = {
5229
  {   0, &hf_ulp_shortKey        , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_128 },
5230
  {   1, &hf_ulp_longKey         , ASN1_EXTENSION_ROOT    , dissect_ulp_BIT_STRING_SIZE_256 },
5231
  { 0, NULL, 0, NULL }
5232
};
5233
5234
static unsigned
5235
7
dissect_ulp_SETAuthKey(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5236
7
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5237
7
                                 ett_ulp_SETAuthKey, SETAuthKey_choice,
5238
7
                                 NULL);
5239
5240
7
  return offset;
5241
7
}
5242
5243
5244
5245
static unsigned
5246
5
dissect_ulp_KeyIdentity4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5247
5
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5248
5
                                     128, 128, false, NULL, 0, NULL, NULL);
5249
5250
5
  return offset;
5251
5
}
5252
5253
5254
5255
static unsigned
5256
6
dissect_ulp_SPCSETKey(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5257
6
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5258
6
                                     128, 128, false, NULL, 0, NULL, NULL);
5259
5260
6
  return offset;
5261
6
}
5262
5263
5264
static const per_sequence_t SPCTID_sequence[] = {
5265
  { &hf_ulp_rand            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
5266
  { &hf_ulp_slpFQDN         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_FQDN },
5267
  { NULL, 0, 0, NULL }
5268
};
5269
5270
static unsigned
5271
2
dissect_ulp_SPCTID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5272
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5273
2
                                   ett_ulp_SPCTID, SPCTID_sequence);
5274
5275
2
  return offset;
5276
2
}
5277
5278
5279
5280
static unsigned
5281
5
dissect_ulp_SPCSETKeylifetime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5282
5
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5283
5
                                                            1U, 24U, NULL, false);
5284
5285
5
  return offset;
5286
5
}
5287
5288
5289
static const per_sequence_t Ver2_SUPL_RESPONSE_extension_sequence[] = {
5290
  { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
5291
  { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKey },
5292
  { &hf_ulp_spctid          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCTID },
5293
  { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
5294
  { &hf_ulp_initialApproximateposition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
5295
  { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
5296
  { NULL, 0, 0, NULL }
5297
};
5298
5299
static unsigned
5300
2
dissect_ulp_Ver2_SUPL_RESPONSE_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5301
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5302
2
                                   ett_ulp_Ver2_SUPL_RESPONSE_extension, Ver2_SUPL_RESPONSE_extension_sequence);
5303
5304
2
  return offset;
5305
2
}
5306
5307
5308
static const per_sequence_t SUPLRESPONSE_sequence[] = {
5309
  { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
5310
  { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
5311
  { &hf_ulp_sETAuthKey      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETAuthKey },
5312
  { &hf_ulp_keyIdentity4    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_KeyIdentity4 },
5313
  { &hf_ulp_ver2_SUPL_RESPONSE_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_RESPONSE_extension },
5314
  { NULL, 0, 0, NULL }
5315
};
5316
5317
static unsigned
5318
14
dissect_ulp_SUPLRESPONSE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5319
14
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5320
14
                                   ett_ulp_SUPLRESPONSE, SUPLRESPONSE_sequence);
5321
5322
14
  return offset;
5323
14
}
5324
5325
5326
5327
static unsigned
5328
14
dissect_ulp_INTEGER_0_167(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5329
14
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5330
14
                                                            0U, 167U, NULL, false);
5331
5332
14
  return offset;
5333
14
}
5334
5335
5336
5337
static unsigned
5338
13
dissect_ulp_INTEGER_0_31(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5339
13
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5340
13
                                                            0U, 31U, NULL, false);
5341
5342
13
  return offset;
5343
13
}
5344
5345
5346
5347
static unsigned
5348
13
dissect_ulp_INTEGER_0_10(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5349
13
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5350
13
                                                            0U, 10U, NULL, false);
5351
5352
13
  return offset;
5353
13
}
5354
5355
5356
static const per_sequence_t SatelliteInfoElement_sequence[] = {
5357
  { &hf_ulp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
5358
  { &hf_ulp_iode            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
5359
  { NULL, 0, 0, NULL }
5360
};
5361
5362
static unsigned
5363
1
dissect_ulp_SatelliteInfoElement(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5364
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5365
1
                                   ett_ulp_SatelliteInfoElement, SatelliteInfoElement_sequence);
5366
5367
1
  return offset;
5368
1
}
5369
5370
5371
static const per_sequence_t SatelliteInfo_sequence_of[1] = {
5372
  { &hf_ulp_SatelliteInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SatelliteInfoElement },
5373
};
5374
5375
static unsigned
5376
1
dissect_ulp_SatelliteInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5377
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5378
1
                                                  ett_ulp_SatelliteInfo, SatelliteInfo_sequence_of,
5379
1
                                                  1, 31, false);
5380
5381
1
  return offset;
5382
1
}
5383
5384
5385
static const per_sequence_t NavigationModel_sequence[] = {
5386
  { &hf_ulp_gpsWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
5387
  { &hf_ulp_gpsToe          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
5388
  { &hf_ulp_nsat            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_31 },
5389
  { &hf_ulp_toeLimit        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_10 },
5390
  { &hf_ulp_satInfo         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SatelliteInfo },
5391
  { NULL, 0, 0, NULL }
5392
};
5393
5394
static unsigned
5395
13
dissect_ulp_NavigationModel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5396
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5397
13
                                   ett_ulp_NavigationModel, NavigationModel_sequence);
5398
5399
13
  return offset;
5400
13
}
5401
5402
5403
static const per_sequence_t GanssRequestedCommonAssistanceDataList_sequence[] = {
5404
  { &hf_ulp_ganssReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5405
  { &hf_ulp_ganssIonosphericModel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5406
  { &hf_ulp_ganssAdditionalIonosphericModelForDataID00, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5407
  { &hf_ulp_ganssAdditionalIonosphericModelForDataID11, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5408
  { &hf_ulp_ganssEarthOrientationParameters, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5409
  { &hf_ulp_ganssAdditionalIonosphericModelForDataID01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
5410
  { NULL, 0, 0, NULL }
5411
};
5412
5413
static unsigned
5414
1
dissect_ulp_GanssRequestedCommonAssistanceDataList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5415
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5416
1
                                   ett_ulp_GanssRequestedCommonAssistanceDataList, GanssRequestedCommonAssistanceDataList_sequence);
5417
5418
1
  return offset;
5419
1
}
5420
5421
5422
5423
static unsigned
5424
109
dissect_ulp_T_ganssId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5425
109
  uint32_t val;
5426
109
  ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
5427
5428
109
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5429
109
                                                            0U, 15U, &val, false);
5430
5431
109
  ulp_priv->ganss_req_gen_data_ganss_id = (uint8_t) val;
5432
5433
5434
109
  return offset;
5435
109
}
5436
5437
5438
5439
static unsigned
5440
27
dissect_ulp_T_ganssSBASid_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5441
27
  tvbuff_t *val_tvb;
5442
5443
27
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5444
27
                                     3, 3, false, NULL, 0, &val_tvb, NULL);
5445
5446
27
  if (val_tvb) {
5447
27
    proto_tree_add_bits_item(tree, hf_index, val_tvb, 0, 3, ENC_NA);
5448
27
  }
5449
5450
5451
27
  return offset;
5452
27
}
5453
5454
5455
5456
static unsigned
5457
30
dissect_ulp_DGANSS_Sig_Id_Req(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5458
30
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5459
30
                                     8, 8, false, NULL, 0, NULL, NULL);
5460
5461
30
  return offset;
5462
30
}
5463
5464
5465
5466
static unsigned
5467
39
dissect_ulp_T_ganssWeek(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5468
39
  ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
5469
5470
39
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5471
39
                                                            0U, 4095U, NULL, false);
5472
5473
39
  if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
5474
    /* Not GLONASS */
5475
38
    proto_item_append_text(actx->created_item, "wk");
5476
38
  } else {
5477
1
    proto_item_append_text(actx->created_item, "d");
5478
1
  }
5479
5480
5481
39
  return offset;
5482
39
}
5483
5484
5485
5486
static unsigned
5487
39
dissect_ulp_T_ganssToe(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5488
39
  uint32_t val;
5489
39
  ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
5490
5491
39
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5492
39
                                                            0U, 167U, &val, false);
5493
5494
5495
5496
39
  if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
5497
    /* Not GLONASS */
5498
38
    proto_item_append_text(actx->created_item, "h");
5499
38
  } else {
5500
1
    proto_item_set_text(actx->created_item, "%umin (%u)", 15*val, val);
5501
1
  }
5502
5503
39
  return offset;
5504
39
}
5505
5506
5507
5508
static unsigned
5509
39
dissect_ulp_T_t_toeLimit(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5510
39
  uint32_t val;
5511
39
  ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
5512
5513
39
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5514
39
                                                            0U, 15U, &val, false);
5515
5516
5517
5518
39
  if (ulp_priv->ganss_req_gen_data_ganss_id != 4) {
5519
    /* Not GLONASS */
5520
38
    proto_item_append_text(actx->created_item, "h");
5521
38
  } else {
5522
1
    proto_item_set_text(actx->created_item, "%umin (%u)", 30*val, val);
5523
1
  }
5524
5525
39
  return offset;
5526
39
}
5527
5528
5529
static const per_sequence_t SatellitesListRelatedData_sequence[] = {
5530
  { &hf_ulp_satId           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
5531
  { &hf_ulp_iod             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
5532
  { NULL, 0, 0, NULL }
5533
};
5534
5535
static unsigned
5536
97
dissect_ulp_SatellitesListRelatedData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5537
97
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5538
97
                                   ett_ulp_SatellitesListRelatedData, SatellitesListRelatedData_sequence);
5539
5540
97
  return offset;
5541
97
}
5542
5543
5544
static const per_sequence_t SatellitesListRelatedDataList_sequence_of[1] = {
5545
  { &hf_ulp_SatellitesListRelatedDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SatellitesListRelatedData },
5546
};
5547
5548
static unsigned
5549
14
dissect_ulp_SatellitesListRelatedDataList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5550
14
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5551
14
                                                  ett_ulp_SatellitesListRelatedDataList, SatellitesListRelatedDataList_sequence_of,
5552
14
                                                  0, maxGANSSSat, false);
5553
5554
14
  return offset;
5555
14
}
5556
5557
5558
static const per_sequence_t GanssNavigationModelData_sequence[] = {
5559
  { &hf_ulp_ganssWeek       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_ganssWeek },
5560
  { &hf_ulp_ganssToe        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_ganssToe },
5561
  { &hf_ulp_t_toeLimit      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_t_toeLimit },
5562
  { &hf_ulp_satellitesListRelatedDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SatellitesListRelatedDataList },
5563
  { NULL, 0, 0, NULL }
5564
};
5565
5566
static unsigned
5567
39
dissect_ulp_GanssNavigationModelData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5568
39
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5569
39
                                   ett_ulp_GanssNavigationModelData, GanssNavigationModelData_sequence);
5570
5571
39
  return offset;
5572
39
}
5573
5574
5575
5576
static unsigned
5577
33
dissect_ulp_T_ganssTimeModels(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5578
33
  tvbuff_t *val_tvb;
5579
33
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5580
33
                                     16, 16, false, NULL, 0, &val_tvb, NULL);
5581
5582
33
  if (val_tvb) {
5583
32
    proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ulp_ganssTimeModels);
5584
32
    proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit0, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5585
32
    proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit1, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5586
32
    proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit2, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5587
32
    proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit3, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5588
32
    proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_bit4, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5589
32
    proto_tree_add_item(subtree, hf_ulp_ganssTimeModels_spare, val_tvb, 0, 2, ENC_BIG_ENDIAN);
5590
32
  }
5591
5592
5593
33
  return offset;
5594
33
}
5595
5596
5597
5598
static unsigned
5599
25
dissect_ulp_INTEGER_0_59(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5600
25
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5601
25
                                                            0U, 59U, NULL, false);
5602
5603
25
  return offset;
5604
25
}
5605
5606
5607
static const per_sequence_t T_ganssDataBitSatList_sequence_of[1] = {
5608
  { &hf_ulp_ganssDataBitSatList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_63 },
5609
};
5610
5611
static unsigned
5612
7
dissect_ulp_T_ganssDataBitSatList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5613
7
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5614
7
                                                  ett_ulp_T_ganssDataBitSatList, T_ganssDataBitSatList_sequence_of,
5615
7
                                                  1, maxGANSSSat, false);
5616
5617
7
  return offset;
5618
7
}
5619
5620
5621
static const per_sequence_t ReqDataBitAssistanceList_sequence[] = {
5622
  { &hf_ulp_gnssSignals     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
5623
  { &hf_ulp_ganssDataBitInterval, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
5624
  { &hf_ulp_ganssDataBitSatList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_ganssDataBitSatList },
5625
  { NULL, 0, 0, NULL }
5626
};
5627
5628
static unsigned
5629
24
dissect_ulp_ReqDataBitAssistanceList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5630
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5631
24
                                   ett_ulp_ReqDataBitAssistanceList, ReqDataBitAssistanceList_sequence);
5632
5633
24
  return offset;
5634
24
}
5635
5636
5637
static const per_sequence_t GanssDataBits_sequence[] = {
5638
  { &hf_ulp_ganssTODmin     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_59 },
5639
  { &hf_ulp_reqDataBitAssistanceList, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_ReqDataBitAssistanceList },
5640
  { NULL, 0, 0, NULL }
5641
};
5642
5643
static unsigned
5644
25
dissect_ulp_GanssDataBits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5645
25
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5646
25
                                   ett_ulp_GanssDataBits, GanssDataBits_sequence);
5647
5648
25
  return offset;
5649
25
}
5650
5651
5652
static const per_sequence_t GanssAdditionalDataChoices_sequence[] = {
5653
  { &hf_ulp_orbitModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
5654
  { &hf_ulp_clockModelID    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
5655
  { &hf_ulp_utcModelID      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
5656
  { &hf_ulp_almanacModelID  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_7 },
5657
  { NULL, 0, 0, NULL }
5658
};
5659
5660
static unsigned
5661
28
dissect_ulp_GanssAdditionalDataChoices(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5662
28
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5663
28
                                   ett_ulp_GanssAdditionalDataChoices, GanssAdditionalDataChoices_sequence);
5664
5665
28
  return offset;
5666
28
}
5667
5668
5669
5670
static unsigned
5671
24
dissect_ulp_INTEGER_1_256(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5672
24
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5673
24
                                                            1U, 256U, NULL, false);
5674
5675
24
  return offset;
5676
24
}
5677
5678
5679
static const per_sequence_t ExtendedEphemeris_sequence[] = {
5680
  { &hf_ulp_validity        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_256 },
5681
  { NULL, 0, 0, NULL }
5682
};
5683
5684
static unsigned
5685
24
dissect_ulp_ExtendedEphemeris(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5686
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5687
24
                                   ett_ulp_ExtendedEphemeris, ExtendedEphemeris_sequence);
5688
5689
24
  return offset;
5690
24
}
5691
5692
5693
5694
static unsigned
5695
20
dissect_ulp_INTEGER_0_23(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5696
20
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5697
20
                                                            0U, 23U, NULL, false);
5698
5699
20
  return offset;
5700
20
}
5701
5702
5703
static const per_sequence_t GANSSextEphTime_sequence[] = {
5704
  { &hf_ulp_gANSSday        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8191 },
5705
  { &hf_ulp_gANSSTODhour    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_23 },
5706
  { NULL, 0, 0, NULL }
5707
};
5708
5709
static unsigned
5710
20
dissect_ulp_GANSSextEphTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5711
20
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5712
20
                                   ett_ulp_GANSSextEphTime, GANSSextEphTime_sequence);
5713
5714
20
  return offset;
5715
20
}
5716
5717
5718
static const per_sequence_t GanssExtendedEphCheck_sequence[] = {
5719
  { &hf_ulp_beginTime_01    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSextEphTime },
5720
  { &hf_ulp_endTime_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSextEphTime },
5721
  { NULL, 0, 0, NULL }
5722
};
5723
5724
static unsigned
5725
10
dissect_ulp_GanssExtendedEphCheck(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5726
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5727
10
                                   ett_ulp_GanssExtendedEphCheck, GanssExtendedEphCheck_sequence);
5728
5729
10
  return offset;
5730
10
}
5731
5732
5733
5734
static unsigned
5735
3
dissect_ulp_BDS_Sig_Id_Req(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5736
3
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5737
3
                                     8, 8, false, NULL, 0, NULL, NULL);
5738
5739
3
  return offset;
5740
3
}
5741
5742
5743
static const per_sequence_t GanssReqGenericData_sequence[] = {
5744
  { &hf_ulp_ganssId_01      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_ganssId },
5745
  { &hf_ulp_ganssSBASid_01  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_ganssSBASid_01 },
5746
  { &hf_ulp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5747
  { &hf_ulp_ganssDifferentialCorrection, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_DGANSS_Sig_Id_Req },
5748
  { &hf_ulp_ganssAlmanac    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5749
  { &hf_ulp_ganssNavigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssNavigationModelData },
5750
  { &hf_ulp_ganssTimeModels , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_ganssTimeModels },
5751
  { &hf_ulp_ganssReferenceMeasurementInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5752
  { &hf_ulp_ganssDataBits   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssDataBits },
5753
  { &hf_ulp_ganssUTCModel   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5754
  { &hf_ulp_ganssAdditionalDataChoices, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssAdditionalDataChoices },
5755
  { &hf_ulp_ganssAuxiliaryInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5756
  { &hf_ulp_ganssExtendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphemeris },
5757
  { &hf_ulp_ganssExtendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssExtendedEphCheck },
5758
  { &hf_ulp_bds_DifferentialCorrection, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BDS_Sig_Id_Req },
5759
  { &hf_ulp_bds_GridModelReq, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
5760
  { NULL, 0, 0, NULL }
5761
};
5762
5763
static unsigned
5764
109
dissect_ulp_GanssReqGenericData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5765
109
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5766
109
                                   ett_ulp_GanssReqGenericData, GanssReqGenericData_sequence);
5767
5768
109
  return offset;
5769
109
}
5770
5771
5772
static const per_sequence_t GanssRequestedGenericAssistanceDataList_sequence_of[1] = {
5773
  { &hf_ulp_GanssRequestedGenericAssistanceDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GanssReqGenericData },
5774
};
5775
5776
static unsigned
5777
23
dissect_ulp_GanssRequestedGenericAssistanceDataList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5778
23
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5779
23
                                                  ett_ulp_GanssRequestedGenericAssistanceDataList, GanssRequestedGenericAssistanceDataList_sequence_of,
5780
23
                                                  1, maxGANSS, false);
5781
5782
23
  return offset;
5783
23
}
5784
5785
5786
static const per_sequence_t GPSTime_sequence[] = {
5787
  { &hf_ulp_gPSWeek         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
5788
  { &hf_ulp_gPSTOWhour      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_167 },
5789
  { NULL, 0, 0, NULL }
5790
};
5791
5792
static unsigned
5793
1
dissect_ulp_GPSTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5794
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5795
1
                                   ett_ulp_GPSTime, GPSTime_sequence);
5796
5797
1
  return offset;
5798
1
}
5799
5800
5801
static const per_sequence_t ExtendedEphCheck_sequence[] = {
5802
  { &hf_ulp_beginTime       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GPSTime },
5803
  { &hf_ulp_endTime         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GPSTime },
5804
  { NULL, 0, 0, NULL }
5805
};
5806
5807
static unsigned
5808
1
dissect_ulp_ExtendedEphCheck(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5809
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5810
1
                                   ett_ulp_ExtendedEphCheck, ExtendedEphCheck_sequence);
5811
5812
1
  return offset;
5813
1
}
5814
5815
5816
static const per_sequence_t Ver2_RequestedAssistData_extension_sequence[] = {
5817
  { &hf_ulp_ganssRequestedCommonAssistanceDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssRequestedCommonAssistanceDataList },
5818
  { &hf_ulp_ganssRequestedGenericAssistanceDataList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GanssRequestedGenericAssistanceDataList },
5819
  { &hf_ulp_extendedEphemeris, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphemeris },
5820
  { &hf_ulp_extendedEphemerisCheck, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ExtendedEphCheck },
5821
  { NULL, 0, 0, NULL }
5822
};
5823
5824
static unsigned
5825
24
dissect_ulp_Ver2_RequestedAssistData_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5826
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5827
24
                                   ett_ulp_Ver2_RequestedAssistData_extension, Ver2_RequestedAssistData_extension_sequence);
5828
5829
24
  return offset;
5830
24
}
5831
5832
5833
static const per_sequence_t RequestedAssistData_sequence[] = {
5834
  { &hf_ulp_almanacRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5835
  { &hf_ulp_utcModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5836
  { &hf_ulp_ionosphericModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5837
  { &hf_ulp_dgpsCorrectionsRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5838
  { &hf_ulp_referenceLocationRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5839
  { &hf_ulp_referenceTimeRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5840
  { &hf_ulp_acquisitionAssistanceRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5841
  { &hf_ulp_realTimeIntegrityRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5842
  { &hf_ulp_navigationModelRequested, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
5843
  { &hf_ulp_navigationModelData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NavigationModel },
5844
  { &hf_ulp_ver2_RequestedAssistData_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_RequestedAssistData_extension },
5845
  { NULL, 0, 0, NULL }
5846
};
5847
5848
static unsigned
5849
38
dissect_ulp_RequestedAssistData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5850
38
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5851
38
                                   ett_ulp_RequestedAssistData, RequestedAssistData_sequence);
5852
5853
38
  return offset;
5854
38
}
5855
5856
5857
5858
static unsigned
5859
11
dissect_ulp_OCTET_STRING_SIZE_1_8192(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5860
11
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5861
11
                                       1, 8192, false, NULL);
5862
5863
11
  return offset;
5864
11
}
5865
5866
5867
5868
static unsigned
5869
46
dissect_ulp_T_rrlpPayload(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5870
46
 tvbuff_t *rrlp_tvb;
5871
5872
46
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5873
46
                                       1, 8192, false, &rrlp_tvb);
5874
5875
5876
46
  if (rrlp_tvb && rrlp_handle) {
5877
44
    call_dissector(rrlp_handle, rrlp_tvb, actx->pinfo, tree);
5878
44
  }
5879
5880
5881
46
  return offset;
5882
46
}
5883
5884
5885
5886
static unsigned
5887
0
dissect_ulp_T_lPPPayload_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5888
0
 tvbuff_t *lpp_tvb;
5889
5890
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5891
0
                                       1, 60000, false, &lpp_tvb);
5892
5893
5894
0
  if (lpp_tvb && lpp_handle) {
5895
0
    call_dissector(lpp_handle, lpp_tvb, actx->pinfo, tree);
5896
0
  }
5897
5898
5899
0
  return offset;
5900
0
}
5901
5902
5903
static const per_sequence_t T_lPPPayload_sequence_of[1] = {
5904
  { &hf_ulp_lPPPayload_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_lPPPayload_item },
5905
};
5906
5907
static unsigned
5908
0
dissect_ulp_T_lPPPayload(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5909
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5910
0
                                                  ett_ulp_T_lPPPayload, T_lPPPayload_sequence_of,
5911
0
                                                  1, 3, false);
5912
5913
0
  return offset;
5914
0
}
5915
5916
5917
5918
static unsigned
5919
0
dissect_ulp_OCTET_STRING_SIZE_1_60000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5920
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5921
0
                                       1, 60000, false, NULL);
5922
5923
0
  return offset;
5924
0
}
5925
5926
5927
static const per_sequence_t T_tia801Payload_sequence_of[1] = {
5928
  { &hf_ulp_tia801Payload_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_OCTET_STRING_SIZE_1_60000 },
5929
};
5930
5931
static unsigned
5932
0
dissect_ulp_T_tia801Payload(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5933
0
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5934
0
                                                  ett_ulp_T_tia801Payload, T_tia801Payload_sequence_of,
5935
0
                                                  1, 3, false);
5936
5937
0
  return offset;
5938
0
}
5939
5940
5941
static const per_sequence_t Ver2_PosPayLoad_extension_sequence[] = {
5942
  { &hf_ulp_lPPPayload      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_lPPPayload },
5943
  { &hf_ulp_tia801Payload   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_tia801Payload },
5944
  { NULL, 0, 0, NULL }
5945
};
5946
5947
static unsigned
5948
0
dissect_ulp_Ver2_PosPayLoad_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5949
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5950
0
                                   ett_ulp_Ver2_PosPayLoad_extension, Ver2_PosPayLoad_extension_sequence);
5951
5952
0
  return offset;
5953
0
}
5954
5955
5956
static const value_string ulp_PosPayLoad_vals[] = {
5957
  {   0, "tia801payload" },
5958
  {   1, "rrcPayload" },
5959
  {   2, "rrlpPayload" },
5960
  {   3, "ver2-PosPayLoad-extension" },
5961
  { 0, NULL }
5962
};
5963
5964
static const per_choice_t PosPayLoad_choice[] = {
5965
  {   0, &hf_ulp_tia801payload   , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
5966
  {   1, &hf_ulp_rrcPayload      , ASN1_EXTENSION_ROOT    , dissect_ulp_OCTET_STRING_SIZE_1_8192 },
5967
  {   2, &hf_ulp_rrlpPayload     , ASN1_EXTENSION_ROOT    , dissect_ulp_T_rrlpPayload },
5968
  {   3, &hf_ulp_ver2_PosPayLoad_extension, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_PosPayLoad_extension },
5969
  { 0, NULL, 0, NULL }
5970
};
5971
5972
static unsigned
5973
62
dissect_ulp_PosPayLoad(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5974
62
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5975
62
                                 ett_ulp_PosPayLoad, PosPayLoad_choice,
5976
62
                                 NULL);
5977
5978
62
  return offset;
5979
62
}
5980
5981
5982
static const per_sequence_t T_utran_GPSTimingOfCell_sequence[] = {
5983
  { &hf_ulp_ms_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_1023 },
5984
  { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
5985
  { NULL, 0, 0, NULL }
5986
};
5987
5988
static unsigned
5989
3
dissect_ulp_T_utran_GPSTimingOfCell(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5990
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5991
3
                                   ett_ulp_T_utran_GPSTimingOfCell, T_utran_GPSTimingOfCell_sequence);
5992
5993
3
  return offset;
5994
3
}
5995
5996
5997
static const per_sequence_t T_fdd_01_sequence[] = {
5998
  { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
5999
  { NULL, 0, 0, NULL }
6000
};
6001
6002
static unsigned
6003
2
dissect_ulp_T_fdd_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6004
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6005
2
                                   ett_ulp_T_fdd_01, T_fdd_01_sequence);
6006
6007
2
  return offset;
6008
2
}
6009
6010
6011
static const per_sequence_t T_tdd_01_sequence[] = {
6012
  { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
6013
  { NULL, 0, 0, NULL }
6014
};
6015
6016
static unsigned
6017
1
dissect_ulp_T_tdd_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6018
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6019
1
                                   ett_ulp_T_tdd_01, T_tdd_01_sequence);
6020
6021
1
  return offset;
6022
1
}
6023
6024
6025
static const value_string ulp_T_modeSpecificInfo_01_vals[] = {
6026
  {   0, "fdd" },
6027
  {   1, "tdd" },
6028
  { 0, NULL }
6029
};
6030
6031
static const per_choice_t T_modeSpecificInfo_01_choice[] = {
6032
  {   0, &hf_ulp_fdd_01          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_01 },
6033
  {   1, &hf_ulp_tdd_01          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_01 },
6034
  { 0, NULL, 0, NULL }
6035
};
6036
6037
static unsigned
6038
3
dissect_ulp_T_modeSpecificInfo_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6039
3
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6040
3
                                 ett_ulp_T_modeSpecificInfo_01, T_modeSpecificInfo_01_choice,
6041
3
                                 NULL);
6042
6043
3
  return offset;
6044
3
}
6045
6046
6047
6048
static unsigned
6049
15
dissect_ulp_INTEGER_0_4095(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6050
15
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6051
15
                                                            0U, 4095U, NULL, false);
6052
6053
15
  return offset;
6054
15
}
6055
6056
6057
static const per_sequence_t UTRAN_GPSReferenceTime_sequence[] = {
6058
  { &hf_ulp_utran_GPSTimingOfCell, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_utran_GPSTimingOfCell },
6059
  { &hf_ulp_modeSpecificInfo_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_01 },
6060
  { &hf_ulp_sfn             , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
6061
  { NULL, 0, 0, NULL }
6062
};
6063
6064
static unsigned
6065
3
dissect_ulp_UTRAN_GPSReferenceTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6066
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6067
3
                                   ett_ulp_UTRAN_GPSReferenceTime, UTRAN_GPSReferenceTime_sequence);
6068
6069
3
  return offset;
6070
3
}
6071
6072
6073
static const value_string ulp_UTRANGPSDriftRate_vals[] = {
6074
  {   0, "utran-GPSDrift0" },
6075
  {   1, "utran-GPSDrift1" },
6076
  {   2, "utran-GPSDrift2" },
6077
  {   3, "utran-GPSDrift5" },
6078
  {   4, "utran-GPSDrift10" },
6079
  {   5, "utran-GPSDrift15" },
6080
  {   6, "utran-GPSDrift25" },
6081
  {   7, "utran-GPSDrift50" },
6082
  {   8, "utran-GPSDrift-1" },
6083
  {   9, "utran-GPSDrift-2" },
6084
  {  10, "utran-GPSDrift-5" },
6085
  {  11, "utran-GPSDrift-10" },
6086
  {  12, "utran-GPSDrift-15" },
6087
  {  13, "utran-GPSDrift-25" },
6088
  {  14, "utran-GPSDrift-50" },
6089
  { 0, NULL }
6090
};
6091
6092
6093
static unsigned
6094
1
dissect_ulp_UTRANGPSDriftRate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6095
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6096
1
                                     15, NULL, false, 0, NULL);
6097
6098
1
  return offset;
6099
1
}
6100
6101
6102
static const per_sequence_t UTRAN_GPSReferenceTimeAssistance_sequence[] = {
6103
  { &hf_ulp_utran_GPSReferenceTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UTRAN_GPSReferenceTime },
6104
  { &hf_ulp_gpsReferenceTimeUncertainty, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
6105
  { &hf_ulp_utranGPSDriftRate, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRANGPSDriftRate },
6106
  { NULL, 0, 0, NULL }
6107
};
6108
6109
static unsigned
6110
3
dissect_ulp_UTRAN_GPSReferenceTimeAssistance(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6111
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6112
3
                                   ett_ulp_UTRAN_GPSReferenceTimeAssistance, UTRAN_GPSReferenceTimeAssistance_sequence);
6113
6114
3
  return offset;
6115
3
}
6116
6117
6118
6119
static unsigned
6120
4
dissect_ulp_INTEGER_0_16383(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6121
4
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6122
4
                                                            0U, 16383U, NULL, false);
6123
6124
4
  return offset;
6125
4
}
6126
6127
6128
static const per_sequence_t T_set_GPSTimingOfCell_sequence[] = {
6129
  { &hf_ulp_ms_part_01      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_16383 },
6130
  { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
6131
  { NULL, 0, 0, NULL }
6132
};
6133
6134
static unsigned
6135
4
dissect_ulp_T_set_GPSTimingOfCell(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6136
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6137
4
                                   ett_ulp_T_set_GPSTimingOfCell, T_set_GPSTimingOfCell_sequence);
6138
6139
4
  return offset;
6140
4
}
6141
6142
6143
static const per_sequence_t T_fdd_02_sequence[] = {
6144
  { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
6145
  { NULL, 0, 0, NULL }
6146
};
6147
6148
static unsigned
6149
0
dissect_ulp_T_fdd_02(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6150
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6151
0
                                   ett_ulp_T_fdd_02, T_fdd_02_sequence);
6152
6153
0
  return offset;
6154
0
}
6155
6156
6157
static const per_sequence_t T_tdd_02_sequence[] = {
6158
  { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
6159
  { NULL, 0, 0, NULL }
6160
};
6161
6162
static unsigned
6163
1
dissect_ulp_T_tdd_02(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6164
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6165
1
                                   ett_ulp_T_tdd_02, T_tdd_02_sequence);
6166
6167
1
  return offset;
6168
1
}
6169
6170
6171
static const value_string ulp_T_modeSpecificInfo_02_vals[] = {
6172
  {   0, "fdd" },
6173
  {   1, "tdd" },
6174
  { 0, NULL }
6175
};
6176
6177
static const per_choice_t T_modeSpecificInfo_02_choice[] = {
6178
  {   0, &hf_ulp_fdd_02          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_02 },
6179
  {   1, &hf_ulp_tdd_02          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_02 },
6180
  { 0, NULL, 0, NULL }
6181
};
6182
6183
static unsigned
6184
1
dissect_ulp_T_modeSpecificInfo_02(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6185
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6186
1
                                 ett_ulp_T_modeSpecificInfo_02, T_modeSpecificInfo_02_choice,
6187
1
                                 NULL);
6188
6189
1
  return offset;
6190
1
}
6191
6192
6193
static const per_sequence_t UTRAN_GPSReferenceTimeResult_sequence[] = {
6194
  { &hf_ulp_set_GPSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_set_GPSTimingOfCell },
6195
  { &hf_ulp_modeSpecificInfo_02, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_02 },
6196
  { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
6197
  { &hf_ulp_gpsReferenceTimeUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
6198
  { NULL, 0, 0, NULL }
6199
};
6200
6201
static unsigned
6202
4
dissect_ulp_UTRAN_GPSReferenceTimeResult(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6203
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6204
4
                                   ett_ulp_UTRAN_GPSReferenceTimeResult, UTRAN_GPSReferenceTimeResult_sequence);
6205
6206
4
  return offset;
6207
4
}
6208
6209
6210
6211
static unsigned
6212
4
dissect_ulp_INTEGER_0_86399(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6213
4
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6214
4
                                                            0U, 86399U, NULL, false);
6215
6216
4
  return offset;
6217
4
}
6218
6219
6220
6221
static unsigned
6222
3
dissect_ulp_INTEGER_0_3999999(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6223
3
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6224
3
                                                            0U, 3999999U, NULL, false);
6225
6226
3
  return offset;
6227
3
}
6228
6229
6230
static const per_sequence_t T_fdd_03_sequence[] = {
6231
  { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
6232
  { NULL, 0, 0, NULL }
6233
};
6234
6235
static unsigned
6236
1
dissect_ulp_T_fdd_03(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6237
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6238
1
                                   ett_ulp_T_fdd_03, T_fdd_03_sequence);
6239
6240
1
  return offset;
6241
1
}
6242
6243
6244
static const per_sequence_t T_tdd_03_sequence[] = {
6245
  { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
6246
  { NULL, 0, 0, NULL }
6247
};
6248
6249
static unsigned
6250
0
dissect_ulp_T_tdd_03(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6251
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6252
0
                                   ett_ulp_T_tdd_03, T_tdd_03_sequence);
6253
6254
0
  return offset;
6255
0
}
6256
6257
6258
static const value_string ulp_T_modeSpecificInfo_03_vals[] = {
6259
  {   0, "fdd" },
6260
  {   1, "tdd" },
6261
  { 0, NULL }
6262
};
6263
6264
static const per_choice_t T_modeSpecificInfo_03_choice[] = {
6265
  {   0, &hf_ulp_fdd_03          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_03 },
6266
  {   1, &hf_ulp_tdd_03          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_03 },
6267
  { 0, NULL, 0, NULL }
6268
};
6269
6270
static unsigned
6271
1
dissect_ulp_T_modeSpecificInfo_03(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6272
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6273
1
                                 ett_ulp_T_modeSpecificInfo_03, T_modeSpecificInfo_03_choice,
6274
1
                                 NULL);
6275
6276
1
  return offset;
6277
1
}
6278
6279
6280
static const per_sequence_t UTRAN_GANSSReferenceTime_sequence[] = {
6281
  { &hf_ulp_ganssTOD        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_86399 },
6282
  { &hf_ulp_utran_GANSSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_3999999 },
6283
  { &hf_ulp_modeSpecificInfo_03, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_03 },
6284
  { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
6285
  { &hf_ulp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
6286
  { NULL, 0, 0, NULL }
6287
};
6288
6289
static unsigned
6290
4
dissect_ulp_UTRAN_GANSSReferenceTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6291
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6292
4
                                   ett_ulp_UTRAN_GANSSReferenceTime, UTRAN_GANSSReferenceTime_sequence);
6293
6294
4
  return offset;
6295
4
}
6296
6297
6298
static const value_string ulp_UTRANGANSSDriftRate_vals[] = {
6299
  {   0, "utran-GANSSDrift0" },
6300
  {   1, "utran-GANSSDrift1" },
6301
  {   2, "utran-GANSSDrift2" },
6302
  {   3, "utran-GANSSDrift5" },
6303
  {   4, "utran-GANSSDrift10" },
6304
  {   5, "utran-GANSSDrift15" },
6305
  {   6, "utran-GANSSDrift25" },
6306
  {   7, "utran-GANSSDrift50" },
6307
  {   8, "utran-GANSSDrift-1" },
6308
  {   9, "utran-GANSSDrift-2" },
6309
  {  10, "utran-GANSSDrift-5" },
6310
  {  11, "utran-GANSSDrift-10" },
6311
  {  12, "utran-GANSSDrift-15" },
6312
  {  13, "utran-GANSSDrift-25" },
6313
  {  14, "utran-GANSSDrift-50" },
6314
  { 0, NULL }
6315
};
6316
6317
6318
static unsigned
6319
2
dissect_ulp_UTRANGANSSDriftRate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6320
2
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6321
2
                                     15, NULL, false, 0, NULL);
6322
6323
2
  return offset;
6324
2
}
6325
6326
6327
static const per_sequence_t UTRAN_GANSSReferenceTimeAssistance_sequence[] = {
6328
  { &hf_ulp_ganssDay        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_8191 },
6329
  { &hf_ulp_ganssTimeID     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
6330
  { &hf_ulp_utran_GANSSReferenceTime, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UTRAN_GANSSReferenceTime },
6331
  { &hf_ulp_utranGANSSDriftRate, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_UTRANGANSSDriftRate },
6332
  { NULL, 0, 0, NULL }
6333
};
6334
6335
static unsigned
6336
4
dissect_ulp_UTRAN_GANSSReferenceTimeAssistance(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6337
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6338
4
                                   ett_ulp_UTRAN_GANSSReferenceTimeAssistance, UTRAN_GANSSReferenceTimeAssistance_sequence);
6339
6340
4
  return offset;
6341
4
}
6342
6343
6344
6345
static unsigned
6346
3
dissect_ulp_INTEGER_0_80(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6347
3
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6348
3
                                                            0U, 80U, NULL, false);
6349
6350
3
  return offset;
6351
3
}
6352
6353
6354
static const per_sequence_t T_set_GANSSTimingOfCell_sequence[] = {
6355
  { &hf_ulp_ms_part_02      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_80 },
6356
  { &hf_ulp_ls_part         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4294967295 },
6357
  { NULL, 0, 0, NULL }
6358
};
6359
6360
static unsigned
6361
3
dissect_ulp_T_set_GANSSTimingOfCell(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6362
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6363
3
                                   ett_ulp_T_set_GANSSTimingOfCell, T_set_GANSSTimingOfCell_sequence);
6364
6365
3
  return offset;
6366
3
}
6367
6368
6369
static const per_sequence_t T_fdd_04_sequence[] = {
6370
  { &hf_ulp_referenceIdentity, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PrimaryCPICH_Info },
6371
  { NULL, 0, 0, NULL }
6372
};
6373
6374
static unsigned
6375
0
dissect_ulp_T_fdd_04(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6376
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6377
0
                                   ett_ulp_T_fdd_04, T_fdd_04_sequence);
6378
6379
0
  return offset;
6380
0
}
6381
6382
6383
static const per_sequence_t T_tdd_04_sequence[] = {
6384
  { &hf_ulp_referenceIdentity_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_CellParametersID },
6385
  { NULL, 0, 0, NULL }
6386
};
6387
6388
static unsigned
6389
2
dissect_ulp_T_tdd_04(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6390
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6391
2
                                   ett_ulp_T_tdd_04, T_tdd_04_sequence);
6392
6393
2
  return offset;
6394
2
}
6395
6396
6397
static const value_string ulp_T_modeSpecificInfo_04_vals[] = {
6398
  {   0, "fdd" },
6399
  {   1, "tdd" },
6400
  { 0, NULL }
6401
};
6402
6403
static const per_choice_t T_modeSpecificInfo_04_choice[] = {
6404
  {   0, &hf_ulp_fdd_04          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_fdd_04 },
6405
  {   1, &hf_ulp_tdd_04          , ASN1_NO_EXTENSIONS     , dissect_ulp_T_tdd_04 },
6406
  { 0, NULL, 0, NULL }
6407
};
6408
6409
static unsigned
6410
2
dissect_ulp_T_modeSpecificInfo_04(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6411
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6412
2
                                 ett_ulp_T_modeSpecificInfo_04, T_modeSpecificInfo_04_choice,
6413
2
                                 NULL);
6414
6415
2
  return offset;
6416
2
}
6417
6418
6419
static const per_sequence_t SET_GANSSReferenceTime_sequence[] = {
6420
  { &hf_ulp_set_GANSSTimingOfCell, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_set_GANSSTimingOfCell },
6421
  { &hf_ulp_modeSpecificInfo_04, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_T_modeSpecificInfo_04 },
6422
  { &hf_ulp_sfn             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_4095 },
6423
  { &hf_ulp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_127 },
6424
  { NULL, 0, 0, NULL }
6425
};
6426
6427
static unsigned
6428
5
dissect_ulp_SET_GANSSReferenceTime(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6429
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6430
5
                                   ett_ulp_SET_GANSSReferenceTime, SET_GANSSReferenceTime_sequence);
6431
6432
5
  return offset;
6433
5
}
6434
6435
6436
static const per_sequence_t UTRAN_GANSSReferenceTimeResult_sequence[] = {
6437
  { &hf_ulp_ganssTimeID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
6438
  { &hf_ulp_set_GANSSReferenceTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SET_GANSSReferenceTime },
6439
  { NULL, 0, 0, NULL }
6440
};
6441
6442
static unsigned
6443
5
dissect_ulp_UTRAN_GANSSReferenceTimeResult(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6444
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6445
5
                                   ett_ulp_UTRAN_GANSSReferenceTimeResult, UTRAN_GANSSReferenceTimeResult_sequence);
6446
6447
5
  return offset;
6448
5
}
6449
6450
6451
static const per_sequence_t Ver2_SUPL_POS_extension_sequence[] = {
6452
  { &hf_ulp_utran_GPSReferenceTimeAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeAssistance },
6453
  { &hf_ulp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeResult },
6454
  { &hf_ulp_utran_GANSSReferenceTimeAssistance, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeAssistance },
6455
  { &hf_ulp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeResult },
6456
  { NULL, 0, 0, NULL }
6457
};
6458
6459
static unsigned
6460
6
dissect_ulp_Ver2_SUPL_POS_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6461
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6462
6
                                   ett_ulp_Ver2_SUPL_POS_extension, Ver2_SUPL_POS_extension_sequence);
6463
6464
6
  return offset;
6465
6
}
6466
6467
6468
static const per_sequence_t SUPLPOS_sequence[] = {
6469
  { &hf_ulp_posPayLoad      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosPayLoad },
6470
  { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
6471
  { &hf_ulp_ver2_SUPL_POS_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_POS_extension },
6472
  { NULL, 0, 0, NULL }
6473
};
6474
6475
static unsigned
6476
62
dissect_ulp_SUPLPOS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6477
62
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6478
62
                                   ett_ulp_SUPLPOS, SUPLPOS_sequence);
6479
6480
62
  return offset;
6481
62
}
6482
6483
6484
6485
static unsigned
6486
12
dissect_ulp_Ver(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6487
12
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
6488
12
                                     64, 64, false, NULL, 0, NULL, NULL);
6489
6490
12
  return offset;
6491
12
}
6492
6493
6494
static const per_sequence_t Ver2_SUPL_POS_INIT_extension_sequence[] = {
6495
  { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
6496
  { &hf_ulp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GPSReferenceTimeResult },
6497
  { &hf_ulp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_UTRAN_GANSSReferenceTimeResult },
6498
  { NULL, 0, 0, NULL }
6499
};
6500
6501
static unsigned
6502
1
dissect_ulp_Ver2_SUPL_POS_INIT_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6503
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6504
1
                                   ett_ulp_Ver2_SUPL_POS_INIT_extension, Ver2_SUPL_POS_INIT_extension_sequence);
6505
6506
1
  return offset;
6507
1
}
6508
6509
6510
static const per_sequence_t SUPLPOSINIT_sequence[] = {
6511
  { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
6512
  { &hf_ulp_requestedAssistData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RequestedAssistData },
6513
  { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
6514
  { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
6515
  { &hf_ulp_suplpos         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SUPLPOS },
6516
  { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
6517
  { &hf_ulp_ver2_SUPL_POS_INIT_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_POS_INIT_extension },
6518
  { NULL, 0, 0, NULL }
6519
};
6520
6521
static unsigned
6522
42
dissect_ulp_SUPLPOSINIT(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6523
42
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6524
42
                                   ett_ulp_SUPLPOSINIT, SUPLPOSINIT_sequence);
6525
6526
42
  return offset;
6527
42
}
6528
6529
6530
static const value_string ulp_StatusCode_vals[] = {
6531
  {   0, "unspecified" },
6532
  {   1, "systemFailure" },
6533
  {   2, "unexpectedMessage" },
6534
  {   3, "protocolError" },
6535
  {   4, "dataMissing" },
6536
  {   5, "unexpectedDataValue" },
6537
  {   6, "posMethodFailure" },
6538
  {   7, "posMethodMismatch" },
6539
  {   8, "posProtocolMismatch" },
6540
  {   9, "targetSETnotReachable" },
6541
  {  10, "versionNotSupported" },
6542
  {  11, "resourceShortage" },
6543
  {  12, "invalidSessionId" },
6544
  {  13, "nonProxyModeNotSupported" },
6545
  {  14, "proxyModeNotSupported" },
6546
  {  15, "positioningNotPermitted" },
6547
  {  16, "authNetFailure" },
6548
  {  17, "authSuplinitFailure" },
6549
  { 100, "consentDeniedByUser" },
6550
  { 101, "consentGrantedByUser" },
6551
  {  18, "ver2-incompatibleProtectionLevel" },
6552
  {  19, "ver2-serviceNotSupported" },
6553
  {  20, "ver2-insufficientInterval" },
6554
  {  21, "ver2-noSUPLCoverage" },
6555
  { 102, "ver2-sessionStopped" },
6556
  { 103, "ver2-appIdDenied" },
6557
  { 0, NULL }
6558
};
6559
6560
static const uint32_t StatusCode_value_map[20+6] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 100, 101, 18, 19, 20, 21, 102, 103};
6561
6562
static unsigned
6563
3
dissect_ulp_StatusCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6564
3
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6565
3
                                     20, NULL, true, 6, StatusCode_value_map);
6566
6567
3
  return offset;
6568
3
}
6569
6570
6571
6572
static unsigned
6573
0
dissect_ulp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6574
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6575
0
                                                            INT32_MIN, 2147483647U, NULL, false);
6576
6577
0
  return offset;
6578
0
}
6579
6580
6581
6582
static unsigned
6583
8
dissect_ulp_INTEGER_0_179(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6584
8
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6585
8
                                                            0U, 179U, NULL, false);
6586
6587
8
  return offset;
6588
8
}
6589
6590
6591
6592
static unsigned
6593
0
dissect_ulp_INTEGER_64000_1280000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6594
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6595
0
                                                            64000U, 1280000U, NULL, false);
6596
6597
0
  return offset;
6598
0
}
6599
6600
6601
static const per_sequence_t HighAccuracyAltitudeInfo_sequence[] = {
6602
  { &hf_ulp_altitude_01     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_64000_1280000 },
6603
  { &hf_ulp_uncertaintyAltitude, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
6604
  { &hf_ulp_verticalConfidence, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_100 },
6605
  { NULL, 0, 0, NULL }
6606
};
6607
6608
static unsigned
6609
0
dissect_ulp_HighAccuracyAltitudeInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6610
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6611
0
                                   ett_ulp_HighAccuracyAltitudeInfo, HighAccuracyAltitudeInfo_sequence);
6612
6613
0
  return offset;
6614
0
}
6615
6616
6617
static const per_sequence_t HighAccuracyPositionEstimate_sequence[] = {
6618
  { &hf_ulp_degreesLatitude , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M2147483648_2147483647 },
6619
  { &hf_ulp_degreesLongitude, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M2147483648_2147483647 },
6620
  { &hf_ulp_uncertaintySemiMajor_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
6621
  { &hf_ulp_uncertaintySemiMinor_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_255 },
6622
  { &hf_ulp_orientationMajorAxis_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_179 },
6623
  { &hf_ulp_horizontalConfidence, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_100 },
6624
  { &hf_ulp_highAccuracyAltitudeInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_HighAccuracyAltitudeInfo },
6625
  { NULL, 0, 0, NULL }
6626
};
6627
6628
static unsigned
6629
0
dissect_ulp_HighAccuracyPositionEstimate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6630
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6631
0
                                   ett_ulp_HighAccuracyPositionEstimate, HighAccuracyPositionEstimate_sequence);
6632
6633
0
  return offset;
6634
0
}
6635
6636
6637
static const per_sequence_t Ver2_HighAccuracyPosition_sequence[] = {
6638
  { &hf_ulp_timestamp       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_UTCTime },
6639
  { &hf_ulp_highAccuracyPositionEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_HighAccuracyPositionEstimate },
6640
  { &hf_ulp_velocity        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Velocity },
6641
  { NULL, 0, 0, NULL }
6642
};
6643
6644
static unsigned
6645
0
dissect_ulp_Ver2_HighAccuracyPosition(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6646
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6647
0
                                   ett_ulp_Ver2_HighAccuracyPosition, Ver2_HighAccuracyPosition_sequence);
6648
6649
0
  return offset;
6650
0
}
6651
6652
6653
static const per_sequence_t Ver2_SUPL_END_extension_sequence[] = {
6654
  { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
6655
  { &hf_ulp_ver2_HighAccuracyPosition, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_HighAccuracyPosition },
6656
  { NULL, 0, 0, NULL }
6657
};
6658
6659
static unsigned
6660
0
dissect_ulp_Ver2_SUPL_END_extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6661
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6662
0
                                   ett_ulp_Ver2_SUPL_END_extension, Ver2_SUPL_END_extension_sequence);
6663
6664
0
  return offset;
6665
0
}
6666
6667
6668
static const per_sequence_t SUPLEND_sequence[] = {
6669
  { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
6670
  { &hf_ulp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_StatusCode },
6671
  { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
6672
  { &hf_ulp_ver2_SUPL_END_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_ulp_Ver2_SUPL_END_extension },
6673
  { NULL, 0, 0, NULL }
6674
};
6675
6676
static unsigned
6677
5
dissect_ulp_SUPLEND(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6678
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6679
5
                                   ett_ulp_SUPLEND, SUPLEND_sequence);
6680
6681
5
  return offset;
6682
5
}
6683
6684
6685
static const per_sequence_t SUPLAUTHREQ_sequence[] = {
6686
  { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
6687
  { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
6688
  { NULL, 0, 0, NULL }
6689
};
6690
6691
static unsigned
6692
4
dissect_ulp_SUPLAUTHREQ(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6693
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6694
4
                                   ett_ulp_SUPLAUTHREQ, SUPLAUTHREQ_sequence);
6695
6696
4
  return offset;
6697
4
}
6698
6699
6700
static const per_sequence_t SUPLAUTHRESP_sequence[] = {
6701
  { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SPCSETKey },
6702
  { &hf_ulp_spctid          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SPCTID },
6703
  { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
6704
  { NULL, 0, 0, NULL }
6705
};
6706
6707
static unsigned
6708
3
dissect_ulp_SUPLAUTHRESP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6709
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6710
3
                                   ett_ulp_SUPLAUTHRESP, SUPLAUTHRESP_sequence);
6711
6712
3
  return offset;
6713
3
}
6714
6715
6716
6717
static unsigned
6718
8
dissect_ulp_INTEGER_1_8639999(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6719
8
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6720
8
                                                            1U, 8639999U, NULL, false);
6721
6722
8
  return offset;
6723
8
}
6724
6725
6726
6727
static unsigned
6728
13
dissect_ulp_INTEGER_0_2678400(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6729
13
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6730
13
                                                            0U, 2678400U, NULL, false);
6731
6732
13
  return offset;
6733
13
}
6734
6735
6736
static const per_sequence_t PeriodicParams_sequence[] = {
6737
  { &hf_ulp_numberOfFixes   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_8639999 },
6738
  { &hf_ulp_intervalBetweenFixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_8639999 },
6739
  { &hf_ulp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_2678400 },
6740
  { NULL, 0, 0, NULL }
6741
};
6742
6743
static unsigned
6744
4
dissect_ulp_PeriodicParams(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6745
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6746
4
                                   ett_ulp_PeriodicParams, PeriodicParams_sequence);
6747
6748
4
  return offset;
6749
4
}
6750
6751
6752
static const value_string ulp_AreaEventType_vals[] = {
6753
  {   0, "enteringArea" },
6754
  {   1, "insideArea" },
6755
  {   2, "outsideArea" },
6756
  {   3, "leavingArea" },
6757
  { 0, NULL }
6758
};
6759
6760
6761
static unsigned
6762
49
dissect_ulp_AreaEventType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6763
49
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6764
49
                                     4, NULL, true, 0, NULL);
6765
6766
49
  return offset;
6767
49
}
6768
6769
6770
6771
static unsigned
6772
45
dissect_ulp_INTEGER_1_604800(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6773
45
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6774
45
                                                            1U, 604800U, NULL, false);
6775
6776
45
  return offset;
6777
45
}
6778
6779
6780
static const per_sequence_t RepeatedReportingParams_sequence[] = {
6781
  { &hf_ulp_minimumIntervalTime, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_604800 },
6782
  { &hf_ulp_maximumNumberOfReports, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1024 },
6783
  { NULL, 0, 0, NULL }
6784
};
6785
6786
static unsigned
6787
45
dissect_ulp_RepeatedReportingParams(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6788
45
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6789
45
                                   ett_ulp_RepeatedReportingParams, RepeatedReportingParams_sequence);
6790
6791
45
  return offset;
6792
45
}
6793
6794
6795
6796
static unsigned
6797
11
dissect_ulp_INTEGER_0_11318399(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6798
11
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6799
11
                                                            0U, 11318399U, NULL, false);
6800
6801
11
  return offset;
6802
11
}
6803
6804
6805
static const value_string ulp_T_latitudeSign_01_vals[] = {
6806
  {   0, "north" },
6807
  {   1, "south" },
6808
  { 0, NULL }
6809
};
6810
6811
6812
static unsigned
6813
171
dissect_ulp_T_latitudeSign_01(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6814
171
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6815
171
                                     2, NULL, false, 0, NULL);
6816
6817
171
  return offset;
6818
171
}
6819
6820
6821
static const per_sequence_t Coordinate_sequence[] = {
6822
  { &hf_ulp_latitudeSign_01 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_T_latitudeSign_01 },
6823
  { &hf_ulp_coordinateLatitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_8388607 },
6824
  { &hf_ulp_coordinateLongitude, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_M8388608_8388607 },
6825
  { NULL, 0, 0, NULL }
6826
};
6827
6828
static unsigned
6829
171
dissect_ulp_Coordinate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6830
171
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6831
171
                                   ett_ulp_Coordinate, Coordinate_sequence);
6832
6833
171
  return offset;
6834
171
}
6835
6836
6837
6838
static unsigned
6839
60
dissect_ulp_INTEGER_1_1000000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6840
60
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6841
60
                                                            1U, 1000000U, NULL, false);
6842
6843
60
  return offset;
6844
60
}
6845
6846
6847
6848
static unsigned
6849
16
dissect_ulp_INTEGER_1_1500000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6850
16
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6851
16
                                                            1U, 1500000U, NULL, false);
6852
6853
16
  return offset;
6854
16
}
6855
6856
6857
static const per_sequence_t CircularArea_sequence[] = {
6858
  { &hf_ulp_coordinate      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
6859
  { &hf_ulp_radius          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
6860
  { &hf_ulp_radius_min      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
6861
  { &hf_ulp_radius_max      , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
6862
  { NULL, 0, 0, NULL }
6863
};
6864
6865
static unsigned
6866
38
dissect_ulp_CircularArea(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6867
38
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6868
38
                                   ett_ulp_CircularArea, CircularArea_sequence);
6869
6870
38
  return offset;
6871
38
}
6872
6873
6874
static const per_sequence_t EllipticalArea_sequence[] = {
6875
  { &hf_ulp_coordinate      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
6876
  { &hf_ulp_semiMajor       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
6877
  { &hf_ulp_semiMajor_min   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
6878
  { &hf_ulp_semiMajor_max   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
6879
  { &hf_ulp_semiMinor       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_1_1000000 },
6880
  { &hf_ulp_semiMinor_min   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1000000 },
6881
  { &hf_ulp_semiMinor_max   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_1500000 },
6882
  { &hf_ulp_angle           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_179 },
6883
  { NULL, 0, 0, NULL }
6884
};
6885
6886
static unsigned
6887
8
dissect_ulp_EllipticalArea(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6888
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6889
8
                                   ett_ulp_EllipticalArea, EllipticalArea_sequence);
6890
6891
8
  return offset;
6892
8
}
6893
6894
6895
static const per_sequence_t PolygonDescription_sequence_of[1] = {
6896
  { &hf_ulp_PolygonDescription_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Coordinate },
6897
};
6898
6899
static unsigned
6900
11
dissect_ulp_PolygonDescription(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6901
11
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6902
11
                                                  ett_ulp_PolygonDescription, PolygonDescription_sequence_of,
6903
11
                                                  3, 15, false);
6904
6905
11
  return offset;
6906
11
}
6907
6908
6909
6910
static unsigned
6911
2
dissect_ulp_INTEGER_1_100000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6912
2
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6913
2
                                                            1U, 100000U, NULL, false);
6914
6915
2
  return offset;
6916
2
}
6917
6918
6919
static const per_sequence_t PolygonArea_sequence[] = {
6920
  { &hf_ulp_polygonDescription, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_PolygonDescription },
6921
  { &hf_ulp_polygonHysteresis, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_INTEGER_1_100000 },
6922
  { NULL, 0, 0, NULL }
6923
};
6924
6925
static unsigned
6926
11
dissect_ulp_PolygonArea(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6927
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6928
11
                                   ett_ulp_PolygonArea, PolygonArea_sequence);
6929
6930
11
  return offset;
6931
11
}
6932
6933
6934
static const value_string ulp_GeographicTargetArea_vals[] = {
6935
  {   0, "circularArea" },
6936
  {   1, "ellipticalArea" },
6937
  {   2, "polygonArea" },
6938
  { 0, NULL }
6939
};
6940
6941
static const per_choice_t GeographicTargetArea_choice[] = {
6942
  {   0, &hf_ulp_circularArea    , ASN1_EXTENSION_ROOT    , dissect_ulp_CircularArea },
6943
  {   1, &hf_ulp_ellipticalArea  , ASN1_EXTENSION_ROOT    , dissect_ulp_EllipticalArea },
6944
  {   2, &hf_ulp_polygonArea     , ASN1_EXTENSION_ROOT    , dissect_ulp_PolygonArea },
6945
  { 0, NULL, 0, NULL }
6946
};
6947
6948
static unsigned
6949
65
dissect_ulp_GeographicTargetArea(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6950
65
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6951
65
                                 ett_ulp_GeographicTargetArea, GeographicTargetArea_choice,
6952
65
                                 NULL);
6953
6954
65
  return offset;
6955
65
}
6956
6957
6958
static const per_sequence_t GeographicTargetAreaList_sequence_of[1] = {
6959
  { &hf_ulp_GeographicTargetAreaList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GeographicTargetArea },
6960
};
6961
6962
static unsigned
6963
30
dissect_ulp_GeographicTargetAreaList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6964
30
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6965
30
                                                  ett_ulp_GeographicTargetAreaList, GeographicTargetAreaList_sequence_of,
6966
30
                                                  1, maxNumGeoArea, false);
6967
6968
30
  return offset;
6969
30
}
6970
6971
6972
static const per_sequence_t GSMAreaId_sequence[] = {
6973
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
6974
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
6975
  { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
6976
  { &hf_ulp_refCI           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
6977
  { NULL, 0, 0, NULL }
6978
};
6979
6980
static unsigned
6981
2.25k
dissect_ulp_GSMAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6982
2.25k
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6983
2.25k
                                   ett_ulp_GSMAreaId, GSMAreaId_sequence);
6984
6985
2.25k
  return offset;
6986
2.25k
}
6987
6988
6989
static const per_sequence_t WCDMAAreaId_sequence[] = {
6990
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
6991
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
6992
  { &hf_ulp_refLAC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
6993
  { &hf_ulp_refUC           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_268435455 },
6994
  { NULL, 0, 0, NULL }
6995
};
6996
6997
static unsigned
6998
94
dissect_ulp_WCDMAAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6999
94
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7000
94
                                   ett_ulp_WCDMAAreaId, WCDMAAreaId_sequence);
7001
7002
94
  return offset;
7003
94
}
7004
7005
7006
static const per_sequence_t CDMAAreaId_sequence[] = {
7007
  { &hf_ulp_refSID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
7008
  { &hf_ulp_refNID          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_32767 },
7009
  { &hf_ulp_refBASEID       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_65535 },
7010
  { NULL, 0, 0, NULL }
7011
};
7012
7013
static unsigned
7014
102
dissect_ulp_CDMAAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7015
102
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7016
102
                                   ett_ulp_CDMAAreaId, CDMAAreaId_sequence);
7017
7018
102
  return offset;
7019
102
}
7020
7021
7022
static const per_sequence_t HRPDAreaId_sequence[] = {
7023
  { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_128 },
7024
  { NULL, 0, 0, NULL }
7025
};
7026
7027
static unsigned
7028
18
dissect_ulp_HRPDAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7029
18
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7030
18
                                   ett_ulp_HRPDAreaId, HRPDAreaId_sequence);
7031
7032
18
  return offset;
7033
18
}
7034
7035
7036
static const per_sequence_t UMBAreaId_sequence[] = {
7037
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
7038
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
7039
  { &hf_ulp_refSECTORID     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_128 },
7040
  { NULL, 0, 0, NULL }
7041
};
7042
7043
static unsigned
7044
101
dissect_ulp_UMBAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7045
101
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7046
101
                                   ett_ulp_UMBAreaId, UMBAreaId_sequence);
7047
7048
101
  return offset;
7049
101
}
7050
7051
7052
7053
static unsigned
7054
11
dissect_ulp_BIT_STRING_SIZE_29(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7055
11
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7056
11
                                     29, 29, false, NULL, 0, NULL, NULL);
7057
7058
11
  return offset;
7059
11
}
7060
7061
7062
static const per_sequence_t LTEAreaId_sequence[] = {
7063
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
7064
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
7065
  { &hf_ulp_refCI_LTE_Cell_Id, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_29 },
7066
  { NULL, 0, 0, NULL }
7067
};
7068
7069
static unsigned
7070
24
dissect_ulp_LTEAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7071
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7072
24
                                   ett_ulp_LTEAreaId, LTEAreaId_sequence);
7073
7074
24
  return offset;
7075
24
}
7076
7077
7078
7079
static unsigned
7080
12
dissect_ulp_T_apMACAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7081
12
  tvbuff_t *val_tvb;
7082
7083
12
  offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
7084
12
                                     48, 48, false, NULL, 0, &val_tvb, NULL);
7085
7086
12
  if (val_tvb) {
7087
11
    proto_tree_add_item(tree, hf_index, val_tvb, 0, 6, ENC_NA);
7088
11
  }
7089
7090
7091
12
  return offset;
7092
12
}
7093
7094
7095
static const per_sequence_t WLANAreaId_sequence[] = {
7096
  { &hf_ulp_apMACAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_T_apMACAddress },
7097
  { NULL, 0, 0, NULL }
7098
};
7099
7100
static unsigned
7101
12
dissect_ulp_WLANAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7102
12
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7103
12
                                   ett_ulp_WLANAreaId, WLANAreaId_sequence);
7104
7105
12
  return offset;
7106
12
}
7107
7108
7109
static const per_sequence_t WimaxAreaId_sequence[] = {
7110
  { &hf_ulp_bsID_MSB        , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_24 },
7111
  { &hf_ulp_bsID_LSB        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_BIT_STRING_SIZE_24 },
7112
  { NULL, 0, 0, NULL }
7113
};
7114
7115
static unsigned
7116
12
dissect_ulp_WimaxAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7117
12
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7118
12
                                   ett_ulp_WimaxAreaId, WimaxAreaId_sequence);
7119
7120
12
  return offset;
7121
12
}
7122
7123
7124
7125
static unsigned
7126
3
dissect_ulp_BIT_STRING_SIZE_36(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7127
3
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
7128
3
                                     36, 36, false, NULL, 0, NULL, NULL);
7129
7130
3
  return offset;
7131
3
}
7132
7133
7134
static const per_sequence_t NRAreaId_sequence[] = {
7135
  { &hf_ulp_refMCC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
7136
  { &hf_ulp_refMNC          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_999 },
7137
  { &hf_ulp_refCI_NR_Cell_Id, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BIT_STRING_SIZE_36 },
7138
  { NULL, 0, 0, NULL }
7139
};
7140
7141
static unsigned
7142
9
dissect_ulp_NRAreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7143
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7144
9
                                   ett_ulp_NRAreaId, NRAreaId_sequence);
7145
7146
9
  return offset;
7147
9
}
7148
7149
7150
static const value_string ulp_AreaId_vals[] = {
7151
  {   0, "gSMAreaId" },
7152
  {   1, "wCDMAAreaId" },
7153
  {   2, "cDMAAreaId" },
7154
  {   3, "hRPDAreaId" },
7155
  {   4, "uMBAreaId" },
7156
  {   5, "lTEAreaId" },
7157
  {   6, "wLANAreaId" },
7158
  {   7, "wiMAXAreaId" },
7159
  {   8, "nRAreaId" },
7160
  { 0, NULL }
7161
};
7162
7163
static const per_choice_t AreaId_choice[] = {
7164
  {   0, &hf_ulp_gSMAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_GSMAreaId },
7165
  {   1, &hf_ulp_wCDMAAreaId     , ASN1_EXTENSION_ROOT    , dissect_ulp_WCDMAAreaId },
7166
  {   2, &hf_ulp_cDMAAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_CDMAAreaId },
7167
  {   3, &hf_ulp_hRPDAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_HRPDAreaId },
7168
  {   4, &hf_ulp_uMBAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_UMBAreaId },
7169
  {   5, &hf_ulp_lTEAreaId       , ASN1_EXTENSION_ROOT    , dissect_ulp_LTEAreaId },
7170
  {   6, &hf_ulp_wLANAreaId      , ASN1_EXTENSION_ROOT    , dissect_ulp_WLANAreaId },
7171
  {   7, &hf_ulp_wiMAXAreaId     , ASN1_EXTENSION_ROOT    , dissect_ulp_WimaxAreaId },
7172
  {   8, &hf_ulp_nRAreaId        , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_NRAreaId },
7173
  { 0, NULL, 0, NULL }
7174
};
7175
7176
static unsigned
7177
2.66k
dissect_ulp_AreaId(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7178
2.66k
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7179
2.66k
                                 ett_ulp_AreaId, AreaId_choice,
7180
2.66k
                                 NULL);
7181
7182
2.66k
  return offset;
7183
2.66k
}
7184
7185
7186
static const per_sequence_t AreaIdSet_sequence_of[1] = {
7187
  { &hf_ulp_AreaIdSet_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaId },
7188
};
7189
7190
static unsigned
7191
124
dissect_ulp_AreaIdSet(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7192
124
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7193
124
                                                  ett_ulp_AreaIdSet, AreaIdSet_sequence_of,
7194
124
                                                  1, maxAreaId, false);
7195
7196
124
  return offset;
7197
124
}
7198
7199
7200
static const value_string ulp_AreaIdSetType_vals[] = {
7201
  {   0, "border" },
7202
  {   1, "within" },
7203
  { 0, NULL }
7204
};
7205
7206
7207
static unsigned
7208
26
dissect_ulp_AreaIdSetType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7209
26
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7210
26
                                     2, NULL, true, 0, NULL);
7211
7212
26
  return offset;
7213
26
}
7214
7215
7216
7217
static unsigned
7218
84
dissect_ulp_GeoAreaIndex(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7219
84
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7220
84
                                                            1U, maxNumGeoArea, NULL, false);
7221
7222
84
  return offset;
7223
84
}
7224
7225
7226
static const per_sequence_t GeoAreaMappingList_sequence_of[1] = {
7227
  { &hf_ulp_GeoAreaMappingList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GeoAreaIndex },
7228
};
7229
7230
static unsigned
7231
15
dissect_ulp_GeoAreaMappingList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7232
15
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7233
15
                                                  ett_ulp_GeoAreaMappingList, GeoAreaMappingList_sequence_of,
7234
15
                                                  1, maxNumGeoArea, false);
7235
7236
15
  return offset;
7237
15
}
7238
7239
7240
static const per_sequence_t AreaIdList_sequence[] = {
7241
  { &hf_ulp_areaIdSet       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaIdSet },
7242
  { &hf_ulp_areaIdSetType   , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_AreaIdSetType },
7243
  { &hf_ulp_geoAreaMappingList, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_ulp_GeoAreaMappingList },
7244
  { NULL, 0, 0, NULL }
7245
};
7246
7247
static unsigned
7248
124
dissect_ulp_AreaIdList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7249
124
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7250
124
                                   ett_ulp_AreaIdList, AreaIdList_sequence);
7251
7252
124
  return offset;
7253
124
}
7254
7255
7256
static const per_sequence_t SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList_sequence_of[1] = {
7257
  { &hf_ulp_areaIdLists_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_AreaIdList },
7258
};
7259
7260
static unsigned
7261
38
dissect_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7262
38
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7263
38
                                                  ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList, SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList_sequence_of,
7264
38
                                                  1, maxAreaIdList, false);
7265
7266
38
  return offset;
7267
38
}
7268
7269
7270
static const per_sequence_t AreaEventParams_sequence[] = {
7271
  { &hf_ulp_areaEventType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_AreaEventType },
7272
  { &hf_ulp_locationEstimate, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
7273
  { &hf_ulp_repeatedReportingParams, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_RepeatedReportingParams },
7274
  { &hf_ulp_startTime       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_2678400 },
7275
  { &hf_ulp_stopTime        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_INTEGER_0_11318399 },
7276
  { &hf_ulp_geographicTargetAreaList, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GeographicTargetAreaList },
7277
  { &hf_ulp_areaIdLists     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList },
7278
  { NULL, 0, 0, NULL }
7279
};
7280
7281
static unsigned
7282
49
dissect_ulp_AreaEventParams(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7283
49
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7284
49
                                   ett_ulp_AreaEventParams, AreaEventParams_sequence);
7285
7286
49
  return offset;
7287
49
}
7288
7289
7290
static const value_string ulp_TriggerParams_vals[] = {
7291
  {   0, "periodicParams" },
7292
  {   1, "areaEventParams" },
7293
  { 0, NULL }
7294
};
7295
7296
static const per_choice_t TriggerParams_choice[] = {
7297
  {   0, &hf_ulp_periodicParams  , ASN1_EXTENSION_ROOT    , dissect_ulp_PeriodicParams },
7298
  {   1, &hf_ulp_areaEventParams , ASN1_EXTENSION_ROOT    , dissect_ulp_AreaEventParams },
7299
  { 0, NULL, 0, NULL }
7300
};
7301
7302
static unsigned
7303
53
dissect_ulp_TriggerParams(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7304
53
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7305
53
                                 ett_ulp_TriggerParams, TriggerParams_choice,
7306
53
                                 NULL);
7307
7308
53
  return offset;
7309
53
}
7310
7311
7312
static const value_string ulp_CauseCode_vals[] = {
7313
  {   0, "servingNetWorkNotInAreaIdList" },
7314
  {   1, "sETCapabilitiesChanged" },
7315
  {   2, "noSUPLCoverage" },
7316
  { 0, NULL }
7317
};
7318
7319
7320
static unsigned
7321
3
dissect_ulp_CauseCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7322
3
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7323
3
                                     3, NULL, true, 0, NULL);
7324
7325
3
  return offset;
7326
3
}
7327
7328
7329
static const per_sequence_t Ver2_SUPLTRIGGEREDSTART_sequence[] = {
7330
  { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETCapabilities },
7331
  { &hf_ulp_locationId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_LocationId },
7332
  { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
7333
  { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
7334
  { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
7335
  { &hf_ulp_thirdParty      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ThirdParty },
7336
  { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
7337
  { &hf_ulp_triggerType     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerType },
7338
  { &hf_ulp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerParams },
7339
  { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Position },
7340
  { &hf_ulp_reportingCap    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingCap },
7341
  { &hf_ulp_causeCode       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_CauseCode },
7342
  { NULL, 0, 0, NULL }
7343
};
7344
7345
static unsigned
7346
90
dissect_ulp_Ver2_SUPLTRIGGEREDSTART(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7347
90
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7348
90
                                   ett_ulp_Ver2_SUPLTRIGGEREDSTART, Ver2_SUPLTRIGGEREDSTART_sequence);
7349
7350
90
  return offset;
7351
90
}
7352
7353
7354
static const value_string ulp_RepModee_vals[] = {
7355
  {   1, "realtime" },
7356
  {   2, "quasirealtime" },
7357
  {   3, "batch" },
7358
  { 0, NULL }
7359
};
7360
7361
static const uint32_t RepModee_value_map[3+0] = {1, 2, 3};
7362
7363
static unsigned
7364
5
dissect_ulp_RepModee(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7365
5
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7366
5
                                     3, NULL, true, 0, RepModee_value_map);
7367
7368
5
  return offset;
7369
5
}
7370
7371
7372
7373
static unsigned
7374
0
dissect_ulp_INTEGER_1_2048(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7375
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7376
0
                                                            1U, 2048U, NULL, false);
7377
7378
0
  return offset;
7379
0
}
7380
7381
7382
static const value_string ulp_BatchRepConditions_vals[] = {
7383
  {   0, "num-interval" },
7384
  {   1, "num-minutes" },
7385
  {   2, "endofsession" },
7386
  { 0, NULL }
7387
};
7388
7389
static const per_choice_t BatchRepConditions_choice[] = {
7390
  {   0, &hf_ulp_num_interval    , ASN1_EXTENSION_ROOT    , dissect_ulp_INTEGER_1_1024 },
7391
  {   1, &hf_ulp_num_minutes     , ASN1_EXTENSION_ROOT    , dissect_ulp_INTEGER_1_2048 },
7392
  {   2, &hf_ulp_endofsession    , ASN1_EXTENSION_ROOT    , dissect_ulp_NULL },
7393
  { 0, NULL, 0, NULL }
7394
};
7395
7396
static unsigned
7397
2
dissect_ulp_BatchRepConditions(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7398
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7399
2
                                 ett_ulp_BatchRepConditions, BatchRepConditions_choice,
7400
2
                                 NULL);
7401
7402
2
  return offset;
7403
2
}
7404
7405
7406
static const per_sequence_t BatchRepType_sequence[] = {
7407
  { &hf_ulp_reportPosition  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
7408
  { &hf_ulp_reportMeasurements, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
7409
  { &hf_ulp_intermediateReports, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_BOOLEAN },
7410
  { &hf_ulp_discardOldest   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BOOLEAN },
7411
  { NULL, 0, 0, NULL }
7412
};
7413
7414
static unsigned
7415
2
dissect_ulp_BatchRepType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7416
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7417
2
                                   ett_ulp_BatchRepType, BatchRepType_sequence);
7418
7419
2
  return offset;
7420
2
}
7421
7422
7423
static const per_sequence_t ReportingMode_sequence[] = {
7424
  { &hf_ulp_repMode         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_RepModee },
7425
  { &hf_ulp_batchRepConditions, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepConditions },
7426
  { &hf_ulp_batchRepType    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_BatchRepType },
7427
  { NULL, 0, 0, NULL }
7428
};
7429
7430
static unsigned
7431
5
dissect_ulp_ReportingMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7432
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7433
5
                                   ett_ulp_ReportingMode, ReportingMode_sequence);
7434
7435
5
  return offset;
7436
5
}
7437
7438
7439
static const per_sequence_t Ver2_SUPLTRIGGEREDRESPONSE_sequence[] = {
7440
  { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_PosMethod },
7441
  { &hf_ulp_triggerParams   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TriggerParams },
7442
  { &hf_ulp_sLPAddress      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SLPAddress },
7443
  { &hf_ulp_supportedNetworkInformation, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SupportedNetworkInformation },
7444
  { &hf_ulp_reportingMode   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportingMode },
7445
  { &hf_ulp_sPCSETKey       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKey },
7446
  { &hf_ulp_spctid          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCTID },
7447
  { &hf_ulp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SPCSETKeylifetime },
7448
  { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
7449
  { NULL, 0, 0, NULL }
7450
};
7451
7452
static unsigned
7453
42
dissect_ulp_Ver2_SUPLTRIGGEREDRESPONSE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7454
42
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7455
42
                                   ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE, Ver2_SUPLTRIGGEREDRESPONSE_sequence);
7456
7457
42
  return offset;
7458
42
}
7459
7460
7461
static const per_sequence_t Ver2_SUPLTRIGGEREDSTOP_sequence[] = {
7462
  { &hf_ulp_statusCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_StatusCode },
7463
  { NULL, 0, 0, NULL }
7464
};
7465
7466
static unsigned
7467
2
dissect_ulp_Ver2_SUPLTRIGGEREDSTOP(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7468
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7469
2
                                   ett_ulp_Ver2_SUPLTRIGGEREDSTOP, Ver2_SUPLTRIGGEREDSTOP_sequence);
7470
7471
2
  return offset;
7472
2
}
7473
7474
7475
static const per_sequence_t Ver2_SUPLNOTIFY_sequence[] = {
7476
  { &hf_ulp_notification    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Notification },
7477
  { NULL, 0, 0, NULL }
7478
};
7479
7480
static unsigned
7481
2
dissect_ulp_Ver2_SUPLNOTIFY(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7482
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7483
2
                                   ett_ulp_Ver2_SUPLNOTIFY, Ver2_SUPLNOTIFY_sequence);
7484
7485
2
  return offset;
7486
2
}
7487
7488
7489
static const value_string ulp_NotificationResponse_vals[] = {
7490
  {   0, "allowed" },
7491
  {   1, "notAllowed" },
7492
  { 0, NULL }
7493
};
7494
7495
7496
static unsigned
7497
1
dissect_ulp_NotificationResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7498
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7499
1
                                     2, NULL, true, 0, NULL);
7500
7501
1
  return offset;
7502
1
}
7503
7504
7505
static const per_sequence_t Ver2_SUPLNOTIFYRESPONSE_sequence[] = {
7506
  { &hf_ulp_notificationResponse, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NotificationResponse },
7507
  { NULL, 0, 0, NULL }
7508
};
7509
7510
static unsigned
7511
3
dissect_ulp_Ver2_SUPLNOTIFYRESPONSE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7512
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7513
3
                                   ett_ulp_Ver2_SUPLNOTIFYRESPONSE, Ver2_SUPLNOTIFYRESPONSE_sequence);
7514
7515
3
  return offset;
7516
3
}
7517
7518
7519
static const per_sequence_t Ver2_SUPLSETINIT_sequence[] = {
7520
  { &hf_ulp_targetSETID     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SETId },
7521
  { &hf_ulp_qoP             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_QoP },
7522
  { &hf_ulp_applicationID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ApplicationID },
7523
  { NULL, 0, 0, NULL }
7524
};
7525
7526
static unsigned
7527
2
dissect_ulp_Ver2_SUPLSETINIT(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7528
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7529
2
                                   ett_ulp_Ver2_SUPLSETINIT, Ver2_SUPLSETINIT_sequence);
7530
7531
2
  return offset;
7532
2
}
7533
7534
7535
static const per_sequence_t SessionInformation_sequence[] = {
7536
  { &hf_ulp_sessionID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
7537
  { NULL, 0, 0, NULL }
7538
};
7539
7540
static unsigned
7541
102
dissect_ulp_SessionInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7542
102
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7543
102
                                   ett_ulp_SessionInformation, SessionInformation_sequence);
7544
7545
102
  return offset;
7546
102
}
7547
7548
7549
static const per_sequence_t SessionList_sequence_of[1] = {
7550
  { &hf_ulp_SessionList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SessionInformation },
7551
};
7552
7553
static unsigned
7554
9
dissect_ulp_SessionList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7555
9
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7556
9
                                                  ett_ulp_SessionList, SessionList_sequence_of,
7557
9
                                                  1, maxnumSessions, false);
7558
7559
9
  return offset;
7560
9
}
7561
7562
7563
static const per_sequence_t GANSSSignalsDescription_sequence[] = {
7564
  { &hf_ulp_ganssId         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_15 },
7565
  { &hf_ulp_gANSSSignals    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignals },
7566
  { NULL, 0, 0, NULL }
7567
};
7568
7569
static unsigned
7570
85
dissect_ulp_GANSSSignalsDescription(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7571
85
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7572
85
                                   ett_ulp_GANSSSignalsDescription, GANSSSignalsDescription_sequence);
7573
7574
85
  return offset;
7575
85
}
7576
7577
7578
static const per_sequence_t GANSSsignalsInfo_sequence_of[1] = {
7579
  { &hf_ulp_GANSSsignalsInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_GANSSSignalsDescription },
7580
};
7581
7582
static unsigned
7583
34
dissect_ulp_GANSSsignalsInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7584
34
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7585
34
                                                  ett_ulp_GANSSsignalsInfo, GANSSsignalsInfo_sequence_of,
7586
34
                                                  1, maxGANSS, false);
7587
7588
34
  return offset;
7589
34
}
7590
7591
7592
static const per_sequence_t PositionData_sequence[] = {
7593
  { &hf_ulp_position        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ulp_Position },
7594
  { &hf_ulp_posMethod       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PosMethod },
7595
  { &hf_ulp_gnssPosTechnology, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GNSSPosTechnology },
7596
  { &hf_ulp_ganssSignalsInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_GANSSsignalsInfo },
7597
  { NULL, 0, 0, NULL }
7598
};
7599
7600
static unsigned
7601
123
dissect_ulp_PositionData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7602
123
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7603
123
                                   ett_ulp_PositionData, PositionData_sequence);
7604
7605
123
  return offset;
7606
123
}
7607
7608
7609
static const value_string ulp_ResultCode_vals[] = {
7610
  {   1, "outofradiocoverage" },
7611
  {   2, "noposition" },
7612
  {   3, "nomeasurement" },
7613
  {   4, "nopositionnomeasurement" },
7614
  {   5, "outofmemory" },
7615
  {   6, "outofmemoryintermediatereporting" },
7616
  {   7, "other" },
7617
  { 0, NULL }
7618
};
7619
7620
static const uint32_t ResultCode_value_map[7+0] = {1, 2, 3, 4, 5, 6, 7};
7621
7622
static unsigned
7623
112
dissect_ulp_ResultCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7624
112
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7625
112
                                     7, NULL, true, 0, ResultCode_value_map);
7626
7627
112
  return offset;
7628
112
}
7629
7630
7631
7632
static unsigned
7633
55
dissect_ulp_INTEGER_0_31536000(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7634
55
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7635
55
                                                            0U, 31536000U, NULL, false);
7636
7637
55
  return offset;
7638
55
}
7639
7640
7641
static const value_string ulp_TimeStamp_vals[] = {
7642
  {   0, "absoluteTime" },
7643
  {   1, "relativeTime" },
7644
  { 0, NULL }
7645
};
7646
7647
static const per_choice_t TimeStamp_choice[] = {
7648
  {   0, &hf_ulp_absoluteTime    , ASN1_NO_EXTENSIONS     , dissect_ulp_UTCTime },
7649
  {   1, &hf_ulp_relativeTime    , ASN1_NO_EXTENSIONS     , dissect_ulp_INTEGER_0_31536000 },
7650
  { 0, NULL, 0, NULL }
7651
};
7652
7653
static unsigned
7654
122
dissect_ulp_TimeStamp(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7655
122
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7656
122
                                 ett_ulp_TimeStamp, TimeStamp_choice,
7657
122
                                 NULL);
7658
7659
122
  return offset;
7660
122
}
7661
7662
7663
static const per_sequence_t ReportData_sequence[] = {
7664
  { &hf_ulp_positionData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_PositionData },
7665
  { &hf_ulp_multipleLocationIds, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_MultipleLocationIds },
7666
  { &hf_ulp_resultCode      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ResultCode },
7667
  { &hf_ulp_timestamp_choice, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_TimeStamp },
7668
  { NULL, 0, 0, NULL }
7669
};
7670
7671
static unsigned
7672
3.20k
dissect_ulp_ReportData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7673
3.20k
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7674
3.20k
                                   ett_ulp_ReportData, ReportData_sequence);
7675
7676
3.20k
  return offset;
7677
3.20k
}
7678
7679
7680
static const per_sequence_t ReportDataList_sequence_of[1] = {
7681
  { &hf_ulp_ReportDataList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_ReportData },
7682
};
7683
7684
static unsigned
7685
66
dissect_ulp_ReportDataList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7686
66
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
7687
66
                                                  ett_ulp_ReportDataList, ReportDataList_sequence_of,
7688
66
                                                  1, 1024, false);
7689
7690
66
  return offset;
7691
66
}
7692
7693
7694
static const per_sequence_t Ver2_SUPLREPORT_sequence[] = {
7695
  { &hf_ulp_sessionList     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SessionList },
7696
  { &hf_ulp_sETCapabilities , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_SETCapabilities },
7697
  { &hf_ulp_reportDataList  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_ReportDataList },
7698
  { &hf_ulp_ver             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_Ver },
7699
  { &hf_ulp_moreComponents  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_ulp_NULL },
7700
  { NULL, 0, 0, NULL }
7701
};
7702
7703
static unsigned
7704
75
dissect_ulp_Ver2_SUPLREPORT(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7705
75
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7706
75
                                   ett_ulp_Ver2_SUPLREPORT, Ver2_SUPLREPORT_sequence);
7707
7708
75
  return offset;
7709
75
}
7710
7711
7712
static const value_string ulp_UlpMessage_vals[] = {
7713
  {   0, "msSUPLINIT" },
7714
  {   1, "msSUPLSTART" },
7715
  {   2, "msSUPLRESPONSE" },
7716
  {   3, "msSUPLPOSINIT" },
7717
  {   4, "msSUPLPOS" },
7718
  {   5, "msSUPLEND" },
7719
  {   6, "msSUPLAUTHREQ" },
7720
  {   7, "msSUPLAUTHRESP" },
7721
  {   8, "msSUPLTRIGGEREDSTART" },
7722
  {   9, "msSUPLTRIGGEREDRESPONSE" },
7723
  {  10, "msSUPLTRIGGEREDSTOP" },
7724
  {  11, "msSUPLNOTIFY" },
7725
  {  12, "msSUPLNOTIFYRESPONSE" },
7726
  {  13, "msSUPLSETINIT" },
7727
  {  14, "msSUPLREPORT" },
7728
  { 0, NULL }
7729
};
7730
7731
static const per_choice_t UlpMessage_choice[] = {
7732
  {   0, &hf_ulp_msSUPLINIT      , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLINIT },
7733
  {   1, &hf_ulp_msSUPLSTART     , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLSTART },
7734
  {   2, &hf_ulp_msSUPLRESPONSE  , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLRESPONSE },
7735
  {   3, &hf_ulp_msSUPLPOSINIT   , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLPOSINIT },
7736
  {   4, &hf_ulp_msSUPLPOS       , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLPOS },
7737
  {   5, &hf_ulp_msSUPLEND       , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLEND },
7738
  {   6, &hf_ulp_msSUPLAUTHREQ   , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLAUTHREQ },
7739
  {   7, &hf_ulp_msSUPLAUTHRESP  , ASN1_EXTENSION_ROOT    , dissect_ulp_SUPLAUTHRESP },
7740
  {   8, &hf_ulp_msSUPLTRIGGEREDSTART, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDSTART },
7741
  {   9, &hf_ulp_msSUPLTRIGGEREDRESPONSE, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDRESPONSE },
7742
  {  10, &hf_ulp_msSUPLTRIGGEREDSTOP, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLTRIGGEREDSTOP },
7743
  {  11, &hf_ulp_msSUPLNOTIFY    , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLNOTIFY },
7744
  {  12, &hf_ulp_msSUPLNOTIFYRESPONSE, ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLNOTIFYRESPONSE },
7745
  {  13, &hf_ulp_msSUPLSETINIT   , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLSETINIT },
7746
  {  14, &hf_ulp_msSUPLREPORT    , ASN1_NOT_EXTENSION_ROOT, dissect_ulp_Ver2_SUPLREPORT },
7747
  { 0, NULL, 0, NULL }
7748
};
7749
7750
static unsigned
7751
424
dissect_ulp_UlpMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7752
7753
424
  int32_t UlpMessage;
7754
7755
424
    offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7756
424
                                 ett_ulp_UlpMessage, UlpMessage_choice,
7757
424
                                 &UlpMessage);
7758
7759
7760
424
  if (UlpMessage != -1) {
7761
60
    col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str_const((uint32_t)UlpMessage,ulp_UlpMessage_vals,"Unknown"));
7762
60
  }
7763
7764
7765
424
  return offset;
7766
424
}
7767
7768
7769
static const per_sequence_t ULP_PDU_sequence[] = {
7770
  { &hf_ulp_length          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_INTEGER_0_65535 },
7771
  { &hf_ulp_version         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_Version },
7772
  { &hf_ulp_sessionID       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_SessionID },
7773
  { &hf_ulp_message         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ulp_UlpMessage },
7774
  { NULL, 0, 0, NULL }
7775
};
7776
7777
static unsigned
7778
463
dissect_ulp_ULP_PDU(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7779
463
  proto_item *it;
7780
463
  proto_tree *ulp_tree;
7781
7782
463
  it = proto_tree_add_item(tree, proto_ulp, tvb, 0, -1, ENC_NA);
7783
463
  ulp_tree = proto_item_add_subtree(it, ett_ulp);
7784
7785
463
  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "ULP");
7786
463
  col_clear(actx->pinfo->cinfo, COL_INFO);
7787
463
  offset = dissect_per_sequence(tvb, offset, actx, ulp_tree, hf_index,
7788
463
                                   ett_ulp_ULP_PDU, ULP_PDU_sequence);
7789
7790
7791
463
  return offset;
7792
463
}
7793
7794
/*--- PDUs ---*/
7795
7796
463
static int dissect_ULP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7797
463
  unsigned offset = 0;
7798
463
  asn1_ctx_t asn1_ctx;
7799
463
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, pinfo);
7800
463
  offset = dissect_ulp_ULP_PDU(tvb, offset, &asn1_ctx, tree, hf_ulp_ULP_PDU_PDU);
7801
463
  offset += 7; offset >>= 3;
7802
463
  return offset;
7803
463
}
7804
7805
7806
7807
static unsigned
7808
get_ulp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
7809
250
{
7810
  /* PDU length = Message length */
7811
250
  return tvb_get_ntohs(tvb,offset);
7812
250
}
7813
7814
static int
7815
dissect_ulp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
7816
181
{
7817
181
  tcp_dissect_pdus(tvb, pinfo, tree, ulp_desegment, ULP_HEADER_SIZE,
7818
181
                   get_ulp_pdu_len, dissect_ULP_PDU_PDU, data);
7819
181
  return tvb_captured_length(tvb);
7820
181
}
7821
7822
void proto_reg_handoff_ulp(void);
7823
7824
/*--- proto_register_ulp -------------------------------------------*/
7825
14
void proto_register_ulp(void) {
7826
7827
  /* List of fields */
7828
14
  static hf_register_info hf[] = {
7829
7830
14
    { &hf_ulp_ULP_PDU_PDU,
7831
14
      { "ULP-PDU", "ulp.ULP_PDU_element",
7832
14
        FT_NONE, BASE_NONE, NULL, 0,
7833
14
        NULL, HFILL }},
7834
14
    { &hf_ulp_length,
7835
14
      { "length", "ulp.length",
7836
14
        FT_UINT32, BASE_DEC, NULL, 0,
7837
14
        "INTEGER_0_65535", HFILL }},
7838
14
    { &hf_ulp_version,
7839
14
      { "version", "ulp.version_element",
7840
14
        FT_NONE, BASE_NONE, NULL, 0,
7841
14
        NULL, HFILL }},
7842
14
    { &hf_ulp_sessionID,
7843
14
      { "sessionID", "ulp.sessionID_element",
7844
14
        FT_NONE, BASE_NONE, NULL, 0,
7845
14
        NULL, HFILL }},
7846
14
    { &hf_ulp_message,
7847
14
      { "message", "ulp.message",
7848
14
        FT_UINT32, BASE_DEC, VALS(ulp_UlpMessage_vals), 0,
7849
14
        "UlpMessage", HFILL }},
7850
14
    { &hf_ulp_msSUPLINIT,
7851
14
      { "msSUPLINIT", "ulp.msSUPLINIT_element",
7852
14
        FT_NONE, BASE_NONE, NULL, 0,
7853
14
        "SUPLINIT", HFILL }},
7854
14
    { &hf_ulp_msSUPLSTART,
7855
14
      { "msSUPLSTART", "ulp.msSUPLSTART_element",
7856
14
        FT_NONE, BASE_NONE, NULL, 0,
7857
14
        "SUPLSTART", HFILL }},
7858
14
    { &hf_ulp_msSUPLRESPONSE,
7859
14
      { "msSUPLRESPONSE", "ulp.msSUPLRESPONSE_element",
7860
14
        FT_NONE, BASE_NONE, NULL, 0,
7861
14
        "SUPLRESPONSE", HFILL }},
7862
14
    { &hf_ulp_msSUPLPOSINIT,
7863
14
      { "msSUPLPOSINIT", "ulp.msSUPLPOSINIT_element",
7864
14
        FT_NONE, BASE_NONE, NULL, 0,
7865
14
        "SUPLPOSINIT", HFILL }},
7866
14
    { &hf_ulp_msSUPLPOS,
7867
14
      { "msSUPLPOS", "ulp.msSUPLPOS_element",
7868
14
        FT_NONE, BASE_NONE, NULL, 0,
7869
14
        "SUPLPOS", HFILL }},
7870
14
    { &hf_ulp_msSUPLEND,
7871
14
      { "msSUPLEND", "ulp.msSUPLEND_element",
7872
14
        FT_NONE, BASE_NONE, NULL, 0,
7873
14
        "SUPLEND", HFILL }},
7874
14
    { &hf_ulp_msSUPLAUTHREQ,
7875
14
      { "msSUPLAUTHREQ", "ulp.msSUPLAUTHREQ_element",
7876
14
        FT_NONE, BASE_NONE, NULL, 0,
7877
14
        "SUPLAUTHREQ", HFILL }},
7878
14
    { &hf_ulp_msSUPLAUTHRESP,
7879
14
      { "msSUPLAUTHRESP", "ulp.msSUPLAUTHRESP_element",
7880
14
        FT_NONE, BASE_NONE, NULL, 0,
7881
14
        "SUPLAUTHRESP", HFILL }},
7882
14
    { &hf_ulp_msSUPLTRIGGEREDSTART,
7883
14
      { "msSUPLTRIGGEREDSTART", "ulp.msSUPLTRIGGEREDSTART_element",
7884
14
        FT_NONE, BASE_NONE, NULL, 0,
7885
14
        "Ver2_SUPLTRIGGEREDSTART", HFILL }},
7886
14
    { &hf_ulp_msSUPLTRIGGEREDRESPONSE,
7887
14
      { "msSUPLTRIGGEREDRESPONSE", "ulp.msSUPLTRIGGEREDRESPONSE_element",
7888
14
        FT_NONE, BASE_NONE, NULL, 0,
7889
14
        "Ver2_SUPLTRIGGEREDRESPONSE", HFILL }},
7890
14
    { &hf_ulp_msSUPLTRIGGEREDSTOP,
7891
14
      { "msSUPLTRIGGEREDSTOP", "ulp.msSUPLTRIGGEREDSTOP_element",
7892
14
        FT_NONE, BASE_NONE, NULL, 0,
7893
14
        "Ver2_SUPLTRIGGEREDSTOP", HFILL }},
7894
14
    { &hf_ulp_msSUPLNOTIFY,
7895
14
      { "msSUPLNOTIFY", "ulp.msSUPLNOTIFY_element",
7896
14
        FT_NONE, BASE_NONE, NULL, 0,
7897
14
        "Ver2_SUPLNOTIFY", HFILL }},
7898
14
    { &hf_ulp_msSUPLNOTIFYRESPONSE,
7899
14
      { "msSUPLNOTIFYRESPONSE", "ulp.msSUPLNOTIFYRESPONSE_element",
7900
14
        FT_NONE, BASE_NONE, NULL, 0,
7901
14
        "Ver2_SUPLNOTIFYRESPONSE", HFILL }},
7902
14
    { &hf_ulp_msSUPLSETINIT,
7903
14
      { "msSUPLSETINIT", "ulp.msSUPLSETINIT_element",
7904
14
        FT_NONE, BASE_NONE, NULL, 0,
7905
14
        "Ver2_SUPLSETINIT", HFILL }},
7906
14
    { &hf_ulp_msSUPLREPORT,
7907
14
      { "msSUPLREPORT", "ulp.msSUPLREPORT_element",
7908
14
        FT_NONE, BASE_NONE, NULL, 0,
7909
14
        "Ver2_SUPLREPORT", HFILL }},
7910
14
    { &hf_ulp_posMethod,
7911
14
      { "posMethod", "ulp.posMethod",
7912
14
        FT_UINT32, BASE_DEC, VALS(ulp_PosMethod_vals), 0,
7913
14
        NULL, HFILL }},
7914
14
    { &hf_ulp_notification,
7915
14
      { "notification", "ulp.notification_element",
7916
14
        FT_NONE, BASE_NONE, NULL, 0,
7917
14
        NULL, HFILL }},
7918
14
    { &hf_ulp_sLPAddress,
7919
14
      { "sLPAddress", "ulp.sLPAddress",
7920
14
        FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
7921
14
        NULL, HFILL }},
7922
14
    { &hf_ulp_qoP,
7923
14
      { "qoP", "ulp.qoP_element",
7924
14
        FT_NONE, BASE_NONE, NULL, 0,
7925
14
        NULL, HFILL }},
7926
14
    { &hf_ulp_sLPMode,
7927
14
      { "sLPMode", "ulp.sLPMode",
7928
14
        FT_UINT32, BASE_DEC, VALS(ulp_SLPMode_vals), 0,
7929
14
        NULL, HFILL }},
7930
14
    { &hf_ulp_mac,
7931
14
      { "mac", "ulp.mac",
7932
14
        FT_BYTES, BASE_NONE, NULL, 0,
7933
14
        NULL, HFILL }},
7934
14
    { &hf_ulp_keyIdentity,
7935
14
      { "keyIdentity", "ulp.keyIdentity",
7936
14
        FT_BYTES, BASE_NONE, NULL, 0,
7937
14
        NULL, HFILL }},
7938
14
    { &hf_ulp_ver2_SUPL_INIT_extension,
7939
14
      { "ver2-SUPL-INIT-extension", "ulp.ver2_SUPL_INIT_extension_element",
7940
14
        FT_NONE, BASE_NONE, NULL, 0,
7941
14
        NULL, HFILL }},
7942
14
    { &hf_ulp_notificationType,
7943
14
      { "notificationType", "ulp.notificationType",
7944
14
        FT_UINT32, BASE_DEC, VALS(ulp_NotificationType_vals), 0,
7945
14
        NULL, HFILL }},
7946
14
    { &hf_ulp_encodingType,
7947
14
      { "encodingType", "ulp.encodingType",
7948
14
        FT_UINT32, BASE_DEC, VALS(ulp_EncodingType_vals), 0,
7949
14
        NULL, HFILL }},
7950
14
    { &hf_ulp_requestorId,
7951
14
      { "requestorId", "ulp.requestorId",
7952
14
        FT_STRING, BASE_NONE, NULL, 0,
7953
14
        NULL, HFILL }},
7954
14
    { &hf_ulp_requestorIdType,
7955
14
      { "requestorIdType", "ulp.requestorIdType",
7956
14
        FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
7957
14
        "FormatIndicator", HFILL }},
7958
14
    { &hf_ulp_clientName,
7959
14
      { "clientName", "ulp.clientName",
7960
14
        FT_STRING, BASE_NONE, NULL, 0,
7961
14
        NULL, HFILL }},
7962
14
    { &hf_ulp_clientNameType,
7963
14
      { "clientNameType", "ulp.clientNameType",
7964
14
        FT_UINT32, BASE_DEC, VALS(ulp_FormatIndicator_vals), 0,
7965
14
        "FormatIndicator", HFILL }},
7966
14
    { &hf_ulp_ver2_Notification_extension,
7967
14
      { "ver2-Notification-extension", "ulp.ver2_Notification_extension_element",
7968
14
        FT_NONE, BASE_NONE, NULL, 0,
7969
14
        NULL, HFILL }},
7970
14
    { &hf_ulp_sETCapabilities,
7971
14
      { "sETCapabilities", "ulp.sETCapabilities_element",
7972
14
        FT_NONE, BASE_NONE, NULL, 0,
7973
14
        NULL, HFILL }},
7974
14
    { &hf_ulp_locationId,
7975
14
      { "locationId", "ulp.locationId_element",
7976
14
        FT_NONE, BASE_NONE, NULL, 0,
7977
14
        NULL, HFILL }},
7978
14
    { &hf_ulp_ver2_SUPL_START_extension,
7979
14
      { "ver2-SUPL-START-extension", "ulp.ver2_SUPL_START_extension_element",
7980
14
        FT_NONE, BASE_NONE, NULL, 0,
7981
14
        NULL, HFILL }},
7982
14
    { &hf_ulp_posTechnology,
7983
14
      { "posTechnology", "ulp.posTechnology_element",
7984
14
        FT_NONE, BASE_NONE, NULL, 0,
7985
14
        NULL, HFILL }},
7986
14
    { &hf_ulp_prefMethod,
7987
14
      { "prefMethod", "ulp.prefMethod",
7988
14
        FT_UINT32, BASE_DEC, VALS(ulp_PrefMethod_vals), 0,
7989
14
        NULL, HFILL }},
7990
14
    { &hf_ulp_posProtocol,
7991
14
      { "posProtocol", "ulp.posProtocol_element",
7992
14
        FT_NONE, BASE_NONE, NULL, 0,
7993
14
        NULL, HFILL }},
7994
14
    { &hf_ulp_ver2_SETCapabilities_extension,
7995
14
      { "ver2-SETCapabilities-extension", "ulp.ver2_SETCapabilities_extension_element",
7996
14
        FT_NONE, BASE_NONE, NULL, 0,
7997
14
        NULL, HFILL }},
7998
14
    { &hf_ulp_agpsSETassisted,
7999
14
      { "agpsSETassisted", "ulp.agpsSETassisted",
8000
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8001
14
        "BOOLEAN", HFILL }},
8002
14
    { &hf_ulp_agpsSETBased,
8003
14
      { "agpsSETBased", "ulp.agpsSETBased",
8004
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8005
14
        "BOOLEAN", HFILL }},
8006
14
    { &hf_ulp_autonomousGPS,
8007
14
      { "autonomousGPS", "ulp.autonomousGPS",
8008
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8009
14
        "BOOLEAN", HFILL }},
8010
14
    { &hf_ulp_aflt,
8011
14
      { "aflt", "ulp.aflt",
8012
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8013
14
        "BOOLEAN", HFILL }},
8014
14
    { &hf_ulp_ecid,
8015
14
      { "ecid", "ulp.ecid",
8016
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8017
14
        "BOOLEAN", HFILL }},
8018
14
    { &hf_ulp_eotd,
8019
14
      { "eotd", "ulp.eotd",
8020
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8021
14
        "BOOLEAN", HFILL }},
8022
14
    { &hf_ulp_otdoa,
8023
14
      { "otdoa", "ulp.otdoa",
8024
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8025
14
        "BOOLEAN", HFILL }},
8026
14
    { &hf_ulp_ver2_PosTechnology_extension,
8027
14
      { "ver2-PosTechnology-extension", "ulp.ver2_PosTechnology_extension_element",
8028
14
        FT_NONE, BASE_NONE, NULL, 0,
8029
14
        NULL, HFILL }},
8030
14
    { &hf_ulp_tia801,
8031
14
      { "tia801", "ulp.tia801",
8032
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8033
14
        "BOOLEAN", HFILL }},
8034
14
    { &hf_ulp_rrlp,
8035
14
      { "rrlp", "ulp.rrlp",
8036
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8037
14
        "BOOLEAN", HFILL }},
8038
14
    { &hf_ulp_rrc,
8039
14
      { "rrc", "ulp.rrc",
8040
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8041
14
        "BOOLEAN", HFILL }},
8042
14
    { &hf_ulp_ver2_PosProtocol_extension,
8043
14
      { "ver2-PosProtocol-extension", "ulp.ver2_PosProtocol_extension_element",
8044
14
        FT_NONE, BASE_NONE, NULL, 0,
8045
14
        NULL, HFILL }},
8046
14
    { &hf_ulp_sETAuthKey,
8047
14
      { "sETAuthKey", "ulp.sETAuthKey",
8048
14
        FT_UINT32, BASE_DEC, VALS(ulp_SETAuthKey_vals), 0,
8049
14
        NULL, HFILL }},
8050
14
    { &hf_ulp_keyIdentity4,
8051
14
      { "keyIdentity4", "ulp.keyIdentity4",
8052
14
        FT_BYTES, BASE_NONE, NULL, 0,
8053
14
        NULL, HFILL }},
8054
14
    { &hf_ulp_ver2_SUPL_RESPONSE_extension,
8055
14
      { "ver2-SUPL-RESPONSE-extension", "ulp.ver2_SUPL_RESPONSE_extension_element",
8056
14
        FT_NONE, BASE_NONE, NULL, 0,
8057
14
        NULL, HFILL }},
8058
14
    { &hf_ulp_shortKey,
8059
14
      { "shortKey", "ulp.shortKey",
8060
14
        FT_BYTES, BASE_NONE, NULL, 0,
8061
14
        "BIT_STRING_SIZE_128", HFILL }},
8062
14
    { &hf_ulp_longKey,
8063
14
      { "longKey", "ulp.longKey",
8064
14
        FT_BYTES, BASE_NONE, NULL, 0,
8065
14
        "BIT_STRING_SIZE_256", HFILL }},
8066
14
    { &hf_ulp_requestedAssistData,
8067
14
      { "requestedAssistData", "ulp.requestedAssistData_element",
8068
14
        FT_NONE, BASE_NONE, NULL, 0,
8069
14
        NULL, HFILL }},
8070
14
    { &hf_ulp_position,
8071
14
      { "position", "ulp.position_element",
8072
14
        FT_NONE, BASE_NONE, NULL, 0,
8073
14
        NULL, HFILL }},
8074
14
    { &hf_ulp_suplpos,
8075
14
      { "suplpos", "ulp.suplpos_element",
8076
14
        FT_NONE, BASE_NONE, NULL, 0,
8077
14
        NULL, HFILL }},
8078
14
    { &hf_ulp_ver,
8079
14
      { "ver", "ulp.ver",
8080
14
        FT_BYTES, BASE_NONE, NULL, 0,
8081
14
        NULL, HFILL }},
8082
14
    { &hf_ulp_ver2_SUPL_POS_INIT_extension,
8083
14
      { "ver2-SUPL-POS-INIT-extension", "ulp.ver2_SUPL_POS_INIT_extension_element",
8084
14
        FT_NONE, BASE_NONE, NULL, 0,
8085
14
        NULL, HFILL }},
8086
14
    { &hf_ulp_almanacRequested,
8087
14
      { "almanacRequested", "ulp.almanacRequested",
8088
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8089
14
        "BOOLEAN", HFILL }},
8090
14
    { &hf_ulp_utcModelRequested,
8091
14
      { "utcModelRequested", "ulp.utcModelRequested",
8092
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8093
14
        "BOOLEAN", HFILL }},
8094
14
    { &hf_ulp_ionosphericModelRequested,
8095
14
      { "ionosphericModelRequested", "ulp.ionosphericModelRequested",
8096
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8097
14
        "BOOLEAN", HFILL }},
8098
14
    { &hf_ulp_dgpsCorrectionsRequested,
8099
14
      { "dgpsCorrectionsRequested", "ulp.dgpsCorrectionsRequested",
8100
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8101
14
        "BOOLEAN", HFILL }},
8102
14
    { &hf_ulp_referenceLocationRequested,
8103
14
      { "referenceLocationRequested", "ulp.referenceLocationRequested",
8104
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8105
14
        "BOOLEAN", HFILL }},
8106
14
    { &hf_ulp_referenceTimeRequested,
8107
14
      { "referenceTimeRequested", "ulp.referenceTimeRequested",
8108
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8109
14
        "BOOLEAN", HFILL }},
8110
14
    { &hf_ulp_acquisitionAssistanceRequested,
8111
14
      { "acquisitionAssistanceRequested", "ulp.acquisitionAssistanceRequested",
8112
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8113
14
        "BOOLEAN", HFILL }},
8114
14
    { &hf_ulp_realTimeIntegrityRequested,
8115
14
      { "realTimeIntegrityRequested", "ulp.realTimeIntegrityRequested",
8116
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8117
14
        "BOOLEAN", HFILL }},
8118
14
    { &hf_ulp_navigationModelRequested,
8119
14
      { "navigationModelRequested", "ulp.navigationModelRequested",
8120
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8121
14
        "BOOLEAN", HFILL }},
8122
14
    { &hf_ulp_navigationModelData,
8123
14
      { "navigationModelData", "ulp.navigationModelData_element",
8124
14
        FT_NONE, BASE_NONE, NULL, 0,
8125
14
        "NavigationModel", HFILL }},
8126
14
    { &hf_ulp_ver2_RequestedAssistData_extension,
8127
14
      { "ver2-RequestedAssistData-extension", "ulp.ver2_RequestedAssistData_extension_element",
8128
14
        FT_NONE, BASE_NONE, NULL, 0,
8129
14
        NULL, HFILL }},
8130
14
    { &hf_ulp_gpsWeek,
8131
14
      { "gpsWeek", "ulp.gpsWeek",
8132
14
        FT_UINT32, BASE_DEC, NULL, 0,
8133
14
        "INTEGER_0_1023", HFILL }},
8134
14
    { &hf_ulp_gpsToe,
8135
14
      { "gpsToe", "ulp.gpsToe",
8136
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_hours), 0,
8137
14
        "INTEGER_0_167", HFILL }},
8138
14
    { &hf_ulp_nsat,
8139
14
      { "nsat", "ulp.nsat",
8140
14
        FT_UINT32, BASE_DEC, NULL, 0,
8141
14
        "INTEGER_0_31", HFILL }},
8142
14
    { &hf_ulp_toeLimit,
8143
14
      { "toeLimit", "ulp.toeLimit",
8144
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_hours), 0,
8145
14
        "INTEGER_0_10", HFILL }},
8146
14
    { &hf_ulp_satInfo,
8147
14
      { "satInfo", "ulp.satInfo",
8148
14
        FT_UINT32, BASE_DEC, NULL, 0,
8149
14
        "SatelliteInfo", HFILL }},
8150
14
    { &hf_ulp_SatelliteInfo_item,
8151
14
      { "SatelliteInfoElement", "ulp.SatelliteInfoElement_element",
8152
14
        FT_NONE, BASE_NONE, NULL, 0,
8153
14
        NULL, HFILL }},
8154
14
    { &hf_ulp_satId,
8155
14
      { "satId", "ulp.satId",
8156
14
        FT_UINT32, BASE_DEC, NULL, 0,
8157
14
        "INTEGER_0_63", HFILL }},
8158
14
    { &hf_ulp_iode,
8159
14
      { "iode", "ulp.iode",
8160
14
        FT_UINT32, BASE_DEC, NULL, 0,
8161
14
        "INTEGER_0_255", HFILL }},
8162
14
    { &hf_ulp_posPayLoad,
8163
14
      { "posPayLoad", "ulp.posPayLoad",
8164
14
        FT_UINT32, BASE_DEC, VALS(ulp_PosPayLoad_vals), 0,
8165
14
        NULL, HFILL }},
8166
14
    { &hf_ulp_velocity,
8167
14
      { "velocity", "ulp.velocity",
8168
14
        FT_UINT32, BASE_DEC, VALS(ulp_Velocity_vals), 0,
8169
14
        NULL, HFILL }},
8170
14
    { &hf_ulp_ver2_SUPL_POS_extension,
8171
14
      { "ver2-SUPL-POS-extension", "ulp.ver2_SUPL_POS_extension_element",
8172
14
        FT_NONE, BASE_NONE, NULL, 0,
8173
14
        NULL, HFILL }},
8174
14
    { &hf_ulp_tia801payload,
8175
14
      { "tia801payload", "ulp.tia801payload",
8176
14
        FT_BYTES, BASE_NONE, NULL, 0,
8177
14
        "OCTET_STRING_SIZE_1_8192", HFILL }},
8178
14
    { &hf_ulp_rrcPayload,
8179
14
      { "rrcPayload", "ulp.rrcPayload",
8180
14
        FT_BYTES, BASE_NONE, NULL, 0,
8181
14
        "OCTET_STRING_SIZE_1_8192", HFILL }},
8182
14
    { &hf_ulp_rrlpPayload,
8183
14
      { "rrlpPayload", "ulp.rrlpPayload",
8184
14
        FT_BYTES, BASE_NONE, NULL, 0,
8185
14
        NULL, HFILL }},
8186
14
    { &hf_ulp_ver2_PosPayLoad_extension,
8187
14
      { "ver2-PosPayLoad-extension", "ulp.ver2_PosPayLoad_extension_element",
8188
14
        FT_NONE, BASE_NONE, NULL, 0,
8189
14
        NULL, HFILL }},
8190
14
    { &hf_ulp_statusCode,
8191
14
      { "statusCode", "ulp.statusCode",
8192
14
        FT_UINT32, BASE_DEC, VALS(ulp_StatusCode_vals), 0,
8193
14
        NULL, HFILL }},
8194
14
    { &hf_ulp_ver2_SUPL_END_extension,
8195
14
      { "ver2-SUPL-END-extension", "ulp.ver2_SUPL_END_extension_element",
8196
14
        FT_NONE, BASE_NONE, NULL, 0,
8197
14
        NULL, HFILL }},
8198
14
    { &hf_ulp_sPCSETKey,
8199
14
      { "sPCSETKey", "ulp.sPCSETKey",
8200
14
        FT_BYTES, BASE_NONE, NULL, 0,
8201
14
        NULL, HFILL }},
8202
14
    { &hf_ulp_spctid,
8203
14
      { "spctid", "ulp.spctid_element",
8204
14
        FT_NONE, BASE_NONE, NULL, 0,
8205
14
        NULL, HFILL }},
8206
14
    { &hf_ulp_sPCSETKeylifetime,
8207
14
      { "sPCSETKeylifetime", "ulp.sPCSETKeylifetime",
8208
14
        FT_UINT32, BASE_DEC, NULL, 0,
8209
14
        NULL, HFILL }},
8210
14
    { &hf_ulp_notificationResponse,
8211
14
      { "notificationResponse", "ulp.notificationResponse",
8212
14
        FT_UINT32, BASE_DEC, VALS(ulp_NotificationResponse_vals), 0,
8213
14
        NULL, HFILL }},
8214
14
    { &hf_ulp_targetSETID,
8215
14
      { "targetSETID", "ulp.targetSETID",
8216
14
        FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
8217
14
        "SETId", HFILL }},
8218
14
    { &hf_ulp_applicationID,
8219
14
      { "applicationID", "ulp.applicationID_element",
8220
14
        FT_NONE, BASE_NONE, NULL, 0,
8221
14
        NULL, HFILL }},
8222
14
    { &hf_ulp_multipleLocationIds,
8223
14
      { "multipleLocationIds", "ulp.multipleLocationIds",
8224
14
        FT_UINT32, BASE_DEC, NULL, 0,
8225
14
        NULL, HFILL }},
8226
14
    { &hf_ulp_thirdParty,
8227
14
      { "thirdParty", "ulp.thirdParty",
8228
14
        FT_UINT32, BASE_DEC, NULL, 0,
8229
14
        NULL, HFILL }},
8230
14
    { &hf_ulp_triggerType,
8231
14
      { "triggerType", "ulp.triggerType",
8232
14
        FT_UINT32, BASE_DEC, VALS(ulp_TriggerType_vals), 0,
8233
14
        NULL, HFILL }},
8234
14
    { &hf_ulp_triggerParams,
8235
14
      { "triggerParams", "ulp.triggerParams",
8236
14
        FT_UINT32, BASE_DEC, VALS(ulp_TriggerParams_vals), 0,
8237
14
        NULL, HFILL }},
8238
14
    { &hf_ulp_reportingCap,
8239
14
      { "reportingCap", "ulp.reportingCap_element",
8240
14
        FT_NONE, BASE_NONE, NULL, 0,
8241
14
        NULL, HFILL }},
8242
14
    { &hf_ulp_causeCode,
8243
14
      { "causeCode", "ulp.causeCode",
8244
14
        FT_UINT32, BASE_DEC, VALS(ulp_CauseCode_vals), 0,
8245
14
        NULL, HFILL }},
8246
14
    { &hf_ulp_periodicParams,
8247
14
      { "periodicParams", "ulp.periodicParams_element",
8248
14
        FT_NONE, BASE_NONE, NULL, 0,
8249
14
        NULL, HFILL }},
8250
14
    { &hf_ulp_areaEventParams,
8251
14
      { "areaEventParams", "ulp.areaEventParams_element",
8252
14
        FT_NONE, BASE_NONE, NULL, 0,
8253
14
        NULL, HFILL }},
8254
14
    { &hf_ulp_numberOfFixes,
8255
14
      { "numberOfFixes", "ulp.numberOfFixes",
8256
14
        FT_UINT32, BASE_DEC, NULL, 0,
8257
14
        "INTEGER_1_8639999", HFILL }},
8258
14
    { &hf_ulp_intervalBetweenFixes,
8259
14
      { "intervalBetweenFixes", "ulp.intervalBetweenFixes",
8260
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8261
14
        "INTEGER_1_8639999", HFILL }},
8262
14
    { &hf_ulp_startTime,
8263
14
      { "startTime", "ulp.startTime",
8264
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8265
14
        "INTEGER_0_2678400", HFILL }},
8266
14
    { &hf_ulp_areaEventType,
8267
14
      { "areaEventType", "ulp.areaEventType",
8268
14
        FT_UINT32, BASE_DEC, VALS(ulp_AreaEventType_vals), 0,
8269
14
        NULL, HFILL }},
8270
14
    { &hf_ulp_locationEstimate,
8271
14
      { "locationEstimate", "ulp.locationEstimate",
8272
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8273
14
        "BOOLEAN", HFILL }},
8274
14
    { &hf_ulp_repeatedReportingParams,
8275
14
      { "repeatedReportingParams", "ulp.repeatedReportingParams_element",
8276
14
        FT_NONE, BASE_NONE, NULL, 0,
8277
14
        NULL, HFILL }},
8278
14
    { &hf_ulp_stopTime,
8279
14
      { "stopTime", "ulp.stopTime",
8280
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8281
14
        "INTEGER_0_11318399", HFILL }},
8282
14
    { &hf_ulp_geographicTargetAreaList,
8283
14
      { "geographicTargetAreaList", "ulp.geographicTargetAreaList",
8284
14
        FT_UINT32, BASE_DEC, NULL, 0,
8285
14
        NULL, HFILL }},
8286
14
    { &hf_ulp_areaIdLists,
8287
14
      { "areaIdLists", "ulp.areaIdLists",
8288
14
        FT_UINT32, BASE_DEC, NULL, 0,
8289
14
        "SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList", HFILL }},
8290
14
    { &hf_ulp_areaIdLists_item,
8291
14
      { "AreaIdList", "ulp.AreaIdList_element",
8292
14
        FT_NONE, BASE_NONE, NULL, 0,
8293
14
        NULL, HFILL }},
8294
14
    { &hf_ulp_minimumIntervalTime,
8295
14
      { "minimumIntervalTime", "ulp.minimumIntervalTime",
8296
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8297
14
        "INTEGER_1_604800", HFILL }},
8298
14
    { &hf_ulp_maximumNumberOfReports,
8299
14
      { "maximumNumberOfReports", "ulp.maximumNumberOfReports",
8300
14
        FT_UINT32, BASE_DEC, NULL, 0,
8301
14
        "INTEGER_1_1024", HFILL }},
8302
14
    { &hf_ulp_GeographicTargetAreaList_item,
8303
14
      { "GeographicTargetArea", "ulp.GeographicTargetArea",
8304
14
        FT_UINT32, BASE_DEC, VALS(ulp_GeographicTargetArea_vals), 0,
8305
14
        NULL, HFILL }},
8306
14
    { &hf_ulp_circularArea,
8307
14
      { "circularArea", "ulp.circularArea_element",
8308
14
        FT_NONE, BASE_NONE, NULL, 0,
8309
14
        NULL, HFILL }},
8310
14
    { &hf_ulp_ellipticalArea,
8311
14
      { "ellipticalArea", "ulp.ellipticalArea_element",
8312
14
        FT_NONE, BASE_NONE, NULL, 0,
8313
14
        NULL, HFILL }},
8314
14
    { &hf_ulp_polygonArea,
8315
14
      { "polygonArea", "ulp.polygonArea_element",
8316
14
        FT_NONE, BASE_NONE, NULL, 0,
8317
14
        NULL, HFILL }},
8318
14
    { &hf_ulp_areaIdSet,
8319
14
      { "areaIdSet", "ulp.areaIdSet",
8320
14
        FT_UINT32, BASE_DEC, NULL, 0,
8321
14
        NULL, HFILL }},
8322
14
    { &hf_ulp_areaIdSetType,
8323
14
      { "areaIdSetType", "ulp.areaIdSetType",
8324
14
        FT_UINT32, BASE_DEC, VALS(ulp_AreaIdSetType_vals), 0,
8325
14
        NULL, HFILL }},
8326
14
    { &hf_ulp_geoAreaMappingList,
8327
14
      { "geoAreaMappingList", "ulp.geoAreaMappingList",
8328
14
        FT_UINT32, BASE_DEC, NULL, 0,
8329
14
        NULL, HFILL }},
8330
14
    { &hf_ulp_AreaIdSet_item,
8331
14
      { "AreaId", "ulp.AreaId",
8332
14
        FT_UINT32, BASE_DEC, VALS(ulp_AreaId_vals), 0,
8333
14
        NULL, HFILL }},
8334
14
    { &hf_ulp_gSMAreaId,
8335
14
      { "gSMAreaId", "ulp.gSMAreaId_element",
8336
14
        FT_NONE, BASE_NONE, NULL, 0,
8337
14
        NULL, HFILL }},
8338
14
    { &hf_ulp_wCDMAAreaId,
8339
14
      { "wCDMAAreaId", "ulp.wCDMAAreaId_element",
8340
14
        FT_NONE, BASE_NONE, NULL, 0,
8341
14
        NULL, HFILL }},
8342
14
    { &hf_ulp_cDMAAreaId,
8343
14
      { "cDMAAreaId", "ulp.cDMAAreaId_element",
8344
14
        FT_NONE, BASE_NONE, NULL, 0,
8345
14
        NULL, HFILL }},
8346
14
    { &hf_ulp_hRPDAreaId,
8347
14
      { "hRPDAreaId", "ulp.hRPDAreaId_element",
8348
14
        FT_NONE, BASE_NONE, NULL, 0,
8349
14
        NULL, HFILL }},
8350
14
    { &hf_ulp_uMBAreaId,
8351
14
      { "uMBAreaId", "ulp.uMBAreaId_element",
8352
14
        FT_NONE, BASE_NONE, NULL, 0,
8353
14
        NULL, HFILL }},
8354
14
    { &hf_ulp_lTEAreaId,
8355
14
      { "lTEAreaId", "ulp.lTEAreaId_element",
8356
14
        FT_NONE, BASE_NONE, NULL, 0,
8357
14
        NULL, HFILL }},
8358
14
    { &hf_ulp_wLANAreaId,
8359
14
      { "wLANAreaId", "ulp.wLANAreaId_element",
8360
14
        FT_NONE, BASE_NONE, NULL, 0,
8361
14
        NULL, HFILL }},
8362
14
    { &hf_ulp_wiMAXAreaId,
8363
14
      { "wiMAXAreaId", "ulp.wiMAXAreaId_element",
8364
14
        FT_NONE, BASE_NONE, NULL, 0,
8365
14
        NULL, HFILL }},
8366
14
    { &hf_ulp_nRAreaId,
8367
14
      { "nRAreaId", "ulp.nRAreaId_element",
8368
14
        FT_NONE, BASE_NONE, NULL, 0,
8369
14
        NULL, HFILL }},
8370
14
    { &hf_ulp_refMCC,
8371
14
      { "refMCC", "ulp.refMCC",
8372
14
        FT_UINT32, BASE_DEC, NULL, 0,
8373
14
        "INTEGER_0_999", HFILL }},
8374
14
    { &hf_ulp_refMNC,
8375
14
      { "refMNC", "ulp.refMNC",
8376
14
        FT_UINT32, BASE_DEC, NULL, 0,
8377
14
        "INTEGER_0_999", HFILL }},
8378
14
    { &hf_ulp_refLAC,
8379
14
      { "refLAC", "ulp.refLAC",
8380
14
        FT_UINT32, BASE_DEC, NULL, 0,
8381
14
        "INTEGER_0_65535", HFILL }},
8382
14
    { &hf_ulp_refCI,
8383
14
      { "refCI", "ulp.refCI",
8384
14
        FT_UINT32, BASE_DEC, NULL, 0,
8385
14
        "INTEGER_0_65535", HFILL }},
8386
14
    { &hf_ulp_refUC,
8387
14
      { "refUC", "ulp.refUC",
8388
14
        FT_UINT32, BASE_DEC, NULL, 0,
8389
14
        "INTEGER_0_268435455", HFILL }},
8390
14
    { &hf_ulp_refSID,
8391
14
      { "refSID", "ulp.refSID",
8392
14
        FT_UINT32, BASE_DEC, NULL, 0,
8393
14
        "INTEGER_0_65535", HFILL }},
8394
14
    { &hf_ulp_refNID,
8395
14
      { "refNID", "ulp.refNID",
8396
14
        FT_UINT32, BASE_DEC, NULL, 0,
8397
14
        "INTEGER_0_32767", HFILL }},
8398
14
    { &hf_ulp_refBASEID,
8399
14
      { "refBASEID", "ulp.refBASEID",
8400
14
        FT_UINT32, BASE_DEC, NULL, 0,
8401
14
        "INTEGER_0_65535", HFILL }},
8402
14
    { &hf_ulp_refSECTORID,
8403
14
      { "refSECTORID", "ulp.refSECTORID",
8404
14
        FT_BYTES, BASE_NONE, NULL, 0,
8405
14
        "BIT_STRING_SIZE_128", HFILL }},
8406
14
    { &hf_ulp_refCI_LTE_Cell_Id,
8407
14
      { "refCI", "ulp.refCI_LTE_Cell_Id",
8408
14
        FT_BYTES, BASE_NONE, NULL, 0,
8409
14
        "BIT_STRING_SIZE_29", HFILL }},
8410
14
    { &hf_ulp_apMACAddress,
8411
14
      { "apMACAddress", "ulp.apMACAddress",
8412
14
        FT_ETHER, BASE_NONE, NULL, 0,
8413
14
        NULL, HFILL }},
8414
14
    { &hf_ulp_bsID_MSB,
8415
14
      { "bsID-MSB", "ulp.bsID_MSB",
8416
14
        FT_BYTES, BASE_NONE, NULL, 0,
8417
14
        "BIT_STRING_SIZE_24", HFILL }},
8418
14
    { &hf_ulp_bsID_LSB,
8419
14
      { "bsID-LSB", "ulp.bsID_LSB",
8420
14
        FT_BYTES, BASE_NONE, NULL, 0,
8421
14
        "BIT_STRING_SIZE_24", HFILL }},
8422
14
    { &hf_ulp_refCI_NR_Cell_Id,
8423
14
      { "refCI", "ulp.refCI_NR_Cell_Id",
8424
14
        FT_BYTES, BASE_NONE, NULL, 0,
8425
14
        "BIT_STRING_SIZE_36", HFILL }},
8426
14
    { &hf_ulp_GeoAreaMappingList_item,
8427
14
      { "GeoAreaIndex", "ulp.GeoAreaIndex",
8428
14
        FT_UINT32, BASE_DEC, NULL, 0,
8429
14
        NULL, HFILL }},
8430
14
    { &hf_ulp_supportedNetworkInformation,
8431
14
      { "supportedNetworkInformation", "ulp.supportedNetworkInformation_element",
8432
14
        FT_NONE, BASE_NONE, NULL, 0,
8433
14
        NULL, HFILL }},
8434
14
    { &hf_ulp_reportingMode,
8435
14
      { "reportingMode", "ulp.reportingMode_element",
8436
14
        FT_NONE, BASE_NONE, NULL, 0,
8437
14
        NULL, HFILL }},
8438
14
    { &hf_ulp_gnssPosTechnology,
8439
14
      { "gnssPosTechnology", "ulp.gnssPosTechnology_element",
8440
14
        FT_NONE, BASE_NONE, NULL, 0,
8441
14
        NULL, HFILL }},
8442
14
    { &hf_ulp_repMode,
8443
14
      { "repMode", "ulp.repMode",
8444
14
        FT_UINT32, BASE_DEC, VALS(ulp_RepModee_vals), 0,
8445
14
        "RepModee", HFILL }},
8446
14
    { &hf_ulp_batchRepConditions,
8447
14
      { "batchRepConditions", "ulp.batchRepConditions",
8448
14
        FT_UINT32, BASE_DEC, VALS(ulp_BatchRepConditions_vals), 0,
8449
14
        NULL, HFILL }},
8450
14
    { &hf_ulp_batchRepType,
8451
14
      { "batchRepType", "ulp.batchRepType_element",
8452
14
        FT_NONE, BASE_NONE, NULL, 0,
8453
14
        NULL, HFILL }},
8454
14
    { &hf_ulp_num_interval,
8455
14
      { "num-interval", "ulp.num_interval",
8456
14
        FT_UINT32, BASE_DEC, NULL, 0,
8457
14
        "INTEGER_1_1024", HFILL }},
8458
14
    { &hf_ulp_num_minutes,
8459
14
      { "num-minutes", "ulp.num_minutes",
8460
14
        FT_UINT32, BASE_DEC, NULL, 0,
8461
14
        "INTEGER_1_2048", HFILL }},
8462
14
    { &hf_ulp_endofsession,
8463
14
      { "endofsession", "ulp.endofsession_element",
8464
14
        FT_NONE, BASE_NONE, NULL, 0,
8465
14
        NULL, HFILL }},
8466
14
    { &hf_ulp_reportPosition,
8467
14
      { "reportPosition", "ulp.reportPosition",
8468
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8469
14
        "BOOLEAN", HFILL }},
8470
14
    { &hf_ulp_reportMeasurements,
8471
14
      { "reportMeasurements", "ulp.reportMeasurements",
8472
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8473
14
        "BOOLEAN", HFILL }},
8474
14
    { &hf_ulp_intermediateReports,
8475
14
      { "intermediateReports", "ulp.intermediateReports",
8476
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8477
14
        "BOOLEAN", HFILL }},
8478
14
    { &hf_ulp_discardOldest,
8479
14
      { "discardOldest", "ulp.discardOldest",
8480
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8481
14
        "BOOLEAN", HFILL }},
8482
14
    { &hf_ulp_sessionList,
8483
14
      { "sessionList", "ulp.sessionList",
8484
14
        FT_UINT32, BASE_DEC, NULL, 0,
8485
14
        NULL, HFILL }},
8486
14
    { &hf_ulp_reportDataList,
8487
14
      { "reportDataList", "ulp.reportDataList",
8488
14
        FT_UINT32, BASE_DEC, NULL, 0,
8489
14
        NULL, HFILL }},
8490
14
    { &hf_ulp_moreComponents,
8491
14
      { "moreComponents", "ulp.moreComponents_element",
8492
14
        FT_NONE, BASE_NONE, NULL, 0,
8493
14
        NULL, HFILL }},
8494
14
    { &hf_ulp_SessionList_item,
8495
14
      { "SessionInformation", "ulp.SessionInformation_element",
8496
14
        FT_NONE, BASE_NONE, NULL, 0,
8497
14
        NULL, HFILL }},
8498
14
    { &hf_ulp_ReportDataList_item,
8499
14
      { "ReportData", "ulp.ReportData_element",
8500
14
        FT_NONE, BASE_NONE, NULL, 0,
8501
14
        NULL, HFILL }},
8502
14
    { &hf_ulp_positionData,
8503
14
      { "positionData", "ulp.positionData_element",
8504
14
        FT_NONE, BASE_NONE, NULL, 0,
8505
14
        NULL, HFILL }},
8506
14
    { &hf_ulp_resultCode,
8507
14
      { "resultCode", "ulp.resultCode",
8508
14
        FT_UINT32, BASE_DEC, VALS(ulp_ResultCode_vals), 0,
8509
14
        NULL, HFILL }},
8510
14
    { &hf_ulp_timestamp_choice,
8511
14
      { "timestamp", "ulp.timestamp_choice",
8512
14
        FT_UINT32, BASE_DEC, VALS(ulp_TimeStamp_vals), 0,
8513
14
        NULL, HFILL }},
8514
14
    { &hf_ulp_ganssSignalsInfo,
8515
14
      { "ganssSignalsInfo", "ulp.ganssSignalsInfo",
8516
14
        FT_UINT32, BASE_DEC, NULL, 0,
8517
14
        NULL, HFILL }},
8518
14
    { &hf_ulp_GANSSsignalsInfo_item,
8519
14
      { "GANSSSignalsDescription", "ulp.GANSSSignalsDescription_element",
8520
14
        FT_NONE, BASE_NONE, NULL, 0,
8521
14
        NULL, HFILL }},
8522
14
    { &hf_ulp_ganssId,
8523
14
      { "ganssId", "ulp.ganssId",
8524
14
        FT_UINT32, BASE_DEC, VALS(ulp_ganss_id_vals), 0,
8525
14
        "INTEGER_0_15", HFILL }},
8526
14
    { &hf_ulp_gANSSSignals,
8527
14
      { "gANSSSignals", "ulp.gANSSSignals",
8528
14
        FT_BYTES, BASE_NONE, NULL, 0,
8529
14
        NULL, HFILL }},
8530
14
    { &hf_ulp_absoluteTime,
8531
14
      { "absoluteTime", "ulp.absoluteTime",
8532
14
        FT_STRING, BASE_NONE, NULL, 0,
8533
14
        "UTCTime", HFILL }},
8534
14
    { &hf_ulp_relativeTime,
8535
14
      { "relativeTime", "ulp.relativeTime",
8536
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8537
14
        "INTEGER_0_31536000", HFILL }},
8538
14
    { &hf_ulp_notificationMode,
8539
14
      { "notificationMode", "ulp.notificationMode",
8540
14
        FT_UINT32, BASE_DEC, VALS(ulp_NotificationMode_vals), 0,
8541
14
        NULL, HFILL }},
8542
14
    { &hf_ulp_e_SLPAddress,
8543
14
      { "e-SLPAddress", "ulp.e_SLPAddress",
8544
14
        FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
8545
14
        "SLPAddress", HFILL }},
8546
14
    { &hf_ulp_historicReporting,
8547
14
      { "historicReporting", "ulp.historicReporting_element",
8548
14
        FT_NONE, BASE_NONE, NULL, 0,
8549
14
        NULL, HFILL }},
8550
14
    { &hf_ulp_protectionLevel,
8551
14
      { "protectionLevel", "ulp.protectionLevel_element",
8552
14
        FT_NONE, BASE_NONE, NULL, 0,
8553
14
        NULL, HFILL }},
8554
14
    { &hf_ulp_minimumMajorVersion,
8555
14
      { "minimumMajorVersion", "ulp.minimumMajorVersion",
8556
14
        FT_UINT32, BASE_DEC, NULL, 0,
8557
14
        "INTEGER_0_255", HFILL }},
8558
14
    { &hf_ulp_allowedReportingType,
8559
14
      { "allowedReportingType", "ulp.allowedReportingType",
8560
14
        FT_UINT32, BASE_DEC, VALS(ulp_AllowedReportingType_vals), 0,
8561
14
        NULL, HFILL }},
8562
14
    { &hf_ulp_reportingCriteria,
8563
14
      { "reportingCriteria", "ulp.reportingCriteria_element",
8564
14
        FT_NONE, BASE_NONE, NULL, 0,
8565
14
        NULL, HFILL }},
8566
14
    { &hf_ulp_timeWindow,
8567
14
      { "timeWindow", "ulp.timeWindow_element",
8568
14
        FT_NONE, BASE_NONE, NULL, 0,
8569
14
        NULL, HFILL }},
8570
14
    { &hf_ulp_maxNumberofReports,
8571
14
      { "maxNumberofReports", "ulp.maxNumberofReports",
8572
14
        FT_UINT32, BASE_DEC, NULL, 0,
8573
14
        "INTEGER_1_65536", HFILL }},
8574
14
    { &hf_ulp_minTimeInterval,
8575
14
      { "minTimeInterval", "ulp.minTimeInterval",
8576
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8577
14
        "INTEGER_1_86400", HFILL }},
8578
14
    { &hf_ulp_startTime_01,
8579
14
      { "startTime", "ulp.startTime",
8580
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_minutes), 0,
8581
14
        "INTEGER_M525600_M1", HFILL }},
8582
14
    { &hf_ulp_stopTime_01,
8583
14
      { "stopTime", "ulp.stopTime",
8584
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_minutes), 0,
8585
14
        "INTEGER_M525599_0", HFILL }},
8586
14
    { &hf_ulp_protlevel,
8587
14
      { "protlevel", "ulp.protlevel",
8588
14
        FT_UINT32, BASE_DEC, VALS(ulp_ProtLevel_vals), 0,
8589
14
        NULL, HFILL }},
8590
14
    { &hf_ulp_basicProtectionParams,
8591
14
      { "basicProtectionParams", "ulp.basicProtectionParams_element",
8592
14
        FT_NONE, BASE_NONE, NULL, 0,
8593
14
        NULL, HFILL }},
8594
14
    { &hf_ulp_keyIdentifier,
8595
14
      { "keyIdentifier", "ulp.keyIdentifier",
8596
14
        FT_BYTES, BASE_NONE, NULL, 0,
8597
14
        "OCTET_STRING_SIZE_8", HFILL }},
8598
14
    { &hf_ulp_basicReplayCounter,
8599
14
      { "basicReplayCounter", "ulp.basicReplayCounter",
8600
14
        FT_UINT32, BASE_DEC, NULL, 0,
8601
14
        "INTEGER_0_65535", HFILL }},
8602
14
    { &hf_ulp_basicMAC,
8603
14
      { "basicMAC", "ulp.basicMAC",
8604
14
        FT_BYTES, BASE_NONE, NULL, 0,
8605
14
        "BIT_STRING_SIZE_32", HFILL }},
8606
14
    { &hf_ulp_initialApproximateposition,
8607
14
      { "initialApproximateposition", "ulp.initialApproximateposition_element",
8608
14
        FT_NONE, BASE_NONE, NULL, 0,
8609
14
        "Position", HFILL }},
8610
14
    { &hf_ulp_utran_GPSReferenceTimeResult,
8611
14
      { "utran-GPSReferenceTimeResult", "ulp.utran_GPSReferenceTimeResult_element",
8612
14
        FT_NONE, BASE_NONE, NULL, 0,
8613
14
        NULL, HFILL }},
8614
14
    { &hf_ulp_utran_GANSSReferenceTimeResult,
8615
14
      { "utran-GANSSReferenceTimeResult", "ulp.utran_GANSSReferenceTimeResult_element",
8616
14
        FT_NONE, BASE_NONE, NULL, 0,
8617
14
        NULL, HFILL }},
8618
14
    { &hf_ulp_utran_GPSReferenceTimeAssistance,
8619
14
      { "utran-GPSReferenceTimeAssistance", "ulp.utran_GPSReferenceTimeAssistance_element",
8620
14
        FT_NONE, BASE_NONE, NULL, 0,
8621
14
        NULL, HFILL }},
8622
14
    { &hf_ulp_utran_GANSSReferenceTimeAssistance,
8623
14
      { "utran-GANSSReferenceTimeAssistance", "ulp.utran_GANSSReferenceTimeAssistance_element",
8624
14
        FT_NONE, BASE_NONE, NULL, 0,
8625
14
        NULL, HFILL }},
8626
14
    { &hf_ulp_ver2_HighAccuracyPosition,
8627
14
      { "ver2-HighAccuracyPosition", "ulp.ver2_HighAccuracyPosition_element",
8628
14
        FT_NONE, BASE_NONE, NULL, 0,
8629
14
        NULL, HFILL }},
8630
14
    { &hf_ulp_emergencyCallLocation,
8631
14
      { "emergencyCallLocation", "ulp.emergencyCallLocation_element",
8632
14
        FT_NONE, BASE_NONE, NULL, 0,
8633
14
        NULL, HFILL }},
8634
14
    { &hf_ulp_serviceCapabilities,
8635
14
      { "serviceCapabilities", "ulp.serviceCapabilities_element",
8636
14
        FT_NONE, BASE_NONE, NULL, 0,
8637
14
        NULL, HFILL }},
8638
14
    { &hf_ulp_supportedBearers,
8639
14
      { "supportedBearers", "ulp.supportedBearers_element",
8640
14
        FT_NONE, BASE_NONE, NULL, 0,
8641
14
        NULL, HFILL }},
8642
14
    { &hf_ulp_servicesSupported,
8643
14
      { "servicesSupported", "ulp.servicesSupported_element",
8644
14
        FT_NONE, BASE_NONE, NULL, 0,
8645
14
        NULL, HFILL }},
8646
14
    { &hf_ulp_reportingCapabilities,
8647
14
      { "reportingCapabilities", "ulp.reportingCapabilities_element",
8648
14
        FT_NONE, BASE_NONE, NULL, 0,
8649
14
        "ReportingCap", HFILL }},
8650
14
    { &hf_ulp_eventTriggerCapabilities,
8651
14
      { "eventTriggerCapabilities", "ulp.eventTriggerCapabilities_element",
8652
14
        FT_NONE, BASE_NONE, NULL, 0,
8653
14
        NULL, HFILL }},
8654
14
    { &hf_ulp_sessionCapabilities,
8655
14
      { "sessionCapabilities", "ulp.sessionCapabilities_element",
8656
14
        FT_NONE, BASE_NONE, NULL, 0,
8657
14
        NULL, HFILL }},
8658
14
    { &hf_ulp_periodicTrigger,
8659
14
      { "periodicTrigger", "ulp.periodicTrigger",
8660
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8661
14
        "BOOLEAN", HFILL }},
8662
14
    { &hf_ulp_areaEventTrigger,
8663
14
      { "areaEventTrigger", "ulp.areaEventTrigger",
8664
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8665
14
        "BOOLEAN", HFILL }},
8666
14
    { &hf_ulp_geoAreaShapesSupported,
8667
14
      { "geoAreaShapesSupported", "ulp.geoAreaShapesSupported_element",
8668
14
        FT_NONE, BASE_NONE, NULL, 0,
8669
14
        NULL, HFILL }},
8670
14
    { &hf_ulp_maxNumGeoAreaSupported,
8671
14
      { "maxNumGeoAreaSupported", "ulp.maxNumGeoAreaSupported",
8672
14
        FT_UINT32, BASE_DEC, NULL, 0,
8673
14
        "INTEGER_0_maxNumGeoArea", HFILL }},
8674
14
    { &hf_ulp_maxAreaIdListSupported,
8675
14
      { "maxAreaIdListSupported", "ulp.maxAreaIdListSupported",
8676
14
        FT_UINT32, BASE_DEC, NULL, 0,
8677
14
        "INTEGER_0_maxAreaIdList", HFILL }},
8678
14
    { &hf_ulp_maxAreaIdSupportedPerList,
8679
14
      { "maxAreaIdSupportedPerList", "ulp.maxAreaIdSupportedPerList",
8680
14
        FT_UINT32, BASE_DEC, NULL, 0,
8681
14
        "INTEGER_0_maxAreaId", HFILL }},
8682
14
    { &hf_ulp_ellipticalArea_01,
8683
14
      { "ellipticalArea", "ulp.ellipticalArea",
8684
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8685
14
        "BOOLEAN", HFILL }},
8686
14
    { &hf_ulp_polygonArea_01,
8687
14
      { "polygonArea", "ulp.polygonArea",
8688
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8689
14
        "BOOLEAN", HFILL }},
8690
14
    { &hf_ulp_maxNumberTotalSessions,
8691
14
      { "maxNumberTotalSessions", "ulp.maxNumberTotalSessions",
8692
14
        FT_UINT32, BASE_DEC, NULL, 0,
8693
14
        "INTEGER_1_128", HFILL }},
8694
14
    { &hf_ulp_maxNumberPeriodicSessions,
8695
14
      { "maxNumberPeriodicSessions", "ulp.maxNumberPeriodicSessions",
8696
14
        FT_UINT32, BASE_DEC, NULL, 0,
8697
14
        "INTEGER_1_32", HFILL }},
8698
14
    { &hf_ulp_maxNumberTriggeredSessions,
8699
14
      { "maxNumberTriggeredSessions", "ulp.maxNumberTriggeredSessions",
8700
14
        FT_UINT32, BASE_DEC, NULL, 0,
8701
14
        "INTEGER_1_32", HFILL }},
8702
14
    { &hf_ulp_gsm,
8703
14
      { "gsm", "ulp.gsm",
8704
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8705
14
        "BOOLEAN", HFILL }},
8706
14
    { &hf_ulp_wcdma,
8707
14
      { "wcdma", "ulp.wcdma",
8708
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8709
14
        "BOOLEAN", HFILL }},
8710
14
    { &hf_ulp_lte,
8711
14
      { "lte", "ulp.lte",
8712
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8713
14
        "BOOLEAN", HFILL }},
8714
14
    { &hf_ulp_cdma,
8715
14
      { "cdma", "ulp.cdma",
8716
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8717
14
        "BOOLEAN", HFILL }},
8718
14
    { &hf_ulp_hprd,
8719
14
      { "hprd", "ulp.hprd",
8720
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8721
14
        "BOOLEAN", HFILL }},
8722
14
    { &hf_ulp_umb,
8723
14
      { "umb", "ulp.umb",
8724
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8725
14
        "BOOLEAN", HFILL }},
8726
14
    { &hf_ulp_wlan,
8727
14
      { "wlan", "ulp.wlan",
8728
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8729
14
        "BOOLEAN", HFILL }},
8730
14
    { &hf_ulp_wiMAX,
8731
14
      { "wiMAX", "ulp.wiMAX",
8732
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8733
14
        "BOOLEAN", HFILL }},
8734
14
    { &hf_ulp_nr,
8735
14
      { "nr", "ulp.nr",
8736
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8737
14
        "BOOLEAN", HFILL }},
8738
14
    { &hf_ulp_lpp,
8739
14
      { "lpp", "ulp.lpp",
8740
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8741
14
        "BOOLEAN", HFILL }},
8742
14
    { &hf_ulp_posProtocolVersionRRLP,
8743
14
      { "posProtocolVersionRRLP", "ulp.posProtocolVersionRRLP_element",
8744
14
        FT_NONE, BASE_NONE, NULL, 0,
8745
14
        "PosProtocolVersion3GPP", HFILL }},
8746
14
    { &hf_ulp_posProtocolVersionRRC,
8747
14
      { "posProtocolVersionRRC", "ulp.posProtocolVersionRRC_element",
8748
14
        FT_NONE, BASE_NONE, NULL, 0,
8749
14
        "PosProtocolVersion3GPP", HFILL }},
8750
14
    { &hf_ulp_posProtocolVersionTIA801,
8751
14
      { "posProtocolVersionTIA801", "ulp.posProtocolVersionTIA801",
8752
14
        FT_UINT32, BASE_DEC, NULL, 0,
8753
14
        "PosProtocolVersion3GPP2", HFILL }},
8754
14
    { &hf_ulp_posProtocolVersionLPP,
8755
14
      { "posProtocolVersionLPP", "ulp.posProtocolVersionLPP_element",
8756
14
        FT_NONE, BASE_NONE, NULL, 0,
8757
14
        "PosProtocolVersion3GPP", HFILL }},
8758
14
    { &hf_ulp_lppe,
8759
14
      { "lppe", "ulp.lppe",
8760
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8761
14
        "BOOLEAN", HFILL }},
8762
14
    { &hf_ulp_posProtocolVersionLPPe,
8763
14
      { "posProtocolVersionLPPe", "ulp.posProtocolVersionLPPe_element",
8764
14
        FT_NONE, BASE_NONE, NULL, 0,
8765
14
        "PosProtocolVersionOMA", HFILL }},
8766
14
    { &hf_ulp_majorVersionField,
8767
14
      { "majorVersionField", "ulp.majorVersionField",
8768
14
        FT_UINT32, BASE_DEC, NULL, 0,
8769
14
        "INTEGER_0_255", HFILL }},
8770
14
    { &hf_ulp_technicalVersionField,
8771
14
      { "technicalVersionField", "ulp.technicalVersionField",
8772
14
        FT_UINT32, BASE_DEC, NULL, 0,
8773
14
        "INTEGER_0_255", HFILL }},
8774
14
    { &hf_ulp_editorialVersionField,
8775
14
      { "editorialVersionField", "ulp.editorialVersionField",
8776
14
        FT_UINT32, BASE_DEC, NULL, 0,
8777
14
        "INTEGER_0_255", HFILL }},
8778
14
    { &hf_ulp_PosProtocolVersion3GPP2_item,
8779
14
      { "Supported3GPP2PosProtocolVersion", "ulp.Supported3GPP2PosProtocolVersion_element",
8780
14
        FT_NONE, BASE_NONE, NULL, 0,
8781
14
        NULL, HFILL }},
8782
14
    { &hf_ulp_revisionNumber,
8783
14
      { "revisionNumber", "ulp.revisionNumber",
8784
14
        FT_BYTES, BASE_NONE, NULL, 0,
8785
14
        "BIT_STRING_SIZE_6", HFILL }},
8786
14
    { &hf_ulp_pointReleaseNumber,
8787
14
      { "pointReleaseNumber", "ulp.pointReleaseNumber",
8788
14
        FT_UINT32, BASE_DEC, NULL, 0,
8789
14
        "INTEGER_0_255", HFILL }},
8790
14
    { &hf_ulp_internalEditLevel,
8791
14
      { "internalEditLevel", "ulp.internalEditLevel",
8792
14
        FT_UINT32, BASE_DEC, NULL, 0,
8793
14
        "INTEGER_0_255", HFILL }},
8794
14
    { &hf_ulp_minorVersionField,
8795
14
      { "minorVersionField", "ulp.minorVersionField",
8796
14
        FT_UINT32, BASE_DEC, NULL, 0,
8797
14
        "INTEGER_0_255", HFILL }},
8798
14
    { &hf_ulp_gANSSPositionMethods,
8799
14
      { "gANSSPositionMethods", "ulp.gANSSPositionMethods",
8800
14
        FT_UINT32, BASE_DEC, NULL, 0,
8801
14
        NULL, HFILL }},
8802
14
    { &hf_ulp_additionalPositioningMethods,
8803
14
      { "additionalPositioningMethods", "ulp.additionalPositioningMethods",
8804
14
        FT_UINT32, BASE_DEC, NULL, 0,
8805
14
        NULL, HFILL }},
8806
14
    { &hf_ulp_GANSSPositionMethods_item,
8807
14
      { "GANSSPositionMethod", "ulp.GANSSPositionMethod_element",
8808
14
        FT_NONE, BASE_NONE, NULL, 0,
8809
14
        NULL, HFILL }},
8810
14
    { &hf_ulp_ganssSBASid,
8811
14
      { "ganssSBASid", "ulp.ganssSBASid",
8812
14
        FT_UINT8, BASE_DEC, VALS(ulp_ganss_sbas_id_vals), 0,
8813
14
        NULL, HFILL }},
8814
14
    { &hf_ulp_gANSSPositioningMethodTypes,
8815
14
      { "gANSSPositioningMethodTypes", "ulp.gANSSPositioningMethodTypes_element",
8816
14
        FT_NONE, BASE_NONE, NULL, 0,
8817
14
        NULL, HFILL }},
8818
14
    { &hf_ulp_rtk,
8819
14
      { "rtk", "ulp.rtk_element",
8820
14
        FT_NONE, BASE_NONE, NULL, 0,
8821
14
        NULL, HFILL }},
8822
14
    { &hf_ulp_osr,
8823
14
      { "osr", "ulp.osr",
8824
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8825
14
        "BOOLEAN", HFILL }},
8826
14
    { &hf_ulp_setAssisted,
8827
14
      { "setAssisted", "ulp.setAssisted",
8828
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8829
14
        "BOOLEAN", HFILL }},
8830
14
    { &hf_ulp_setBased,
8831
14
      { "setBased", "ulp.setBased",
8832
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8833
14
        "BOOLEAN", HFILL }},
8834
14
    { &hf_ulp_autonomous,
8835
14
      { "autonomous", "ulp.autonomous",
8836
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8837
14
        "BOOLEAN", HFILL }},
8838
14
    { &hf_ulp_AdditionalPositioningMethods_item,
8839
14
      { "AddPosSupport-Element", "ulp.AddPosSupport_Element_element",
8840
14
        FT_NONE, BASE_NONE, NULL, 0,
8841
14
        NULL, HFILL }},
8842
14
    { &hf_ulp_addPosID,
8843
14
      { "addPosID", "ulp.addPosID",
8844
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_addPosID_vals), 0,
8845
14
        NULL, HFILL }},
8846
14
    { &hf_ulp_addPosMode,
8847
14
      { "addPosMode", "ulp.addPosMode",
8848
14
        FT_BYTES, BASE_NONE, NULL, 0,
8849
14
        NULL, HFILL }},
8850
14
    { &hf_ulp_ganssRequestedCommonAssistanceDataList,
8851
14
      { "ganssRequestedCommonAssistanceDataList", "ulp.ganssRequestedCommonAssistanceDataList_element",
8852
14
        FT_NONE, BASE_NONE, NULL, 0,
8853
14
        NULL, HFILL }},
8854
14
    { &hf_ulp_ganssRequestedGenericAssistanceDataList,
8855
14
      { "ganssRequestedGenericAssistanceDataList", "ulp.ganssRequestedGenericAssistanceDataList",
8856
14
        FT_UINT32, BASE_DEC, NULL, 0,
8857
14
        NULL, HFILL }},
8858
14
    { &hf_ulp_extendedEphemeris,
8859
14
      { "extendedEphemeris", "ulp.extendedEphemeris_element",
8860
14
        FT_NONE, BASE_NONE, NULL, 0,
8861
14
        NULL, HFILL }},
8862
14
    { &hf_ulp_extendedEphemerisCheck,
8863
14
      { "extendedEphemerisCheck", "ulp.extendedEphemerisCheck_element",
8864
14
        FT_NONE, BASE_NONE, NULL, 0,
8865
14
        "ExtendedEphCheck", HFILL }},
8866
14
    { &hf_ulp_ganssReferenceTime,
8867
14
      { "ganssReferenceTime", "ulp.ganssReferenceTime",
8868
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8869
14
        "BOOLEAN", HFILL }},
8870
14
    { &hf_ulp_ganssIonosphericModel,
8871
14
      { "ganssIonosphericModel", "ulp.ganssIonosphericModel",
8872
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8873
14
        "BOOLEAN", HFILL }},
8874
14
    { &hf_ulp_ganssAdditionalIonosphericModelForDataID00,
8875
14
      { "ganssAdditionalIonosphericModelForDataID00", "ulp.ganssAdditionalIonosphericModelForDataID00",
8876
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8877
14
        "BOOLEAN", HFILL }},
8878
14
    { &hf_ulp_ganssAdditionalIonosphericModelForDataID11,
8879
14
      { "ganssAdditionalIonosphericModelForDataID11", "ulp.ganssAdditionalIonosphericModelForDataID11",
8880
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8881
14
        "BOOLEAN", HFILL }},
8882
14
    { &hf_ulp_ganssEarthOrientationParameters,
8883
14
      { "ganssEarthOrientationParameters", "ulp.ganssEarthOrientationParameters",
8884
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8885
14
        "BOOLEAN", HFILL }},
8886
14
    { &hf_ulp_ganssAdditionalIonosphericModelForDataID01,
8887
14
      { "ganssAdditionalIonosphericModelForDataID01", "ulp.ganssAdditionalIonosphericModelForDataID01",
8888
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8889
14
        "BOOLEAN", HFILL }},
8890
14
    { &hf_ulp_GanssRequestedGenericAssistanceDataList_item,
8891
14
      { "GanssReqGenericData", "ulp.GanssReqGenericData_element",
8892
14
        FT_NONE, BASE_NONE, NULL, 0,
8893
14
        NULL, HFILL }},
8894
14
    { &hf_ulp_ganssId_01,
8895
14
      { "ganssId", "ulp.ganssId",
8896
14
        FT_UINT32, BASE_DEC, VALS(ulp_ganss_id_vals), 0,
8897
14
        NULL, HFILL }},
8898
14
    { &hf_ulp_ganssSBASid_01,
8899
14
      { "ganssSBASid", "ulp.ganssSBASid",
8900
14
        FT_UINT8, BASE_DEC, VALS(ulp_ganss_sbas_id_vals), 0,
8901
14
        "T_ganssSBASid_01", HFILL }},
8902
14
    { &hf_ulp_ganssRealTimeIntegrity,
8903
14
      { "ganssRealTimeIntegrity", "ulp.ganssRealTimeIntegrity",
8904
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8905
14
        "BOOLEAN", HFILL }},
8906
14
    { &hf_ulp_ganssDifferentialCorrection,
8907
14
      { "ganssDifferentialCorrection", "ulp.ganssDifferentialCorrection",
8908
14
        FT_BYTES, BASE_NONE, NULL, 0,
8909
14
        "DGANSS_Sig_Id_Req", HFILL }},
8910
14
    { &hf_ulp_ganssAlmanac,
8911
14
      { "ganssAlmanac", "ulp.ganssAlmanac",
8912
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8913
14
        "BOOLEAN", HFILL }},
8914
14
    { &hf_ulp_ganssNavigationModelData,
8915
14
      { "ganssNavigationModelData", "ulp.ganssNavigationModelData_element",
8916
14
        FT_NONE, BASE_NONE, NULL, 0,
8917
14
        NULL, HFILL }},
8918
14
    { &hf_ulp_ganssTimeModels,
8919
14
      { "ganssTimeModels", "ulp.ganssTimeModels",
8920
14
        FT_BYTES, BASE_NONE, NULL, 0,
8921
14
        NULL, HFILL }},
8922
14
    { &hf_ulp_ganssReferenceMeasurementInfo,
8923
14
      { "ganssReferenceMeasurementInfo", "ulp.ganssReferenceMeasurementInfo",
8924
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8925
14
        "BOOLEAN", HFILL }},
8926
14
    { &hf_ulp_ganssDataBits,
8927
14
      { "ganssDataBits", "ulp.ganssDataBits_element",
8928
14
        FT_NONE, BASE_NONE, NULL, 0,
8929
14
        NULL, HFILL }},
8930
14
    { &hf_ulp_ganssUTCModel,
8931
14
      { "ganssUTCModel", "ulp.ganssUTCModel",
8932
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8933
14
        "BOOLEAN", HFILL }},
8934
14
    { &hf_ulp_ganssAdditionalDataChoices,
8935
14
      { "ganssAdditionalDataChoices", "ulp.ganssAdditionalDataChoices_element",
8936
14
        FT_NONE, BASE_NONE, NULL, 0,
8937
14
        NULL, HFILL }},
8938
14
    { &hf_ulp_ganssAuxiliaryInformation,
8939
14
      { "ganssAuxiliaryInformation", "ulp.ganssAuxiliaryInformation",
8940
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8941
14
        "BOOLEAN", HFILL }},
8942
14
    { &hf_ulp_ganssExtendedEphemeris,
8943
14
      { "ganssExtendedEphemeris", "ulp.ganssExtendedEphemeris_element",
8944
14
        FT_NONE, BASE_NONE, NULL, 0,
8945
14
        "ExtendedEphemeris", HFILL }},
8946
14
    { &hf_ulp_ganssExtendedEphemerisCheck,
8947
14
      { "ganssExtendedEphemerisCheck", "ulp.ganssExtendedEphemerisCheck_element",
8948
14
        FT_NONE, BASE_NONE, NULL, 0,
8949
14
        "GanssExtendedEphCheck", HFILL }},
8950
14
    { &hf_ulp_bds_DifferentialCorrection,
8951
14
      { "bds-DifferentialCorrection", "ulp.bds_DifferentialCorrection",
8952
14
        FT_BYTES, BASE_NONE, NULL, 0,
8953
14
        "BDS_Sig_Id_Req", HFILL }},
8954
14
    { &hf_ulp_bds_GridModelReq,
8955
14
      { "bds-GridModelReq", "ulp.bds_GridModelReq",
8956
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8957
14
        "BOOLEAN", HFILL }},
8958
14
    { &hf_ulp_ganssWeek,
8959
14
      { "ganssWeek", "ulp.ganssWeek",
8960
14
        FT_UINT32, BASE_DEC, NULL, 0,
8961
14
        NULL, HFILL }},
8962
14
    { &hf_ulp_ganssToe,
8963
14
      { "ganssToe", "ulp.ganssToe",
8964
14
        FT_UINT32, BASE_DEC, NULL, 0,
8965
14
        NULL, HFILL }},
8966
14
    { &hf_ulp_t_toeLimit,
8967
14
      { "t-toeLimit", "ulp.t_toeLimit",
8968
14
        FT_UINT32, BASE_DEC, NULL, 0,
8969
14
        "T_t_toeLimit", HFILL }},
8970
14
    { &hf_ulp_satellitesListRelatedDataList,
8971
14
      { "satellitesListRelatedDataList", "ulp.satellitesListRelatedDataList",
8972
14
        FT_UINT32, BASE_DEC, NULL, 0,
8973
14
        NULL, HFILL }},
8974
14
    { &hf_ulp_SatellitesListRelatedDataList_item,
8975
14
      { "SatellitesListRelatedData", "ulp.SatellitesListRelatedData_element",
8976
14
        FT_NONE, BASE_NONE, NULL, 0,
8977
14
        NULL, HFILL }},
8978
14
    { &hf_ulp_iod,
8979
14
      { "iod", "ulp.iod",
8980
14
        FT_UINT32, BASE_DEC, NULL, 0,
8981
14
        "INTEGER_0_1023", HFILL }},
8982
14
    { &hf_ulp_ganssTODmin,
8983
14
      { "ganssTODmin", "ulp.ganssTODmin",
8984
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
8985
14
        "INTEGER_0_59", HFILL }},
8986
14
    { &hf_ulp_reqDataBitAssistanceList,
8987
14
      { "reqDataBitAssistanceList", "ulp.reqDataBitAssistanceList_element",
8988
14
        FT_NONE, BASE_NONE, NULL, 0,
8989
14
        NULL, HFILL }},
8990
14
    { &hf_ulp_gnssSignals,
8991
14
      { "gnssSignals", "ulp.gnssSignals",
8992
14
        FT_BYTES, BASE_NONE, NULL, 0,
8993
14
        "GANSSSignals", HFILL }},
8994
14
    { &hf_ulp_ganssDataBitInterval,
8995
14
      { "ganssDataBitInterval", "ulp.ganssDataBitInterval",
8996
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_ganssDataBitInterval_fmt), 0,
8997
14
        "INTEGER_0_15", HFILL }},
8998
14
    { &hf_ulp_ganssDataBitSatList,
8999
14
      { "ganssDataBitSatList", "ulp.ganssDataBitSatList",
9000
14
        FT_UINT32, BASE_DEC, NULL, 0,
9001
14
        NULL, HFILL }},
9002
14
    { &hf_ulp_ganssDataBitSatList_item,
9003
14
      { "ganssDataBitSatList item", "ulp.ganssDataBitSatList_item",
9004
14
        FT_UINT32, BASE_DEC, NULL, 0,
9005
14
        "INTEGER_0_63", HFILL }},
9006
14
    { &hf_ulp_orbitModelID,
9007
14
      { "orbitModelID", "ulp.orbitModelID",
9008
14
        FT_UINT32, BASE_DEC, NULL, 0,
9009
14
        "INTEGER_0_7", HFILL }},
9010
14
    { &hf_ulp_clockModelID,
9011
14
      { "clockModelID", "ulp.clockModelID",
9012
14
        FT_UINT32, BASE_DEC, NULL, 0,
9013
14
        "INTEGER_0_7", HFILL }},
9014
14
    { &hf_ulp_utcModelID,
9015
14
      { "utcModelID", "ulp.utcModelID",
9016
14
        FT_UINT32, BASE_DEC, NULL, 0,
9017
14
        "INTEGER_0_7", HFILL }},
9018
14
    { &hf_ulp_almanacModelID,
9019
14
      { "almanacModelID", "ulp.almanacModelID",
9020
14
        FT_UINT32, BASE_DEC, NULL, 0,
9021
14
        "INTEGER_0_7", HFILL }},
9022
14
    { &hf_ulp_validity,
9023
14
      { "validity", "ulp.validity",
9024
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_ExtendedEphemeris_validity_fmt), 0,
9025
14
        "INTEGER_1_256", HFILL }},
9026
14
    { &hf_ulp_beginTime,
9027
14
      { "beginTime", "ulp.beginTime_element",
9028
14
        FT_NONE, BASE_NONE, NULL, 0,
9029
14
        "GPSTime", HFILL }},
9030
14
    { &hf_ulp_endTime,
9031
14
      { "endTime", "ulp.endTime_element",
9032
14
        FT_NONE, BASE_NONE, NULL, 0,
9033
14
        "GPSTime", HFILL }},
9034
14
    { &hf_ulp_beginTime_01,
9035
14
      { "beginTime", "ulp.beginTime_element",
9036
14
        FT_NONE, BASE_NONE, NULL, 0,
9037
14
        "GANSSextEphTime", HFILL }},
9038
14
    { &hf_ulp_endTime_01,
9039
14
      { "endTime", "ulp.endTime_element",
9040
14
        FT_NONE, BASE_NONE, NULL, 0,
9041
14
        "GANSSextEphTime", HFILL }},
9042
14
    { &hf_ulp_gPSWeek,
9043
14
      { "gPSWeek", "ulp.gPSWeek",
9044
14
        FT_UINT32, BASE_DEC, NULL, 0,
9045
14
        "INTEGER_0_1023", HFILL }},
9046
14
    { &hf_ulp_gPSTOWhour,
9047
14
      { "gPSTOWhour", "ulp.gPSTOWhour",
9048
14
        FT_UINT32, BASE_DEC, NULL, 0,
9049
14
        "INTEGER_0_167", HFILL }},
9050
14
    { &hf_ulp_gANSSday,
9051
14
      { "gANSSday", "ulp.gANSSday",
9052
14
        FT_UINT32, BASE_DEC, NULL, 0,
9053
14
        "INTEGER_0_8191", HFILL }},
9054
14
    { &hf_ulp_gANSSTODhour,
9055
14
      { "gANSSTODhour", "ulp.gANSSTODhour",
9056
14
        FT_UINT32, BASE_DEC, NULL, 0,
9057
14
        "INTEGER_0_23", HFILL }},
9058
14
    { &hf_ulp_lPPPayload,
9059
14
      { "lPPPayload", "ulp.lPPPayload",
9060
14
        FT_UINT32, BASE_DEC, NULL, 0,
9061
14
        NULL, HFILL }},
9062
14
    { &hf_ulp_lPPPayload_item,
9063
14
      { "lPPPayload item", "ulp.lPPPayload_item",
9064
14
        FT_BYTES, BASE_NONE, NULL, 0,
9065
14
        NULL, HFILL }},
9066
14
    { &hf_ulp_tia801Payload,
9067
14
      { "tia801Payload", "ulp.tia801Payload",
9068
14
        FT_UINT32, BASE_DEC, NULL, 0,
9069
14
        NULL, HFILL }},
9070
14
    { &hf_ulp_tia801Payload_item,
9071
14
      { "tia801Payload item", "ulp.tia801Payload_item",
9072
14
        FT_BYTES, BASE_NONE, NULL, 0,
9073
14
        "OCTET_STRING_SIZE_1_60000", HFILL }},
9074
14
    { &hf_ulp_maj,
9075
14
      { "maj", "ulp.maj",
9076
14
        FT_UINT32, BASE_DEC, NULL, 0,
9077
14
        "INTEGER_0_255", HFILL }},
9078
14
    { &hf_ulp_min,
9079
14
      { "min", "ulp.min",
9080
14
        FT_UINT32, BASE_DEC, NULL, 0,
9081
14
        "INTEGER_0_255", HFILL }},
9082
14
    { &hf_ulp_servind,
9083
14
      { "servind", "ulp.servind",
9084
14
        FT_UINT32, BASE_DEC, NULL, 0,
9085
14
        "INTEGER_0_255", HFILL }},
9086
14
    { &hf_ulp_setSessionID,
9087
14
      { "setSessionID", "ulp.setSessionID_element",
9088
14
        FT_NONE, BASE_NONE, NULL, 0,
9089
14
        NULL, HFILL }},
9090
14
    { &hf_ulp_slpSessionID,
9091
14
      { "slpSessionID", "ulp.slpSessionID_element",
9092
14
        FT_NONE, BASE_NONE, NULL, 0,
9093
14
        NULL, HFILL }},
9094
14
    { &hf_ulp_sessionId,
9095
14
      { "sessionId", "ulp.sessionId",
9096
14
        FT_UINT32, BASE_DEC, NULL, 0,
9097
14
        "INTEGER_0_65535", HFILL }},
9098
14
    { &hf_ulp_setId,
9099
14
      { "setId", "ulp.setId",
9100
14
        FT_UINT32, BASE_DEC, VALS(ulp_SETId_vals), 0,
9101
14
        NULL, HFILL }},
9102
14
    { &hf_ulp_msisdn,
9103
14
      { "msisdn", "ulp.msisdn",
9104
14
        FT_BYTES, BASE_NONE, NULL, 0,
9105
14
        NULL, HFILL }},
9106
14
    { &hf_ulp_mdn,
9107
14
      { "mdn", "ulp.mdn",
9108
14
        FT_BYTES, BASE_NONE, NULL, 0,
9109
14
        NULL, HFILL }},
9110
14
    { &hf_ulp_min_bit_string,
9111
14
      { "min", "ulp.min_bit_string",
9112
14
        FT_BYTES, BASE_NONE, NULL, 0,
9113
14
        "BIT_STRING_SIZE_34", HFILL }},
9114
14
    { &hf_ulp_imsi,
9115
14
      { "imsi", "ulp.imsi",
9116
14
        FT_BYTES, BASE_NONE, NULL, 0,
9117
14
        NULL, HFILL }},
9118
14
    { &hf_ulp_nai,
9119
14
      { "nai", "ulp.nai",
9120
14
        FT_STRING, BASE_NONE, NULL, 0,
9121
14
        "IA5String_SIZE_1_1000", HFILL }},
9122
14
    { &hf_ulp_iPAddress,
9123
14
      { "iPAddress", "ulp.iPAddress",
9124
14
        FT_UINT32, BASE_DEC, VALS(ulp_IPAddress_vals), 0,
9125
14
        NULL, HFILL }},
9126
14
    { &hf_ulp_ver2_imei,
9127
14
      { "ver2-imei", "ulp.ver2_imei",
9128
14
        FT_BYTES, BASE_NONE, NULL, 0,
9129
14
        "OCTET_STRING_SIZE_8", HFILL }},
9130
14
    { &hf_ulp_sessionSlpID,
9131
14
      { "sessionID", "ulp.sessionSlpID",
9132
14
        FT_BYTES, BASE_NONE, NULL, 0,
9133
14
        "OCTET_STRING_SIZE_4", HFILL }},
9134
14
    { &hf_ulp_slpId,
9135
14
      { "slpId", "ulp.slpId",
9136
14
        FT_UINT32, BASE_DEC, VALS(ulp_SLPAddress_vals), 0,
9137
14
        "SLPAddress", HFILL }},
9138
14
    { &hf_ulp_ipv4Address,
9139
14
      { "ipv4Address", "ulp.ipv4Address",
9140
14
        FT_IPv4, BASE_NONE, NULL, 0,
9141
14
        "OCTET_STRING_SIZE_4", HFILL }},
9142
14
    { &hf_ulp_ipv6Address,
9143
14
      { "ipv6Address", "ulp.ipv6Address",
9144
14
        FT_IPv6, BASE_NONE, NULL, 0,
9145
14
        "OCTET_STRING_SIZE_16", HFILL }},
9146
14
    { &hf_ulp_fqdn,
9147
14
      { "fqdn", "ulp.fqdn",
9148
14
        FT_STRING, BASE_NONE, NULL, 0,
9149
14
        NULL, HFILL }},
9150
14
    { &hf_ulp_cellInfo,
9151
14
      { "cellInfo", "ulp.cellInfo",
9152
14
        FT_UINT32, BASE_DEC, VALS(ulp_CellInfo_vals), 0,
9153
14
        NULL, HFILL }},
9154
14
    { &hf_ulp_status,
9155
14
      { "status", "ulp.status",
9156
14
        FT_UINT32, BASE_DEC, VALS(ulp_Status_vals), 0,
9157
14
        NULL, HFILL }},
9158
14
    { &hf_ulp_gsmCell,
9159
14
      { "gsmCell", "ulp.gsmCell_element",
9160
14
        FT_NONE, BASE_NONE, NULL, 0,
9161
14
        "GsmCellInformation", HFILL }},
9162
14
    { &hf_ulp_wcdmaCell,
9163
14
      { "wcdmaCell", "ulp.wcdmaCell_element",
9164
14
        FT_NONE, BASE_NONE, NULL, 0,
9165
14
        "WcdmaCellInformation", HFILL }},
9166
14
    { &hf_ulp_cdmaCell,
9167
14
      { "cdmaCell", "ulp.cdmaCell_element",
9168
14
        FT_NONE, BASE_NONE, NULL, 0,
9169
14
        "CdmaCellInformation", HFILL }},
9170
14
    { &hf_ulp_ver2_CellInfo_extension,
9171
14
      { "ver2-CellInfo-extension", "ulp.ver2_CellInfo_extension",
9172
14
        FT_UINT32, BASE_DEC, VALS(ulp_Ver2_CellInfo_extension_vals), 0,
9173
14
        NULL, HFILL }},
9174
14
    { &hf_ulp_timestamp,
9175
14
      { "timestamp", "ulp.timestamp",
9176
14
        FT_STRING, BASE_NONE, NULL, 0,
9177
14
        "UTCTime", HFILL }},
9178
14
    { &hf_ulp_positionEstimate,
9179
14
      { "positionEstimate", "ulp.positionEstimate_element",
9180
14
        FT_NONE, BASE_NONE, NULL, 0,
9181
14
        NULL, HFILL }},
9182
14
    { &hf_ulp_latitudeSign,
9183
14
      { "latitudeSign", "ulp.latitudeSign",
9184
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_vals), 0,
9185
14
        NULL, HFILL }},
9186
14
    { &hf_ulp_latitude,
9187
14
      { "latitude", "ulp.latitude",
9188
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_PositionEstimate_latitude_fmt), 0,
9189
14
        "INTEGER_0_8388607", HFILL }},
9190
14
    { &hf_ulp_longitude,
9191
14
      { "longitude", "ulp.longitude",
9192
14
        FT_INT32, BASE_CUSTOM, CF_FUNC(ulp_PositionEstimate_longitude_fmt), 0,
9193
14
        "INTEGER_M8388608_8388607", HFILL }},
9194
14
    { &hf_ulp_uncertainty,
9195
14
      { "uncertainty", "ulp.uncertainty_element",
9196
14
        FT_NONE, BASE_NONE, NULL, 0,
9197
14
        NULL, HFILL }},
9198
14
    { &hf_ulp_uncertaintySemiMajor,
9199
14
      { "uncertaintySemiMajor", "ulp.uncertaintySemiMajor",
9200
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_QoP_horacc_fmt), 0,
9201
14
        "INTEGER_0_127", HFILL }},
9202
14
    { &hf_ulp_uncertaintySemiMinor,
9203
14
      { "uncertaintySemiMinor", "ulp.uncertaintySemiMinor",
9204
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_QoP_horacc_fmt), 0,
9205
14
        "INTEGER_0_127", HFILL }},
9206
14
    { &hf_ulp_orientationMajorAxis,
9207
14
      { "orientationMajorAxis", "ulp.orientationMajorAxis",
9208
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_degree_degrees), 0,
9209
14
        "INTEGER_0_180", HFILL }},
9210
14
    { &hf_ulp_confidence,
9211
14
      { "confidence", "ulp.confidence",
9212
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_percent), 0,
9213
14
        "INTEGER_0_100", HFILL }},
9214
14
    { &hf_ulp_altitudeInfo,
9215
14
      { "altitudeInfo", "ulp.altitudeInfo_element",
9216
14
        FT_NONE, BASE_NONE, NULL, 0,
9217
14
        NULL, HFILL }},
9218
14
    { &hf_ulp_altitudeDirection,
9219
14
      { "altitudeDirection", "ulp.altitudeDirection",
9220
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_altitudeDirection_vals), 0,
9221
14
        NULL, HFILL }},
9222
14
    { &hf_ulp_altitude,
9223
14
      { "altitude", "ulp.altitude",
9224
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_meters), 0,
9225
14
        "INTEGER_0_32767", HFILL }},
9226
14
    { &hf_ulp_altUncertainty,
9227
14
      { "altUncertainty", "ulp.altUncertainty",
9228
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_QoP_veracc_fmt), 0,
9229
14
        "INTEGER_0_127", HFILL }},
9230
14
    { &hf_ulp_refNID_01,
9231
14
      { "refNID", "ulp.refNID",
9232
14
        FT_UINT32, BASE_DEC, NULL, 0,
9233
14
        "INTEGER_0_65535", HFILL }},
9234
14
    { &hf_ulp_refSID_01,
9235
14
      { "refSID", "ulp.refSID",
9236
14
        FT_UINT32, BASE_DEC, NULL, 0,
9237
14
        "INTEGER_0_32767", HFILL }},
9238
14
    { &hf_ulp_refBASELAT,
9239
14
      { "refBASELAT", "ulp.refBASELAT",
9240
14
        FT_UINT32, BASE_DEC, NULL, 0,
9241
14
        "INTEGER_0_4194303", HFILL }},
9242
14
    { &hf_ulp_reBASELONG,
9243
14
      { "reBASELONG", "ulp.reBASELONG",
9244
14
        FT_UINT32, BASE_DEC, NULL, 0,
9245
14
        "INTEGER_0_8388607", HFILL }},
9246
14
    { &hf_ulp_refREFPN,
9247
14
      { "refREFPN", "ulp.refREFPN",
9248
14
        FT_UINT32, BASE_DEC, NULL, 0,
9249
14
        "INTEGER_0_511", HFILL }},
9250
14
    { &hf_ulp_refWeekNumber,
9251
14
      { "refWeekNumber", "ulp.refWeekNumber",
9252
14
        FT_UINT32, BASE_DEC, NULL, 0,
9253
14
        "INTEGER_0_65535", HFILL }},
9254
14
    { &hf_ulp_refSeconds,
9255
14
      { "refSeconds", "ulp.refSeconds",
9256
14
        FT_UINT32, BASE_DEC, NULL, 0,
9257
14
        "INTEGER_0_4194303", HFILL }},
9258
14
    { &hf_ulp_nmr,
9259
14
      { "nmr", "ulp.nmr",
9260
14
        FT_UINT32, BASE_DEC, NULL, 0,
9261
14
        NULL, HFILL }},
9262
14
    { &hf_ulp_ta,
9263
14
      { "ta", "ulp.ta",
9264
14
        FT_UINT32, BASE_DEC, NULL, 0,
9265
14
        "INTEGER_0_255", HFILL }},
9266
14
    { &hf_ulp_frequencyInfo,
9267
14
      { "frequencyInfo", "ulp.frequencyInfo_element",
9268
14
        FT_NONE, BASE_NONE, NULL, 0,
9269
14
        NULL, HFILL }},
9270
14
    { &hf_ulp_primaryScramblingCode,
9271
14
      { "primaryScramblingCode", "ulp.primaryScramblingCode",
9272
14
        FT_UINT32, BASE_DEC, NULL, 0,
9273
14
        "INTEGER_0_511", HFILL }},
9274
14
    { &hf_ulp_measuredResultsList,
9275
14
      { "measuredResultsList", "ulp.measuredResultsList",
9276
14
        FT_UINT32, BASE_DEC, NULL, 0,
9277
14
        NULL, HFILL }},
9278
14
    { &hf_ulp_cellParametersId,
9279
14
      { "cellParametersId", "ulp.cellParametersId",
9280
14
        FT_UINT32, BASE_DEC, NULL, 0,
9281
14
        "INTEGER_0_127", HFILL }},
9282
14
    { &hf_ulp_timingAdvance,
9283
14
      { "timingAdvance", "ulp.timingAdvance_element",
9284
14
        FT_NONE, BASE_NONE, NULL, 0,
9285
14
        NULL, HFILL }},
9286
14
    { &hf_ulp_ta_01,
9287
14
      { "ta", "ulp.ta",
9288
14
        FT_UINT32, BASE_DEC, NULL, 0,
9289
14
        "INTEGER_0_8191", HFILL }},
9290
14
    { &hf_ulp_tAResolution,
9291
14
      { "tAResolution", "ulp.tAResolution",
9292
14
        FT_UINT32, BASE_DEC, VALS(ulp_TAResolution_vals), 0,
9293
14
        NULL, HFILL }},
9294
14
    { &hf_ulp_chipRate,
9295
14
      { "chipRate", "ulp.chipRate",
9296
14
        FT_UINT32, BASE_DEC, VALS(ulp_ChipRate_vals), 0,
9297
14
        NULL, HFILL }},
9298
14
    { &hf_ulp_modeSpecificFrequencyInfo,
9299
14
      { "modeSpecificInfo", "ulp.modeSpecificFrequencyInfo",
9300
14
        FT_UINT32, BASE_DEC, VALS(ulp_FrequencySpecificInfo_vals), 0,
9301
14
        "FrequencySpecificInfo", HFILL }},
9302
14
    { &hf_ulp_fdd_fr,
9303
14
      { "fdd", "ulp.fdd_fr_element",
9304
14
        FT_NONE, BASE_NONE, NULL, 0,
9305
14
        "FrequencyInfoFDD", HFILL }},
9306
14
    { &hf_ulp_tdd_fr,
9307
14
      { "tdd", "ulp.tdd_fr_element",
9308
14
        FT_NONE, BASE_NONE, NULL, 0,
9309
14
        "FrequencyInfoTDD", HFILL }},
9310
14
    { &hf_ulp_uarfcn_UL,
9311
14
      { "uarfcn-UL", "ulp.uarfcn_UL",
9312
14
        FT_UINT32, BASE_DEC, NULL, 0,
9313
14
        "UARFCN", HFILL }},
9314
14
    { &hf_ulp_uarfcn_DL,
9315
14
      { "uarfcn-DL", "ulp.uarfcn_DL",
9316
14
        FT_UINT32, BASE_DEC, NULL, 0,
9317
14
        "UARFCN", HFILL }},
9318
14
    { &hf_ulp_uarfcn_Nt,
9319
14
      { "uarfcn-Nt", "ulp.uarfcn_Nt",
9320
14
        FT_UINT32, BASE_DEC, NULL, 0,
9321
14
        "UARFCN", HFILL }},
9322
14
    { &hf_ulp_NMR_item,
9323
14
      { "NMRelement", "ulp.NMRelement_element",
9324
14
        FT_NONE, BASE_NONE, NULL, 0,
9325
14
        NULL, HFILL }},
9326
14
    { &hf_ulp_arfcn,
9327
14
      { "arfcn", "ulp.arfcn",
9328
14
        FT_UINT32, BASE_DEC, NULL, 0,
9329
14
        "INTEGER_0_1023", HFILL }},
9330
14
    { &hf_ulp_bsic,
9331
14
      { "bsic", "ulp.bsic",
9332
14
        FT_UINT32, BASE_DEC, NULL, 0,
9333
14
        "INTEGER_0_63", HFILL }},
9334
14
    { &hf_ulp_rxLev,
9335
14
      { "rxLev", "ulp.rxLev",
9336
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_NMRelement_rxLev_fmt), 0,
9337
14
        "INTEGER_0_63", HFILL }},
9338
14
    { &hf_ulp_MeasuredResultsList_item,
9339
14
      { "MeasuredResults", "ulp.MeasuredResults_element",
9340
14
        FT_NONE, BASE_NONE, NULL, 0,
9341
14
        NULL, HFILL }},
9342
14
    { &hf_ulp_utra_CarrierRSSI,
9343
14
      { "utra-CarrierRSSI", "ulp.utra_CarrierRSSI",
9344
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_UTRA_CarrierRSSI_fmt), 0,
9345
14
        NULL, HFILL }},
9346
14
    { &hf_ulp_cellMeasuredResultsList,
9347
14
      { "cellMeasuredResultsList", "ulp.cellMeasuredResultsList",
9348
14
        FT_UINT32, BASE_DEC, NULL, 0,
9349
14
        NULL, HFILL }},
9350
14
    { &hf_ulp_CellMeasuredResultsList_item,
9351
14
      { "CellMeasuredResults", "ulp.CellMeasuredResults_element",
9352
14
        FT_NONE, BASE_NONE, NULL, 0,
9353
14
        NULL, HFILL }},
9354
14
    { &hf_ulp_cellIdentity_uint,
9355
14
      { "cellIdentity", "ulp.cellIdentity_uint",
9356
14
        FT_UINT32, BASE_DEC, NULL, 0,
9357
14
        "INTEGER_0_268435455", HFILL }},
9358
14
    { &hf_ulp_modeSpecificInfo,
9359
14
      { "modeSpecificInfo", "ulp.modeSpecificInfo",
9360
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_vals), 0,
9361
14
        NULL, HFILL }},
9362
14
    { &hf_ulp_fdd,
9363
14
      { "fdd", "ulp.fdd_element",
9364
14
        FT_NONE, BASE_NONE, NULL, 0,
9365
14
        NULL, HFILL }},
9366
14
    { &hf_ulp_primaryCPICH_Info,
9367
14
      { "primaryCPICH-Info", "ulp.primaryCPICH_Info_element",
9368
14
        FT_NONE, BASE_NONE, NULL, 0,
9369
14
        NULL, HFILL }},
9370
14
    { &hf_ulp_cpich_Ec_N0,
9371
14
      { "cpich-Ec-N0", "ulp.cpich_Ec_N0",
9372
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_CPICH_Ec_N0_fmt), 0,
9373
14
        NULL, HFILL }},
9374
14
    { &hf_ulp_cpich_RSCP,
9375
14
      { "cpich-RSCP", "ulp.cpich_RSCP",
9376
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_CPICH_RSCP_fmt), 0,
9377
14
        NULL, HFILL }},
9378
14
    { &hf_ulp_pathloss,
9379
14
      { "pathloss", "ulp.pathloss",
9380
14
        FT_UINT32, BASE_DEC, NULL, 0,
9381
14
        NULL, HFILL }},
9382
14
    { &hf_ulp_tdd,
9383
14
      { "tdd", "ulp.tdd_element",
9384
14
        FT_NONE, BASE_NONE, NULL, 0,
9385
14
        NULL, HFILL }},
9386
14
    { &hf_ulp_cellParametersID,
9387
14
      { "cellParametersID", "ulp.cellParametersID",
9388
14
        FT_UINT32, BASE_DEC, NULL, 0,
9389
14
        NULL, HFILL }},
9390
14
    { &hf_ulp_proposedTGSN,
9391
14
      { "proposedTGSN", "ulp.proposedTGSN",
9392
14
        FT_UINT32, BASE_DEC, NULL, 0,
9393
14
        "TGSN", HFILL }},
9394
14
    { &hf_ulp_primaryCCPCH_RSCP,
9395
14
      { "primaryCCPCH-RSCP", "ulp.primaryCCPCH_RSCP",
9396
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_PrimaryCCPCH_RSCP_fmt), 0,
9397
14
        NULL, HFILL }},
9398
14
    { &hf_ulp_timeslotISCP_List,
9399
14
      { "timeslotISCP-List", "ulp.timeslotISCP_List",
9400
14
        FT_UINT32, BASE_DEC, NULL, 0,
9401
14
        NULL, HFILL }},
9402
14
    { &hf_ulp_TimeslotISCP_List_item,
9403
14
      { "TimeslotISCP", "ulp.TimeslotISCP",
9404
14
        FT_UINT32, BASE_DEC, NULL, 0,
9405
14
        NULL, HFILL }},
9406
14
    { &hf_ulp_horacc,
9407
14
      { "horacc", "ulp.horacc",
9408
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_QoP_horacc_fmt), 0,
9409
14
        "INTEGER_0_127", HFILL }},
9410
14
    { &hf_ulp_veracc,
9411
14
      { "veracc", "ulp.veracc",
9412
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_QoP_veracc_fmt), 0,
9413
14
        "INTEGER_0_127", HFILL }},
9414
14
    { &hf_ulp_maxLocAge,
9415
14
      { "maxLocAge", "ulp.maxLocAge",
9416
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
9417
14
        "INTEGER_0_65535", HFILL }},
9418
14
    { &hf_ulp_delay,
9419
14
      { "delay", "ulp.delay",
9420
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_QoP_delay_fmt), 0,
9421
14
        "INTEGER_0_7", HFILL }},
9422
14
    { &hf_ulp_ver2_responseTime,
9423
14
      { "ver2-responseTime", "ulp.ver2_responseTime",
9424
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
9425
14
        "INTEGER_1_128", HFILL }},
9426
14
    { &hf_ulp_horvel,
9427
14
      { "horvel", "ulp.horvel_element",
9428
14
        FT_NONE, BASE_NONE, NULL, 0,
9429
14
        NULL, HFILL }},
9430
14
    { &hf_ulp_horandvervel,
9431
14
      { "horandvervel", "ulp.horandvervel_element",
9432
14
        FT_NONE, BASE_NONE, NULL, 0,
9433
14
        NULL, HFILL }},
9434
14
    { &hf_ulp_horveluncert,
9435
14
      { "horveluncert", "ulp.horveluncert_element",
9436
14
        FT_NONE, BASE_NONE, NULL, 0,
9437
14
        NULL, HFILL }},
9438
14
    { &hf_ulp_horandveruncert,
9439
14
      { "horandveruncert", "ulp.horandveruncert_element",
9440
14
        FT_NONE, BASE_NONE, NULL, 0,
9441
14
        NULL, HFILL }},
9442
14
    { &hf_ulp_bearing,
9443
14
      { "bearing", "ulp.bearing",
9444
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_degree_degrees), 0,
9445
14
        NULL, HFILL }},
9446
14
    { &hf_ulp_horspeed,
9447
14
      { "horspeed", "ulp.horspeed",
9448
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9449
14
        NULL, HFILL }},
9450
14
    { &hf_ulp_verdirect,
9451
14
      { "verdirect", "ulp.verdirect",
9452
14
        FT_BOOLEAN, BASE_NONE, TFS(&ulp_vertical_dir_val), 0,
9453
14
        NULL, HFILL }},
9454
14
    { &hf_ulp_bearing_01,
9455
14
      { "bearing", "ulp.bearing",
9456
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_degree_degrees), 0,
9457
14
        "T_bearing_01", HFILL }},
9458
14
    { &hf_ulp_horspeed_01,
9459
14
      { "horspeed", "ulp.horspeed",
9460
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9461
14
        "T_horspeed_01", HFILL }},
9462
14
    { &hf_ulp_verspeed,
9463
14
      { "verspeed", "ulp.verspeed",
9464
14
        FT_UINT8, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9465
14
        NULL, HFILL }},
9466
14
    { &hf_ulp_bearing_02,
9467
14
      { "bearing", "ulp.bearing",
9468
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_degree_degrees), 0,
9469
14
        "T_bearing_02", HFILL }},
9470
14
    { &hf_ulp_horspeed_02,
9471
14
      { "horspeed", "ulp.horspeed",
9472
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9473
14
        "T_horspeed_02", HFILL }},
9474
14
    { &hf_ulp_uncertspeed,
9475
14
      { "uncertspeed", "ulp.uncertspeed",
9476
14
        FT_UINT8, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9477
14
        NULL, HFILL }},
9478
14
    { &hf_ulp_verdirect_01,
9479
14
      { "verdirect", "ulp.verdirect",
9480
14
        FT_BOOLEAN, BASE_NONE, TFS(&ulp_vertical_dir_val), 0,
9481
14
        "T_verdirect_01", HFILL }},
9482
14
    { &hf_ulp_bearing_03,
9483
14
      { "bearing", "ulp.bearing",
9484
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_degree_degrees), 0,
9485
14
        "T_bearing_03", HFILL }},
9486
14
    { &hf_ulp_horspeed_03,
9487
14
      { "horspeed", "ulp.horspeed",
9488
14
        FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9489
14
        "T_horspeed_03", HFILL }},
9490
14
    { &hf_ulp_verspeed_01,
9491
14
      { "verspeed", "ulp.verspeed",
9492
14
        FT_UINT8, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9493
14
        "T_verspeed_01", HFILL }},
9494
14
    { &hf_ulp_horuncertspeed,
9495
14
      { "horuncertspeed", "ulp.horuncertspeed",
9496
14
        FT_UINT8, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9497
14
        NULL, HFILL }},
9498
14
    { &hf_ulp_veruncertspeed,
9499
14
      { "veruncertspeed", "ulp.veruncertspeed",
9500
14
        FT_UINT8, BASE_DEC|BASE_UNIT_STRING, UNS(&units_kmh), 0,
9501
14
        NULL, HFILL }},
9502
14
    { &hf_ulp_MultipleLocationIds_item,
9503
14
      { "LocationIdData", "ulp.LocationIdData_element",
9504
14
        FT_NONE, BASE_NONE, NULL, 0,
9505
14
        NULL, HFILL }},
9506
14
    { &hf_ulp_relativetimestamp,
9507
14
      { "relativetimestamp", "ulp.relativetimestamp",
9508
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_RelativeTime_fmt), 0,
9509
14
        "RelativeTime", HFILL }},
9510
14
    { &hf_ulp_servingFlag,
9511
14
      { "servingFlag", "ulp.servingFlag",
9512
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9513
14
        "BOOLEAN", HFILL }},
9514
14
    { &hf_ulp_supportedWLANInfo,
9515
14
      { "supportedWLANInfo", "ulp.supportedWLANInfo_element",
9516
14
        FT_NONE, BASE_NONE, NULL, 0,
9517
14
        NULL, HFILL }},
9518
14
    { &hf_ulp_supportedWLANApsList,
9519
14
      { "supportedWLANApsList", "ulp.supportedWLANApsList_element",
9520
14
        FT_NONE, BASE_NONE, NULL, 0,
9521
14
        NULL, HFILL }},
9522
14
    { &hf_ulp_supportedWCDMAInfo,
9523
14
      { "supportedWCDMAInfo", "ulp.supportedWCDMAInfo_element",
9524
14
        FT_NONE, BASE_NONE, NULL, 0,
9525
14
        NULL, HFILL }},
9526
14
    { &hf_ulp_hrdp,
9527
14
      { "hrdp", "ulp.hrdp",
9528
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9529
14
        "BOOLEAN", HFILL }},
9530
14
    { &hf_ulp_wimax,
9531
14
      { "wimax", "ulp.wimax",
9532
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9533
14
        "BOOLEAN", HFILL }},
9534
14
    { &hf_ulp_historic,
9535
14
      { "historic", "ulp.historic",
9536
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9537
14
        "BOOLEAN", HFILL }},
9538
14
    { &hf_ulp_nonServing,
9539
14
      { "nonServing", "ulp.nonServing",
9540
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9541
14
        "BOOLEAN", HFILL }},
9542
14
    { &hf_ulp_uTRANGPSReferenceTime,
9543
14
      { "uTRANGPSReferenceTime", "ulp.uTRANGPSReferenceTime",
9544
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9545
14
        "BOOLEAN", HFILL }},
9546
14
    { &hf_ulp_uTRANGANSSReferenceTime,
9547
14
      { "uTRANGANSSReferenceTime", "ulp.uTRANGANSSReferenceTime",
9548
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9549
14
        "BOOLEAN", HFILL }},
9550
14
    { &hf_ulp_apTP,
9551
14
      { "apTP", "ulp.apTP",
9552
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9553
14
        "BOOLEAN", HFILL }},
9554
14
    { &hf_ulp_apAG,
9555
14
      { "apAG", "ulp.apAG",
9556
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9557
14
        "BOOLEAN", HFILL }},
9558
14
    { &hf_ulp_apSN,
9559
14
      { "apSN", "ulp.apSN",
9560
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9561
14
        "BOOLEAN", HFILL }},
9562
14
    { &hf_ulp_apDevType,
9563
14
      { "apDevType", "ulp.apDevType",
9564
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9565
14
        "BOOLEAN", HFILL }},
9566
14
    { &hf_ulp_apRSSI,
9567
14
      { "apRSSI", "ulp.apRSSI",
9568
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9569
14
        "BOOLEAN", HFILL }},
9570
14
    { &hf_ulp_apChanFreq,
9571
14
      { "apChanFreq", "ulp.apChanFreq",
9572
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9573
14
        "BOOLEAN", HFILL }},
9574
14
    { &hf_ulp_apRTD,
9575
14
      { "apRTD", "ulp.apRTD",
9576
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9577
14
        "BOOLEAN", HFILL }},
9578
14
    { &hf_ulp_setTP,
9579
14
      { "setTP", "ulp.setTP",
9580
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9581
14
        "BOOLEAN", HFILL }},
9582
14
    { &hf_ulp_setAG,
9583
14
      { "setAG", "ulp.setAG",
9584
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9585
14
        "BOOLEAN", HFILL }},
9586
14
    { &hf_ulp_setSN,
9587
14
      { "setSN", "ulp.setSN",
9588
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9589
14
        "BOOLEAN", HFILL }},
9590
14
    { &hf_ulp_setRSSI,
9591
14
      { "setRSSI", "ulp.setRSSI",
9592
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9593
14
        "BOOLEAN", HFILL }},
9594
14
    { &hf_ulp_apRepLoc,
9595
14
      { "apRepLoc", "ulp.apRepLoc",
9596
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9597
14
        "BOOLEAN", HFILL }},
9598
14
    { &hf_ulp_apRL,
9599
14
      { "apRL", "ulp.apRL",
9600
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9601
14
        "BOOLEAN", HFILL }},
9602
14
    { &hf_ulp_opClass,
9603
14
      { "opClass", "ulp.opClass",
9604
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9605
14
        "BOOLEAN", HFILL }},
9606
14
    { &hf_ulp_apSSID_bool,
9607
14
      { "apSSID", "ulp.apSSID_bool",
9608
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9609
14
        "BOOLEAN", HFILL }},
9610
14
    { &hf_ulp_apPHYType_bool,
9611
14
      { "apPHYType", "ulp.apPHYType_bool",
9612
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9613
14
        "BOOLEAN", HFILL }},
9614
14
    { &hf_ulp_setMACAddress_bool,
9615
14
      { "setMACAddress", "ulp.setMACAddress_bool",
9616
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9617
14
        "BOOLEAN", HFILL }},
9618
14
    { &hf_ulp_supportedWLANApDataList,
9619
14
      { "supportedWLANApDataList", "ulp.supportedWLANApDataList",
9620
14
        FT_UINT32, BASE_DEC, NULL, 0,
9621
14
        "SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData", HFILL }},
9622
14
    { &hf_ulp_supportedWLANApDataList_item,
9623
14
      { "SupportedWLANApData", "ulp.SupportedWLANApData_element",
9624
14
        FT_NONE, BASE_NONE, NULL, 0,
9625
14
        NULL, HFILL }},
9626
14
    { &hf_ulp_supportedWLANapsChannel11a,
9627
14
      { "supportedWLANapsChannel11a", "ulp.supportedWLANapsChannel11a_element",
9628
14
        FT_NONE, BASE_NONE, NULL, 0,
9629
14
        NULL, HFILL }},
9630
14
    { &hf_ulp_supportedWLANapsChannel11bg,
9631
14
      { "supportedWLANapsChannel11bg", "ulp.supportedWLANapsChannel11bg_element",
9632
14
        FT_NONE, BASE_NONE, NULL, 0,
9633
14
        NULL, HFILL }},
9634
14
    { &hf_ulp_ch34,
9635
14
      { "ch34", "ulp.ch34",
9636
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9637
14
        "BOOLEAN", HFILL }},
9638
14
    { &hf_ulp_ch36,
9639
14
      { "ch36", "ulp.ch36",
9640
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9641
14
        "BOOLEAN", HFILL }},
9642
14
    { &hf_ulp_ch38,
9643
14
      { "ch38", "ulp.ch38",
9644
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9645
14
        "BOOLEAN", HFILL }},
9646
14
    { &hf_ulp_ch40,
9647
14
      { "ch40", "ulp.ch40",
9648
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9649
14
        "BOOLEAN", HFILL }},
9650
14
    { &hf_ulp_ch42,
9651
14
      { "ch42", "ulp.ch42",
9652
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9653
14
        "BOOLEAN", HFILL }},
9654
14
    { &hf_ulp_ch44,
9655
14
      { "ch44", "ulp.ch44",
9656
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9657
14
        "BOOLEAN", HFILL }},
9658
14
    { &hf_ulp_ch46,
9659
14
      { "ch46", "ulp.ch46",
9660
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9661
14
        "BOOLEAN", HFILL }},
9662
14
    { &hf_ulp_ch48,
9663
14
      { "ch48", "ulp.ch48",
9664
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9665
14
        "BOOLEAN", HFILL }},
9666
14
    { &hf_ulp_ch52,
9667
14
      { "ch52", "ulp.ch52",
9668
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9669
14
        "BOOLEAN", HFILL }},
9670
14
    { &hf_ulp_ch56,
9671
14
      { "ch56", "ulp.ch56",
9672
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9673
14
        "BOOLEAN", HFILL }},
9674
14
    { &hf_ulp_ch60,
9675
14
      { "ch60", "ulp.ch60",
9676
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9677
14
        "BOOLEAN", HFILL }},
9678
14
    { &hf_ulp_ch64,
9679
14
      { "ch64", "ulp.ch64",
9680
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9681
14
        "BOOLEAN", HFILL }},
9682
14
    { &hf_ulp_ch149,
9683
14
      { "ch149", "ulp.ch149",
9684
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9685
14
        "BOOLEAN", HFILL }},
9686
14
    { &hf_ulp_ch153,
9687
14
      { "ch153", "ulp.ch153",
9688
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9689
14
        "BOOLEAN", HFILL }},
9690
14
    { &hf_ulp_ch157,
9691
14
      { "ch157", "ulp.ch157",
9692
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9693
14
        "BOOLEAN", HFILL }},
9694
14
    { &hf_ulp_ch161,
9695
14
      { "ch161", "ulp.ch161",
9696
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9697
14
        "BOOLEAN", HFILL }},
9698
14
    { &hf_ulp_ch1,
9699
14
      { "ch1", "ulp.ch1",
9700
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9701
14
        "BOOLEAN", HFILL }},
9702
14
    { &hf_ulp_ch2,
9703
14
      { "ch2", "ulp.ch2",
9704
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9705
14
        "BOOLEAN", HFILL }},
9706
14
    { &hf_ulp_ch3,
9707
14
      { "ch3", "ulp.ch3",
9708
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9709
14
        "BOOLEAN", HFILL }},
9710
14
    { &hf_ulp_ch4,
9711
14
      { "ch4", "ulp.ch4",
9712
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9713
14
        "BOOLEAN", HFILL }},
9714
14
    { &hf_ulp_ch5,
9715
14
      { "ch5", "ulp.ch5",
9716
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9717
14
        "BOOLEAN", HFILL }},
9718
14
    { &hf_ulp_ch6,
9719
14
      { "ch6", "ulp.ch6",
9720
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9721
14
        "BOOLEAN", HFILL }},
9722
14
    { &hf_ulp_ch7,
9723
14
      { "ch7", "ulp.ch7",
9724
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9725
14
        "BOOLEAN", HFILL }},
9726
14
    { &hf_ulp_ch8,
9727
14
      { "ch8", "ulp.ch8",
9728
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9729
14
        "BOOLEAN", HFILL }},
9730
14
    { &hf_ulp_ch9,
9731
14
      { "ch9", "ulp.ch9",
9732
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9733
14
        "BOOLEAN", HFILL }},
9734
14
    { &hf_ulp_ch10,
9735
14
      { "ch10", "ulp.ch10",
9736
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9737
14
        "BOOLEAN", HFILL }},
9738
14
    { &hf_ulp_ch11,
9739
14
      { "ch11", "ulp.ch11",
9740
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9741
14
        "BOOLEAN", HFILL }},
9742
14
    { &hf_ulp_ch12,
9743
14
      { "ch12", "ulp.ch12",
9744
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9745
14
        "BOOLEAN", HFILL }},
9746
14
    { &hf_ulp_ch13,
9747
14
      { "ch13", "ulp.ch13",
9748
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9749
14
        "BOOLEAN", HFILL }},
9750
14
    { &hf_ulp_ch14,
9751
14
      { "ch14", "ulp.ch14",
9752
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9753
14
        "BOOLEAN", HFILL }},
9754
14
    { &hf_ulp_apMACAddress_01,
9755
14
      { "apMACAddress", "ulp.apMACAddress",
9756
14
        FT_ETHER, BASE_NONE, NULL, 0,
9757
14
        "T_apMACAddress_01", HFILL }},
9758
14
    { &hf_ulp_apDevType_enum,
9759
14
      { "apDevType", "ulp.apDevType_enum",
9760
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_apDevType_enum_vals), 0,
9761
14
        "T_apDevType_enum", HFILL }},
9762
14
    { &hf_ulp_mrl,
9763
14
      { "mrl", "ulp.mrl",
9764
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9765
14
        "BOOLEAN", HFILL }},
9766
14
    { &hf_ulp_hrpdCell,
9767
14
      { "hrpdCell", "ulp.hrpdCell_element",
9768
14
        FT_NONE, BASE_NONE, NULL, 0,
9769
14
        "HrpdCellInformation", HFILL }},
9770
14
    { &hf_ulp_umbCell,
9771
14
      { "umbCell", "ulp.umbCell_element",
9772
14
        FT_NONE, BASE_NONE, NULL, 0,
9773
14
        "UmbCellInformation", HFILL }},
9774
14
    { &hf_ulp_lteCell,
9775
14
      { "lteCell", "ulp.lteCell_element",
9776
14
        FT_NONE, BASE_NONE, NULL, 0,
9777
14
        "LteCellInformation", HFILL }},
9778
14
    { &hf_ulp_wlanAP,
9779
14
      { "wlanAP", "ulp.wlanAP_element",
9780
14
        FT_NONE, BASE_NONE, NULL, 0,
9781
14
        "WlanAPInformation", HFILL }},
9782
14
    { &hf_ulp_wimaxBS,
9783
14
      { "wimaxBS", "ulp.wimaxBS_element",
9784
14
        FT_NONE, BASE_NONE, NULL, 0,
9785
14
        "WimaxBSInformation", HFILL }},
9786
14
    { &hf_ulp_nrCell,
9787
14
      { "nrCell", "ulp.nrCell_element",
9788
14
        FT_NONE, BASE_NONE, NULL, 0,
9789
14
        "NRCellInformation", HFILL }},
9790
14
    { &hf_ulp_cellGlobalIdEUTRA,
9791
14
      { "cellGlobalIdEUTRA", "ulp.cellGlobalIdEUTRA_element",
9792
14
        FT_NONE, BASE_NONE, NULL, 0,
9793
14
        NULL, HFILL }},
9794
14
    { &hf_ulp_physCellId,
9795
14
      { "physCellId", "ulp.physCellId",
9796
14
        FT_UINT32, BASE_DEC, NULL, 0,
9797
14
        NULL, HFILL }},
9798
14
    { &hf_ulp_trackingAreaCode,
9799
14
      { "trackingAreaCode", "ulp.trackingAreaCode",
9800
14
        FT_BYTES, BASE_NONE, NULL, 0,
9801
14
        NULL, HFILL }},
9802
14
    { &hf_ulp_rsrpResult,
9803
14
      { "rsrpResult", "ulp.rsrpResult",
9804
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_RSRP_Range_fmt), 0,
9805
14
        "RSRP_Range", HFILL }},
9806
14
    { &hf_ulp_rsrqResult,
9807
14
      { "rsrqResult", "ulp.rsrqResult",
9808
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_RSRQ_Range_fmt), 0,
9809
14
        "RSRQ_Range", HFILL }},
9810
14
    { &hf_ulp_ta_02,
9811
14
      { "ta", "ulp.ta",
9812
14
        FT_UINT32, BASE_DEC, NULL, 0,
9813
14
        "INTEGER_0_1282", HFILL }},
9814
14
    { &hf_ulp_measResultListEUTRA,
9815
14
      { "measResultListEUTRA", "ulp.measResultListEUTRA",
9816
14
        FT_UINT32, BASE_DEC, NULL, 0,
9817
14
        NULL, HFILL }},
9818
14
    { &hf_ulp_earfcn,
9819
14
      { "earfcn", "ulp.earfcn",
9820
14
        FT_UINT32, BASE_DEC, NULL, 0,
9821
14
        "INTEGER_0_65535", HFILL }},
9822
14
    { &hf_ulp_earfcn_ext,
9823
14
      { "earfcn-ext", "ulp.earfcn_ext",
9824
14
        FT_UINT32, BASE_DEC, NULL, 0,
9825
14
        "INTEGER_65536_262143", HFILL }},
9826
14
    { &hf_ulp_rsrpResult_ext,
9827
14
      { "rsrpResult-ext", "ulp.rsrpResult_ext",
9828
14
        FT_INT32, BASE_DEC, NULL, 0,
9829
14
        "RSRP_Range_Ext", HFILL }},
9830
14
    { &hf_ulp_rsrqResult_ext,
9831
14
      { "rsrqResult-ext", "ulp.rsrqResult_ext",
9832
14
        FT_INT32, BASE_DEC, NULL, 0,
9833
14
        "RSRQ_Range_Ext", HFILL }},
9834
14
    { &hf_ulp_rs_sinrResult,
9835
14
      { "rs-sinrResult", "ulp.rs_sinrResult",
9836
14
        FT_UINT32, BASE_DEC, NULL, 0,
9837
14
        "RS_SINR_Range", HFILL }},
9838
14
    { &hf_ulp_servingInformation5G,
9839
14
      { "servingInformation5G", "ulp.servingInformation5G_element",
9840
14
        FT_NONE, BASE_NONE, NULL, 0,
9841
14
        NULL, HFILL }},
9842
14
    { &hf_ulp_MeasResultListEUTRA_item,
9843
14
      { "MeasResultEUTRA", "ulp.MeasResultEUTRA_element",
9844
14
        FT_NONE, BASE_NONE, NULL, 0,
9845
14
        NULL, HFILL }},
9846
14
    { &hf_ulp_cgi_Info,
9847
14
      { "cgi-Info", "ulp.cgi_Info_element",
9848
14
        FT_NONE, BASE_NONE, NULL, 0,
9849
14
        NULL, HFILL }},
9850
14
    { &hf_ulp_cellGlobalId,
9851
14
      { "cellGlobalId", "ulp.cellGlobalId_element",
9852
14
        FT_NONE, BASE_NONE, NULL, 0,
9853
14
        "CellGlobalIdEUTRA", HFILL }},
9854
14
    { &hf_ulp_measResult,
9855
14
      { "measResult", "ulp.measResult_element",
9856
14
        FT_NONE, BASE_NONE, NULL, 0,
9857
14
        NULL, HFILL }},
9858
14
    { &hf_ulp_neighbourInformation5G,
9859
14
      { "neighbourInformation5G", "ulp.neighbourInformation5G_element",
9860
14
        FT_NONE, BASE_NONE, NULL, 0,
9861
14
        NULL, HFILL }},
9862
14
    { &hf_ulp_plmn_Identity,
9863
14
      { "plmn-Identity", "ulp.plmn_Identity_element",
9864
14
        FT_NONE, BASE_NONE, NULL, 0,
9865
14
        NULL, HFILL }},
9866
14
    { &hf_ulp_cellIdentity,
9867
14
      { "cellIdentity", "ulp.cellIdentity",
9868
14
        FT_BYTES, BASE_NONE, NULL, 0,
9869
14
        NULL, HFILL }},
9870
14
    { &hf_ulp_mcc,
9871
14
      { "mcc", "ulp.mcc",
9872
14
        FT_UINT32, BASE_DEC, NULL, 0,
9873
14
        NULL, HFILL }},
9874
14
    { &hf_ulp_mnc,
9875
14
      { "mnc", "ulp.mnc",
9876
14
        FT_UINT32, BASE_DEC, NULL, 0,
9877
14
        NULL, HFILL }},
9878
14
    { &hf_ulp_MCC_item,
9879
14
      { "MCC-MNC-Digit", "ulp.MCC_MNC_Digit",
9880
14
        FT_UINT32, BASE_DEC, NULL, 0,
9881
14
        NULL, HFILL }},
9882
14
    { &hf_ulp_MNC_item,
9883
14
      { "MCC-MNC-Digit", "ulp.MCC_MNC_Digit",
9884
14
        FT_UINT32, BASE_DEC, NULL, 0,
9885
14
        NULL, HFILL }},
9886
14
    { &hf_ulp_trackingAreaCode_01,
9887
14
      { "trackingAreaCode", "ulp.trackingAreaCode",
9888
14
        FT_BYTES, BASE_NONE, NULL, 0,
9889
14
        "TrackingAreaCodeNR", HFILL }},
9890
14
    { &hf_ulp_apMACAddress_02,
9891
14
      { "apMACAddress", "ulp.apMACAddress",
9892
14
        FT_ETHER, BASE_NONE, NULL, 0,
9893
14
        "T_apMACAddress_02", HFILL }},
9894
14
    { &hf_ulp_apTransmitPower,
9895
14
      { "apTransmitPower", "ulp.apTransmitPower",
9896
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_dbm), 0,
9897
14
        "INTEGER_M127_128", HFILL }},
9898
14
    { &hf_ulp_apAntennaGain,
9899
14
      { "apAntennaGain", "ulp.apAntennaGain",
9900
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_dbi), 0,
9901
14
        "INTEGER_M127_128", HFILL }},
9902
14
    { &hf_ulp_apSignaltoNoise,
9903
14
      { "apSignaltoNoise", "ulp.apSignaltoNoise",
9904
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_decibels), 0,
9905
14
        "INTEGER_M127_128", HFILL }},
9906
14
    { &hf_ulp_apDeviceType,
9907
14
      { "apDeviceType", "ulp.apDeviceType",
9908
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_apDeviceType_vals), 0,
9909
14
        NULL, HFILL }},
9910
14
    { &hf_ulp_apSignalStrength,
9911
14
      { "apSignalStrength", "ulp.apSignalStrength",
9912
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_dbm), 0,
9913
14
        "INTEGER_M127_128", HFILL }},
9914
14
    { &hf_ulp_apChannelFrequency,
9915
14
      { "apChannelFrequency", "ulp.apChannelFrequency",
9916
14
        FT_UINT32, BASE_DEC, NULL, 0,
9917
14
        "INTEGER_0_256", HFILL }},
9918
14
    { &hf_ulp_apRoundTripDelay,
9919
14
      { "apRoundTripDelay", "ulp.apRoundTripDelay_element",
9920
14
        FT_NONE, BASE_NONE, NULL, 0,
9921
14
        "RTD", HFILL }},
9922
14
    { &hf_ulp_setTransmitPower,
9923
14
      { "setTransmitPower", "ulp.setTransmitPower",
9924
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_dbm), 0,
9925
14
        "INTEGER_M127_128", HFILL }},
9926
14
    { &hf_ulp_setAntennaGain,
9927
14
      { "setAntennaGain", "ulp.setAntennaGain",
9928
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_dbi), 0,
9929
14
        "INTEGER_M127_128", HFILL }},
9930
14
    { &hf_ulp_setSignaltoNoise,
9931
14
      { "setSignaltoNoise", "ulp.setSignaltoNoise",
9932
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_decibels), 0,
9933
14
        "INTEGER_M127_128", HFILL }},
9934
14
    { &hf_ulp_setSignalStrength,
9935
14
      { "setSignalStrength", "ulp.setSignalStrength",
9936
14
        FT_INT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_dbm), 0,
9937
14
        "INTEGER_M127_128", HFILL }},
9938
14
    { &hf_ulp_apReportedLocation,
9939
14
      { "apReportedLocation", "ulp.apReportedLocation_element",
9940
14
        FT_NONE, BASE_NONE, NULL, 0,
9941
14
        "ReportedLocation", HFILL }},
9942
14
    { &hf_ulp_apRepLocation,
9943
14
      { "apRepLocation", "ulp.apRepLocation",
9944
14
        FT_UINT32, BASE_DEC, VALS(ulp_RepLocation_vals), 0,
9945
14
        "RepLocation", HFILL }},
9946
14
    { &hf_ulp_apSignalStrengthDelta,
9947
14
      { "apSignalStrengthDelta", "ulp.apSignalStrengthDelta",
9948
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_SignalDelta_fmt), 0,
9949
14
        "INTEGER_0_1", HFILL }},
9950
14
    { &hf_ulp_apSignaltoNoiseDelta,
9951
14
      { "apSignaltoNoiseDelta", "ulp.apSignaltoNoiseDelta",
9952
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_SignalDelta_fmt), 0,
9953
14
        "INTEGER_0_1", HFILL }},
9954
14
    { &hf_ulp_setSignalStrengthDelta,
9955
14
      { "setSignalStrengthDelta", "ulp.setSignalStrengthDelta",
9956
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_SignalDelta_fmt), 0,
9957
14
        "INTEGER_0_1", HFILL }},
9958
14
    { &hf_ulp_setSignaltoNoiseDelta,
9959
14
      { "setSignaltoNoiseDelta", "ulp.setSignaltoNoiseDelta",
9960
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_SignalDelta_fmt), 0,
9961
14
        "INTEGER_0_1", HFILL }},
9962
14
    { &hf_ulp_operatingClass,
9963
14
      { "operatingClass", "ulp.operatingClass",
9964
14
        FT_UINT32, BASE_DEC, NULL, 0,
9965
14
        "INTEGER_0_255", HFILL }},
9966
14
    { &hf_ulp_apSSID,
9967
14
      { "apSSID", "ulp.apSSID",
9968
14
        FT_STRING, BASE_NONE, NULL, 0,
9969
14
        NULL, HFILL }},
9970
14
    { &hf_ulp_apPHYType,
9971
14
      { "apPHYType", "ulp.apPHYType",
9972
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_apPHYType_vals), 0,
9973
14
        NULL, HFILL }},
9974
14
    { &hf_ulp_setMACAddress,
9975
14
      { "setMACAddress", "ulp.setMACAddress",
9976
14
        FT_ETHER, BASE_NONE, NULL, 0,
9977
14
        NULL, HFILL }},
9978
14
    { &hf_ulp_rTDValue,
9979
14
      { "rTDValue", "ulp.rTDValue",
9980
14
        FT_UINT32, BASE_DEC, NULL, 0,
9981
14
        "INTEGER_0_16777216", HFILL }},
9982
14
    { &hf_ulp_rTDUnits,
9983
14
      { "rTDUnits", "ulp.rTDUnits",
9984
14
        FT_UINT32, BASE_DEC, VALS(ulp_RTDUnits_vals), 0,
9985
14
        NULL, HFILL }},
9986
14
    { &hf_ulp_rTDAccuracy,
9987
14
      { "rTDAccuracy", "ulp.rTDAccuracy",
9988
14
        FT_UINT32, BASE_DEC, NULL, 0,
9989
14
        "INTEGER_0_255", HFILL }},
9990
14
    { &hf_ulp_locationEncodingDescriptor,
9991
14
      { "locationEncodingDescriptor", "ulp.locationEncodingDescriptor",
9992
14
        FT_UINT32, BASE_DEC, VALS(ulp_LocationEncodingDescriptor_vals), 0,
9993
14
        NULL, HFILL }},
9994
14
    { &hf_ulp_locationData,
9995
14
      { "locationData", "ulp.locationData_element",
9996
14
        FT_NONE, BASE_NONE, NULL, 0,
9997
14
        NULL, HFILL }},
9998
14
    { &hf_ulp_locationAccuracy,
9999
14
      { "locationAccuracy", "ulp.locationAccuracy",
10000
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_locationAccuracy_fmt), 0,
10001
14
        "INTEGER_0_4294967295", HFILL }},
10002
14
    { &hf_ulp_locationValue,
10003
14
      { "locationValue", "ulp.locationValue",
10004
14
        FT_BYTES, BASE_NONE, NULL, 0,
10005
14
        "OCTET_STRING_SIZE_1_128", HFILL }},
10006
14
    { &hf_ulp_lciLocData,
10007
14
      { "lciLocData", "ulp.lciLocData_element",
10008
14
        FT_NONE, BASE_NONE, NULL, 0,
10009
14
        NULL, HFILL }},
10010
14
    { &hf_ulp_locationDataLCI,
10011
14
      { "locationDataLCI", "ulp.locationDataLCI_element",
10012
14
        FT_NONE, BASE_NONE, NULL, 0,
10013
14
        NULL, HFILL }},
10014
14
    { &hf_ulp_latitudeResolution,
10015
14
      { "latitudeResolution", "ulp.latitudeResolution",
10016
14
        FT_BYTES, BASE_NONE, NULL, 0,
10017
14
        "BIT_STRING_SIZE_6", HFILL }},
10018
14
    { &hf_ulp_latitude_bit_string,
10019
14
      { "latitude", "ulp.latitude_bit_string",
10020
14
        FT_BYTES, BASE_NONE, NULL, 0,
10021
14
        "BIT_STRING_SIZE_34", HFILL }},
10022
14
    { &hf_ulp_longitudeResolution,
10023
14
      { "longitudeResolution", "ulp.longitudeResolution",
10024
14
        FT_BYTES, BASE_NONE, NULL, 0,
10025
14
        "BIT_STRING_SIZE_6", HFILL }},
10026
14
    { &hf_ulp_longitude_bit_string,
10027
14
      { "longitude", "ulp.longitude_bit_string",
10028
14
        FT_BYTES, BASE_NONE, NULL, 0,
10029
14
        "BIT_STRING_SIZE_34", HFILL }},
10030
14
    { &hf_ulp_altitudeType,
10031
14
      { "altitudeType", "ulp.altitudeType",
10032
14
        FT_BYTES, BASE_NONE, NULL, 0,
10033
14
        "BIT_STRING_SIZE_4", HFILL }},
10034
14
    { &hf_ulp_altitudeResolution,
10035
14
      { "altitudeResolution", "ulp.altitudeResolution",
10036
14
        FT_BYTES, BASE_NONE, NULL, 0,
10037
14
        "BIT_STRING_SIZE_6", HFILL }},
10038
14
    { &hf_ulp_altitude_bit_string,
10039
14
      { "altitude", "ulp.altitude_bit_string",
10040
14
        FT_BYTES, BASE_NONE, NULL, 0,
10041
14
        "BIT_STRING_SIZE_30", HFILL }},
10042
14
    { &hf_ulp_datum,
10043
14
      { "datum", "ulp.datum",
10044
14
        FT_BYTES, BASE_NONE, NULL, 0,
10045
14
        "BIT_STRING_SIZE_8", HFILL }},
10046
14
    { &hf_ulp_wimaxBsID,
10047
14
      { "wimaxBsID", "ulp.wimaxBsID_element",
10048
14
        FT_NONE, BASE_NONE, NULL, 0,
10049
14
        NULL, HFILL }},
10050
14
    { &hf_ulp_wimaxRTD,
10051
14
      { "wimaxRTD", "ulp.wimaxRTD_element",
10052
14
        FT_NONE, BASE_NONE, NULL, 0,
10053
14
        NULL, HFILL }},
10054
14
    { &hf_ulp_wimaxNMRList,
10055
14
      { "wimaxNMRList", "ulp.wimaxNMRList",
10056
14
        FT_UINT32, BASE_DEC, NULL, 0,
10057
14
        NULL, HFILL }},
10058
14
    { &hf_ulp_rtd,
10059
14
      { "rtd", "ulp.rtd",
10060
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_WimaxRTD_fmt), 0,
10061
14
        "INTEGER_0_65535", HFILL }},
10062
14
    { &hf_ulp_rTDstd,
10063
14
      { "rTDstd", "ulp.rTDstd",
10064
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_WimaxRTD_fmt), 0,
10065
14
        "INTEGER_0_1023", HFILL }},
10066
14
    { &hf_ulp_WimaxNMRList_item,
10067
14
      { "WimaxNMR", "ulp.WimaxNMR_element",
10068
14
        FT_NONE, BASE_NONE, NULL, 0,
10069
14
        NULL, HFILL }},
10070
14
    { &hf_ulp_relDelay,
10071
14
      { "relDelay", "ulp.relDelay",
10072
14
        FT_INT32, BASE_CUSTOM, CF_FUNC(ulp_WimaxRTD_fmt), 0,
10073
14
        "INTEGER_M32768_32767", HFILL }},
10074
14
    { &hf_ulp_relDelaystd,
10075
14
      { "relDelaystd", "ulp.relDelaystd",
10076
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_WimaxRTD_fmt), 0,
10077
14
        "INTEGER_0_1023", HFILL }},
10078
14
    { &hf_ulp_rssi,
10079
14
      { "rssi", "ulp.rssi",
10080
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_WimaxNMR_rssi_fmt), 0,
10081
14
        "INTEGER_0_255", HFILL }},
10082
14
    { &hf_ulp_rSSIstd,
10083
14
      { "rSSIstd", "ulp.rSSIstd",
10084
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_decibels), 0,
10085
14
        "INTEGER_0_63", HFILL }},
10086
14
    { &hf_ulp_bSTxPower,
10087
14
      { "bSTxPower", "ulp.bSTxPower",
10088
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_WimaxNMR_rssi_fmt), 0,
10089
14
        "INTEGER_0_255", HFILL }},
10090
14
    { &hf_ulp_cinr,
10091
14
      { "cinr", "ulp.cinr",
10092
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_decibels), 0,
10093
14
        "INTEGER_0_255", HFILL }},
10094
14
    { &hf_ulp_cINRstd,
10095
14
      { "cINRstd", "ulp.cINRstd",
10096
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_decibels), 0,
10097
14
        "INTEGER_0_63", HFILL }},
10098
14
    { &hf_ulp_bSLocation,
10099
14
      { "bSLocation", "ulp.bSLocation_element",
10100
14
        FT_NONE, BASE_NONE, NULL, 0,
10101
14
        "ReportedLocation", HFILL }},
10102
14
    { &hf_ulp_servingCellInformation,
10103
14
      { "servingCellInformation", "ulp.servingCellInformation",
10104
14
        FT_UINT32, BASE_DEC, NULL, 0,
10105
14
        "ServingCellInformationNR", HFILL }},
10106
14
    { &hf_ulp_measuredResultsListNR,
10107
14
      { "measuredResultsListNR", "ulp.measuredResultsListNR",
10108
14
        FT_UINT32, BASE_DEC, NULL, 0,
10109
14
        "MeasResultListNR", HFILL }},
10110
14
    { &hf_ulp_ServingCellInformationNR_item,
10111
14
      { "ServCellNR", "ulp.ServCellNR_element",
10112
14
        FT_NONE, BASE_NONE, NULL, 0,
10113
14
        NULL, HFILL }},
10114
14
    { &hf_ulp_physCellId_01,
10115
14
      { "physCellId", "ulp.physCellId",
10116
14
        FT_UINT32, BASE_DEC, NULL, 0,
10117
14
        "PhysCellIdNR", HFILL }},
10118
14
    { &hf_ulp_arfcn_NR,
10119
14
      { "arfcn-NR", "ulp.arfcn_NR",
10120
14
        FT_UINT32, BASE_DEC, NULL, 0,
10121
14
        NULL, HFILL }},
10122
14
    { &hf_ulp_cellGlobalId_01,
10123
14
      { "cellGlobalId", "ulp.cellGlobalId_element",
10124
14
        FT_NONE, BASE_NONE, NULL, 0,
10125
14
        "CellGlobalIdNR", HFILL }},
10126
14
    { &hf_ulp_ssb_Measurements,
10127
14
      { "ssb-Measurements", "ulp.ssb_Measurements_element",
10128
14
        FT_NONE, BASE_NONE, NULL, 0,
10129
14
        "NR_Measurements", HFILL }},
10130
14
    { &hf_ulp_csi_rs_Measurements,
10131
14
      { "csi-rs-Measurements", "ulp.csi_rs_Measurements_element",
10132
14
        FT_NONE, BASE_NONE, NULL, 0,
10133
14
        "NR_Measurements", HFILL }},
10134
14
    { &hf_ulp_ta_03,
10135
14
      { "ta", "ulp.ta",
10136
14
        FT_UINT32, BASE_DEC, NULL, 0,
10137
14
        "INTEGER_0_3846", HFILL }},
10138
14
    { &hf_ulp_MeasResultListNR_item,
10139
14
      { "MeasResultNR", "ulp.MeasResultNR_element",
10140
14
        FT_NONE, BASE_NONE, NULL, 0,
10141
14
        NULL, HFILL }},
10142
14
    { &hf_ulp_cellIdentityNR,
10143
14
      { "cellIdentityNR", "ulp.cellIdentityNR",
10144
14
        FT_BYTES, BASE_NONE, NULL, 0,
10145
14
        NULL, HFILL }},
10146
14
    { &hf_ulp_rsrp_Range,
10147
14
      { "rsrp-Range", "ulp.rsrp_Range",
10148
14
        FT_UINT32, BASE_DEC, NULL, 0,
10149
14
        "INTEGER_0_127", HFILL }},
10150
14
    { &hf_ulp_rsrq_Range,
10151
14
      { "rsrq-Range", "ulp.rsrq_Range",
10152
14
        FT_UINT32, BASE_DEC, NULL, 0,
10153
14
        "INTEGER_0_127", HFILL }},
10154
14
    { &hf_ulp_sinr_Range,
10155
14
      { "sinr-Range", "ulp.sinr_Range",
10156
14
        FT_UINT32, BASE_DEC, NULL, 0,
10157
14
        "INTEGER_0_127", HFILL }},
10158
14
    { &hf_ulp_utran_GPSReferenceTime,
10159
14
      { "utran-GPSReferenceTime", "ulp.utran_GPSReferenceTime_element",
10160
14
        FT_NONE, BASE_NONE, NULL, 0,
10161
14
        NULL, HFILL }},
10162
14
    { &hf_ulp_gpsReferenceTimeUncertainty,
10163
14
      { "gpsReferenceTimeUncertainty", "ulp.gpsReferenceTimeUncertainty",
10164
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt), 0,
10165
14
        "INTEGER_0_127", HFILL }},
10166
14
    { &hf_ulp_utranGPSDriftRate,
10167
14
      { "utranGPSDriftRate", "ulp.utranGPSDriftRate",
10168
14
        FT_UINT32, BASE_DEC, VALS(ulp_UTRANGPSDriftRate_vals), 0,
10169
14
        NULL, HFILL }},
10170
14
    { &hf_ulp_utran_GPSTimingOfCell,
10171
14
      { "utran-GPSTimingOfCell", "ulp.utran_GPSTimingOfCell_element",
10172
14
        FT_NONE, BASE_NONE, NULL, 0,
10173
14
        NULL, HFILL }},
10174
14
    { &hf_ulp_ms_part,
10175
14
      { "ms-part", "ulp.ms_part",
10176
14
        FT_UINT32, BASE_DEC, NULL, 0,
10177
14
        "INTEGER_0_1023", HFILL }},
10178
14
    { &hf_ulp_ls_part,
10179
14
      { "ls-part", "ulp.ls_part",
10180
14
        FT_UINT32, BASE_DEC, NULL, 0,
10181
14
        "INTEGER_0_4294967295", HFILL }},
10182
14
    { &hf_ulp_modeSpecificInfo_01,
10183
14
      { "modeSpecificInfo", "ulp.modeSpecificInfo",
10184
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_01_vals), 0,
10185
14
        "T_modeSpecificInfo_01", HFILL }},
10186
14
    { &hf_ulp_fdd_01,
10187
14
      { "fdd", "ulp.fdd_element",
10188
14
        FT_NONE, BASE_NONE, NULL, 0,
10189
14
        "T_fdd_01", HFILL }},
10190
14
    { &hf_ulp_referenceIdentity,
10191
14
      { "referenceIdentity", "ulp.referenceIdentity_element",
10192
14
        FT_NONE, BASE_NONE, NULL, 0,
10193
14
        "PrimaryCPICH_Info", HFILL }},
10194
14
    { &hf_ulp_tdd_01,
10195
14
      { "tdd", "ulp.tdd_element",
10196
14
        FT_NONE, BASE_NONE, NULL, 0,
10197
14
        "T_tdd_01", HFILL }},
10198
14
    { &hf_ulp_referenceIdentity_01,
10199
14
      { "referenceIdentity", "ulp.referenceIdentity",
10200
14
        FT_UINT32, BASE_DEC, NULL, 0,
10201
14
        "CellParametersID", HFILL }},
10202
14
    { &hf_ulp_sfn,
10203
14
      { "sfn", "ulp.sfn",
10204
14
        FT_UINT32, BASE_DEC, NULL, 0,
10205
14
        "INTEGER_0_4095", HFILL }},
10206
14
    { &hf_ulp_set_GPSTimingOfCell,
10207
14
      { "set-GPSTimingOfCell", "ulp.set_GPSTimingOfCell_element",
10208
14
        FT_NONE, BASE_NONE, NULL, 0,
10209
14
        "T_set_GPSTimingOfCell", HFILL }},
10210
14
    { &hf_ulp_ms_part_01,
10211
14
      { "ms-part", "ulp.ms_part",
10212
14
        FT_UINT32, BASE_DEC, NULL, 0,
10213
14
        "INTEGER_0_16383", HFILL }},
10214
14
    { &hf_ulp_modeSpecificInfo_02,
10215
14
      { "modeSpecificInfo", "ulp.modeSpecificInfo",
10216
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_02_vals), 0,
10217
14
        "T_modeSpecificInfo_02", HFILL }},
10218
14
    { &hf_ulp_fdd_02,
10219
14
      { "fdd", "ulp.fdd_element",
10220
14
        FT_NONE, BASE_NONE, NULL, 0,
10221
14
        "T_fdd_02", HFILL }},
10222
14
    { &hf_ulp_tdd_02,
10223
14
      { "tdd", "ulp.tdd_element",
10224
14
        FT_NONE, BASE_NONE, NULL, 0,
10225
14
        "T_tdd_02", HFILL }},
10226
14
    { &hf_ulp_ganssDay,
10227
14
      { "ganssDay", "ulp.ganssDay",
10228
14
        FT_UINT32, BASE_DEC, NULL, 0,
10229
14
        "INTEGER_0_8191", HFILL }},
10230
14
    { &hf_ulp_ganssTimeID,
10231
14
      { "ganssTimeID", "ulp.ganssTimeID",
10232
14
        FT_UINT32, BASE_DEC, VALS(ulp_ganss_time_id_vals), 0,
10233
14
        "INTEGER_0_15", HFILL }},
10234
14
    { &hf_ulp_utran_GANSSReferenceTime,
10235
14
      { "utran-GANSSReferenceTime", "ulp.utran_GANSSReferenceTime_element",
10236
14
        FT_NONE, BASE_NONE, NULL, 0,
10237
14
        NULL, HFILL }},
10238
14
    { &hf_ulp_utranGANSSDriftRate,
10239
14
      { "utranGANSSDriftRate", "ulp.utranGANSSDriftRate",
10240
14
        FT_UINT32, BASE_DEC, VALS(ulp_UTRANGANSSDriftRate_vals), 0,
10241
14
        NULL, HFILL }},
10242
14
    { &hf_ulp_ganssTOD,
10243
14
      { "ganssTOD", "ulp.ganssTOD",
10244
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
10245
14
        "INTEGER_0_86399", HFILL }},
10246
14
    { &hf_ulp_utran_GANSSTimingOfCell,
10247
14
      { "utran-GANSSTimingOfCell", "ulp.utran_GANSSTimingOfCell",
10248
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_utran_GANSSTimingOfCell_fmt), 0,
10249
14
        "INTEGER_0_3999999", HFILL }},
10250
14
    { &hf_ulp_modeSpecificInfo_03,
10251
14
      { "modeSpecificInfo", "ulp.modeSpecificInfo",
10252
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_03_vals), 0,
10253
14
        "T_modeSpecificInfo_03", HFILL }},
10254
14
    { &hf_ulp_fdd_03,
10255
14
      { "fdd", "ulp.fdd_element",
10256
14
        FT_NONE, BASE_NONE, NULL, 0,
10257
14
        "T_fdd_03", HFILL }},
10258
14
    { &hf_ulp_tdd_03,
10259
14
      { "tdd", "ulp.tdd_element",
10260
14
        FT_NONE, BASE_NONE, NULL, 0,
10261
14
        "T_tdd_03", HFILL }},
10262
14
    { &hf_ulp_ganss_TODUncertainty,
10263
14
      { "ganss-TODUncertainty", "ulp.ganss_TODUncertainty",
10264
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt), 0,
10265
14
        "INTEGER_0_127", HFILL }},
10266
14
    { &hf_ulp_set_GANSSReferenceTime,
10267
14
      { "set-GANSSReferenceTime", "ulp.set_GANSSReferenceTime_element",
10268
14
        FT_NONE, BASE_NONE, NULL, 0,
10269
14
        NULL, HFILL }},
10270
14
    { &hf_ulp_set_GANSSTimingOfCell,
10271
14
      { "set-GANSSTimingOfCell", "ulp.set_GANSSTimingOfCell_element",
10272
14
        FT_NONE, BASE_NONE, NULL, 0,
10273
14
        "T_set_GANSSTimingOfCell", HFILL }},
10274
14
    { &hf_ulp_ms_part_02,
10275
14
      { "ms-part", "ulp.ms_part",
10276
14
        FT_UINT32, BASE_DEC, NULL, 0,
10277
14
        "INTEGER_0_80", HFILL }},
10278
14
    { &hf_ulp_modeSpecificInfo_04,
10279
14
      { "modeSpecificInfo", "ulp.modeSpecificInfo",
10280
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_modeSpecificInfo_04_vals), 0,
10281
14
        "T_modeSpecificInfo_04", HFILL }},
10282
14
    { &hf_ulp_fdd_04,
10283
14
      { "fdd", "ulp.fdd_element",
10284
14
        FT_NONE, BASE_NONE, NULL, 0,
10285
14
        "T_fdd_04", HFILL }},
10286
14
    { &hf_ulp_tdd_04,
10287
14
      { "tdd", "ulp.tdd_element",
10288
14
        FT_NONE, BASE_NONE, NULL, 0,
10289
14
        "T_tdd_04", HFILL }},
10290
14
    { &hf_ulp_gps,
10291
14
      { "gps", "ulp.gps",
10292
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10293
14
        "BOOLEAN", HFILL }},
10294
14
    { &hf_ulp_galileo,
10295
14
      { "galileo", "ulp.galileo",
10296
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10297
14
        "BOOLEAN", HFILL }},
10298
14
    { &hf_ulp_sbas,
10299
14
      { "sbas", "ulp.sbas",
10300
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10301
14
        "BOOLEAN", HFILL }},
10302
14
    { &hf_ulp_modernized_gps,
10303
14
      { "modernized-gps", "ulp.modernized_gps",
10304
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10305
14
        "BOOLEAN", HFILL }},
10306
14
    { &hf_ulp_qzss,
10307
14
      { "qzss", "ulp.qzss",
10308
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10309
14
        "BOOLEAN", HFILL }},
10310
14
    { &hf_ulp_glonass,
10311
14
      { "glonass", "ulp.glonass",
10312
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10313
14
        "BOOLEAN", HFILL }},
10314
14
    { &hf_ulp_bds,
10315
14
      { "bds", "ulp.bds",
10316
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10317
14
        "BOOLEAN", HFILL }},
10318
14
    { &hf_ulp_rtk_osr,
10319
14
      { "rtk-osr", "ulp.rtk_osr",
10320
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10321
14
        "BOOLEAN", HFILL }},
10322
14
    { &hf_ulp_rand,
10323
14
      { "rand", "ulp.rand",
10324
14
        FT_BYTES, BASE_NONE, NULL, 0,
10325
14
        "BIT_STRING_SIZE_128", HFILL }},
10326
14
    { &hf_ulp_slpFQDN,
10327
14
      { "slpFQDN", "ulp.slpFQDN",
10328
14
        FT_STRING, BASE_NONE, NULL, 0,
10329
14
        "FQDN", HFILL }},
10330
14
    { &hf_ulp_ThirdParty_item,
10331
14
      { "ThirdPartyID", "ulp.ThirdPartyID",
10332
14
        FT_UINT32, BASE_DEC, VALS(ulp_ThirdPartyID_vals), 0,
10333
14
        NULL, HFILL }},
10334
14
    { &hf_ulp_logicalName,
10335
14
      { "logicalName", "ulp.logicalName",
10336
14
        FT_STRING, BASE_NONE, NULL, 0,
10337
14
        "IA5String_SIZE_1_1000", HFILL }},
10338
14
    { &hf_ulp_msisdn_01,
10339
14
      { "msisdn", "ulp.msisdn",
10340
14
        FT_BYTES, BASE_NONE, NULL, 0,
10341
14
        "T_msisdn_01", HFILL }},
10342
14
    { &hf_ulp_emailaddr,
10343
14
      { "emailaddr", "ulp.emailaddr",
10344
14
        FT_STRING, BASE_NONE, NULL, 0,
10345
14
        "IA5String_SIZE_1_1000", HFILL }},
10346
14
    { &hf_ulp_sip_uri,
10347
14
      { "sip-uri", "ulp.sip_uri",
10348
14
        FT_STRING, BASE_NONE, NULL, 0,
10349
14
        NULL, HFILL }},
10350
14
    { &hf_ulp_ims_public_identity,
10351
14
      { "ims-public-identity", "ulp.ims_public_identity",
10352
14
        FT_STRING, BASE_NONE, NULL, 0,
10353
14
        NULL, HFILL }},
10354
14
    { &hf_ulp_mdn_01,
10355
14
      { "mdn", "ulp.mdn",
10356
14
        FT_BYTES, BASE_NONE, NULL, 0,
10357
14
        "T_mdn_01", HFILL }},
10358
14
    { &hf_ulp_uri,
10359
14
      { "uri", "ulp.uri",
10360
14
        FT_STRING, BASE_NONE, NULL, 0,
10361
14
        NULL, HFILL }},
10362
14
    { &hf_ulp_appProvider,
10363
14
      { "appProvider", "ulp.appProvider",
10364
14
        FT_STRING, BASE_NONE, NULL, 0,
10365
14
        "IA5String_SIZE_1_24", HFILL }},
10366
14
    { &hf_ulp_appName,
10367
14
      { "appName", "ulp.appName",
10368
14
        FT_STRING, BASE_NONE, NULL, 0,
10369
14
        "IA5String_SIZE_1_32", HFILL }},
10370
14
    { &hf_ulp_appVersion,
10371
14
      { "appVersion", "ulp.appVersion",
10372
14
        FT_STRING, BASE_NONE, NULL, 0,
10373
14
        "IA5String_SIZE_1_8", HFILL }},
10374
14
    { &hf_ulp_minInt,
10375
14
      { "minInt", "ulp.minInt",
10376
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_seconds), 0,
10377
14
        "INTEGER_1_3600", HFILL }},
10378
14
    { &hf_ulp_maxInt,
10379
14
      { "maxInt", "ulp.maxInt",
10380
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_minutes), 0,
10381
14
        "INTEGER_1_1440", HFILL }},
10382
14
    { &hf_ulp_repMode_01,
10383
14
      { "repMode", "ulp.repMode_element",
10384
14
        FT_NONE, BASE_NONE, NULL, 0,
10385
14
        NULL, HFILL }},
10386
14
    { &hf_ulp_batchRepCap,
10387
14
      { "batchRepCap", "ulp.batchRepCap_element",
10388
14
        FT_NONE, BASE_NONE, NULL, 0,
10389
14
        NULL, HFILL }},
10390
14
    { &hf_ulp_realtime,
10391
14
      { "realtime", "ulp.realtime",
10392
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10393
14
        "BOOLEAN", HFILL }},
10394
14
    { &hf_ulp_quasirealtime,
10395
14
      { "quasirealtime", "ulp.quasirealtime",
10396
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10397
14
        "BOOLEAN", HFILL }},
10398
14
    { &hf_ulp_batch,
10399
14
      { "batch", "ulp.batch",
10400
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10401
14
        "BOOLEAN", HFILL }},
10402
14
    { &hf_ulp_report_position,
10403
14
      { "report-position", "ulp.report_position",
10404
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10405
14
        "BOOLEAN", HFILL }},
10406
14
    { &hf_ulp_report_measurements,
10407
14
      { "report-measurements", "ulp.report_measurements",
10408
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10409
14
        "BOOLEAN", HFILL }},
10410
14
    { &hf_ulp_max_num_positions,
10411
14
      { "max-num-positions", "ulp.max_num_positions",
10412
14
        FT_UINT32, BASE_DEC, NULL, 0,
10413
14
        "INTEGER_1_1024", HFILL }},
10414
14
    { &hf_ulp_max_num_measurements,
10415
14
      { "max-num-measurements", "ulp.max_num_measurements",
10416
14
        FT_UINT32, BASE_DEC, NULL, 0,
10417
14
        "INTEGER_1_1024", HFILL }},
10418
14
    { &hf_ulp_latitudeSign_01,
10419
14
      { "latitudeSign", "ulp.latitudeSign",
10420
14
        FT_UINT32, BASE_DEC, VALS(ulp_T_latitudeSign_01_vals), 0,
10421
14
        "T_latitudeSign_01", HFILL }},
10422
14
    { &hf_ulp_coordinateLatitude,
10423
14
      { "latitude", "ulp.coordinateLatitude",
10424
14
        FT_UINT32, BASE_CUSTOM, CF_FUNC(ulp_Coordinate_latitude_fmt), 0,
10425
14
        "INTEGER_0_8388607", HFILL }},
10426
14
    { &hf_ulp_coordinateLongitude,
10427
14
      { "longitude", "ulp.coordinateLongitude",
10428
14
        FT_INT32, BASE_CUSTOM, CF_FUNC(ulp_Coordinate_longitude_fmt), 0,
10429
14
        "INTEGER_M8388608_8388607", HFILL }},
10430
14
    { &hf_ulp_coordinate,
10431
14
      { "coordinate", "ulp.coordinate_element",
10432
14
        FT_NONE, BASE_NONE, NULL, 0,
10433
14
        NULL, HFILL }},
10434
14
    { &hf_ulp_radius,
10435
14
      { "radius", "ulp.radius",
10436
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_meters), 0,
10437
14
        "INTEGER_1_1000000", HFILL }},
10438
14
    { &hf_ulp_radius_min,
10439
14
      { "radius-min", "ulp.radius_min",
10440
14
        FT_UINT32, BASE_DEC, NULL, 0,
10441
14
        "INTEGER_1_1000000", HFILL }},
10442
14
    { &hf_ulp_radius_max,
10443
14
      { "radius-max", "ulp.radius_max",
10444
14
        FT_UINT32, BASE_DEC, NULL, 0,
10445
14
        "INTEGER_1_1500000", HFILL }},
10446
14
    { &hf_ulp_semiMajor,
10447
14
      { "semiMajor", "ulp.semiMajor",
10448
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_meters), 0,
10449
14
        "INTEGER_1_1000000", HFILL }},
10450
14
    { &hf_ulp_semiMajor_min,
10451
14
      { "semiMajor-min", "ulp.semiMajor_min",
10452
14
        FT_UINT32, BASE_DEC, NULL, 0,
10453
14
        "INTEGER_1_1000000", HFILL }},
10454
14
    { &hf_ulp_semiMajor_max,
10455
14
      { "semiMajor-max", "ulp.semiMajor_max",
10456
14
        FT_UINT32, BASE_DEC, NULL, 0,
10457
14
        "INTEGER_1_1500000", HFILL }},
10458
14
    { &hf_ulp_semiMinor,
10459
14
      { "semiMinor", "ulp.semiMinor",
10460
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_meters), 0,
10461
14
        "INTEGER_1_1000000", HFILL }},
10462
14
    { &hf_ulp_semiMinor_min,
10463
14
      { "semiMinor-min", "ulp.semiMinor_min",
10464
14
        FT_UINT32, BASE_DEC, NULL, 0,
10465
14
        "INTEGER_1_1000000", HFILL }},
10466
14
    { &hf_ulp_semiMinor_max,
10467
14
      { "semiMinor-max", "ulp.semiMinor_max",
10468
14
        FT_UINT32, BASE_DEC, NULL, 0,
10469
14
        "INTEGER_1_1500000", HFILL }},
10470
14
    { &hf_ulp_angle,
10471
14
      { "angle", "ulp.angle",
10472
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_degree_degrees), 0,
10473
14
        "INTEGER_0_179", HFILL }},
10474
14
    { &hf_ulp_polygonDescription,
10475
14
      { "polygonDescription", "ulp.polygonDescription",
10476
14
        FT_UINT32, BASE_DEC, NULL, 0,
10477
14
        NULL, HFILL }},
10478
14
    { &hf_ulp_polygonHysteresis,
10479
14
      { "polygonHysteresis", "ulp.polygonHysteresis",
10480
14
        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_meters), 0,
10481
14
        "INTEGER_1_100000", HFILL }},
10482
14
    { &hf_ulp_PolygonDescription_item,
10483
14
      { "Coordinate", "ulp.Coordinate_element",
10484
14
        FT_NONE, BASE_NONE, NULL, 0,
10485
14
        NULL, HFILL }},
10486
14
    { &hf_ulp_highAccuracyPositionEstimate,
10487
14
      { "highAccuracyPositionEstimate", "ulp.highAccuracyPositionEstimate_element",
10488
14
        FT_NONE, BASE_NONE, NULL, 0,
10489
14
        NULL, HFILL }},
10490
14
    { &hf_ulp_degreesLatitude,
10491
14
      { "degreesLatitude", "ulp.degreesLatitude",
10492
14
        FT_INT32, BASE_DEC, NULL, 0,
10493
14
        "INTEGER_M2147483648_2147483647", HFILL }},
10494
14
    { &hf_ulp_degreesLongitude,
10495
14
      { "degreesLongitude", "ulp.degreesLongitude",
10496
14
        FT_INT32, BASE_DEC, NULL, 0,
10497
14
        "INTEGER_M2147483648_2147483647", HFILL }},
10498
14
    { &hf_ulp_uncertaintySemiMajor_01,
10499
14
      { "uncertaintySemiMajor", "ulp.uncertaintySemiMajor",
10500
14
        FT_UINT32, BASE_DEC, NULL, 0,
10501
14
        "INTEGER_0_255", HFILL }},
10502
14
    { &hf_ulp_uncertaintySemiMinor_01,
10503
14
      { "uncertaintySemiMinor", "ulp.uncertaintySemiMinor",
10504
14
        FT_UINT32, BASE_DEC, NULL, 0,
10505
14
        "INTEGER_0_255", HFILL }},
10506
14
    { &hf_ulp_orientationMajorAxis_01,
10507
14
      { "orientationMajorAxis", "ulp.orientationMajorAxis",
10508
14
        FT_UINT32, BASE_DEC, NULL, 0,
10509
14
        "INTEGER_0_179", HFILL }},
10510
14
    { &hf_ulp_horizontalConfidence,
10511
14
      { "horizontalConfidence", "ulp.horizontalConfidence",
10512
14
        FT_UINT32, BASE_DEC, NULL, 0,
10513
14
        "INTEGER_0_100", HFILL }},
10514
14
    { &hf_ulp_highAccuracyAltitudeInfo,
10515
14
      { "highAccuracyAltitudeInfo", "ulp.highAccuracyAltitudeInfo_element",
10516
14
        FT_NONE, BASE_NONE, NULL, 0,
10517
14
        NULL, HFILL }},
10518
14
    { &hf_ulp_altitude_01,
10519
14
      { "altitude", "ulp.altitude",
10520
14
        FT_UINT32, BASE_DEC, NULL, 0,
10521
14
        "INTEGER_64000_1280000", HFILL }},
10522
14
    { &hf_ulp_uncertaintyAltitude,
10523
14
      { "uncertaintyAltitude", "ulp.uncertaintyAltitude",
10524
14
        FT_UINT32, BASE_DEC, NULL, 0,
10525
14
        "INTEGER_0_255", HFILL }},
10526
14
    { &hf_ulp_verticalConfidence,
10527
14
      { "verticalConfidence", "ulp.verticalConfidence",
10528
14
        FT_UINT32, BASE_DEC, NULL, 0,
10529
14
        "INTEGER_0_100", HFILL }},
10530
14
    { &hf_ulp_T_addPosMode_standalone,
10531
14
      { "standalone", "ulp.T.addPosMode.standalone",
10532
14
        FT_BOOLEAN, 8, NULL, 0x80,
10533
14
        NULL, HFILL }},
10534
14
    { &hf_ulp_T_addPosMode_setBased,
10535
14
      { "setBased", "ulp.T.addPosMode.setBased",
10536
14
        FT_BOOLEAN, 8, NULL, 0x40,
10537
14
        NULL, HFILL }},
10538
14
    { &hf_ulp_T_addPosMode_setAssisted,
10539
14
      { "setAssisted", "ulp.T.addPosMode.setAssisted",
10540
14
        FT_BOOLEAN, 8, NULL, 0x20,
10541
14
        NULL, HFILL }},
10542
14
    { &hf_ulp_GANSSSignals_signal1,
10543
14
      { "signal1", "ulp.GANSSSignals.signal1",
10544
14
        FT_BOOLEAN, 8, NULL, 0x80,
10545
14
        NULL, HFILL }},
10546
14
    { &hf_ulp_GANSSSignals_signal2,
10547
14
      { "signal2", "ulp.GANSSSignals.signal2",
10548
14
        FT_BOOLEAN, 8, NULL, 0x40,
10549
14
        NULL, HFILL }},
10550
14
    { &hf_ulp_GANSSSignals_signal3,
10551
14
      { "signal3", "ulp.GANSSSignals.signal3",
10552
14
        FT_BOOLEAN, 8, NULL, 0x20,
10553
14
        NULL, HFILL }},
10554
14
    { &hf_ulp_GANSSSignals_signal4,
10555
14
      { "signal4", "ulp.GANSSSignals.signal4",
10556
14
        FT_BOOLEAN, 8, NULL, 0x10,
10557
14
        NULL, HFILL }},
10558
14
    { &hf_ulp_GANSSSignals_signal5,
10559
14
      { "signal5", "ulp.GANSSSignals.signal5",
10560
14
        FT_BOOLEAN, 8, NULL, 0x08,
10561
14
        NULL, HFILL }},
10562
14
    { &hf_ulp_GANSSSignals_signal6,
10563
14
      { "signal6", "ulp.GANSSSignals.signal6",
10564
14
        FT_BOOLEAN, 8, NULL, 0x04,
10565
14
        NULL, HFILL }},
10566
14
    { &hf_ulp_GANSSSignals_signal7,
10567
14
      { "signal7", "ulp.GANSSSignals.signal7",
10568
14
        FT_BOOLEAN, 8, NULL, 0x02,
10569
14
        NULL, HFILL }},
10570
14
    { &hf_ulp_GANSSSignals_signal8,
10571
14
      { "signal8", "ulp.GANSSSignals.signal8",
10572
14
        FT_BOOLEAN, 8, NULL, 0x01,
10573
14
        NULL, HFILL }},
10574
14
    { &hf_ulp_mobile_directory_number,
10575
14
      { "Mobile Directory Number", "ulp.mobile_directory_number",
10576
14
        FT_STRING, BASE_NONE, NULL, 0,
10577
14
        NULL, HFILL }},
10578
14
    { &hf_ulp_ganssTimeModels_bit0,
10579
14
      { "GPS", "ulp.ganssTimeModels.gps",
10580
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x8000,
10581
14
        NULL, HFILL }},
10582
14
    { &hf_ulp_ganssTimeModels_bit1,
10583
14
      { "Galileo", "ulp.ganssTimeModels.galileo",
10584
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x4000,
10585
14
        NULL, HFILL }},
10586
14
    { &hf_ulp_ganssTimeModels_bit2,
10587
14
      { "QZSS", "ulp.ganssTimeModels.qzss",
10588
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x2000,
10589
14
        NULL, HFILL }},
10590
14
    { &hf_ulp_ganssTimeModels_bit3,
10591
14
      { "GLONASS", "ulp.ganssTimeModels.glonass",
10592
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x1000,
10593
14
        NULL, HFILL }},
10594
14
    { &hf_ulp_ganssTimeModels_bit4,
10595
14
      { "BDS", "ulp.ganssTimeModels.bds",
10596
14
        FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0800,
10597
14
        NULL, HFILL }},
10598
14
    { &hf_ulp_ganssTimeModels_spare,
10599
14
      { "Spare", "ulp.ganssTimeModels.spare",
10600
14
        FT_UINT16, BASE_HEX, NULL, 0x07ff,
10601
14
        NULL, HFILL }},
10602
14
  };
10603
10604
  /* List of subtrees */
10605
14
  static int *ett[] = {
10606
14
    &ett_ulp,
10607
14
    &ett_ulp_setid,
10608
14
    &ett_ulp_thirdPartyId,
10609
14
    &ett_ulp_ganssTimeModels,
10610
14
    &ett_ulp_ULP_PDU,
10611
14
    &ett_ulp_UlpMessage,
10612
14
    &ett_ulp_SUPLINIT,
10613
14
    &ett_ulp_Notification,
10614
14
    &ett_ulp_SUPLSTART,
10615
14
    &ett_ulp_SETCapabilities,
10616
14
    &ett_ulp_PosTechnology,
10617
14
    &ett_ulp_PosProtocol,
10618
14
    &ett_ulp_SUPLRESPONSE,
10619
14
    &ett_ulp_SETAuthKey,
10620
14
    &ett_ulp_SUPLPOSINIT,
10621
14
    &ett_ulp_RequestedAssistData,
10622
14
    &ett_ulp_NavigationModel,
10623
14
    &ett_ulp_SatelliteInfo,
10624
14
    &ett_ulp_SatelliteInfoElement,
10625
14
    &ett_ulp_SUPLPOS,
10626
14
    &ett_ulp_PosPayLoad,
10627
14
    &ett_ulp_SUPLEND,
10628
14
    &ett_ulp_SUPLAUTHREQ,
10629
14
    &ett_ulp_SUPLAUTHRESP,
10630
14
    &ett_ulp_Ver2_SUPLNOTIFY,
10631
14
    &ett_ulp_Ver2_SUPLNOTIFYRESPONSE,
10632
14
    &ett_ulp_Ver2_SUPLSETINIT,
10633
14
    &ett_ulp_Ver2_SUPLTRIGGEREDSTART,
10634
14
    &ett_ulp_TriggerParams,
10635
14
    &ett_ulp_PeriodicParams,
10636
14
    &ett_ulp_AreaEventParams,
10637
14
    &ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList,
10638
14
    &ett_ulp_RepeatedReportingParams,
10639
14
    &ett_ulp_GeographicTargetAreaList,
10640
14
    &ett_ulp_GeographicTargetArea,
10641
14
    &ett_ulp_AreaIdList,
10642
14
    &ett_ulp_AreaIdSet,
10643
14
    &ett_ulp_AreaId,
10644
14
    &ett_ulp_GSMAreaId,
10645
14
    &ett_ulp_WCDMAAreaId,
10646
14
    &ett_ulp_CDMAAreaId,
10647
14
    &ett_ulp_HRPDAreaId,
10648
14
    &ett_ulp_UMBAreaId,
10649
14
    &ett_ulp_LTEAreaId,
10650
14
    &ett_ulp_WLANAreaId,
10651
14
    &ett_ulp_WimaxAreaId,
10652
14
    &ett_ulp_NRAreaId,
10653
14
    &ett_ulp_GeoAreaMappingList,
10654
14
    &ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE,
10655
14
    &ett_ulp_ReportingMode,
10656
14
    &ett_ulp_BatchRepConditions,
10657
14
    &ett_ulp_BatchRepType,
10658
14
    &ett_ulp_Ver2_SUPLREPORT,
10659
14
    &ett_ulp_SessionList,
10660
14
    &ett_ulp_SessionInformation,
10661
14
    &ett_ulp_ReportDataList,
10662
14
    &ett_ulp_ReportData,
10663
14
    &ett_ulp_PositionData,
10664
14
    &ett_ulp_GANSSsignalsInfo,
10665
14
    &ett_ulp_GANSSSignalsDescription,
10666
14
    &ett_ulp_TimeStamp,
10667
14
    &ett_ulp_Ver2_SUPLTRIGGEREDSTOP,
10668
14
    &ett_ulp_Ver2_SUPL_INIT_extension,
10669
14
    &ett_ulp_HistoricReporting,
10670
14
    &ett_ulp_ReportingCriteria,
10671
14
    &ett_ulp_TimeWindow,
10672
14
    &ett_ulp_ProtectionLevel,
10673
14
    &ett_ulp_BasicProtectionParams,
10674
14
    &ett_ulp_Ver2_SUPL_START_extension,
10675
14
    &ett_ulp_Ver2_SUPL_RESPONSE_extension,
10676
14
    &ett_ulp_Ver2_SUPL_POS_INIT_extension,
10677
14
    &ett_ulp_Ver2_SUPL_POS_extension,
10678
14
    &ett_ulp_Ver2_SUPL_END_extension,
10679
14
    &ett_ulp_Ver2_Notification_extension,
10680
14
    &ett_ulp_Ver2_SETCapabilities_extension,
10681
14
    &ett_ulp_ServiceCapabilities,
10682
14
    &ett_ulp_ServicesSupported,
10683
14
    &ett_ulp_EventTriggerCapabilities,
10684
14
    &ett_ulp_GeoAreaShapesSupported,
10685
14
    &ett_ulp_SessionCapabilities,
10686
14
    &ett_ulp_SupportedBearers,
10687
14
    &ett_ulp_Ver2_PosProtocol_extension,
10688
14
    &ett_ulp_PosProtocolVersion3GPP,
10689
14
    &ett_ulp_PosProtocolVersion3GPP2,
10690
14
    &ett_ulp_Supported3GPP2PosProtocolVersion,
10691
14
    &ett_ulp_PosProtocolVersionOMA,
10692
14
    &ett_ulp_Ver2_PosTechnology_extension,
10693
14
    &ett_ulp_GANSSPositionMethods,
10694
14
    &ett_ulp_GANSSPositionMethod,
10695
14
    &ett_ulp_RTK,
10696
14
    &ett_ulp_GANSSPositioningMethodTypes,
10697
14
    &ett_ulp_AdditionalPositioningMethods,
10698
14
    &ett_ulp_AddPosSupport_Element,
10699
14
    &ett_ulp_T_addPosMode,
10700
14
    &ett_ulp_Ver2_RequestedAssistData_extension,
10701
14
    &ett_ulp_GanssRequestedCommonAssistanceDataList,
10702
14
    &ett_ulp_GanssRequestedGenericAssistanceDataList,
10703
14
    &ett_ulp_GanssReqGenericData,
10704
14
    &ett_ulp_GanssNavigationModelData,
10705
14
    &ett_ulp_SatellitesListRelatedDataList,
10706
14
    &ett_ulp_SatellitesListRelatedData,
10707
14
    &ett_ulp_GanssDataBits,
10708
14
    &ett_ulp_ReqDataBitAssistanceList,
10709
14
    &ett_ulp_T_ganssDataBitSatList,
10710
14
    &ett_ulp_GanssAdditionalDataChoices,
10711
14
    &ett_ulp_ExtendedEphemeris,
10712
14
    &ett_ulp_ExtendedEphCheck,
10713
14
    &ett_ulp_GanssExtendedEphCheck,
10714
14
    &ett_ulp_GPSTime,
10715
14
    &ett_ulp_GANSSextEphTime,
10716
14
    &ett_ulp_Ver2_PosPayLoad_extension,
10717
14
    &ett_ulp_T_lPPPayload,
10718
14
    &ett_ulp_T_tia801Payload,
10719
14
    &ett_ulp_Version,
10720
14
    &ett_ulp_SessionID,
10721
14
    &ett_ulp_SetSessionID,
10722
14
    &ett_ulp_SETId,
10723
14
    &ett_ulp_SlpSessionID,
10724
14
    &ett_ulp_IPAddress,
10725
14
    &ett_ulp_SLPAddress,
10726
14
    &ett_ulp_LocationId,
10727
14
    &ett_ulp_CellInfo,
10728
14
    &ett_ulp_Position,
10729
14
    &ett_ulp_PositionEstimate,
10730
14
    &ett_ulp_T_uncertainty,
10731
14
    &ett_ulp_AltitudeInfo,
10732
14
    &ett_ulp_CdmaCellInformation,
10733
14
    &ett_ulp_GsmCellInformation,
10734
14
    &ett_ulp_WcdmaCellInformation,
10735
14
    &ett_ulp_TimingAdvance,
10736
14
    &ett_ulp_FrequencyInfo,
10737
14
    &ett_ulp_FrequencySpecificInfo,
10738
14
    &ett_ulp_FrequencyInfoFDD,
10739
14
    &ett_ulp_FrequencyInfoTDD,
10740
14
    &ett_ulp_NMR,
10741
14
    &ett_ulp_NMRelement,
10742
14
    &ett_ulp_MeasuredResultsList,
10743
14
    &ett_ulp_MeasuredResults,
10744
14
    &ett_ulp_CellMeasuredResultsList,
10745
14
    &ett_ulp_CellMeasuredResults,
10746
14
    &ett_ulp_T_modeSpecificInfo,
10747
14
    &ett_ulp_T_fdd,
10748
14
    &ett_ulp_T_tdd,
10749
14
    &ett_ulp_TimeslotISCP_List,
10750
14
    &ett_ulp_PrimaryCPICH_Info,
10751
14
    &ett_ulp_QoP,
10752
14
    &ett_ulp_Velocity,
10753
14
    &ett_ulp_Horvel,
10754
14
    &ett_ulp_Horandvervel,
10755
14
    &ett_ulp_Horveluncert,
10756
14
    &ett_ulp_Horandveruncert,
10757
14
    &ett_ulp_MultipleLocationIds,
10758
14
    &ett_ulp_LocationIdData,
10759
14
    &ett_ulp_SupportedNetworkInformation,
10760
14
    &ett_ulp_SupportedWLANInfo,
10761
14
    &ett_ulp_SupportedWLANApsList,
10762
14
    &ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData,
10763
14
    &ett_ulp_SupportedWLANApsChannel11a,
10764
14
    &ett_ulp_SupportedWLANApsChannel11bg,
10765
14
    &ett_ulp_SupportedWLANApData,
10766
14
    &ett_ulp_SupportedWCDMAInfo,
10767
14
    &ett_ulp_Ver2_CellInfo_extension,
10768
14
    &ett_ulp_HrpdCellInformation,
10769
14
    &ett_ulp_UmbCellInformation,
10770
14
    &ett_ulp_LteCellInformation,
10771
14
    &ett_ulp_MeasResultListEUTRA,
10772
14
    &ett_ulp_MeasResultEUTRA,
10773
14
    &ett_ulp_T_cgi_Info,
10774
14
    &ett_ulp_T_measResult,
10775
14
    &ett_ulp_CellGlobalIdEUTRA,
10776
14
    &ett_ulp_PLMN_Identity,
10777
14
    &ett_ulp_MCC,
10778
14
    &ett_ulp_MNC,
10779
14
    &ett_ulp_ServingInformation5G,
10780
14
    &ett_ulp_NeighbourInformation5G,
10781
14
    &ett_ulp_WlanAPInformation,
10782
14
    &ett_ulp_RTD,
10783
14
    &ett_ulp_ReportedLocation,
10784
14
    &ett_ulp_LocationData,
10785
14
    &ett_ulp_RepLocation,
10786
14
    &ett_ulp_LciLocData,
10787
14
    &ett_ulp_LocationDataLCI,
10788
14
    &ett_ulp_WimaxBSInformation,
10789
14
    &ett_ulp_WimaxBsID,
10790
14
    &ett_ulp_WimaxRTD,
10791
14
    &ett_ulp_WimaxNMRList,
10792
14
    &ett_ulp_WimaxNMR,
10793
14
    &ett_ulp_NRCellInformation,
10794
14
    &ett_ulp_ServingCellInformationNR,
10795
14
    &ett_ulp_ServCellNR,
10796
14
    &ett_ulp_MeasResultListNR,
10797
14
    &ett_ulp_MeasResultNR,
10798
14
    &ett_ulp_CellGlobalIdNR,
10799
14
    &ett_ulp_NR_Measurements,
10800
14
    &ett_ulp_UTRAN_GPSReferenceTimeAssistance,
10801
14
    &ett_ulp_UTRAN_GPSReferenceTime,
10802
14
    &ett_ulp_T_utran_GPSTimingOfCell,
10803
14
    &ett_ulp_T_modeSpecificInfo_01,
10804
14
    &ett_ulp_T_fdd_01,
10805
14
    &ett_ulp_T_tdd_01,
10806
14
    &ett_ulp_UTRAN_GPSReferenceTimeResult,
10807
14
    &ett_ulp_T_set_GPSTimingOfCell,
10808
14
    &ett_ulp_T_modeSpecificInfo_02,
10809
14
    &ett_ulp_T_fdd_02,
10810
14
    &ett_ulp_T_tdd_02,
10811
14
    &ett_ulp_UTRAN_GANSSReferenceTimeAssistance,
10812
14
    &ett_ulp_UTRAN_GANSSReferenceTime,
10813
14
    &ett_ulp_T_modeSpecificInfo_03,
10814
14
    &ett_ulp_T_fdd_03,
10815
14
    &ett_ulp_T_tdd_03,
10816
14
    &ett_ulp_UTRAN_GANSSReferenceTimeResult,
10817
14
    &ett_ulp_SET_GANSSReferenceTime,
10818
14
    &ett_ulp_T_set_GANSSTimingOfCell,
10819
14
    &ett_ulp_T_modeSpecificInfo_04,
10820
14
    &ett_ulp_T_fdd_04,
10821
14
    &ett_ulp_T_tdd_04,
10822
14
    &ett_ulp_GNSSPosTechnology,
10823
14
    &ett_ulp_GANSSSignals,
10824
14
    &ett_ulp_SPCTID,
10825
14
    &ett_ulp_ThirdParty,
10826
14
    &ett_ulp_ThirdPartyID,
10827
14
    &ett_ulp_ApplicationID,
10828
14
    &ett_ulp_ReportingCap,
10829
14
    &ett_ulp_RepMode,
10830
14
    &ett_ulp_BatchRepCap,
10831
14
    &ett_ulp_Coordinate,
10832
14
    &ett_ulp_CircularArea,
10833
14
    &ett_ulp_EllipticalArea,
10834
14
    &ett_ulp_PolygonArea,
10835
14
    &ett_ulp_PolygonDescription,
10836
14
    &ett_ulp_Ver2_HighAccuracyPosition,
10837
14
    &ett_ulp_HighAccuracyPositionEstimate,
10838
14
    &ett_ulp_HighAccuracyAltitudeInfo,
10839
14
  };
10840
10841
14
  module_t *ulp_module;
10842
10843
10844
  /* Register protocol */
10845
14
  proto_ulp = proto_register_protocol("OMA UserPlane Location Protocol", "ULP", "ulp");
10846
14
  ulp_tcp_handle = register_dissector("ulp", dissect_ulp_tcp, proto_ulp);
10847
14
  ulp_pdu_handle = register_dissector("ulp.pdu", dissect_ULP_PDU_PDU, proto_ulp);
10848
10849
  /* Register fields and subtrees */
10850
14
  proto_register_field_array(proto_ulp, hf, array_length(hf));
10851
14
  proto_register_subtree_array(ett, array_length(ett));
10852
10853
14
  ulp_module = prefs_register_protocol(proto_ulp, NULL);
10854
10855
14
  prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
10856
14
    "Reassemble ULP messages spanning multiple TCP segments",
10857
14
    "Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
10858
14
    " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
10859
14
    &ulp_desegment);
10860
14
}
10861
10862
10863
/*--- proto_reg_handoff_ulp ---------------------------------------*/
10864
void
10865
proto_reg_handoff_ulp(void)
10866
14
{
10867
14
    rrlp_handle = find_dissector_add_dependency("rrlp", proto_ulp);
10868
14
    lpp_handle = find_dissector_add_dependency("lpp", proto_ulp);
10869
10870
14
    dissector_add_string("media_type","application/oma-supl-ulp", ulp_pdu_handle);
10871
14
    dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_pdu_handle);
10872
14
    dissector_add_uint_with_preference("tcp.port", ULP_PORT, ulp_tcp_handle);
10873
14
    dissector_add_uint_with_preference("udp.port", ULP_PORT, ulp_pdu_handle);
10874
14
}
10875