HACK: 2nd try to match RowsetProperties
[wireshark-wip.git] / epan / dissectors / packet-lppa.c
blob6434d0cf340f0f57eb52f658a85744a6a793d4be
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-lppa.c */
4 /* ../../tools/asn2wrs.py -p lppa -c ./lppa.cnf -s ./packet-lppa-template -D . -O ../../epan/dissectors LPPA-Common.asn LPPA-Constant.asn LPPA-Container.asn LPPA-ElementaryProcedure.asn LPPA-InformationElement.asn LPPA-PDU.asn */
6 /* Input file: packet-lppa-template.c */
8 #line 1 "../../asn1/lppa/packet-lppa-template.c"
9 /* packet-lppa.c
10 * Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection
11 * Copyright 2011, Pascal Quantin <pascal.quantin@gmail.com>
13 * $Id$
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
33 * Ref 3GPP TS 36.455 version 11.3.0 Release 11
34 * http://www.3gpp.org
37 #include "config.h"
39 #include <glib.h>
40 #include <epan/packet.h>
41 #include <epan/asn1.h>
43 #include "packet-per.h"
45 #define PNAME "LTE Positioning Protocol A (LPPa)"
46 #define PSNAME "LPPa"
47 #define PFNAME "lppa"
49 /* Initialize the protocol and registered fields */
50 static int proto_lppa = -1;
53 /*--- Included file: packet-lppa-hf.c ---*/
54 #line 1 "../../asn1/lppa/packet-lppa-hf.c"
55 static int hf_lppa_LPPA_PDU_PDU = -1; /* LPPA_PDU */
56 static int hf_lppa_Cause_PDU = -1; /* Cause */
57 static int hf_lppa_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
58 static int hf_lppa_E_CID_MeasurementResult_PDU = -1; /* E_CID_MeasurementResult */
59 static int hf_lppa_Measurement_ID_PDU = -1; /* Measurement_ID */
60 static int hf_lppa_MeasurementPeriodicity_PDU = -1; /* MeasurementPeriodicity */
61 static int hf_lppa_MeasurementQuantities_PDU = -1; /* MeasurementQuantities */
62 static int hf_lppa_MeasurementQuantities_Item_PDU = -1; /* MeasurementQuantities_Item */
63 static int hf_lppa_OTDOACells_PDU = -1; /* OTDOACells */
64 static int hf_lppa_ReportCharacteristics_PDU = -1; /* ReportCharacteristics */
65 static int hf_lppa_RequestedSRSTransmissionCharacteristics_PDU = -1; /* RequestedSRSTransmissionCharacteristics */
66 static int hf_lppa_ULConfiguration_PDU = -1; /* ULConfiguration */
67 static int hf_lppa_E_CIDMeasurementInitiationRequest_PDU = -1; /* E_CIDMeasurementInitiationRequest */
68 static int hf_lppa_E_CIDMeasurementInitiationResponse_PDU = -1; /* E_CIDMeasurementInitiationResponse */
69 static int hf_lppa_E_CIDMeasurementInitiationFailure_PDU = -1; /* E_CIDMeasurementInitiationFailure */
70 static int hf_lppa_E_CIDMeasurementFailureIndication_PDU = -1; /* E_CIDMeasurementFailureIndication */
71 static int hf_lppa_E_CIDMeasurementReport_PDU = -1; /* E_CIDMeasurementReport */
72 static int hf_lppa_E_CIDMeasurementTerminationCommand_PDU = -1; /* E_CIDMeasurementTerminationCommand */
73 static int hf_lppa_OTDOAInformationRequest_PDU = -1; /* OTDOAInformationRequest */
74 static int hf_lppa_OTDOA_Information_Type_PDU = -1; /* OTDOA_Information_Type */
75 static int hf_lppa_OTDOA_Information_Type_Item_PDU = -1; /* OTDOA_Information_Type_Item */
76 static int hf_lppa_OTDOAInformationResponse_PDU = -1; /* OTDOAInformationResponse */
77 static int hf_lppa_OTDOAInformationFailure_PDU = -1; /* OTDOAInformationFailure */
78 static int hf_lppa_UTDOAInformationRequest_PDU = -1; /* UTDOAInformationRequest */
79 static int hf_lppa_UTDOAInformationResponse_PDU = -1; /* UTDOAInformationResponse */
80 static int hf_lppa_UTDOAInformationFailure_PDU = -1; /* UTDOAInformationFailure */
81 static int hf_lppa_UTDOAInformationUpdate_PDU = -1; /* UTDOAInformationUpdate */
82 static int hf_lppa_ErrorIndication_PDU = -1; /* ErrorIndication */
83 static int hf_lppa_PrivateMessage_PDU = -1; /* PrivateMessage */
84 static int hf_lppa_local = -1; /* INTEGER_0_maxPrivateIEs */
85 static int hf_lppa_global = -1; /* OBJECT_IDENTIFIER */
86 static int hf_lppa_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
87 static int hf_lppa_id = -1; /* ProtocolIE_ID */
88 static int hf_lppa_criticality = -1; /* Criticality */
89 static int hf_lppa_ie_field_value = -1; /* T_ie_field_value */
90 static int hf_lppa_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */
91 static int hf_lppa_extensionValue = -1; /* T_extensionValue */
92 static int hf_lppa_PrivateIE_Container_item = -1; /* PrivateIE_Field */
93 static int hf_lppa_id_01 = -1; /* PrivateIE_ID */
94 static int hf_lppa_value = -1; /* T_value */
95 static int hf_lppa_initiatingMessage = -1; /* InitiatingMessage */
96 static int hf_lppa_successfulOutcome = -1; /* SuccessfulOutcome */
97 static int hf_lppa_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */
98 static int hf_lppa_procedureCode = -1; /* ProcedureCode */
99 static int hf_lppa_lppatransactionID = -1; /* LPPATransactionID */
100 static int hf_lppa_initiatingMessagevalue = -1; /* InitiatingMessage_value */
101 static int hf_lppa_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
102 static int hf_lppa_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
103 static int hf_lppa_radioNetwork = -1; /* CauseRadioNetwork */
104 static int hf_lppa_protocol = -1; /* CauseProtocol */
105 static int hf_lppa_misc = -1; /* CauseMisc */
106 static int hf_lppa_triggeringMessage = -1; /* TriggeringMessage */
107 static int hf_lppa_procedureCriticality = -1; /* Criticality */
108 static int hf_lppa_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */
109 static int hf_lppa_iE_Extensions = -1; /* ProtocolExtensionContainer */
110 static int hf_lppa_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */
111 static int hf_lppa_iECriticality = -1; /* Criticality */
112 static int hf_lppa_iE_ID = -1; /* ProtocolIE_ID */
113 static int hf_lppa_typeOfError = -1; /* TypeOfError */
114 static int hf_lppa_servingCell_ID = -1; /* ECGI */
115 static int hf_lppa_servingCellTAC = -1; /* TAC */
116 static int hf_lppa_e_UTRANAccessPointPosition = -1; /* E_UTRANAccessPointPosition */
117 static int hf_lppa_measuredResults = -1; /* MeasuredResults */
118 static int hf_lppa_pLMN_Identity = -1; /* PLMN_Identity */
119 static int hf_lppa_eUTRANcellIdentifier = -1; /* EUTRANCellIdentifier */
120 static int hf_lppa_latitudeSign = -1; /* T_latitudeSign */
121 static int hf_lppa_latitude = -1; /* INTEGER_0_8388607 */
122 static int hf_lppa_longitude = -1; /* INTEGER_M8388608_8388607 */
123 static int hf_lppa_directionOfAltitude = -1; /* T_directionOfAltitude */
124 static int hf_lppa_altitude = -1; /* INTEGER_0_32767 */
125 static int hf_lppa_uncertaintySemi_major = -1; /* INTEGER_0_127 */
126 static int hf_lppa_uncertaintySemi_minor = -1; /* INTEGER_0_127 */
127 static int hf_lppa_orientationOfMajorAxis = -1; /* INTEGER_0_179 */
128 static int hf_lppa_uncertaintyAltitude = -1; /* INTEGER_0_127 */
129 static int hf_lppa_confidence = -1; /* INTEGER_0_100 */
130 static int hf_lppa_MeasurementQuantities_item = -1; /* ProtocolIE_Single_Container */
131 static int hf_lppa_measurementQuantitiesValue = -1; /* MeasurementQuantitiesValue */
132 static int hf_lppa_MeasuredResults_item = -1; /* MeasuredResultsValue */
133 static int hf_lppa_valueAngleOfArrival = -1; /* INTEGER_0_719 */
134 static int hf_lppa_valueTimingAdvanceType1 = -1; /* INTEGER_0_7690 */
135 static int hf_lppa_valueTimingAdvanceType2 = -1; /* INTEGER_0_7690 */
136 static int hf_lppa_resultRSRP = -1; /* ResultRSRP */
137 static int hf_lppa_resultRSRQ = -1; /* ResultRSRQ */
138 static int hf_lppa_OTDOACells_item = -1; /* OTDOACells_item */
139 static int hf_lppa_oTDOACellInfo = -1; /* OTDOACell_Information */
140 static int hf_lppa_OTDOACell_Information_item = -1; /* OTDOACell_Information_Item */
141 static int hf_lppa_pCI = -1; /* PCI */
142 static int hf_lppa_cellId = -1; /* ECGI */
143 static int hf_lppa_tAC = -1; /* TAC */
144 static int hf_lppa_eARFCN = -1; /* EARFCN */
145 static int hf_lppa_pRS_Bandwidth = -1; /* PRS_Bandwidth */
146 static int hf_lppa_pRS_ConfigurationIndex = -1; /* PRS_Configuration_Index */
147 static int hf_lppa_cPLength = -1; /* CPLength */
148 static int hf_lppa_numberOfDlFrames = -1; /* NumberOfDlFrames */
149 static int hf_lppa_numberOfAntennaPorts = -1; /* NumberOfAntennaPorts */
150 static int hf_lppa_sFNInitialisationTime = -1; /* SFNInitialisationTime */
151 static int hf_lppa_pRSMutingConfiguration = -1; /* PRSMutingConfiguration */
152 static int hf_lppa_two = -1; /* BIT_STRING_SIZE_2 */
153 static int hf_lppa_four = -1; /* BIT_STRING_SIZE_4 */
154 static int hf_lppa_eight = -1; /* BIT_STRING_SIZE_8 */
155 static int hf_lppa_sixteen = -1; /* BIT_STRING_SIZE_16 */
156 static int hf_lppa_numberOfTransmissions = -1; /* INTEGER_0_500_ */
157 static int hf_lppa_bandwidth = -1; /* INTEGER_1_100_ */
158 static int hf_lppa_ResultRSRP_item = -1; /* ResultRSRP_Item */
159 static int hf_lppa_eCGI = -1; /* ECGI */
160 static int hf_lppa_valueRSRP = -1; /* ValueRSRP */
161 static int hf_lppa_ResultRSRQ_item = -1; /* ResultRSRQ_Item */
162 static int hf_lppa_valueRSRQ = -1; /* ValueRSRQ */
163 static int hf_lppa_SRSConfigurationForAllCells_item = -1; /* SRSConfigurationForOneCell */
164 static int hf_lppa_pci = -1; /* PCI */
165 static int hf_lppa_ul_earfcn = -1; /* EARFCN */
166 static int hf_lppa_ul_bandwidth = -1; /* T_ul_bandwidth */
167 static int hf_lppa_ul_cyclicPrefixLength = -1; /* CPLength */
168 static int hf_lppa_srs_BandwidthConfig = -1; /* T_srs_BandwidthConfig */
169 static int hf_lppa_srs_Bandwidth = -1; /* T_srs_Bandwidth */
170 static int hf_lppa_srs_AntennaPort = -1; /* T_srs_AntennaPort */
171 static int hf_lppa_srs_HoppingBandwidth = -1; /* T_srs_HoppingBandwidth */
172 static int hf_lppa_srs_cyclicShift = -1; /* T_srs_cyclicShift */
173 static int hf_lppa_srs_ConfigIndex = -1; /* INTEGER_0_1023 */
174 static int hf_lppa_maxUpPts = -1; /* T_maxUpPts */
175 static int hf_lppa_transmissionComb = -1; /* INTEGER_0_1 */
176 static int hf_lppa_freqDomainPosition = -1; /* INTEGER_0_23 */
177 static int hf_lppa_groupHoppingEnabled = -1; /* BOOLEAN */
178 static int hf_lppa_deltaSS = -1; /* INTEGER_0_29 */
179 static int hf_lppa_sfnInitialisationTime = -1; /* SFNInitialisationTime */
180 static int hf_lppa_timingAdvanceType1 = -1; /* INTEGER_0_7690 */
181 static int hf_lppa_timingAdvanceType2 = -1; /* INTEGER_0_7690 */
182 static int hf_lppa_srsConfiguration = -1; /* SRSConfigurationForAllCells */
183 static int hf_lppa_protocolIEs = -1; /* ProtocolIE_Container */
184 static int hf_lppa_OTDOA_Information_Type_item = -1; /* ProtocolIE_Single_Container */
185 static int hf_lppa_oTDOA_Information_Type_Item = -1; /* OTDOA_Information_Item */
186 static int hf_lppa_privateIEs = -1; /* PrivateIE_Container */
188 /*--- End of included file: packet-lppa-hf.c ---*/
189 #line 45 "../../asn1/lppa/packet-lppa-template.c"
191 /* Initialize the subtree pointers */
192 static gint ett_lppa = -1;
194 /*--- Included file: packet-lppa-ett.c ---*/
195 #line 1 "../../asn1/lppa/packet-lppa-ett.c"
196 static gint ett_lppa_PrivateIE_ID = -1;
197 static gint ett_lppa_ProtocolIE_Container = -1;
198 static gint ett_lppa_ProtocolIE_Field = -1;
199 static gint ett_lppa_ProtocolExtensionContainer = -1;
200 static gint ett_lppa_ProtocolExtensionField = -1;
201 static gint ett_lppa_PrivateIE_Container = -1;
202 static gint ett_lppa_PrivateIE_Field = -1;
203 static gint ett_lppa_LPPA_PDU = -1;
204 static gint ett_lppa_InitiatingMessage = -1;
205 static gint ett_lppa_SuccessfulOutcome = -1;
206 static gint ett_lppa_UnsuccessfulOutcome = -1;
207 static gint ett_lppa_Cause = -1;
208 static gint ett_lppa_CriticalityDiagnostics = -1;
209 static gint ett_lppa_CriticalityDiagnostics_IE_List = -1;
210 static gint ett_lppa_CriticalityDiagnostics_IE_List_item = -1;
211 static gint ett_lppa_E_CID_MeasurementResult = -1;
212 static gint ett_lppa_ECGI = -1;
213 static gint ett_lppa_E_UTRANAccessPointPosition = -1;
214 static gint ett_lppa_MeasurementQuantities = -1;
215 static gint ett_lppa_MeasurementQuantities_Item = -1;
216 static gint ett_lppa_MeasuredResults = -1;
217 static gint ett_lppa_MeasuredResultsValue = -1;
218 static gint ett_lppa_OTDOACells = -1;
219 static gint ett_lppa_OTDOACells_item = -1;
220 static gint ett_lppa_OTDOACell_Information = -1;
221 static gint ett_lppa_OTDOACell_Information_Item = -1;
222 static gint ett_lppa_PRSMutingConfiguration = -1;
223 static gint ett_lppa_RequestedSRSTransmissionCharacteristics = -1;
224 static gint ett_lppa_ResultRSRP = -1;
225 static gint ett_lppa_ResultRSRP_Item = -1;
226 static gint ett_lppa_ResultRSRQ = -1;
227 static gint ett_lppa_ResultRSRQ_Item = -1;
228 static gint ett_lppa_SRSConfigurationForAllCells = -1;
229 static gint ett_lppa_SRSConfigurationForOneCell = -1;
230 static gint ett_lppa_ULConfiguration = -1;
231 static gint ett_lppa_E_CIDMeasurementInitiationRequest = -1;
232 static gint ett_lppa_E_CIDMeasurementInitiationResponse = -1;
233 static gint ett_lppa_E_CIDMeasurementInitiationFailure = -1;
234 static gint ett_lppa_E_CIDMeasurementFailureIndication = -1;
235 static gint ett_lppa_E_CIDMeasurementReport = -1;
236 static gint ett_lppa_E_CIDMeasurementTerminationCommand = -1;
237 static gint ett_lppa_OTDOAInformationRequest = -1;
238 static gint ett_lppa_OTDOA_Information_Type = -1;
239 static gint ett_lppa_OTDOA_Information_Type_Item = -1;
240 static gint ett_lppa_OTDOAInformationResponse = -1;
241 static gint ett_lppa_OTDOAInformationFailure = -1;
242 static gint ett_lppa_UTDOAInformationRequest = -1;
243 static gint ett_lppa_UTDOAInformationResponse = -1;
244 static gint ett_lppa_UTDOAInformationFailure = -1;
245 static gint ett_lppa_UTDOAInformationUpdate = -1;
246 static gint ett_lppa_ErrorIndication = -1;
247 static gint ett_lppa_PrivateMessage = -1;
249 /*--- End of included file: packet-lppa-ett.c ---*/
250 #line 49 "../../asn1/lppa/packet-lppa-template.c"
252 /* Global variables */
253 static guint32 ProcedureCode;
254 static guint32 ProtocolIE_ID;
256 /* Dissector tables */
257 static dissector_table_t lppa_ies_dissector_table;
258 static dissector_table_t lppa_proc_imsg_dissector_table;
259 static dissector_table_t lppa_proc_sout_dissector_table;
260 static dissector_table_t lppa_proc_uout_dissector_table;
262 /* Include constants */
264 /*--- Included file: packet-lppa-val.h ---*/
265 #line 1 "../../asn1/lppa/packet-lppa-val.h"
266 #define maxPrivateIEs 65535
267 #define maxProtocolExtensions 65535
268 #define maxProtocolIEs 65535
269 #define maxNrOfErrors 256
270 #define maxCellineNB 256
271 #define maxNoMeas 63
272 #define maxCellReport 9
273 #define maxnoOTDOAtypes 63
274 #define maxServCell 5
276 typedef enum _ProcedureCode_enum {
277 id_errorIndication = 0,
278 id_privateMessage = 1,
279 id_e_CIDMeasurementInitiation = 2,
280 id_e_CIDMeasurementFailureIndication = 3,
281 id_e_CIDMeasurementReport = 4,
282 id_e_CIDMeasurementTermination = 5,
283 id_oTDOAInformationExchange = 6,
284 id_uTDOAInformationExchange = 7,
285 id_uTDOAInformationUpdate = 8
286 } ProcedureCode_enum;
288 typedef enum _ProtocolIE_ID_enum {
289 id_Cause = 0,
290 id_CriticalityDiagnostics = 1,
291 id_E_SMLC_UE_Measurement_ID = 2,
292 id_ReportCharacteristics = 3,
293 id_MeasurementPeriodicity = 4,
294 id_MeasurementQuantities = 5,
295 id_eNB_UE_Measurement_ID = 6,
296 id_E_CID_MeasurementResult = 7,
297 id_OTDOACells = 8,
298 id_OTDOA_Information_Type_Group = 9,
299 id_OTDOA_Information_Type_Item = 10,
300 id_MeasurementQuantities_Item = 11,
301 id_RequestedSRSTransmissionCharacteristics = 12,
302 id_ULConfiguration = 13
303 } ProtocolIE_ID_enum;
305 /*--- End of included file: packet-lppa-val.h ---*/
306 #line 62 "../../asn1/lppa/packet-lppa-template.c"
308 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
309 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
310 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
311 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
314 /*--- Included file: packet-lppa-fn.c ---*/
315 #line 1 "../../asn1/lppa/packet-lppa-fn.c"
317 static const value_string lppa_Criticality_vals[] = {
318 { 0, "reject" },
319 { 1, "ignore" },
320 { 2, "notify" },
321 { 0, NULL }
325 static int
326 dissect_lppa_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
327 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
328 3, NULL, FALSE, 0, NULL);
330 return offset;
335 static int
336 dissect_lppa_LPPATransactionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
337 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
338 0U, 32767U, NULL, FALSE);
340 return offset;
345 static int
346 dissect_lppa_INTEGER_0_maxPrivateIEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
347 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
348 0U, maxPrivateIEs, NULL, FALSE);
350 return offset;
355 static int
356 dissect_lppa_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
357 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
359 return offset;
363 static const value_string lppa_PrivateIE_ID_vals[] = {
364 { 0, "local" },
365 { 1, "global" },
366 { 0, NULL }
369 static const per_choice_t PrivateIE_ID_choice[] = {
370 { 0, &hf_lppa_local , ASN1_NO_EXTENSIONS , dissect_lppa_INTEGER_0_maxPrivateIEs },
371 { 1, &hf_lppa_global , ASN1_NO_EXTENSIONS , dissect_lppa_OBJECT_IDENTIFIER },
372 { 0, NULL, 0, NULL }
375 static int
376 dissect_lppa_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
377 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
378 ett_lppa_PrivateIE_ID, PrivateIE_ID_choice,
379 NULL);
381 return offset;
385 static const value_string lppa_ProcedureCode_vals[] = {
386 { id_errorIndication, "id-errorIndication" },
387 { id_privateMessage, "id-privateMessage" },
388 { id_e_CIDMeasurementInitiation, "id-e-CIDMeasurementInitiation" },
389 { id_e_CIDMeasurementFailureIndication, "id-e-CIDMeasurementFailureIndication" },
390 { id_e_CIDMeasurementReport, "id-e-CIDMeasurementReport" },
391 { id_e_CIDMeasurementTermination, "id-e-CIDMeasurementTermination" },
392 { id_oTDOAInformationExchange, "id-oTDOAInformationExchange" },
393 { id_uTDOAInformationExchange, "id-uTDOAInformationExchange" },
394 { id_uTDOAInformationUpdate, "id-uTDOAInformationUpdate" },
395 { 0, NULL }
399 static int
400 dissect_lppa_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
401 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
402 0U, 255U, &ProcedureCode, FALSE);
404 #line 45 "../../asn1/lppa/lppa.cnf"
405 col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
406 val_to_str(ProcedureCode, lppa_ProcedureCode_vals,
407 "unknown message"));
409 return offset;
413 static const value_string lppa_ProtocolIE_ID_vals[] = {
414 { id_Cause, "id-Cause" },
415 { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
416 { id_E_SMLC_UE_Measurement_ID, "id-E-SMLC-UE-Measurement-ID" },
417 { id_ReportCharacteristics, "id-ReportCharacteristics" },
418 { id_MeasurementPeriodicity, "id-MeasurementPeriodicity" },
419 { id_MeasurementQuantities, "id-MeasurementQuantities" },
420 { id_eNB_UE_Measurement_ID, "id-eNB-UE-Measurement-ID" },
421 { id_E_CID_MeasurementResult, "id-E-CID-MeasurementResult" },
422 { id_OTDOACells, "id-OTDOACells" },
423 { id_OTDOA_Information_Type_Group, "id-OTDOA-Information-Type-Group" },
424 { id_OTDOA_Information_Type_Item, "id-OTDOA-Information-Type-Item" },
425 { id_MeasurementQuantities_Item, "id-MeasurementQuantities-Item" },
426 { id_RequestedSRSTransmissionCharacteristics, "id-RequestedSRSTransmissionCharacteristics" },
427 { id_ULConfiguration, "id-ULConfiguration" },
428 { 0, NULL }
432 static int
433 dissect_lppa_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
434 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
435 0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
437 #line 38 "../../asn1/lppa/lppa.cnf"
438 if (tree) {
439 proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)"));
442 return offset;
446 static const value_string lppa_TriggeringMessage_vals[] = {
447 { 0, "initiating-message" },
448 { 1, "successful-outcome" },
449 { 2, "unsuccessful-outcome" },
450 { 0, NULL }
454 static int
455 dissect_lppa_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
456 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
457 3, NULL, FALSE, 0, NULL);
459 return offset;
464 static int
465 dissect_lppa_T_ie_field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
466 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
468 return offset;
472 static const per_sequence_t ProtocolIE_Field_sequence[] = {
473 { &hf_lppa_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_ID },
474 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
475 { &hf_lppa_ie_field_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_ie_field_value },
476 { NULL, 0, 0, NULL }
479 static int
480 dissect_lppa_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
481 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
482 ett_lppa_ProtocolIE_Field, ProtocolIE_Field_sequence);
484 return offset;
488 static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
489 { &hf_lppa_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Field },
492 static int
493 dissect_lppa_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
494 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
495 ett_lppa_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
496 0, maxProtocolIEs, FALSE);
498 return offset;
503 static int
504 dissect_lppa_ProtocolIE_Single_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
505 offset = dissect_lppa_ProtocolIE_Field(tvb, offset, actx, tree, hf_index);
507 return offset;
512 static int
513 dissect_lppa_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
514 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
516 return offset;
520 static const per_sequence_t ProtocolExtensionField_sequence[] = {
521 { &hf_lppa_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_ID },
522 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
523 { &hf_lppa_extensionValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_extensionValue },
524 { NULL, 0, 0, NULL }
527 static int
528 dissect_lppa_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
529 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
530 ett_lppa_ProtocolExtensionField, ProtocolExtensionField_sequence);
532 return offset;
536 static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
537 { &hf_lppa_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolExtensionField },
540 static int
541 dissect_lppa_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
542 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
543 ett_lppa_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
544 1, maxProtocolExtensions, FALSE);
546 return offset;
551 static int
552 dissect_lppa_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
553 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
555 return offset;
559 static const per_sequence_t PrivateIE_Field_sequence[] = {
560 { &hf_lppa_id_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_PrivateIE_ID },
561 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
562 { &hf_lppa_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_value },
563 { NULL, 0, 0, NULL }
566 static int
567 dissect_lppa_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
568 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
569 ett_lppa_PrivateIE_Field, PrivateIE_Field_sequence);
571 return offset;
575 static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
576 { &hf_lppa_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_PrivateIE_Field },
579 static int
580 dissect_lppa_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
581 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
582 ett_lppa_PrivateIE_Container, PrivateIE_Container_sequence_of,
583 1, maxPrivateIEs, FALSE);
585 return offset;
590 static int
591 dissect_lppa_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
592 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
594 return offset;
598 static const per_sequence_t InitiatingMessage_sequence[] = {
599 { &hf_lppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProcedureCode },
600 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
601 { &hf_lppa_lppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_LPPATransactionID },
602 { &hf_lppa_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_InitiatingMessage_value },
603 { NULL, 0, 0, NULL }
606 static int
607 dissect_lppa_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
608 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
609 ett_lppa_InitiatingMessage, InitiatingMessage_sequence);
611 return offset;
616 static int
617 dissect_lppa_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
618 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
620 return offset;
624 static const per_sequence_t SuccessfulOutcome_sequence[] = {
625 { &hf_lppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProcedureCode },
626 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
627 { &hf_lppa_lppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_LPPATransactionID },
628 { &hf_lppa_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_SuccessfulOutcome_value },
629 { NULL, 0, 0, NULL }
632 static int
633 dissect_lppa_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
634 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
635 ett_lppa_SuccessfulOutcome, SuccessfulOutcome_sequence);
637 return offset;
642 static int
643 dissect_lppa_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
644 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
646 return offset;
650 static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
651 { &hf_lppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProcedureCode },
652 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
653 { &hf_lppa_lppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_LPPATransactionID },
654 { &hf_lppa_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_UnsuccessfulOutcome_value },
655 { NULL, 0, 0, NULL }
658 static int
659 dissect_lppa_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
660 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
661 ett_lppa_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
663 return offset;
667 static const value_string lppa_LPPA_PDU_vals[] = {
668 { 0, "initiatingMessage" },
669 { 1, "successfulOutcome" },
670 { 2, "unsuccessfulOutcome" },
671 { 0, NULL }
674 static const per_choice_t LPPA_PDU_choice[] = {
675 { 0, &hf_lppa_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_lppa_InitiatingMessage },
676 { 1, &hf_lppa_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_lppa_SuccessfulOutcome },
677 { 2, &hf_lppa_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_lppa_UnsuccessfulOutcome },
678 { 0, NULL, 0, NULL }
681 static int
682 dissect_lppa_LPPA_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
683 #line 59 "../../asn1/lppa/lppa.cnf"
685 proto_tree_add_item(tree, proto_lppa, tvb, 0, -1, ENC_NA);
687 col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "LPPa");
689 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
690 ett_lppa_LPPA_PDU, LPPA_PDU_choice,
691 NULL);
693 return offset;
697 static const value_string lppa_CauseRadioNetwork_vals[] = {
698 { 0, "unspecified" },
699 { 1, "requested-item-not-supported" },
700 { 2, "requested-item-temporarily-not-available" },
701 { 0, NULL }
705 static int
706 dissect_lppa_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
707 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
708 3, NULL, TRUE, 0, NULL);
710 return offset;
714 static const value_string lppa_CauseProtocol_vals[] = {
715 { 0, "transfer-syntax-error" },
716 { 1, "abstract-syntax-error-reject" },
717 { 2, "abstract-syntax-error-ignore-and-notify" },
718 { 3, "message-not-compatible-with-receiver-state" },
719 { 4, "semantic-error" },
720 { 5, "unspecified" },
721 { 6, "abstract-syntax-error-falsely-constructed-message" },
722 { 0, NULL }
726 static int
727 dissect_lppa_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
728 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
729 7, NULL, TRUE, 0, NULL);
731 return offset;
735 static const value_string lppa_CauseMisc_vals[] = {
736 { 0, "unspecified" },
737 { 0, NULL }
741 static int
742 dissect_lppa_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
743 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
744 1, NULL, TRUE, 0, NULL);
746 return offset;
750 static const value_string lppa_Cause_vals[] = {
751 { 0, "radioNetwork" },
752 { 1, "protocol" },
753 { 2, "misc" },
754 { 0, NULL }
757 static const per_choice_t Cause_choice[] = {
758 { 0, &hf_lppa_radioNetwork , ASN1_EXTENSION_ROOT , dissect_lppa_CauseRadioNetwork },
759 { 1, &hf_lppa_protocol , ASN1_EXTENSION_ROOT , dissect_lppa_CauseProtocol },
760 { 2, &hf_lppa_misc , ASN1_EXTENSION_ROOT , dissect_lppa_CauseMisc },
761 { 0, NULL, 0, NULL }
764 static int
765 dissect_lppa_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
766 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
767 ett_lppa_Cause, Cause_choice,
768 NULL);
770 return offset;
774 static const value_string lppa_CPLength_vals[] = {
775 { 0, "normal" },
776 { 1, "extended" },
777 { 0, NULL }
781 static int
782 dissect_lppa_CPLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
783 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
784 2, NULL, TRUE, 0, NULL);
786 return offset;
790 static const value_string lppa_TypeOfError_vals[] = {
791 { 0, "not-understood" },
792 { 1, "missing" },
793 { 0, NULL }
797 static int
798 dissect_lppa_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
799 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
800 2, NULL, TRUE, 0, NULL);
802 return offset;
806 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
807 { &hf_lppa_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
808 { &hf_lppa_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_ID },
809 { &hf_lppa_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_TypeOfError },
810 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
811 { NULL, 0, 0, NULL }
814 static int
815 dissect_lppa_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
816 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
817 ett_lppa_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
819 return offset;
823 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
824 { &hf_lppa_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_CriticalityDiagnostics_IE_List_item },
827 static int
828 dissect_lppa_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
829 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
830 ett_lppa_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
831 1, maxNrOfErrors, FALSE);
833 return offset;
837 static const per_sequence_t CriticalityDiagnostics_sequence[] = {
838 { &hf_lppa_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProcedureCode },
839 { &hf_lppa_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_TriggeringMessage },
840 { &hf_lppa_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_Criticality },
841 { &hf_lppa_lppatransactionID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_LPPATransactionID },
842 { &hf_lppa_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_CriticalityDiagnostics_IE_List },
843 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
844 { NULL, 0, 0, NULL }
847 static int
848 dissect_lppa_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
849 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
850 ett_lppa_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
852 return offset;
857 static int
858 dissect_lppa_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
859 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
860 3, 3, FALSE, NULL);
862 return offset;
867 static int
868 dissect_lppa_EUTRANCellIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
869 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
870 28, 28, FALSE, NULL);
872 return offset;
876 static const per_sequence_t ECGI_sequence[] = {
877 { &hf_lppa_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PLMN_Identity },
878 { &hf_lppa_eUTRANcellIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EUTRANCellIdentifier },
879 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
880 { NULL, 0, 0, NULL }
883 static int
884 dissect_lppa_ECGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
885 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
886 ett_lppa_ECGI, ECGI_sequence);
888 return offset;
893 static int
894 dissect_lppa_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
895 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
896 2, 2, FALSE, NULL);
898 return offset;
902 static const value_string lppa_T_latitudeSign_vals[] = {
903 { 0, "north" },
904 { 1, "south" },
905 { 0, NULL }
909 static int
910 dissect_lppa_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
911 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
912 2, NULL, FALSE, 0, NULL);
914 return offset;
919 static int
920 dissect_lppa_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
921 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
922 0U, 8388607U, NULL, FALSE);
924 return offset;
929 static int
930 dissect_lppa_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
931 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
932 -8388608, 8388607U, NULL, FALSE);
934 return offset;
938 static const value_string lppa_T_directionOfAltitude_vals[] = {
939 { 0, "height" },
940 { 1, "depth" },
941 { 0, NULL }
945 static int
946 dissect_lppa_T_directionOfAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
947 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
948 2, NULL, FALSE, 0, NULL);
950 return offset;
955 static int
956 dissect_lppa_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
957 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
958 0U, 32767U, NULL, FALSE);
960 return offset;
965 static int
966 dissect_lppa_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
967 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
968 0U, 127U, NULL, FALSE);
970 return offset;
975 static int
976 dissect_lppa_INTEGER_0_179(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
977 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
978 0U, 179U, NULL, FALSE);
980 return offset;
985 static int
986 dissect_lppa_INTEGER_0_100(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
987 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
988 0U, 100U, NULL, FALSE);
990 return offset;
994 static const per_sequence_t E_UTRANAccessPointPosition_sequence[] = {
995 { &hf_lppa_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_latitudeSign },
996 { &hf_lppa_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_8388607 },
997 { &hf_lppa_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_M8388608_8388607 },
998 { &hf_lppa_directionOfAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_directionOfAltitude },
999 { &hf_lppa_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_32767 },
1000 { &hf_lppa_uncertaintySemi_major, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_127 },
1001 { &hf_lppa_uncertaintySemi_minor, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_127 },
1002 { &hf_lppa_orientationOfMajorAxis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_179 },
1003 { &hf_lppa_uncertaintyAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_127 },
1004 { &hf_lppa_confidence , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_100 },
1005 { NULL, 0, 0, NULL }
1008 static int
1009 dissect_lppa_E_UTRANAccessPointPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1010 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1011 ett_lppa_E_UTRANAccessPointPosition, E_UTRANAccessPointPosition_sequence);
1013 return offset;
1018 static int
1019 dissect_lppa_INTEGER_0_719(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1020 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1021 0U, 719U, NULL, FALSE);
1023 return offset;
1028 static int
1029 dissect_lppa_INTEGER_0_7690(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1030 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1031 0U, 7690U, NULL, FALSE);
1033 return offset;
1038 static int
1039 dissect_lppa_PCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1040 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1041 0U, 503U, NULL, TRUE);
1043 return offset;
1048 static int
1049 dissect_lppa_EARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1050 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1051 0U, 65535U, NULL, TRUE);
1053 return offset;
1058 static int
1059 dissect_lppa_ValueRSRP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1060 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1061 0U, 97U, NULL, TRUE);
1063 return offset;
1067 static const per_sequence_t ResultRSRP_Item_sequence[] = {
1068 { &hf_lppa_pCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
1069 { &hf_lppa_eARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
1070 { &hf_lppa_eCGI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ECGI },
1071 { &hf_lppa_valueRSRP , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ValueRSRP },
1072 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1073 { NULL, 0, 0, NULL }
1076 static int
1077 dissect_lppa_ResultRSRP_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1078 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1079 ett_lppa_ResultRSRP_Item, ResultRSRP_Item_sequence);
1081 return offset;
1085 static const per_sequence_t ResultRSRP_sequence_of[1] = {
1086 { &hf_lppa_ResultRSRP_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultRSRP_Item },
1089 static int
1090 dissect_lppa_ResultRSRP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1091 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1092 ett_lppa_ResultRSRP, ResultRSRP_sequence_of,
1093 1, maxCellReport, FALSE);
1095 return offset;
1100 static int
1101 dissect_lppa_ValueRSRQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1102 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1103 0U, 34U, NULL, TRUE);
1105 return offset;
1109 static const per_sequence_t ResultRSRQ_Item_sequence[] = {
1110 { &hf_lppa_pCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
1111 { &hf_lppa_eARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
1112 { &hf_lppa_eCGI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ECGI },
1113 { &hf_lppa_valueRSRQ , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ValueRSRQ },
1114 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1115 { NULL, 0, 0, NULL }
1118 static int
1119 dissect_lppa_ResultRSRQ_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1120 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1121 ett_lppa_ResultRSRQ_Item, ResultRSRQ_Item_sequence);
1123 return offset;
1127 static const per_sequence_t ResultRSRQ_sequence_of[1] = {
1128 { &hf_lppa_ResultRSRQ_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultRSRQ_Item },
1131 static int
1132 dissect_lppa_ResultRSRQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1133 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1134 ett_lppa_ResultRSRQ, ResultRSRQ_sequence_of,
1135 1, maxCellReport, FALSE);
1137 return offset;
1141 static const value_string lppa_MeasuredResultsValue_vals[] = {
1142 { 0, "valueAngleOfArrival" },
1143 { 1, "valueTimingAdvanceType1" },
1144 { 2, "valueTimingAdvanceType2" },
1145 { 3, "resultRSRP" },
1146 { 4, "resultRSRQ" },
1147 { 0, NULL }
1150 static const per_choice_t MeasuredResultsValue_choice[] = {
1151 { 0, &hf_lppa_valueAngleOfArrival, ASN1_EXTENSION_ROOT , dissect_lppa_INTEGER_0_719 },
1152 { 1, &hf_lppa_valueTimingAdvanceType1, ASN1_EXTENSION_ROOT , dissect_lppa_INTEGER_0_7690 },
1153 { 2, &hf_lppa_valueTimingAdvanceType2, ASN1_EXTENSION_ROOT , dissect_lppa_INTEGER_0_7690 },
1154 { 3, &hf_lppa_resultRSRP , ASN1_EXTENSION_ROOT , dissect_lppa_ResultRSRP },
1155 { 4, &hf_lppa_resultRSRQ , ASN1_EXTENSION_ROOT , dissect_lppa_ResultRSRQ },
1156 { 0, NULL, 0, NULL }
1159 static int
1160 dissect_lppa_MeasuredResultsValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1161 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1162 ett_lppa_MeasuredResultsValue, MeasuredResultsValue_choice,
1163 NULL);
1165 return offset;
1169 static const per_sequence_t MeasuredResults_sequence_of[1] = {
1170 { &hf_lppa_MeasuredResults_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_MeasuredResultsValue },
1173 static int
1174 dissect_lppa_MeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1175 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1176 ett_lppa_MeasuredResults, MeasuredResults_sequence_of,
1177 1, maxNoMeas, FALSE);
1179 return offset;
1183 static const per_sequence_t E_CID_MeasurementResult_sequence[] = {
1184 { &hf_lppa_servingCell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ECGI },
1185 { &hf_lppa_servingCellTAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_TAC },
1186 { &hf_lppa_e_UTRANAccessPointPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_E_UTRANAccessPointPosition },
1187 { &hf_lppa_measuredResults, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_MeasuredResults },
1188 { NULL, 0, 0, NULL }
1191 static int
1192 dissect_lppa_E_CID_MeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1193 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1194 ett_lppa_E_CID_MeasurementResult, E_CID_MeasurementResult_sequence);
1196 return offset;
1201 static int
1202 dissect_lppa_Measurement_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1203 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1204 1U, 15U, NULL, TRUE);
1206 return offset;
1210 static const value_string lppa_MeasurementPeriodicity_vals[] = {
1211 { 0, "ms120" },
1212 { 1, "ms240" },
1213 { 2, "ms480" },
1214 { 3, "ms640" },
1215 { 4, "ms1024" },
1216 { 5, "ms2048" },
1217 { 6, "ms5120" },
1218 { 7, "ms10240" },
1219 { 8, "min1" },
1220 { 9, "min6" },
1221 { 10, "min12" },
1222 { 11, "min30" },
1223 { 12, "min60" },
1224 { 0, NULL }
1228 static int
1229 dissect_lppa_MeasurementPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1230 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1231 13, NULL, TRUE, 0, NULL);
1233 return offset;
1237 static const per_sequence_t MeasurementQuantities_sequence_of[1] = {
1238 { &hf_lppa_MeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Single_Container },
1241 static int
1242 dissect_lppa_MeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1243 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1244 ett_lppa_MeasurementQuantities, MeasurementQuantities_sequence_of,
1245 1, maxNoMeas, FALSE);
1247 return offset;
1251 static const value_string lppa_MeasurementQuantitiesValue_vals[] = {
1252 { 0, "cell-ID" },
1253 { 1, "angleOfArrival" },
1254 { 2, "timingAdvanceType1" },
1255 { 3, "timingAdvanceType2" },
1256 { 4, "rSRP" },
1257 { 5, "rSRQ" },
1258 { 0, NULL }
1262 static int
1263 dissect_lppa_MeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1264 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1265 6, NULL, TRUE, 0, NULL);
1267 return offset;
1271 static const per_sequence_t MeasurementQuantities_Item_sequence[] = {
1272 { &hf_lppa_measurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_MeasurementQuantitiesValue },
1273 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1274 { NULL, 0, 0, NULL }
1277 static int
1278 dissect_lppa_MeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1279 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1280 ett_lppa_MeasurementQuantities_Item, MeasurementQuantities_Item_sequence);
1282 return offset;
1286 static const value_string lppa_NumberOfAntennaPorts_vals[] = {
1287 { 0, "n1-or-n2" },
1288 { 1, "n4" },
1289 { 0, NULL }
1293 static int
1294 dissect_lppa_NumberOfAntennaPorts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1295 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1296 2, NULL, TRUE, 0, NULL);
1298 return offset;
1302 static const value_string lppa_NumberOfDlFrames_vals[] = {
1303 { 0, "sf1" },
1304 { 1, "sf2" },
1305 { 2, "sf4" },
1306 { 3, "sf6" },
1307 { 0, NULL }
1311 static int
1312 dissect_lppa_NumberOfDlFrames(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1313 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1314 4, NULL, TRUE, 0, NULL);
1316 return offset;
1320 static const value_string lppa_PRS_Bandwidth_vals[] = {
1321 { 0, "bw6" },
1322 { 1, "bw15" },
1323 { 2, "bw25" },
1324 { 3, "bw50" },
1325 { 4, "bw75" },
1326 { 5, "bw100" },
1327 { 0, NULL }
1331 static int
1332 dissect_lppa_PRS_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1333 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1334 6, NULL, TRUE, 0, NULL);
1336 return offset;
1341 static int
1342 dissect_lppa_PRS_Configuration_Index(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1343 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1344 0U, 4095U, NULL, TRUE);
1346 return offset;
1351 static int
1352 dissect_lppa_SFNInitialisationTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1353 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1354 64, 64, FALSE, NULL);
1356 return offset;
1361 static int
1362 dissect_lppa_BIT_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1363 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1364 2, 2, FALSE, NULL);
1366 return offset;
1371 static int
1372 dissect_lppa_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1373 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1374 4, 4, FALSE, NULL);
1376 return offset;
1381 static int
1382 dissect_lppa_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1383 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1384 8, 8, FALSE, NULL);
1386 return offset;
1391 static int
1392 dissect_lppa_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1393 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1394 16, 16, FALSE, NULL);
1396 return offset;
1400 static const value_string lppa_PRSMutingConfiguration_vals[] = {
1401 { 0, "two" },
1402 { 1, "four" },
1403 { 2, "eight" },
1404 { 3, "sixteen" },
1405 { 0, NULL }
1408 static const per_choice_t PRSMutingConfiguration_choice[] = {
1409 { 0, &hf_lppa_two , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_2 },
1410 { 1, &hf_lppa_four , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_4 },
1411 { 2, &hf_lppa_eight , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_8 },
1412 { 3, &hf_lppa_sixteen , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_16 },
1413 { 0, NULL, 0, NULL }
1416 static int
1417 dissect_lppa_PRSMutingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1418 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1419 ett_lppa_PRSMutingConfiguration, PRSMutingConfiguration_choice,
1420 NULL);
1422 return offset;
1426 static const value_string lppa_OTDOACell_Information_Item_vals[] = {
1427 { 0, "pCI" },
1428 { 1, "cellId" },
1429 { 2, "tAC" },
1430 { 3, "eARFCN" },
1431 { 4, "pRS-Bandwidth" },
1432 { 5, "pRS-ConfigurationIndex" },
1433 { 6, "cPLength" },
1434 { 7, "numberOfDlFrames" },
1435 { 8, "numberOfAntennaPorts" },
1436 { 9, "sFNInitialisationTime" },
1437 { 10, "e-UTRANAccessPointPosition" },
1438 { 11, "pRSMutingConfiguration" },
1439 { 0, NULL }
1442 static const per_choice_t OTDOACell_Information_Item_choice[] = {
1443 { 0, &hf_lppa_pCI , ASN1_EXTENSION_ROOT , dissect_lppa_PCI },
1444 { 1, &hf_lppa_cellId , ASN1_EXTENSION_ROOT , dissect_lppa_ECGI },
1445 { 2, &hf_lppa_tAC , ASN1_EXTENSION_ROOT , dissect_lppa_TAC },
1446 { 3, &hf_lppa_eARFCN , ASN1_EXTENSION_ROOT , dissect_lppa_EARFCN },
1447 { 4, &hf_lppa_pRS_Bandwidth , ASN1_EXTENSION_ROOT , dissect_lppa_PRS_Bandwidth },
1448 { 5, &hf_lppa_pRS_ConfigurationIndex, ASN1_EXTENSION_ROOT , dissect_lppa_PRS_Configuration_Index },
1449 { 6, &hf_lppa_cPLength , ASN1_EXTENSION_ROOT , dissect_lppa_CPLength },
1450 { 7, &hf_lppa_numberOfDlFrames, ASN1_EXTENSION_ROOT , dissect_lppa_NumberOfDlFrames },
1451 { 8, &hf_lppa_numberOfAntennaPorts, ASN1_EXTENSION_ROOT , dissect_lppa_NumberOfAntennaPorts },
1452 { 9, &hf_lppa_sFNInitialisationTime, ASN1_EXTENSION_ROOT , dissect_lppa_SFNInitialisationTime },
1453 { 10, &hf_lppa_e_UTRANAccessPointPosition, ASN1_EXTENSION_ROOT , dissect_lppa_E_UTRANAccessPointPosition },
1454 { 11, &hf_lppa_pRSMutingConfiguration, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_PRSMutingConfiguration },
1455 { 0, NULL, 0, NULL }
1458 static int
1459 dissect_lppa_OTDOACell_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1460 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1461 ett_lppa_OTDOACell_Information_Item, OTDOACell_Information_Item_choice,
1462 NULL);
1464 return offset;
1468 static const per_sequence_t OTDOACell_Information_sequence_of[1] = {
1469 { &hf_lppa_OTDOACell_Information_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACell_Information_Item },
1472 static int
1473 dissect_lppa_OTDOACell_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1474 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1475 ett_lppa_OTDOACell_Information, OTDOACell_Information_sequence_of,
1476 1, maxnoOTDOAtypes, FALSE);
1478 return offset;
1482 static const per_sequence_t OTDOACells_item_sequence[] = {
1483 { &hf_lppa_oTDOACellInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACell_Information },
1484 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1485 { NULL, 0, 0, NULL }
1488 static int
1489 dissect_lppa_OTDOACells_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1490 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1491 ett_lppa_OTDOACells_item, OTDOACells_item_sequence);
1493 return offset;
1497 static const per_sequence_t OTDOACells_sequence_of[1] = {
1498 { &hf_lppa_OTDOACells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACells_item },
1501 static int
1502 dissect_lppa_OTDOACells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1503 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1504 ett_lppa_OTDOACells, OTDOACells_sequence_of,
1505 1, maxCellineNB, FALSE);
1507 return offset;
1511 static const value_string lppa_OTDOA_Information_Item_vals[] = {
1512 { 0, "pci" },
1513 { 1, "cellid" },
1514 { 2, "tac" },
1515 { 3, "earfcn" },
1516 { 4, "prsBandwidth" },
1517 { 5, "prsConfigIndex" },
1518 { 6, "cpLength" },
1519 { 7, "noDlFrames" },
1520 { 8, "noAntennaPorts" },
1521 { 9, "sFNInitTime" },
1522 { 10, "e-UTRANAccessPointPosition" },
1523 { 11, "prsmutingconfiguration" },
1524 { 0, NULL }
1528 static int
1529 dissect_lppa_OTDOA_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1530 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1531 10, NULL, TRUE, 2, NULL);
1533 return offset;
1537 static const value_string lppa_ReportCharacteristics_vals[] = {
1538 { 0, "onDemand" },
1539 { 1, "periodic" },
1540 { 0, NULL }
1544 static int
1545 dissect_lppa_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1546 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1547 2, NULL, TRUE, 0, NULL);
1549 return offset;
1554 static int
1555 dissect_lppa_INTEGER_0_500_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1556 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1557 0U, 500U, NULL, TRUE);
1559 return offset;
1564 static int
1565 dissect_lppa_INTEGER_1_100_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1566 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1567 1U, 100U, NULL, TRUE);
1569 return offset;
1573 static const per_sequence_t RequestedSRSTransmissionCharacteristics_sequence[] = {
1574 { &hf_lppa_numberOfTransmissions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_500_ },
1575 { &hf_lppa_bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_1_100_ },
1576 { NULL, 0, 0, NULL }
1579 static int
1580 dissect_lppa_RequestedSRSTransmissionCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1581 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1582 ett_lppa_RequestedSRSTransmissionCharacteristics, RequestedSRSTransmissionCharacteristics_sequence);
1584 return offset;
1588 static const value_string lppa_T_ul_bandwidth_vals[] = {
1589 { 0, "n6" },
1590 { 1, "n15" },
1591 { 2, "n25" },
1592 { 3, "n50" },
1593 { 4, "n75" },
1594 { 5, "n100" },
1595 { 0, NULL }
1599 static int
1600 dissect_lppa_T_ul_bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1601 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1602 6, NULL, FALSE, 0, NULL);
1604 return offset;
1608 static const value_string lppa_T_srs_BandwidthConfig_vals[] = {
1609 { 0, "bw0" },
1610 { 1, "bw1" },
1611 { 2, "bw2" },
1612 { 3, "bw3" },
1613 { 4, "bw4" },
1614 { 5, "bw5" },
1615 { 6, "bw6" },
1616 { 7, "bw7" },
1617 { 0, NULL }
1621 static int
1622 dissect_lppa_T_srs_BandwidthConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1623 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1624 8, NULL, FALSE, 0, NULL);
1626 return offset;
1630 static const value_string lppa_T_srs_Bandwidth_vals[] = {
1631 { 0, "bw0" },
1632 { 1, "bw1" },
1633 { 2, "bw2" },
1634 { 3, "bw3" },
1635 { 0, NULL }
1639 static int
1640 dissect_lppa_T_srs_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1641 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1642 4, NULL, FALSE, 0, NULL);
1644 return offset;
1648 static const value_string lppa_T_srs_AntennaPort_vals[] = {
1649 { 0, "an1" },
1650 { 1, "an2" },
1651 { 2, "an4" },
1652 { 0, NULL }
1656 static int
1657 dissect_lppa_T_srs_AntennaPort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1658 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1659 3, NULL, TRUE, 0, NULL);
1661 return offset;
1665 static const value_string lppa_T_srs_HoppingBandwidth_vals[] = {
1666 { 0, "hbw0" },
1667 { 1, "hbw1" },
1668 { 2, "hbw2" },
1669 { 3, "hbw3" },
1670 { 0, NULL }
1674 static int
1675 dissect_lppa_T_srs_HoppingBandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1676 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1677 4, NULL, FALSE, 0, NULL);
1679 return offset;
1683 static const value_string lppa_T_srs_cyclicShift_vals[] = {
1684 { 0, "cs0" },
1685 { 1, "cs1" },
1686 { 2, "cs2" },
1687 { 3, "cs3" },
1688 { 4, "cs4" },
1689 { 5, "cs5" },
1690 { 6, "cs6" },
1691 { 7, "cs7" },
1692 { 0, NULL }
1696 static int
1697 dissect_lppa_T_srs_cyclicShift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1698 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1699 8, NULL, FALSE, 0, NULL);
1701 return offset;
1706 static int
1707 dissect_lppa_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1708 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1709 0U, 1023U, NULL, FALSE);
1711 return offset;
1715 static const value_string lppa_T_maxUpPts_vals[] = {
1716 { 0, "true" },
1717 { 0, NULL }
1721 static int
1722 dissect_lppa_T_maxUpPts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1723 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1724 1, NULL, FALSE, 0, NULL);
1726 return offset;
1731 static int
1732 dissect_lppa_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1733 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1734 0U, 1U, NULL, FALSE);
1736 return offset;
1741 static int
1742 dissect_lppa_INTEGER_0_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1743 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1744 0U, 23U, NULL, FALSE);
1746 return offset;
1751 static int
1752 dissect_lppa_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1753 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1755 return offset;
1760 static int
1761 dissect_lppa_INTEGER_0_29(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1762 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1763 0U, 29U, NULL, FALSE);
1765 return offset;
1769 static const per_sequence_t SRSConfigurationForOneCell_sequence[] = {
1770 { &hf_lppa_pci , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
1771 { &hf_lppa_ul_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
1772 { &hf_lppa_ul_bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_ul_bandwidth },
1773 { &hf_lppa_ul_cyclicPrefixLength, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_CPLength },
1774 { &hf_lppa_srs_BandwidthConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_BandwidthConfig },
1775 { &hf_lppa_srs_Bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_Bandwidth },
1776 { &hf_lppa_srs_AntennaPort, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_AntennaPort },
1777 { &hf_lppa_srs_HoppingBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_HoppingBandwidth },
1778 { &hf_lppa_srs_cyclicShift, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_cyclicShift },
1779 { &hf_lppa_srs_ConfigIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_1023 },
1780 { &hf_lppa_maxUpPts , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_T_maxUpPts },
1781 { &hf_lppa_transmissionComb, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_1 },
1782 { &hf_lppa_freqDomainPosition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_23 },
1783 { &hf_lppa_groupHoppingEnabled, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_BOOLEAN },
1784 { &hf_lppa_deltaSS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_0_29 },
1785 { &hf_lppa_sfnInitialisationTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SFNInitialisationTime },
1786 { NULL, 0, 0, NULL }
1789 static int
1790 dissect_lppa_SRSConfigurationForOneCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1791 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1792 ett_lppa_SRSConfigurationForOneCell, SRSConfigurationForOneCell_sequence);
1794 return offset;
1798 static const per_sequence_t SRSConfigurationForAllCells_sequence_of[1] = {
1799 { &hf_lppa_SRSConfigurationForAllCells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_SRSConfigurationForOneCell },
1802 static int
1803 dissect_lppa_SRSConfigurationForAllCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1804 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1805 ett_lppa_SRSConfigurationForAllCells, SRSConfigurationForAllCells_sequence_of,
1806 1, maxServCell, FALSE);
1808 return offset;
1812 static const per_sequence_t ULConfiguration_sequence[] = {
1813 { &hf_lppa_pci , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
1814 { &hf_lppa_ul_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
1815 { &hf_lppa_timingAdvanceType1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_0_7690 },
1816 { &hf_lppa_timingAdvanceType2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_0_7690 },
1817 { &hf_lppa_numberOfTransmissions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_500_ },
1818 { &hf_lppa_srsConfiguration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SRSConfigurationForAllCells },
1819 { NULL, 0, 0, NULL }
1822 static int
1823 dissect_lppa_ULConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1824 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1825 ett_lppa_ULConfiguration, ULConfiguration_sequence);
1827 return offset;
1831 static const per_sequence_t E_CIDMeasurementInitiationRequest_sequence[] = {
1832 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1833 { NULL, 0, 0, NULL }
1836 static int
1837 dissect_lppa_E_CIDMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1838 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1839 ett_lppa_E_CIDMeasurementInitiationRequest, E_CIDMeasurementInitiationRequest_sequence);
1841 return offset;
1845 static const per_sequence_t E_CIDMeasurementInitiationResponse_sequence[] = {
1846 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1847 { NULL, 0, 0, NULL }
1850 static int
1851 dissect_lppa_E_CIDMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1852 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1853 ett_lppa_E_CIDMeasurementInitiationResponse, E_CIDMeasurementInitiationResponse_sequence);
1855 return offset;
1859 static const per_sequence_t E_CIDMeasurementInitiationFailure_sequence[] = {
1860 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1861 { NULL, 0, 0, NULL }
1864 static int
1865 dissect_lppa_E_CIDMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1866 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1867 ett_lppa_E_CIDMeasurementInitiationFailure, E_CIDMeasurementInitiationFailure_sequence);
1869 return offset;
1873 static const per_sequence_t E_CIDMeasurementFailureIndication_sequence[] = {
1874 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1875 { NULL, 0, 0, NULL }
1878 static int
1879 dissect_lppa_E_CIDMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1880 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1881 ett_lppa_E_CIDMeasurementFailureIndication, E_CIDMeasurementFailureIndication_sequence);
1883 return offset;
1887 static const per_sequence_t E_CIDMeasurementReport_sequence[] = {
1888 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1889 { NULL, 0, 0, NULL }
1892 static int
1893 dissect_lppa_E_CIDMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1894 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1895 ett_lppa_E_CIDMeasurementReport, E_CIDMeasurementReport_sequence);
1897 return offset;
1901 static const per_sequence_t E_CIDMeasurementTerminationCommand_sequence[] = {
1902 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1903 { NULL, 0, 0, NULL }
1906 static int
1907 dissect_lppa_E_CIDMeasurementTerminationCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1908 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1909 ett_lppa_E_CIDMeasurementTerminationCommand, E_CIDMeasurementTerminationCommand_sequence);
1911 return offset;
1915 static const per_sequence_t OTDOAInformationRequest_sequence[] = {
1916 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1917 { NULL, 0, 0, NULL }
1920 static int
1921 dissect_lppa_OTDOAInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1922 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1923 ett_lppa_OTDOAInformationRequest, OTDOAInformationRequest_sequence);
1925 return offset;
1929 static const per_sequence_t OTDOA_Information_Type_sequence_of[1] = {
1930 { &hf_lppa_OTDOA_Information_Type_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Single_Container },
1933 static int
1934 dissect_lppa_OTDOA_Information_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1935 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1936 ett_lppa_OTDOA_Information_Type, OTDOA_Information_Type_sequence_of,
1937 1, maxnoOTDOAtypes, FALSE);
1939 return offset;
1943 static const per_sequence_t OTDOA_Information_Type_Item_sequence[] = {
1944 { &hf_lppa_oTDOA_Information_Type_Item, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOA_Information_Item },
1945 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1946 { NULL, 0, 0, NULL }
1949 static int
1950 dissect_lppa_OTDOA_Information_Type_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1951 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1952 ett_lppa_OTDOA_Information_Type_Item, OTDOA_Information_Type_Item_sequence);
1954 return offset;
1958 static const per_sequence_t OTDOAInformationResponse_sequence[] = {
1959 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1960 { NULL, 0, 0, NULL }
1963 static int
1964 dissect_lppa_OTDOAInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1965 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1966 ett_lppa_OTDOAInformationResponse, OTDOAInformationResponse_sequence);
1968 return offset;
1972 static const per_sequence_t OTDOAInformationFailure_sequence[] = {
1973 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1974 { NULL, 0, 0, NULL }
1977 static int
1978 dissect_lppa_OTDOAInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1979 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1980 ett_lppa_OTDOAInformationFailure, OTDOAInformationFailure_sequence);
1982 return offset;
1986 static const per_sequence_t UTDOAInformationRequest_sequence[] = {
1987 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
1988 { NULL, 0, 0, NULL }
1991 static int
1992 dissect_lppa_UTDOAInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1993 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1994 ett_lppa_UTDOAInformationRequest, UTDOAInformationRequest_sequence);
1996 return offset;
2000 static const per_sequence_t UTDOAInformationResponse_sequence[] = {
2001 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
2002 { NULL, 0, 0, NULL }
2005 static int
2006 dissect_lppa_UTDOAInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2008 ett_lppa_UTDOAInformationResponse, UTDOAInformationResponse_sequence);
2010 return offset;
2014 static const per_sequence_t UTDOAInformationFailure_sequence[] = {
2015 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
2016 { NULL, 0, 0, NULL }
2019 static int
2020 dissect_lppa_UTDOAInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2021 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2022 ett_lppa_UTDOAInformationFailure, UTDOAInformationFailure_sequence);
2024 return offset;
2028 static const per_sequence_t UTDOAInformationUpdate_sequence[] = {
2029 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
2030 { NULL, 0, 0, NULL }
2033 static int
2034 dissect_lppa_UTDOAInformationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2036 ett_lppa_UTDOAInformationUpdate, UTDOAInformationUpdate_sequence);
2038 return offset;
2042 static const per_sequence_t ErrorIndication_sequence[] = {
2043 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
2044 { NULL, 0, 0, NULL }
2047 static int
2048 dissect_lppa_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2049 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2050 ett_lppa_ErrorIndication, ErrorIndication_sequence);
2052 return offset;
2056 static const per_sequence_t PrivateMessage_sequence[] = {
2057 { &hf_lppa_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PrivateIE_Container },
2058 { NULL, 0, 0, NULL }
2061 static int
2062 dissect_lppa_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2063 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2064 ett_lppa_PrivateMessage, PrivateMessage_sequence);
2066 return offset;
2069 /*--- PDUs ---*/
2071 static int dissect_LPPA_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2072 int offset = 0;
2073 asn1_ctx_t asn1_ctx;
2074 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2075 offset = dissect_lppa_LPPA_PDU(tvb, offset, &asn1_ctx, tree, hf_lppa_LPPA_PDU_PDU);
2076 offset += 7; offset >>= 3;
2077 return offset;
2079 static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2080 int offset = 0;
2081 asn1_ctx_t asn1_ctx;
2082 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2083 offset = dissect_lppa_Cause(tvb, offset, &asn1_ctx, tree, hf_lppa_Cause_PDU);
2084 offset += 7; offset >>= 3;
2085 return offset;
2087 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2088 int offset = 0;
2089 asn1_ctx_t asn1_ctx;
2090 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2091 offset = dissect_lppa_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_lppa_CriticalityDiagnostics_PDU);
2092 offset += 7; offset >>= 3;
2093 return offset;
2095 static int dissect_E_CID_MeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2096 int offset = 0;
2097 asn1_ctx_t asn1_ctx;
2098 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2099 offset = dissect_lppa_E_CID_MeasurementResult(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CID_MeasurementResult_PDU);
2100 offset += 7; offset >>= 3;
2101 return offset;
2103 static int dissect_Measurement_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2104 int offset = 0;
2105 asn1_ctx_t asn1_ctx;
2106 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2107 offset = dissect_lppa_Measurement_ID(tvb, offset, &asn1_ctx, tree, hf_lppa_Measurement_ID_PDU);
2108 offset += 7; offset >>= 3;
2109 return offset;
2111 static int dissect_MeasurementPeriodicity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2112 int offset = 0;
2113 asn1_ctx_t asn1_ctx;
2114 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2115 offset = dissect_lppa_MeasurementPeriodicity(tvb, offset, &asn1_ctx, tree, hf_lppa_MeasurementPeriodicity_PDU);
2116 offset += 7; offset >>= 3;
2117 return offset;
2119 static int dissect_MeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2120 int offset = 0;
2121 asn1_ctx_t asn1_ctx;
2122 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2123 offset = dissect_lppa_MeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_lppa_MeasurementQuantities_PDU);
2124 offset += 7; offset >>= 3;
2125 return offset;
2127 static int dissect_MeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2128 int offset = 0;
2129 asn1_ctx_t asn1_ctx;
2130 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2131 offset = dissect_lppa_MeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_lppa_MeasurementQuantities_Item_PDU);
2132 offset += 7; offset >>= 3;
2133 return offset;
2135 static int dissect_OTDOACells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2136 int offset = 0;
2137 asn1_ctx_t asn1_ctx;
2138 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2139 offset = dissect_lppa_OTDOACells(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOACells_PDU);
2140 offset += 7; offset >>= 3;
2141 return offset;
2143 static int dissect_ReportCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2144 int offset = 0;
2145 asn1_ctx_t asn1_ctx;
2146 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2147 offset = dissect_lppa_ReportCharacteristics(tvb, offset, &asn1_ctx, tree, hf_lppa_ReportCharacteristics_PDU);
2148 offset += 7; offset >>= 3;
2149 return offset;
2151 static int dissect_RequestedSRSTransmissionCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2152 int offset = 0;
2153 asn1_ctx_t asn1_ctx;
2154 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2155 offset = dissect_lppa_RequestedSRSTransmissionCharacteristics(tvb, offset, &asn1_ctx, tree, hf_lppa_RequestedSRSTransmissionCharacteristics_PDU);
2156 offset += 7; offset >>= 3;
2157 return offset;
2159 static int dissect_ULConfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2160 int offset = 0;
2161 asn1_ctx_t asn1_ctx;
2162 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2163 offset = dissect_lppa_ULConfiguration(tvb, offset, &asn1_ctx, tree, hf_lppa_ULConfiguration_PDU);
2164 offset += 7; offset >>= 3;
2165 return offset;
2167 static int dissect_E_CIDMeasurementInitiationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2168 int offset = 0;
2169 asn1_ctx_t asn1_ctx;
2170 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2171 offset = dissect_lppa_E_CIDMeasurementInitiationRequest(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementInitiationRequest_PDU);
2172 offset += 7; offset >>= 3;
2173 return offset;
2175 static int dissect_E_CIDMeasurementInitiationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2176 int offset = 0;
2177 asn1_ctx_t asn1_ctx;
2178 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2179 offset = dissect_lppa_E_CIDMeasurementInitiationResponse(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementInitiationResponse_PDU);
2180 offset += 7; offset >>= 3;
2181 return offset;
2183 static int dissect_E_CIDMeasurementInitiationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2184 int offset = 0;
2185 asn1_ctx_t asn1_ctx;
2186 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2187 offset = dissect_lppa_E_CIDMeasurementInitiationFailure(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementInitiationFailure_PDU);
2188 offset += 7; offset >>= 3;
2189 return offset;
2191 static int dissect_E_CIDMeasurementFailureIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2192 int offset = 0;
2193 asn1_ctx_t asn1_ctx;
2194 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2195 offset = dissect_lppa_E_CIDMeasurementFailureIndication(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementFailureIndication_PDU);
2196 offset += 7; offset >>= 3;
2197 return offset;
2199 static int dissect_E_CIDMeasurementReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2200 int offset = 0;
2201 asn1_ctx_t asn1_ctx;
2202 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2203 offset = dissect_lppa_E_CIDMeasurementReport(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementReport_PDU);
2204 offset += 7; offset >>= 3;
2205 return offset;
2207 static int dissect_E_CIDMeasurementTerminationCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2208 int offset = 0;
2209 asn1_ctx_t asn1_ctx;
2210 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2211 offset = dissect_lppa_E_CIDMeasurementTerminationCommand(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementTerminationCommand_PDU);
2212 offset += 7; offset >>= 3;
2213 return offset;
2215 static int dissect_OTDOAInformationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2216 int offset = 0;
2217 asn1_ctx_t asn1_ctx;
2218 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2219 offset = dissect_lppa_OTDOAInformationRequest(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOAInformationRequest_PDU);
2220 offset += 7; offset >>= 3;
2221 return offset;
2223 static int dissect_OTDOA_Information_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2224 int offset = 0;
2225 asn1_ctx_t asn1_ctx;
2226 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2227 offset = dissect_lppa_OTDOA_Information_Type(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOA_Information_Type_PDU);
2228 offset += 7; offset >>= 3;
2229 return offset;
2231 static int dissect_OTDOA_Information_Type_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2232 int offset = 0;
2233 asn1_ctx_t asn1_ctx;
2234 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2235 offset = dissect_lppa_OTDOA_Information_Type_Item(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOA_Information_Type_Item_PDU);
2236 offset += 7; offset >>= 3;
2237 return offset;
2239 static int dissect_OTDOAInformationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2240 int offset = 0;
2241 asn1_ctx_t asn1_ctx;
2242 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2243 offset = dissect_lppa_OTDOAInformationResponse(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOAInformationResponse_PDU);
2244 offset += 7; offset >>= 3;
2245 return offset;
2247 static int dissect_OTDOAInformationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2248 int offset = 0;
2249 asn1_ctx_t asn1_ctx;
2250 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2251 offset = dissect_lppa_OTDOAInformationFailure(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOAInformationFailure_PDU);
2252 offset += 7; offset >>= 3;
2253 return offset;
2255 static int dissect_UTDOAInformationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2256 int offset = 0;
2257 asn1_ctx_t asn1_ctx;
2258 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2259 offset = dissect_lppa_UTDOAInformationRequest(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationRequest_PDU);
2260 offset += 7; offset >>= 3;
2261 return offset;
2263 static int dissect_UTDOAInformationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2264 int offset = 0;
2265 asn1_ctx_t asn1_ctx;
2266 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2267 offset = dissect_lppa_UTDOAInformationResponse(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationResponse_PDU);
2268 offset += 7; offset >>= 3;
2269 return offset;
2271 static int dissect_UTDOAInformationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2272 int offset = 0;
2273 asn1_ctx_t asn1_ctx;
2274 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2275 offset = dissect_lppa_UTDOAInformationFailure(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationFailure_PDU);
2276 offset += 7; offset >>= 3;
2277 return offset;
2279 static int dissect_UTDOAInformationUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2280 int offset = 0;
2281 asn1_ctx_t asn1_ctx;
2282 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2283 offset = dissect_lppa_UTDOAInformationUpdate(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationUpdate_PDU);
2284 offset += 7; offset >>= 3;
2285 return offset;
2287 static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2288 int offset = 0;
2289 asn1_ctx_t asn1_ctx;
2290 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2291 offset = dissect_lppa_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_lppa_ErrorIndication_PDU);
2292 offset += 7; offset >>= 3;
2293 return offset;
2295 static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2296 int offset = 0;
2297 asn1_ctx_t asn1_ctx;
2298 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2299 offset = dissect_lppa_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_lppa_PrivateMessage_PDU);
2300 offset += 7; offset >>= 3;
2301 return offset;
2305 /*--- End of included file: packet-lppa-fn.c ---*/
2306 #line 69 "../../asn1/lppa/packet-lppa-template.c"
2308 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2310 return (dissector_try_uint(lppa_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2313 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2315 return (dissector_try_uint(lppa_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2318 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2320 return (dissector_try_uint(lppa_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2323 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2325 return (dissector_try_uint(lppa_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
2328 /*--- proto_register_lppa -------------------------------------------*/
2329 void proto_register_lppa(void) {
2331 /* List of fields */
2332 static hf_register_info hf[] = {
2335 /*--- Included file: packet-lppa-hfarr.c ---*/
2336 #line 1 "../../asn1/lppa/packet-lppa-hfarr.c"
2337 { &hf_lppa_LPPA_PDU_PDU,
2338 { "LPPA-PDU", "lppa.LPPA_PDU",
2339 FT_UINT32, BASE_DEC, VALS(lppa_LPPA_PDU_vals), 0,
2340 NULL, HFILL }},
2341 { &hf_lppa_Cause_PDU,
2342 { "Cause", "lppa.Cause",
2343 FT_UINT32, BASE_DEC, VALS(lppa_Cause_vals), 0,
2344 NULL, HFILL }},
2345 { &hf_lppa_CriticalityDiagnostics_PDU,
2346 { "CriticalityDiagnostics", "lppa.CriticalityDiagnostics_element",
2347 FT_NONE, BASE_NONE, NULL, 0,
2348 NULL, HFILL }},
2349 { &hf_lppa_E_CID_MeasurementResult_PDU,
2350 { "E-CID-MeasurementResult", "lppa.E_CID_MeasurementResult_element",
2351 FT_NONE, BASE_NONE, NULL, 0,
2352 NULL, HFILL }},
2353 { &hf_lppa_Measurement_ID_PDU,
2354 { "Measurement-ID", "lppa.Measurement_ID",
2355 FT_UINT32, BASE_DEC, NULL, 0,
2356 NULL, HFILL }},
2357 { &hf_lppa_MeasurementPeriodicity_PDU,
2358 { "MeasurementPeriodicity", "lppa.MeasurementPeriodicity",
2359 FT_UINT32, BASE_DEC, VALS(lppa_MeasurementPeriodicity_vals), 0,
2360 NULL, HFILL }},
2361 { &hf_lppa_MeasurementQuantities_PDU,
2362 { "MeasurementQuantities", "lppa.MeasurementQuantities",
2363 FT_UINT32, BASE_DEC, NULL, 0,
2364 NULL, HFILL }},
2365 { &hf_lppa_MeasurementQuantities_Item_PDU,
2366 { "MeasurementQuantities-Item", "lppa.MeasurementQuantities_Item_element",
2367 FT_NONE, BASE_NONE, NULL, 0,
2368 NULL, HFILL }},
2369 { &hf_lppa_OTDOACells_PDU,
2370 { "OTDOACells", "lppa.OTDOACells",
2371 FT_UINT32, BASE_DEC, NULL, 0,
2372 NULL, HFILL }},
2373 { &hf_lppa_ReportCharacteristics_PDU,
2374 { "ReportCharacteristics", "lppa.ReportCharacteristics",
2375 FT_UINT32, BASE_DEC, VALS(lppa_ReportCharacteristics_vals), 0,
2376 NULL, HFILL }},
2377 { &hf_lppa_RequestedSRSTransmissionCharacteristics_PDU,
2378 { "RequestedSRSTransmissionCharacteristics", "lppa.RequestedSRSTransmissionCharacteristics_element",
2379 FT_NONE, BASE_NONE, NULL, 0,
2380 NULL, HFILL }},
2381 { &hf_lppa_ULConfiguration_PDU,
2382 { "ULConfiguration", "lppa.ULConfiguration_element",
2383 FT_NONE, BASE_NONE, NULL, 0,
2384 NULL, HFILL }},
2385 { &hf_lppa_E_CIDMeasurementInitiationRequest_PDU,
2386 { "E-CIDMeasurementInitiationRequest", "lppa.E_CIDMeasurementInitiationRequest_element",
2387 FT_NONE, BASE_NONE, NULL, 0,
2388 NULL, HFILL }},
2389 { &hf_lppa_E_CIDMeasurementInitiationResponse_PDU,
2390 { "E-CIDMeasurementInitiationResponse", "lppa.E_CIDMeasurementInitiationResponse_element",
2391 FT_NONE, BASE_NONE, NULL, 0,
2392 NULL, HFILL }},
2393 { &hf_lppa_E_CIDMeasurementInitiationFailure_PDU,
2394 { "E-CIDMeasurementInitiationFailure", "lppa.E_CIDMeasurementInitiationFailure_element",
2395 FT_NONE, BASE_NONE, NULL, 0,
2396 NULL, HFILL }},
2397 { &hf_lppa_E_CIDMeasurementFailureIndication_PDU,
2398 { "E-CIDMeasurementFailureIndication", "lppa.E_CIDMeasurementFailureIndication_element",
2399 FT_NONE, BASE_NONE, NULL, 0,
2400 NULL, HFILL }},
2401 { &hf_lppa_E_CIDMeasurementReport_PDU,
2402 { "E-CIDMeasurementReport", "lppa.E_CIDMeasurementReport_element",
2403 FT_NONE, BASE_NONE, NULL, 0,
2404 NULL, HFILL }},
2405 { &hf_lppa_E_CIDMeasurementTerminationCommand_PDU,
2406 { "E-CIDMeasurementTerminationCommand", "lppa.E_CIDMeasurementTerminationCommand_element",
2407 FT_NONE, BASE_NONE, NULL, 0,
2408 NULL, HFILL }},
2409 { &hf_lppa_OTDOAInformationRequest_PDU,
2410 { "OTDOAInformationRequest", "lppa.OTDOAInformationRequest_element",
2411 FT_NONE, BASE_NONE, NULL, 0,
2412 NULL, HFILL }},
2413 { &hf_lppa_OTDOA_Information_Type_PDU,
2414 { "OTDOA-Information-Type", "lppa.OTDOA_Information_Type",
2415 FT_UINT32, BASE_DEC, NULL, 0,
2416 NULL, HFILL }},
2417 { &hf_lppa_OTDOA_Information_Type_Item_PDU,
2418 { "OTDOA-Information-Type-Item", "lppa.OTDOA_Information_Type_Item_element",
2419 FT_NONE, BASE_NONE, NULL, 0,
2420 NULL, HFILL }},
2421 { &hf_lppa_OTDOAInformationResponse_PDU,
2422 { "OTDOAInformationResponse", "lppa.OTDOAInformationResponse_element",
2423 FT_NONE, BASE_NONE, NULL, 0,
2424 NULL, HFILL }},
2425 { &hf_lppa_OTDOAInformationFailure_PDU,
2426 { "OTDOAInformationFailure", "lppa.OTDOAInformationFailure_element",
2427 FT_NONE, BASE_NONE, NULL, 0,
2428 NULL, HFILL }},
2429 { &hf_lppa_UTDOAInformationRequest_PDU,
2430 { "UTDOAInformationRequest", "lppa.UTDOAInformationRequest_element",
2431 FT_NONE, BASE_NONE, NULL, 0,
2432 NULL, HFILL }},
2433 { &hf_lppa_UTDOAInformationResponse_PDU,
2434 { "UTDOAInformationResponse", "lppa.UTDOAInformationResponse_element",
2435 FT_NONE, BASE_NONE, NULL, 0,
2436 NULL, HFILL }},
2437 { &hf_lppa_UTDOAInformationFailure_PDU,
2438 { "UTDOAInformationFailure", "lppa.UTDOAInformationFailure_element",
2439 FT_NONE, BASE_NONE, NULL, 0,
2440 NULL, HFILL }},
2441 { &hf_lppa_UTDOAInformationUpdate_PDU,
2442 { "UTDOAInformationUpdate", "lppa.UTDOAInformationUpdate_element",
2443 FT_NONE, BASE_NONE, NULL, 0,
2444 NULL, HFILL }},
2445 { &hf_lppa_ErrorIndication_PDU,
2446 { "ErrorIndication", "lppa.ErrorIndication_element",
2447 FT_NONE, BASE_NONE, NULL, 0,
2448 NULL, HFILL }},
2449 { &hf_lppa_PrivateMessage_PDU,
2450 { "PrivateMessage", "lppa.PrivateMessage_element",
2451 FT_NONE, BASE_NONE, NULL, 0,
2452 NULL, HFILL }},
2453 { &hf_lppa_local,
2454 { "local", "lppa.local",
2455 FT_UINT32, BASE_DEC, NULL, 0,
2456 "INTEGER_0_maxPrivateIEs", HFILL }},
2457 { &hf_lppa_global,
2458 { "global", "lppa.global",
2459 FT_OID, BASE_NONE, NULL, 0,
2460 "OBJECT_IDENTIFIER", HFILL }},
2461 { &hf_lppa_ProtocolIE_Container_item,
2462 { "ProtocolIE-Field", "lppa.ProtocolIE_Field_element",
2463 FT_NONE, BASE_NONE, NULL, 0,
2464 NULL, HFILL }},
2465 { &hf_lppa_id,
2466 { "id", "lppa.id",
2467 FT_UINT32, BASE_DEC, VALS(lppa_ProtocolIE_ID_vals), 0,
2468 "ProtocolIE_ID", HFILL }},
2469 { &hf_lppa_criticality,
2470 { "criticality", "lppa.criticality",
2471 FT_UINT32, BASE_DEC, VALS(lppa_Criticality_vals), 0,
2472 NULL, HFILL }},
2473 { &hf_lppa_ie_field_value,
2474 { "value", "lppa.value_element",
2475 FT_NONE, BASE_NONE, NULL, 0,
2476 "T_ie_field_value", HFILL }},
2477 { &hf_lppa_ProtocolExtensionContainer_item,
2478 { "ProtocolExtensionField", "lppa.ProtocolExtensionField_element",
2479 FT_NONE, BASE_NONE, NULL, 0,
2480 NULL, HFILL }},
2481 { &hf_lppa_extensionValue,
2482 { "extensionValue", "lppa.extensionValue_element",
2483 FT_NONE, BASE_NONE, NULL, 0,
2484 NULL, HFILL }},
2485 { &hf_lppa_PrivateIE_Container_item,
2486 { "PrivateIE-Field", "lppa.PrivateIE_Field_element",
2487 FT_NONE, BASE_NONE, NULL, 0,
2488 NULL, HFILL }},
2489 { &hf_lppa_id_01,
2490 { "id", "lppa.id",
2491 FT_UINT32, BASE_DEC, VALS(lppa_PrivateIE_ID_vals), 0,
2492 "PrivateIE_ID", HFILL }},
2493 { &hf_lppa_value,
2494 { "value", "lppa.value_element",
2495 FT_NONE, BASE_NONE, NULL, 0,
2496 NULL, HFILL }},
2497 { &hf_lppa_initiatingMessage,
2498 { "initiatingMessage", "lppa.initiatingMessage_element",
2499 FT_NONE, BASE_NONE, NULL, 0,
2500 NULL, HFILL }},
2501 { &hf_lppa_successfulOutcome,
2502 { "successfulOutcome", "lppa.successfulOutcome_element",
2503 FT_NONE, BASE_NONE, NULL, 0,
2504 NULL, HFILL }},
2505 { &hf_lppa_unsuccessfulOutcome,
2506 { "unsuccessfulOutcome", "lppa.unsuccessfulOutcome_element",
2507 FT_NONE, BASE_NONE, NULL, 0,
2508 NULL, HFILL }},
2509 { &hf_lppa_procedureCode,
2510 { "procedureCode", "lppa.procedureCode",
2511 FT_UINT32, BASE_DEC, VALS(lppa_ProcedureCode_vals), 0,
2512 NULL, HFILL }},
2513 { &hf_lppa_lppatransactionID,
2514 { "lppatransactionID", "lppa.lppatransactionID",
2515 FT_UINT32, BASE_DEC, NULL, 0,
2516 NULL, HFILL }},
2517 { &hf_lppa_initiatingMessagevalue,
2518 { "value", "lppa.value_element",
2519 FT_NONE, BASE_NONE, NULL, 0,
2520 "InitiatingMessage_value", HFILL }},
2521 { &hf_lppa_successfulOutcome_value,
2522 { "value", "lppa.value_element",
2523 FT_NONE, BASE_NONE, NULL, 0,
2524 "SuccessfulOutcome_value", HFILL }},
2525 { &hf_lppa_unsuccessfulOutcome_value,
2526 { "value", "lppa.value_element",
2527 FT_NONE, BASE_NONE, NULL, 0,
2528 "UnsuccessfulOutcome_value", HFILL }},
2529 { &hf_lppa_radioNetwork,
2530 { "radioNetwork", "lppa.radioNetwork",
2531 FT_UINT32, BASE_DEC, VALS(lppa_CauseRadioNetwork_vals), 0,
2532 "CauseRadioNetwork", HFILL }},
2533 { &hf_lppa_protocol,
2534 { "protocol", "lppa.protocol",
2535 FT_UINT32, BASE_DEC, VALS(lppa_CauseProtocol_vals), 0,
2536 "CauseProtocol", HFILL }},
2537 { &hf_lppa_misc,
2538 { "misc", "lppa.misc",
2539 FT_UINT32, BASE_DEC, VALS(lppa_CauseMisc_vals), 0,
2540 "CauseMisc", HFILL }},
2541 { &hf_lppa_triggeringMessage,
2542 { "triggeringMessage", "lppa.triggeringMessage",
2543 FT_UINT32, BASE_DEC, VALS(lppa_TriggeringMessage_vals), 0,
2544 NULL, HFILL }},
2545 { &hf_lppa_procedureCriticality,
2546 { "procedureCriticality", "lppa.procedureCriticality",
2547 FT_UINT32, BASE_DEC, VALS(lppa_Criticality_vals), 0,
2548 "Criticality", HFILL }},
2549 { &hf_lppa_iEsCriticalityDiagnostics,
2550 { "iEsCriticalityDiagnostics", "lppa.iEsCriticalityDiagnostics",
2551 FT_UINT32, BASE_DEC, NULL, 0,
2552 "CriticalityDiagnostics_IE_List", HFILL }},
2553 { &hf_lppa_iE_Extensions,
2554 { "iE-Extensions", "lppa.iE_Extensions",
2555 FT_UINT32, BASE_DEC, NULL, 0,
2556 "ProtocolExtensionContainer", HFILL }},
2557 { &hf_lppa_CriticalityDiagnostics_IE_List_item,
2558 { "CriticalityDiagnostics-IE-List item", "lppa.CriticalityDiagnostics_IE_List_item_element",
2559 FT_NONE, BASE_NONE, NULL, 0,
2560 NULL, HFILL }},
2561 { &hf_lppa_iECriticality,
2562 { "iECriticality", "lppa.iECriticality",
2563 FT_UINT32, BASE_DEC, VALS(lppa_Criticality_vals), 0,
2564 "Criticality", HFILL }},
2565 { &hf_lppa_iE_ID,
2566 { "iE-ID", "lppa.iE_ID",
2567 FT_UINT32, BASE_DEC, VALS(lppa_ProtocolIE_ID_vals), 0,
2568 "ProtocolIE_ID", HFILL }},
2569 { &hf_lppa_typeOfError,
2570 { "typeOfError", "lppa.typeOfError",
2571 FT_UINT32, BASE_DEC, VALS(lppa_TypeOfError_vals), 0,
2572 NULL, HFILL }},
2573 { &hf_lppa_servingCell_ID,
2574 { "servingCell-ID", "lppa.servingCell_ID_element",
2575 FT_NONE, BASE_NONE, NULL, 0,
2576 "ECGI", HFILL }},
2577 { &hf_lppa_servingCellTAC,
2578 { "servingCellTAC", "lppa.servingCellTAC",
2579 FT_BYTES, BASE_NONE, NULL, 0,
2580 "TAC", HFILL }},
2581 { &hf_lppa_e_UTRANAccessPointPosition,
2582 { "e-UTRANAccessPointPosition", "lppa.e_UTRANAccessPointPosition_element",
2583 FT_NONE, BASE_NONE, NULL, 0,
2584 NULL, HFILL }},
2585 { &hf_lppa_measuredResults,
2586 { "measuredResults", "lppa.measuredResults",
2587 FT_UINT32, BASE_DEC, NULL, 0,
2588 NULL, HFILL }},
2589 { &hf_lppa_pLMN_Identity,
2590 { "pLMN-Identity", "lppa.pLMN_Identity",
2591 FT_BYTES, BASE_NONE, NULL, 0,
2592 NULL, HFILL }},
2593 { &hf_lppa_eUTRANcellIdentifier,
2594 { "eUTRANcellIdentifier", "lppa.eUTRANcellIdentifier",
2595 FT_BYTES, BASE_NONE, NULL, 0,
2596 NULL, HFILL }},
2597 { &hf_lppa_latitudeSign,
2598 { "latitudeSign", "lppa.latitudeSign",
2599 FT_UINT32, BASE_DEC, VALS(lppa_T_latitudeSign_vals), 0,
2600 NULL, HFILL }},
2601 { &hf_lppa_latitude,
2602 { "latitude", "lppa.latitude",
2603 FT_UINT32, BASE_DEC, NULL, 0,
2604 "INTEGER_0_8388607", HFILL }},
2605 { &hf_lppa_longitude,
2606 { "longitude", "lppa.longitude",
2607 FT_INT32, BASE_DEC, NULL, 0,
2608 "INTEGER_M8388608_8388607", HFILL }},
2609 { &hf_lppa_directionOfAltitude,
2610 { "directionOfAltitude", "lppa.directionOfAltitude",
2611 FT_UINT32, BASE_DEC, VALS(lppa_T_directionOfAltitude_vals), 0,
2612 NULL, HFILL }},
2613 { &hf_lppa_altitude,
2614 { "altitude", "lppa.altitude",
2615 FT_UINT32, BASE_DEC, NULL, 0,
2616 "INTEGER_0_32767", HFILL }},
2617 { &hf_lppa_uncertaintySemi_major,
2618 { "uncertaintySemi-major", "lppa.uncertaintySemi_major",
2619 FT_UINT32, BASE_DEC, NULL, 0,
2620 "INTEGER_0_127", HFILL }},
2621 { &hf_lppa_uncertaintySemi_minor,
2622 { "uncertaintySemi-minor", "lppa.uncertaintySemi_minor",
2623 FT_UINT32, BASE_DEC, NULL, 0,
2624 "INTEGER_0_127", HFILL }},
2625 { &hf_lppa_orientationOfMajorAxis,
2626 { "orientationOfMajorAxis", "lppa.orientationOfMajorAxis",
2627 FT_UINT32, BASE_DEC, NULL, 0,
2628 "INTEGER_0_179", HFILL }},
2629 { &hf_lppa_uncertaintyAltitude,
2630 { "uncertaintyAltitude", "lppa.uncertaintyAltitude",
2631 FT_UINT32, BASE_DEC, NULL, 0,
2632 "INTEGER_0_127", HFILL }},
2633 { &hf_lppa_confidence,
2634 { "confidence", "lppa.confidence",
2635 FT_UINT32, BASE_DEC, NULL, 0,
2636 "INTEGER_0_100", HFILL }},
2637 { &hf_lppa_MeasurementQuantities_item,
2638 { "ProtocolIE-Single-Container", "lppa.ProtocolIE_Single_Container_element",
2639 FT_NONE, BASE_NONE, NULL, 0,
2640 NULL, HFILL }},
2641 { &hf_lppa_measurementQuantitiesValue,
2642 { "measurementQuantitiesValue", "lppa.measurementQuantitiesValue",
2643 FT_UINT32, BASE_DEC, VALS(lppa_MeasurementQuantitiesValue_vals), 0,
2644 NULL, HFILL }},
2645 { &hf_lppa_MeasuredResults_item,
2646 { "MeasuredResultsValue", "lppa.MeasuredResultsValue",
2647 FT_UINT32, BASE_DEC, VALS(lppa_MeasuredResultsValue_vals), 0,
2648 NULL, HFILL }},
2649 { &hf_lppa_valueAngleOfArrival,
2650 { "valueAngleOfArrival", "lppa.valueAngleOfArrival",
2651 FT_UINT32, BASE_DEC, NULL, 0,
2652 "INTEGER_0_719", HFILL }},
2653 { &hf_lppa_valueTimingAdvanceType1,
2654 { "valueTimingAdvanceType1", "lppa.valueTimingAdvanceType1",
2655 FT_UINT32, BASE_DEC, NULL, 0,
2656 "INTEGER_0_7690", HFILL }},
2657 { &hf_lppa_valueTimingAdvanceType2,
2658 { "valueTimingAdvanceType2", "lppa.valueTimingAdvanceType2",
2659 FT_UINT32, BASE_DEC, NULL, 0,
2660 "INTEGER_0_7690", HFILL }},
2661 { &hf_lppa_resultRSRP,
2662 { "resultRSRP", "lppa.resultRSRP",
2663 FT_UINT32, BASE_DEC, NULL, 0,
2664 NULL, HFILL }},
2665 { &hf_lppa_resultRSRQ,
2666 { "resultRSRQ", "lppa.resultRSRQ",
2667 FT_UINT32, BASE_DEC, NULL, 0,
2668 NULL, HFILL }},
2669 { &hf_lppa_OTDOACells_item,
2670 { "OTDOACells item", "lppa.OTDOACells_item_element",
2671 FT_NONE, BASE_NONE, NULL, 0,
2672 NULL, HFILL }},
2673 { &hf_lppa_oTDOACellInfo,
2674 { "oTDOACellInfo", "lppa.oTDOACellInfo",
2675 FT_UINT32, BASE_DEC, NULL, 0,
2676 "OTDOACell_Information", HFILL }},
2677 { &hf_lppa_OTDOACell_Information_item,
2678 { "OTDOACell-Information-Item", "lppa.OTDOACell_Information_Item",
2679 FT_UINT32, BASE_DEC, VALS(lppa_OTDOACell_Information_Item_vals), 0,
2680 NULL, HFILL }},
2681 { &hf_lppa_pCI,
2682 { "pCI", "lppa.pCI",
2683 FT_UINT32, BASE_DEC, NULL, 0,
2684 NULL, HFILL }},
2685 { &hf_lppa_cellId,
2686 { "cellId", "lppa.cellId_element",
2687 FT_NONE, BASE_NONE, NULL, 0,
2688 "ECGI", HFILL }},
2689 { &hf_lppa_tAC,
2690 { "tAC", "lppa.tAC",
2691 FT_BYTES, BASE_NONE, NULL, 0,
2692 NULL, HFILL }},
2693 { &hf_lppa_eARFCN,
2694 { "eARFCN", "lppa.eARFCN",
2695 FT_UINT32, BASE_DEC, NULL, 0,
2696 NULL, HFILL }},
2697 { &hf_lppa_pRS_Bandwidth,
2698 { "pRS-Bandwidth", "lppa.pRS_Bandwidth",
2699 FT_UINT32, BASE_DEC, VALS(lppa_PRS_Bandwidth_vals), 0,
2700 NULL, HFILL }},
2701 { &hf_lppa_pRS_ConfigurationIndex,
2702 { "pRS-ConfigurationIndex", "lppa.pRS_ConfigurationIndex",
2703 FT_UINT32, BASE_DEC, NULL, 0,
2704 "PRS_Configuration_Index", HFILL }},
2705 { &hf_lppa_cPLength,
2706 { "cPLength", "lppa.cPLength",
2707 FT_UINT32, BASE_DEC, VALS(lppa_CPLength_vals), 0,
2708 NULL, HFILL }},
2709 { &hf_lppa_numberOfDlFrames,
2710 { "numberOfDlFrames", "lppa.numberOfDlFrames",
2711 FT_UINT32, BASE_DEC, VALS(lppa_NumberOfDlFrames_vals), 0,
2712 NULL, HFILL }},
2713 { &hf_lppa_numberOfAntennaPorts,
2714 { "numberOfAntennaPorts", "lppa.numberOfAntennaPorts",
2715 FT_UINT32, BASE_DEC, VALS(lppa_NumberOfAntennaPorts_vals), 0,
2716 NULL, HFILL }},
2717 { &hf_lppa_sFNInitialisationTime,
2718 { "sFNInitialisationTime", "lppa.sFNInitialisationTime",
2719 FT_BYTES, BASE_NONE, NULL, 0,
2720 NULL, HFILL }},
2721 { &hf_lppa_pRSMutingConfiguration,
2722 { "pRSMutingConfiguration", "lppa.pRSMutingConfiguration",
2723 FT_UINT32, BASE_DEC, VALS(lppa_PRSMutingConfiguration_vals), 0,
2724 NULL, HFILL }},
2725 { &hf_lppa_two,
2726 { "two", "lppa.two",
2727 FT_BYTES, BASE_NONE, NULL, 0,
2728 "BIT_STRING_SIZE_2", HFILL }},
2729 { &hf_lppa_four,
2730 { "four", "lppa.four",
2731 FT_BYTES, BASE_NONE, NULL, 0,
2732 "BIT_STRING_SIZE_4", HFILL }},
2733 { &hf_lppa_eight,
2734 { "eight", "lppa.eight",
2735 FT_BYTES, BASE_NONE, NULL, 0,
2736 "BIT_STRING_SIZE_8", HFILL }},
2737 { &hf_lppa_sixteen,
2738 { "sixteen", "lppa.sixteen",
2739 FT_BYTES, BASE_NONE, NULL, 0,
2740 "BIT_STRING_SIZE_16", HFILL }},
2741 { &hf_lppa_numberOfTransmissions,
2742 { "numberOfTransmissions", "lppa.numberOfTransmissions",
2743 FT_UINT32, BASE_DEC, NULL, 0,
2744 "INTEGER_0_500_", HFILL }},
2745 { &hf_lppa_bandwidth,
2746 { "bandwidth", "lppa.bandwidth",
2747 FT_UINT32, BASE_DEC, NULL, 0,
2748 "INTEGER_1_100_", HFILL }},
2749 { &hf_lppa_ResultRSRP_item,
2750 { "ResultRSRP-Item", "lppa.ResultRSRP_Item_element",
2751 FT_NONE, BASE_NONE, NULL, 0,
2752 NULL, HFILL }},
2753 { &hf_lppa_eCGI,
2754 { "eCGI", "lppa.eCGI_element",
2755 FT_NONE, BASE_NONE, NULL, 0,
2756 NULL, HFILL }},
2757 { &hf_lppa_valueRSRP,
2758 { "valueRSRP", "lppa.valueRSRP",
2759 FT_UINT32, BASE_DEC, NULL, 0,
2760 NULL, HFILL }},
2761 { &hf_lppa_ResultRSRQ_item,
2762 { "ResultRSRQ-Item", "lppa.ResultRSRQ_Item_element",
2763 FT_NONE, BASE_NONE, NULL, 0,
2764 NULL, HFILL }},
2765 { &hf_lppa_valueRSRQ,
2766 { "valueRSRQ", "lppa.valueRSRQ",
2767 FT_UINT32, BASE_DEC, NULL, 0,
2768 NULL, HFILL }},
2769 { &hf_lppa_SRSConfigurationForAllCells_item,
2770 { "SRSConfigurationForOneCell", "lppa.SRSConfigurationForOneCell_element",
2771 FT_NONE, BASE_NONE, NULL, 0,
2772 NULL, HFILL }},
2773 { &hf_lppa_pci,
2774 { "pci", "lppa.pci",
2775 FT_UINT32, BASE_DEC, NULL, 0,
2776 NULL, HFILL }},
2777 { &hf_lppa_ul_earfcn,
2778 { "ul-earfcn", "lppa.ul_earfcn",
2779 FT_UINT32, BASE_DEC, NULL, 0,
2780 "EARFCN", HFILL }},
2781 { &hf_lppa_ul_bandwidth,
2782 { "ul-bandwidth", "lppa.ul_bandwidth",
2783 FT_UINT32, BASE_DEC, VALS(lppa_T_ul_bandwidth_vals), 0,
2784 NULL, HFILL }},
2785 { &hf_lppa_ul_cyclicPrefixLength,
2786 { "ul-cyclicPrefixLength", "lppa.ul_cyclicPrefixLength",
2787 FT_UINT32, BASE_DEC, VALS(lppa_CPLength_vals), 0,
2788 "CPLength", HFILL }},
2789 { &hf_lppa_srs_BandwidthConfig,
2790 { "srs-BandwidthConfig", "lppa.srs_BandwidthConfig",
2791 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_BandwidthConfig_vals), 0,
2792 NULL, HFILL }},
2793 { &hf_lppa_srs_Bandwidth,
2794 { "srs-Bandwidth", "lppa.srs_Bandwidth",
2795 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_Bandwidth_vals), 0,
2796 NULL, HFILL }},
2797 { &hf_lppa_srs_AntennaPort,
2798 { "srs-AntennaPort", "lppa.srs_AntennaPort",
2799 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_AntennaPort_vals), 0,
2800 NULL, HFILL }},
2801 { &hf_lppa_srs_HoppingBandwidth,
2802 { "srs-HoppingBandwidth", "lppa.srs_HoppingBandwidth",
2803 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_HoppingBandwidth_vals), 0,
2804 NULL, HFILL }},
2805 { &hf_lppa_srs_cyclicShift,
2806 { "srs-cyclicShift", "lppa.srs_cyclicShift",
2807 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_cyclicShift_vals), 0,
2808 NULL, HFILL }},
2809 { &hf_lppa_srs_ConfigIndex,
2810 { "srs-ConfigIndex", "lppa.srs_ConfigIndex",
2811 FT_UINT32, BASE_DEC, NULL, 0,
2812 "INTEGER_0_1023", HFILL }},
2813 { &hf_lppa_maxUpPts,
2814 { "maxUpPts", "lppa.maxUpPts",
2815 FT_UINT32, BASE_DEC, VALS(lppa_T_maxUpPts_vals), 0,
2816 NULL, HFILL }},
2817 { &hf_lppa_transmissionComb,
2818 { "transmissionComb", "lppa.transmissionComb",
2819 FT_UINT32, BASE_DEC, NULL, 0,
2820 "INTEGER_0_1", HFILL }},
2821 { &hf_lppa_freqDomainPosition,
2822 { "freqDomainPosition", "lppa.freqDomainPosition",
2823 FT_UINT32, BASE_DEC, NULL, 0,
2824 "INTEGER_0_23", HFILL }},
2825 { &hf_lppa_groupHoppingEnabled,
2826 { "groupHoppingEnabled", "lppa.groupHoppingEnabled",
2827 FT_BOOLEAN, BASE_NONE, NULL, 0,
2828 "BOOLEAN", HFILL }},
2829 { &hf_lppa_deltaSS,
2830 { "deltaSS", "lppa.deltaSS",
2831 FT_UINT32, BASE_DEC, NULL, 0,
2832 "INTEGER_0_29", HFILL }},
2833 { &hf_lppa_sfnInitialisationTime,
2834 { "sfnInitialisationTime", "lppa.sfnInitialisationTime",
2835 FT_BYTES, BASE_NONE, NULL, 0,
2836 NULL, HFILL }},
2837 { &hf_lppa_timingAdvanceType1,
2838 { "timingAdvanceType1", "lppa.timingAdvanceType1",
2839 FT_UINT32, BASE_DEC, NULL, 0,
2840 "INTEGER_0_7690", HFILL }},
2841 { &hf_lppa_timingAdvanceType2,
2842 { "timingAdvanceType2", "lppa.timingAdvanceType2",
2843 FT_UINT32, BASE_DEC, NULL, 0,
2844 "INTEGER_0_7690", HFILL }},
2845 { &hf_lppa_srsConfiguration,
2846 { "srsConfiguration", "lppa.srsConfiguration",
2847 FT_UINT32, BASE_DEC, NULL, 0,
2848 "SRSConfigurationForAllCells", HFILL }},
2849 { &hf_lppa_protocolIEs,
2850 { "protocolIEs", "lppa.protocolIEs",
2851 FT_UINT32, BASE_DEC, NULL, 0,
2852 "ProtocolIE_Container", HFILL }},
2853 { &hf_lppa_OTDOA_Information_Type_item,
2854 { "ProtocolIE-Single-Container", "lppa.ProtocolIE_Single_Container_element",
2855 FT_NONE, BASE_NONE, NULL, 0,
2856 NULL, HFILL }},
2857 { &hf_lppa_oTDOA_Information_Type_Item,
2858 { "oTDOA-Information-Type-Item", "lppa.oTDOA_Information_Type_Item",
2859 FT_UINT32, BASE_DEC, VALS(lppa_OTDOA_Information_Item_vals), 0,
2860 "OTDOA_Information_Item", HFILL }},
2861 { &hf_lppa_privateIEs,
2862 { "privateIEs", "lppa.privateIEs",
2863 FT_UINT32, BASE_DEC, NULL, 0,
2864 "PrivateIE_Container", HFILL }},
2866 /*--- End of included file: packet-lppa-hfarr.c ---*/
2867 #line 97 "../../asn1/lppa/packet-lppa-template.c"
2870 /* List of subtrees */
2871 static gint *ett[] = {
2872 &ett_lppa,
2874 /*--- Included file: packet-lppa-ettarr.c ---*/
2875 #line 1 "../../asn1/lppa/packet-lppa-ettarr.c"
2876 &ett_lppa_PrivateIE_ID,
2877 &ett_lppa_ProtocolIE_Container,
2878 &ett_lppa_ProtocolIE_Field,
2879 &ett_lppa_ProtocolExtensionContainer,
2880 &ett_lppa_ProtocolExtensionField,
2881 &ett_lppa_PrivateIE_Container,
2882 &ett_lppa_PrivateIE_Field,
2883 &ett_lppa_LPPA_PDU,
2884 &ett_lppa_InitiatingMessage,
2885 &ett_lppa_SuccessfulOutcome,
2886 &ett_lppa_UnsuccessfulOutcome,
2887 &ett_lppa_Cause,
2888 &ett_lppa_CriticalityDiagnostics,
2889 &ett_lppa_CriticalityDiagnostics_IE_List,
2890 &ett_lppa_CriticalityDiagnostics_IE_List_item,
2891 &ett_lppa_E_CID_MeasurementResult,
2892 &ett_lppa_ECGI,
2893 &ett_lppa_E_UTRANAccessPointPosition,
2894 &ett_lppa_MeasurementQuantities,
2895 &ett_lppa_MeasurementQuantities_Item,
2896 &ett_lppa_MeasuredResults,
2897 &ett_lppa_MeasuredResultsValue,
2898 &ett_lppa_OTDOACells,
2899 &ett_lppa_OTDOACells_item,
2900 &ett_lppa_OTDOACell_Information,
2901 &ett_lppa_OTDOACell_Information_Item,
2902 &ett_lppa_PRSMutingConfiguration,
2903 &ett_lppa_RequestedSRSTransmissionCharacteristics,
2904 &ett_lppa_ResultRSRP,
2905 &ett_lppa_ResultRSRP_Item,
2906 &ett_lppa_ResultRSRQ,
2907 &ett_lppa_ResultRSRQ_Item,
2908 &ett_lppa_SRSConfigurationForAllCells,
2909 &ett_lppa_SRSConfigurationForOneCell,
2910 &ett_lppa_ULConfiguration,
2911 &ett_lppa_E_CIDMeasurementInitiationRequest,
2912 &ett_lppa_E_CIDMeasurementInitiationResponse,
2913 &ett_lppa_E_CIDMeasurementInitiationFailure,
2914 &ett_lppa_E_CIDMeasurementFailureIndication,
2915 &ett_lppa_E_CIDMeasurementReport,
2916 &ett_lppa_E_CIDMeasurementTerminationCommand,
2917 &ett_lppa_OTDOAInformationRequest,
2918 &ett_lppa_OTDOA_Information_Type,
2919 &ett_lppa_OTDOA_Information_Type_Item,
2920 &ett_lppa_OTDOAInformationResponse,
2921 &ett_lppa_OTDOAInformationFailure,
2922 &ett_lppa_UTDOAInformationRequest,
2923 &ett_lppa_UTDOAInformationResponse,
2924 &ett_lppa_UTDOAInformationFailure,
2925 &ett_lppa_UTDOAInformationUpdate,
2926 &ett_lppa_ErrorIndication,
2927 &ett_lppa_PrivateMessage,
2929 /*--- End of included file: packet-lppa-ettarr.c ---*/
2930 #line 103 "../../asn1/lppa/packet-lppa-template.c"
2933 /* Register protocol */
2934 proto_lppa = proto_register_protocol(PNAME, PSNAME, PFNAME);
2935 new_register_dissector("lppa", dissect_LPPA_PDU_PDU, proto_lppa);
2937 /* Register fields and subtrees */
2938 proto_register_field_array(proto_lppa, hf, array_length(hf));
2939 proto_register_subtree_array(ett, array_length(ett));
2941 /* Register dissector tables */
2942 lppa_ies_dissector_table = register_dissector_table("lppa.ies", "LPPA-PROTOCOL-IES", FT_UINT32, BASE_DEC);
2943 lppa_proc_imsg_dissector_table = register_dissector_table("lppa.proc.imsg", "LPPA-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
2944 lppa_proc_sout_dissector_table = register_dissector_table("lppa.proc.sout", "LPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
2945 lppa_proc_uout_dissector_table = register_dissector_table("lppa.proc.uout", "LPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
2948 /*--- proto_reg_handoff_lppa ---------------------------------------*/
2949 void
2950 proto_reg_handoff_lppa(void)
2953 /*--- Included file: packet-lppa-dis-tab.c ---*/
2954 #line 1 "../../asn1/lppa/packet-lppa-dis-tab.c"
2955 dissector_add_uint("lppa.ies", id_MeasurementQuantities_Item, new_create_dissector_handle(dissect_MeasurementQuantities_Item_PDU, proto_lppa));
2956 dissector_add_uint("lppa.ies", id_ReportCharacteristics, new_create_dissector_handle(dissect_ReportCharacteristics_PDU, proto_lppa));
2957 dissector_add_uint("lppa.ies", id_MeasurementPeriodicity, new_create_dissector_handle(dissect_MeasurementPeriodicity_PDU, proto_lppa));
2958 dissector_add_uint("lppa.ies", id_MeasurementQuantities, new_create_dissector_handle(dissect_MeasurementQuantities_PDU, proto_lppa));
2959 dissector_add_uint("lppa.ies", id_E_CID_MeasurementResult, new_create_dissector_handle(dissect_E_CID_MeasurementResult_PDU, proto_lppa));
2960 dissector_add_uint("lppa.ies", id_OTDOA_Information_Type_Group, new_create_dissector_handle(dissect_OTDOA_Information_Type_PDU, proto_lppa));
2961 dissector_add_uint("lppa.ies", id_OTDOA_Information_Type_Item, new_create_dissector_handle(dissect_OTDOA_Information_Type_Item_PDU, proto_lppa));
2962 dissector_add_uint("lppa.ies", id_OTDOACells, new_create_dissector_handle(dissect_OTDOACells_PDU, proto_lppa));
2963 dissector_add_uint("lppa.ies", id_Cause, new_create_dissector_handle(dissect_Cause_PDU, proto_lppa));
2964 dissector_add_uint("lppa.ies", id_CriticalityDiagnostics, new_create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_lppa));
2965 dissector_add_uint("lppa.ies", id_E_SMLC_UE_Measurement_ID, new_create_dissector_handle(dissect_Measurement_ID_PDU, proto_lppa));
2966 dissector_add_uint("lppa.ies", id_eNB_UE_Measurement_ID, new_create_dissector_handle(dissect_Measurement_ID_PDU, proto_lppa));
2967 dissector_add_uint("lppa.ies", id_RequestedSRSTransmissionCharacteristics, new_create_dissector_handle(dissect_RequestedSRSTransmissionCharacteristics_PDU, proto_lppa));
2968 dissector_add_uint("lppa.ies", id_ULConfiguration, new_create_dissector_handle(dissect_ULConfiguration_PDU, proto_lppa));
2969 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementInitiation, new_create_dissector_handle(dissect_E_CIDMeasurementInitiationRequest_PDU, proto_lppa));
2970 dissector_add_uint("lppa.proc.sout", id_e_CIDMeasurementInitiation, new_create_dissector_handle(dissect_E_CIDMeasurementInitiationResponse_PDU, proto_lppa));
2971 dissector_add_uint("lppa.proc.uout", id_e_CIDMeasurementInitiation, new_create_dissector_handle(dissect_E_CIDMeasurementInitiationFailure_PDU, proto_lppa));
2972 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementFailureIndication, new_create_dissector_handle(dissect_E_CIDMeasurementFailureIndication_PDU, proto_lppa));
2973 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementReport, new_create_dissector_handle(dissect_E_CIDMeasurementReport_PDU, proto_lppa));
2974 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementTermination, new_create_dissector_handle(dissect_E_CIDMeasurementTerminationCommand_PDU, proto_lppa));
2975 dissector_add_uint("lppa.proc.imsg", id_oTDOAInformationExchange, new_create_dissector_handle(dissect_OTDOAInformationRequest_PDU, proto_lppa));
2976 dissector_add_uint("lppa.proc.sout", id_oTDOAInformationExchange, new_create_dissector_handle(dissect_OTDOAInformationResponse_PDU, proto_lppa));
2977 dissector_add_uint("lppa.proc.uout", id_oTDOAInformationExchange, new_create_dissector_handle(dissect_OTDOAInformationFailure_PDU, proto_lppa));
2978 dissector_add_uint("lppa.proc.imsg", id_errorIndication, new_create_dissector_handle(dissect_ErrorIndication_PDU, proto_lppa));
2979 dissector_add_uint("lppa.proc.imsg", id_privateMessage, new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_lppa));
2980 dissector_add_uint("lppa.proc.imsg", id_uTDOAInformationExchange, new_create_dissector_handle(dissect_UTDOAInformationRequest_PDU, proto_lppa));
2981 dissector_add_uint("lppa.proc.sout", id_uTDOAInformationExchange, new_create_dissector_handle(dissect_UTDOAInformationResponse_PDU, proto_lppa));
2982 dissector_add_uint("lppa.proc.uout", id_uTDOAInformationExchange, new_create_dissector_handle(dissect_UTDOAInformationFailure_PDU, proto_lppa));
2983 dissector_add_uint("lppa.proc.imsg", id_uTDOAInformationUpdate, new_create_dissector_handle(dissect_UTDOAInformationUpdate_PDU, proto_lppa));
2986 /*--- End of included file: packet-lppa-dis-tab.c ---*/
2987 #line 125 "../../asn1/lppa/packet-lppa-template.c"