Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-lppa.c
blob182aa32a659f5ea8bfd72ad6655c9cfa54ff316e
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 /* asn2wrs.py -q -L -p lppa -c ./lppa.cnf -s ./packet-lppa-template -D . -O ../.. LPPA-CommonDataTypes.asn LPPA-Constants.asn LPPA-Containers.asn LPPA-IEs.asn LPPA-PDU-Contents.asn LPPA-PDU-Descriptions.asn */
6 /* packet-lppa.c
7 * Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection
8 * Copyright 2011-2024, Pascal Quantin <pascal@wireshark.org>
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
16 * Ref 3GPP TS 36.455 version 18.1.0 (2024-06)
17 * http://www.3gpp.org
20 #include "config.h"
22 #include <epan/packet.h>
23 #include <epan/proto_data.h>
24 #include <epan/asn1.h>
25 #include <wsutil/array.h>
27 #include "packet-per.h"
28 #include "packet-lppa.h"
30 #define PNAME "LTE Positioning Protocol A (LPPa)"
31 #define PSNAME "LPPa"
32 #define PFNAME "lppa"
34 void proto_register_lppa(void);
35 void proto_reg_handoff_lppa(void);
37 /* Initialize the protocol and registered fields */
38 static int proto_lppa;
40 static int hf_lppa_Add_OTDOACells_PDU; /* Add_OTDOACells */
41 static int hf_lppa_Assistance_Information_PDU; /* Assistance_Information */
42 static int hf_lppa_AssistanceInformationFailureList_PDU; /* AssistanceInformationFailureList */
43 static int hf_lppa_Broadcast_PDU; /* Broadcast */
44 static int hf_lppa_Cause_PDU; /* Cause */
45 static int hf_lppa_Cell_Portion_ID_PDU; /* Cell_Portion_ID */
46 static int hf_lppa_CriticalityDiagnostics_PDU; /* CriticalityDiagnostics */
47 static int hf_lppa_E_CID_MeasurementResult_PDU; /* E_CID_MeasurementResult */
48 static int hf_lppa_InterRATMeasurementQuantities_PDU; /* InterRATMeasurementQuantities */
49 static int hf_lppa_InterRATMeasurementQuantities_Item_PDU; /* InterRATMeasurementQuantities_Item */
50 static int hf_lppa_InterRATMeasurementResult_PDU; /* InterRATMeasurementResult */
51 static int hf_lppa_Measurement_ID_PDU; /* Measurement_ID */
52 static int hf_lppa_MeasurementPeriodicity_PDU; /* MeasurementPeriodicity */
53 static int hf_lppa_MeasurementQuantities_PDU; /* MeasurementQuantities */
54 static int hf_lppa_MeasurementQuantities_Item_PDU; /* MeasurementQuantities_Item */
55 static int hf_lppa_NR_CGI_PDU; /* NR_CGI */
56 static int hf_lppa_OTDOACells_PDU; /* OTDOACells */
57 static int hf_lppa_ReportCharacteristics_PDU; /* ReportCharacteristics */
58 static int hf_lppa_RequestedSRSTransmissionCharacteristics_PDU; /* RequestedSRSTransmissionCharacteristics */
59 static int hf_lppa_ResultsPerSSB_Index_List_PDU; /* ResultsPerSSB_Index_List */
60 static int hf_lppa_ULConfiguration_PDU; /* ULConfiguration */
61 static int hf_lppa_WLANMeasurementQuantities_PDU; /* WLANMeasurementQuantities */
62 static int hf_lppa_WLANMeasurementQuantities_Item_PDU; /* WLANMeasurementQuantities_Item */
63 static int hf_lppa_WLANMeasurementResult_PDU; /* WLANMeasurementResult */
64 static int hf_lppa_E_CIDMeasurementInitiationRequest_PDU; /* E_CIDMeasurementInitiationRequest */
65 static int hf_lppa_E_CIDMeasurementInitiationResponse_PDU; /* E_CIDMeasurementInitiationResponse */
66 static int hf_lppa_E_CIDMeasurementInitiationFailure_PDU; /* E_CIDMeasurementInitiationFailure */
67 static int hf_lppa_E_CIDMeasurementFailureIndication_PDU; /* E_CIDMeasurementFailureIndication */
68 static int hf_lppa_E_CIDMeasurementReport_PDU; /* E_CIDMeasurementReport */
69 static int hf_lppa_E_CIDMeasurementTerminationCommand_PDU; /* E_CIDMeasurementTerminationCommand */
70 static int hf_lppa_OTDOAInformationRequest_PDU; /* OTDOAInformationRequest */
71 static int hf_lppa_OTDOA_Information_Type_PDU; /* OTDOA_Information_Type */
72 static int hf_lppa_OTDOA_Information_Type_Item_PDU; /* OTDOA_Information_Type_Item */
73 static int hf_lppa_OTDOAInformationResponse_PDU; /* OTDOAInformationResponse */
74 static int hf_lppa_OTDOAInformationFailure_PDU; /* OTDOAInformationFailure */
75 static int hf_lppa_UTDOAInformationRequest_PDU; /* UTDOAInformationRequest */
76 static int hf_lppa_UTDOAInformationResponse_PDU; /* UTDOAInformationResponse */
77 static int hf_lppa_UTDOAInformationFailure_PDU; /* UTDOAInformationFailure */
78 static int hf_lppa_UTDOAInformationUpdate_PDU; /* UTDOAInformationUpdate */
79 static int hf_lppa_AssistanceInformationControl_PDU; /* AssistanceInformationControl */
80 static int hf_lppa_AssistanceInformationFeedback_PDU; /* AssistanceInformationFeedback */
81 static int hf_lppa_ErrorIndication_PDU; /* ErrorIndication */
82 static int hf_lppa_PrivateMessage_PDU; /* PrivateMessage */
83 static int hf_lppa_LPPA_PDU_PDU; /* LPPA_PDU */
84 static int hf_lppa_local; /* INTEGER_0_maxPrivateIEs */
85 static int hf_lppa_global; /* OBJECT_IDENTIFIER */
86 static int hf_lppa_ProtocolIE_Container_item; /* ProtocolIE_Field */
87 static int hf_lppa_id; /* ProtocolIE_ID */
88 static int hf_lppa_criticality; /* Criticality */
89 static int hf_lppa_ie_field_value; /* T_ie_field_value */
90 static int hf_lppa_ProtocolExtensionContainer_item; /* ProtocolExtensionField */
91 static int hf_lppa_ext_id; /* ProtocolIE_ID */
92 static int hf_lppa_extensionValue; /* T_extensionValue */
93 static int hf_lppa_PrivateIE_Container_item; /* PrivateIE_Field */
94 static int hf_lppa_id_01; /* PrivateIE_ID */
95 static int hf_lppa_value; /* T_value */
96 static int hf_lppa_Add_OTDOACells_item; /* Add_OTDOACells_item */
97 static int hf_lppa_add_OTDOACellInfo; /* Add_OTDOACell_Information */
98 static int hf_lppa_iE_Extensions; /* ProtocolExtensionContainer */
99 static int hf_lppa_Add_OTDOACell_Information_item; /* OTDOACell_Information_Item */
100 static int hf_lppa_systemInformation; /* SystemInformation */
101 static int hf_lppa_AssistanceInformationFailureList_item; /* AssistanceInformationFailureList_item */
102 static int hf_lppa_posSIB_Type; /* PosSIB_Type */
103 static int hf_lppa_outcome; /* Outcome */
104 static int hf_lppa_encrypted; /* T_encrypted */
105 static int hf_lppa_gNSSID; /* T_gNSSID */
106 static int hf_lppa_sBASID; /* T_sBASID */
107 static int hf_lppa_ten; /* BIT_STRING_SIZE_10 */
108 static int hf_lppa_forty; /* BIT_STRING_SIZE_40 */
109 static int hf_lppa_ten_tdd; /* BIT_STRING_SIZE_8 */
110 static int hf_lppa_forty_tdd; /* BIT_STRING_SIZE_32 */
111 static int hf_lppa_radioNetwork; /* CauseRadioNetwork */
112 static int hf_lppa_protocol; /* CauseProtocol */
113 static int hf_lppa_misc; /* CauseMisc */
114 static int hf_lppa_procedureCode; /* ProcedureCode */
115 static int hf_lppa_triggeringMessage; /* TriggeringMessage */
116 static int hf_lppa_procedureCriticality; /* Criticality */
117 static int hf_lppa_lppatransactionID; /* LPPATransactionID */
118 static int hf_lppa_iEsCriticalityDiagnostics; /* CriticalityDiagnostics_IE_List */
119 static int hf_lppa_CriticalityDiagnostics_IE_List_item; /* CriticalityDiagnostics_IE_List_item */
120 static int hf_lppa_iECriticality; /* Criticality */
121 static int hf_lppa_iE_ID; /* ProtocolIE_ID */
122 static int hf_lppa_typeOfError; /* TypeOfError */
123 static int hf_lppa_servingCell_ID; /* ECGI */
124 static int hf_lppa_servingCellTAC; /* TAC */
125 static int hf_lppa_e_UTRANAccessPointPosition; /* E_UTRANAccessPointPosition */
126 static int hf_lppa_measuredResults; /* MeasuredResults */
127 static int hf_lppa_pLMN_Identity; /* PLMN_Identity */
128 static int hf_lppa_eUTRANcellIdentifier; /* EUTRANCellIdentifier */
129 static int hf_lppa_latitudeSign; /* T_latitudeSign */
130 static int hf_lppa_latitude; /* INTEGER_0_8388607 */
131 static int hf_lppa_longitude; /* INTEGER_M8388608_8388607 */
132 static int hf_lppa_directionOfAltitude; /* T_directionOfAltitude */
133 static int hf_lppa_altitude; /* INTEGER_0_32767 */
134 static int hf_lppa_uncertaintySemi_major; /* INTEGER_0_127 */
135 static int hf_lppa_uncertaintySemi_minor; /* INTEGER_0_127 */
136 static int hf_lppa_orientationOfMajorAxis; /* INTEGER_0_179 */
137 static int hf_lppa_uncertaintyAltitude; /* INTEGER_0_127 */
138 static int hf_lppa_confidence; /* INTEGER_0_100 */
139 static int hf_lppa_InterRATMeasurementQuantities_item; /* ProtocolIE_Single_Container */
140 static int hf_lppa_interRATMeasurementQuantitiesValue; /* InterRATMeasurementQuantitiesValue */
141 static int hf_lppa_InterRATMeasurementResult_item; /* InterRATMeasuredResultsValue */
142 static int hf_lppa_resultGERAN; /* ResultGERAN */
143 static int hf_lppa_resultUTRAN; /* ResultUTRAN */
144 static int hf_lppa_resultNR; /* ResultNR */
145 static int hf_lppa_MeasurementQuantities_item; /* ProtocolIE_Single_Container */
146 static int hf_lppa_measurementQuantitiesValue; /* MeasurementQuantitiesValue */
147 static int hf_lppa_MeasuredResults_item; /* MeasuredResultsValue */
148 static int hf_lppa_valueAngleOfArrival; /* INTEGER_0_719 */
149 static int hf_lppa_valueTimingAdvanceType1; /* INTEGER_0_7690 */
150 static int hf_lppa_valueTimingAdvanceType2; /* INTEGER_0_7690 */
151 static int hf_lppa_resultRSRP; /* ResultRSRP */
152 static int hf_lppa_resultRSRQ; /* ResultRSRQ */
153 static int hf_lppa_MBSFNsubframeConfiguration_item; /* MBSFNsubframeConfigurationValue */
154 static int hf_lppa_radioframeAllocationPeriod; /* T_radioframeAllocationPeriod */
155 static int hf_lppa_radioframeAllocationOffset; /* INTEGER_0_7 */
156 static int hf_lppa_subframeAllocation; /* Subframeallocation */
157 static int hf_lppa_nRCellIdentity; /* NRCellIdentity */
158 static int hf_lppa_nPRSSubframePartA; /* NPRSSubframePartA */
159 static int hf_lppa_nPRSSubframePartB; /* NPRSSubframePartB */
160 static int hf_lppa_two; /* BIT_STRING_SIZE_2 */
161 static int hf_lppa_four; /* BIT_STRING_SIZE_4 */
162 static int hf_lppa_eight; /* BIT_STRING_SIZE_8 */
163 static int hf_lppa_sixteen; /* BIT_STRING_SIZE_16 */
164 static int hf_lppa_bitmapsforNPRS; /* BitmapsforNPRS */
165 static int hf_lppa_nPRSMutingConfiguration; /* NPRSMutingConfiguration */
166 static int hf_lppa_numberofNPRSOneOccasion; /* T_numberofNPRSOneOccasion */
167 static int hf_lppa_periodicityofNPRS; /* T_periodicityofNPRS */
168 static int hf_lppa_startingsubframeoffset; /* T_startingsubframeoffset */
169 static int hf_lppa_sIB1_NB_Subframe_TDD; /* T_sIB1_NB_Subframe_TDD */
170 static int hf_lppa_OTDOACells_item; /* OTDOACells_item */
171 static int hf_lppa_oTDOACellInfo; /* OTDOACell_Information */
172 static int hf_lppa_OTDOACell_Information_item; /* OTDOACell_Information_Item */
173 static int hf_lppa_pCI; /* PCI */
174 static int hf_lppa_cellId; /* ECGI */
175 static int hf_lppa_tAC; /* TAC */
176 static int hf_lppa_eARFCN; /* EARFCN */
177 static int hf_lppa_pRS_Bandwidth; /* PRS_Bandwidth */
178 static int hf_lppa_pRS_ConfigurationIndex; /* PRS_Configuration_Index */
179 static int hf_lppa_cPLength; /* CPLength */
180 static int hf_lppa_numberOfDlFrames; /* NumberOfDlFrames */
181 static int hf_lppa_numberOfAntennaPorts; /* NumberOfAntennaPorts */
182 static int hf_lppa_sFNInitialisationTime; /* SFNInitialisationTime */
183 static int hf_lppa_pRSMutingConfiguration; /* PRSMutingConfiguration */
184 static int hf_lppa_prsid; /* PRS_ID */
185 static int hf_lppa_tpid; /* TP_ID */
186 static int hf_lppa_tpType; /* TP_Type */
187 static int hf_lppa_numberOfDlFrames_Extended; /* NumberOfDlFrames_Extended */
188 static int hf_lppa_crsCPlength; /* CPLength */
189 static int hf_lppa_mBSFNsubframeConfiguration; /* MBSFNsubframeConfiguration */
190 static int hf_lppa_nPRSConfiguration; /* NPRSConfiguration */
191 static int hf_lppa_offsetNBChanneltoEARFCN; /* OffsetNBChanneltoEARFCN */
192 static int hf_lppa_operationModeInfo; /* OperationModeInfo */
193 static int hf_lppa_nPRS_ID; /* INTEGER_0_4095_ */
194 static int hf_lppa_dL_Bandwidth; /* DL_Bandwidth */
195 static int hf_lppa_pRSOccasionGroup; /* PRSOccasionGroup */
196 static int hf_lppa_pRSFreqHoppingConfig; /* PRSFrequencyHoppingConfiguration */
197 static int hf_lppa_repetitionNumberofSIB1_NB; /* RepetitionNumberofSIB1_NB */
198 static int hf_lppa_nPRSSequenceInfo; /* NPRSSequenceInfo */
199 static int hf_lppa_nPRSType2; /* NPRSConfiguration */
200 static int hf_lppa_tddConfiguration; /* TDDConfiguration */
201 static int hf_lppa_PosSIBs_item; /* PosSIBs_item */
202 static int hf_lppa_posSIB_Segments; /* PosSIB_Segments */
203 static int hf_lppa_assistanceInformationMetaData; /* AssistanceInformationMetaData */
204 static int hf_lppa_broadcastPriority; /* INTEGER_1_16_ */
205 static int hf_lppa_PosSIB_Segments_item; /* PosSIB_Segments_item */
206 static int hf_lppa_assistanceDataSIBelement; /* OCTET_STRING */
207 static int hf_lppa_thirty_two; /* BIT_STRING_SIZE_32 */
208 static int hf_lppa_sixty_four; /* BIT_STRING_SIZE_64 */
209 static int hf_lppa_one_hundred_and_twenty_eight; /* BIT_STRING_SIZE_128 */
210 static int hf_lppa_two_hundred_and_fifty_six; /* BIT_STRING_SIZE_256 */
211 static int hf_lppa_five_hundred_and_twelve; /* BIT_STRING_SIZE_512 */
212 static int hf_lppa_one_thousand_and_twenty_four; /* BIT_STRING_SIZE_1024 */
213 static int hf_lppa_noOfFreqHoppingBands; /* NumberOfFrequencyHoppingBands */
214 static int hf_lppa_bandPositions; /* SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex */
215 static int hf_lppa_bandPositions_item; /* NarrowBandIndex */
216 static int hf_lppa_numberOfTransmissions; /* INTEGER_0_500_ */
217 static int hf_lppa_bandwidth; /* INTEGER_1_100_ */
218 static int hf_lppa_ResultRSRP_item; /* ResultRSRP_Item */
219 static int hf_lppa_eCGI; /* ECGI */
220 static int hf_lppa_valueRSRP; /* ValueRSRP */
221 static int hf_lppa_ResultRSRQ_item; /* ResultRSRQ_Item */
222 static int hf_lppa_valueRSRQ; /* ValueRSRQ */
223 static int hf_lppa_ResultGERAN_item; /* ResultGERAN_Item */
224 static int hf_lppa_bCCH; /* BCCH */
225 static int hf_lppa_physCellIDGERAN; /* PhysCellIDGERAN */
226 static int hf_lppa_rSSI; /* RSSI */
227 static int hf_lppa_ResultUTRAN_item; /* ResultUTRAN_Item */
228 static int hf_lppa_uARFCN; /* UARFCN */
229 static int hf_lppa_physCellIDUTRAN; /* T_physCellIDUTRAN */
230 static int hf_lppa_physCellIDUTRA_FDD; /* PhysCellIDUTRA_FDD */
231 static int hf_lppa_physCellIDUTRA_TDD; /* PhysCellIDUTRA_TDD */
232 static int hf_lppa_uTRA_RSCP; /* UTRA_RSCP */
233 static int hf_lppa_uTRA_EcN0; /* UTRA_EcN0 */
234 static int hf_lppa_ResultNR_item; /* ResultNR_Item */
235 static int hf_lppa_nRARFCN; /* NRARFCN */
236 static int hf_lppa_nRPCI; /* NRPCI */
237 static int hf_lppa_sS_NRRSRP; /* SS_NRRSRP */
238 static int hf_lppa_sS_NRRSRQ; /* SS_NRRSRQ */
239 static int hf_lppa_ResultsPerSSB_Index_List_item; /* ResultsPerSSB_Index_Item */
240 static int hf_lppa_sSB_Index; /* SSB_Index */
241 static int hf_lppa_sS_NRRSRPBeamValue; /* SS_NRRSRP */
242 static int hf_lppa_sS_NRRSRQBeamValue; /* SS_NRRSRQ */
243 static int hf_lppa_SRSConfigurationForAllCells_item; /* SRSConfigurationForOneCell */
244 static int hf_lppa_pci; /* PCI */
245 static int hf_lppa_ul_earfcn; /* EARFCN */
246 static int hf_lppa_ul_bandwidth; /* T_ul_bandwidth */
247 static int hf_lppa_ul_cyclicPrefixLength; /* CPLength */
248 static int hf_lppa_srs_BandwidthConfig; /* T_srs_BandwidthConfig */
249 static int hf_lppa_srs_Bandwidth; /* T_srs_Bandwidth */
250 static int hf_lppa_srs_AntennaPort; /* T_srs_AntennaPort */
251 static int hf_lppa_srs_HoppingBandwidth; /* T_srs_HoppingBandwidth */
252 static int hf_lppa_srs_cyclicShift; /* T_srs_cyclicShift */
253 static int hf_lppa_srs_ConfigIndex; /* INTEGER_0_1023 */
254 static int hf_lppa_maxUpPts; /* T_maxUpPts */
255 static int hf_lppa_transmissionComb; /* INTEGER_0_1 */
256 static int hf_lppa_freqDomainPosition; /* INTEGER_0_23 */
257 static int hf_lppa_groupHoppingEnabled; /* BOOLEAN */
258 static int hf_lppa_deltaSS; /* INTEGER_0_29 */
259 static int hf_lppa_sfnInitialisationTime; /* SFNInitialisationTime */
260 static int hf_lppa_oneFrame; /* BIT_STRING_SIZE_6 */
261 static int hf_lppa_fourFrames; /* BIT_STRING_SIZE_24 */
262 static int hf_lppa_SystemInformation_item; /* SystemInformation_item */
263 static int hf_lppa_broadcastPeriodicity; /* BroadcastPeriodicity */
264 static int hf_lppa_posSIBs; /* PosSIBs */
265 static int hf_lppa_subframeAssignment; /* T_subframeAssignment */
266 static int hf_lppa_timingAdvanceType1; /* INTEGER_0_7690 */
267 static int hf_lppa_timingAdvanceType2; /* INTEGER_0_7690 */
268 static int hf_lppa_srsConfiguration; /* SRSConfigurationForAllCells */
269 static int hf_lppa_WLANMeasurementQuantities_item; /* ProtocolIE_Single_Container */
270 static int hf_lppa_wLANMeasurementQuantitiesValue; /* WLANMeasurementQuantitiesValue */
271 static int hf_lppa_WLANMeasurementResult_item; /* WLANMeasurementResult_Item */
272 static int hf_lppa_wLAN_RSSI; /* WLAN_RSSI */
273 static int hf_lppa_sSID; /* SSID */
274 static int hf_lppa_bSSID; /* BSSID */
275 static int hf_lppa_hESSID; /* HESSID */
276 static int hf_lppa_operatingClass; /* WLANOperatingClass */
277 static int hf_lppa_countryCode; /* WLANCountryCode */
278 static int hf_lppa_wLANChannelList; /* WLANChannelList */
279 static int hf_lppa_wLANBand; /* WLANBand */
280 static int hf_lppa_WLANChannelList_item; /* WLANChannel */
281 static int hf_lppa_protocolIEs; /* ProtocolIE_Container */
282 static int hf_lppa_OTDOA_Information_Type_item; /* ProtocolIE_Single_Container */
283 static int hf_lppa_oTDOA_Information_Type_Item; /* OTDOA_Information_Item */
284 static int hf_lppa_privateIEs; /* PrivateIE_Container */
285 static int hf_lppa_initiatingMessage; /* InitiatingMessage */
286 static int hf_lppa_successfulOutcome; /* SuccessfulOutcome */
287 static int hf_lppa_unsuccessfulOutcome; /* UnsuccessfulOutcome */
288 static int hf_lppa_initiatingMessagevalue; /* InitiatingMessage_value */
289 static int hf_lppa_successfulOutcome_value; /* SuccessfulOutcome_value */
290 static int hf_lppa_unsuccessfulOutcome_value; /* UnsuccessfulOutcome_value */
292 /* Initialize the subtree pointers */
293 static int ett_lppa;
294 static int ett_lppa_PrivateIE_ID;
295 static int ett_lppa_ProtocolIE_Container;
296 static int ett_lppa_ProtocolIE_Field;
297 static int ett_lppa_ProtocolExtensionContainer;
298 static int ett_lppa_ProtocolExtensionField;
299 static int ett_lppa_PrivateIE_Container;
300 static int ett_lppa_PrivateIE_Field;
301 static int ett_lppa_Add_OTDOACells;
302 static int ett_lppa_Add_OTDOACells_item;
303 static int ett_lppa_Add_OTDOACell_Information;
304 static int ett_lppa_Assistance_Information;
305 static int ett_lppa_AssistanceInformationFailureList;
306 static int ett_lppa_AssistanceInformationFailureList_item;
307 static int ett_lppa_AssistanceInformationMetaData;
308 static int ett_lppa_BitmapsforNPRS;
309 static int ett_lppa_Cause;
310 static int ett_lppa_CriticalityDiagnostics;
311 static int ett_lppa_CriticalityDiagnostics_IE_List;
312 static int ett_lppa_CriticalityDiagnostics_IE_List_item;
313 static int ett_lppa_E_CID_MeasurementResult;
314 static int ett_lppa_ECGI;
315 static int ett_lppa_E_UTRANAccessPointPosition;
316 static int ett_lppa_InterRATMeasurementQuantities;
317 static int ett_lppa_InterRATMeasurementQuantities_Item;
318 static int ett_lppa_InterRATMeasurementResult;
319 static int ett_lppa_InterRATMeasuredResultsValue;
320 static int ett_lppa_MeasurementQuantities;
321 static int ett_lppa_MeasurementQuantities_Item;
322 static int ett_lppa_MeasuredResults;
323 static int ett_lppa_MeasuredResultsValue;
324 static int ett_lppa_MBSFNsubframeConfiguration;
325 static int ett_lppa_MBSFNsubframeConfigurationValue;
326 static int ett_lppa_NR_CGI;
327 static int ett_lppa_NPRSConfiguration;
328 static int ett_lppa_NPRSMutingConfiguration;
329 static int ett_lppa_NPRSSubframePartA;
330 static int ett_lppa_NPRSSubframePartB;
331 static int ett_lppa_OTDOACells;
332 static int ett_lppa_OTDOACells_item;
333 static int ett_lppa_OTDOACell_Information;
334 static int ett_lppa_OTDOACell_Information_Item;
335 static int ett_lppa_PosSIBs;
336 static int ett_lppa_PosSIBs_item;
337 static int ett_lppa_PosSIB_Segments;
338 static int ett_lppa_PosSIB_Segments_item;
339 static int ett_lppa_PRSMutingConfiguration;
340 static int ett_lppa_PRSFrequencyHoppingConfiguration;
341 static int ett_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex;
342 static int ett_lppa_RequestedSRSTransmissionCharacteristics;
343 static int ett_lppa_ResultRSRP;
344 static int ett_lppa_ResultRSRP_Item;
345 static int ett_lppa_ResultRSRQ;
346 static int ett_lppa_ResultRSRQ_Item;
347 static int ett_lppa_ResultGERAN;
348 static int ett_lppa_ResultGERAN_Item;
349 static int ett_lppa_ResultUTRAN;
350 static int ett_lppa_ResultUTRAN_Item;
351 static int ett_lppa_T_physCellIDUTRAN;
352 static int ett_lppa_ResultNR;
353 static int ett_lppa_ResultNR_Item;
354 static int ett_lppa_ResultsPerSSB_Index_List;
355 static int ett_lppa_ResultsPerSSB_Index_Item;
356 static int ett_lppa_SRSConfigurationForAllCells;
357 static int ett_lppa_SRSConfigurationForOneCell;
358 static int ett_lppa_Subframeallocation;
359 static int ett_lppa_SystemInformation;
360 static int ett_lppa_SystemInformation_item;
361 static int ett_lppa_TDDConfiguration;
362 static int ett_lppa_ULConfiguration;
363 static int ett_lppa_WLANMeasurementQuantities;
364 static int ett_lppa_WLANMeasurementQuantities_Item;
365 static int ett_lppa_WLANMeasurementResult;
366 static int ett_lppa_WLANMeasurementResult_Item;
367 static int ett_lppa_WLANChannelList;
368 static int ett_lppa_E_CIDMeasurementInitiationRequest;
369 static int ett_lppa_E_CIDMeasurementInitiationResponse;
370 static int ett_lppa_E_CIDMeasurementInitiationFailure;
371 static int ett_lppa_E_CIDMeasurementFailureIndication;
372 static int ett_lppa_E_CIDMeasurementReport;
373 static int ett_lppa_E_CIDMeasurementTerminationCommand;
374 static int ett_lppa_OTDOAInformationRequest;
375 static int ett_lppa_OTDOA_Information_Type;
376 static int ett_lppa_OTDOA_Information_Type_Item;
377 static int ett_lppa_OTDOAInformationResponse;
378 static int ett_lppa_OTDOAInformationFailure;
379 static int ett_lppa_UTDOAInformationRequest;
380 static int ett_lppa_UTDOAInformationResponse;
381 static int ett_lppa_UTDOAInformationFailure;
382 static int ett_lppa_UTDOAInformationUpdate;
383 static int ett_lppa_AssistanceInformationControl;
384 static int ett_lppa_AssistanceInformationFeedback;
385 static int ett_lppa_ErrorIndication;
386 static int ett_lppa_PrivateMessage;
387 static int ett_lppa_LPPA_PDU;
388 static int ett_lppa_InitiatingMessage;
389 static int ett_lppa_SuccessfulOutcome;
390 static int ett_lppa_UnsuccessfulOutcome;
392 enum {
393 INITIATING_MESSAGE,
394 SUCCESSFUL_OUTCOME,
395 UNSUCCESSFUL_OUTCOME
398 /* Dissector tables */
399 static dissector_table_t lppa_ies_dissector_table;
400 static dissector_table_t lppa_extension_dissector_table;
401 static dissector_table_t lppa_proc_imsg_dissector_table;
402 static dissector_table_t lppa_proc_sout_dissector_table;
403 static dissector_table_t lppa_proc_uout_dissector_table;
405 /* Include constants */
406 #define maxPrivateIEs 65535
407 #define maxProtocolExtensions 65535
408 #define maxProtocolIEs 65535
409 #define maxNrOfErrors 256
410 #define maxCellineNB 256
411 #define maxNoMeas 63
412 #define maxCellReport 9
413 #define maxnoOTDOAtypes 63
414 #define maxServCell 5
415 #define maxGERANMeas 8
416 #define maxUTRANMeas 8
417 #define maxCellineNB_ext 3840
418 #define maxMBSFN_Allocations 8
419 #define maxWLANchannels 16
420 #define maxnoFreqHoppingBandsMinusOne 7
421 #define maxNrOfPosSImessage 32
422 #define maxnoAssistInfoFailureListItems 32
423 #define maxNrOfSegments 64
424 #define maxNrOfPosSIBs 32
425 #define maxNRmeas 32
426 #define maxResultsPerSSBIndex 64
428 typedef enum _ProcedureCode_enum {
429 id_errorIndication = 0,
430 id_privateMessage = 1,
431 id_e_CIDMeasurementInitiation = 2,
432 id_e_CIDMeasurementFailureIndication = 3,
433 id_e_CIDMeasurementReport = 4,
434 id_e_CIDMeasurementTermination = 5,
435 id_oTDOAInformationExchange = 6,
436 id_uTDOAInformationExchange = 7,
437 id_uTDOAInformationUpdate = 8,
438 id_assistanceInformationControl = 9,
439 id_assistanceInformationFeedback = 10
440 } ProcedureCode_enum;
442 typedef enum _ProtocolIE_ID_enum {
443 id_Cause = 0,
444 id_CriticalityDiagnostics = 1,
445 id_E_SMLC_UE_Measurement_ID = 2,
446 id_ReportCharacteristics = 3,
447 id_MeasurementPeriodicity = 4,
448 id_MeasurementQuantities = 5,
449 id_eNB_UE_Measurement_ID = 6,
450 id_E_CID_MeasurementResult = 7,
451 id_OTDOACells = 8,
452 id_OTDOA_Information_Type_Group = 9,
453 id_OTDOA_Information_Type_Item = 10,
454 id_MeasurementQuantities_Item = 11,
455 id_RequestedSRSTransmissionCharacteristics = 12,
456 id_ULConfiguration = 13,
457 id_Cell_Portion_ID = 14,
458 id_InterRATMeasurementQuantities = 15,
459 id_InterRATMeasurementQuantities_Item = 16,
460 id_InterRATMeasurementResult = 17,
461 id_AddOTDOACells = 18,
462 id_WLANMeasurementQuantities = 19,
463 id_WLANMeasurementQuantities_Item = 20,
464 id_WLANMeasurementResult = 21,
465 id_Assistance_Information = 22,
466 id_Broadcast = 23,
467 id_AssistanceInformationFailureList = 24,
468 id_ResultsPerSSB_Index_List = 25,
469 id_ResultsPerSSB_Index_Item = 26,
470 id_NR_CGI = 27
471 } ProtocolIE_ID_enum;
473 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
474 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
475 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
476 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
477 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
479 struct lppa_private_data {
480 uint32_t procedure_code;
481 uint32_t protocol_ie_id;
482 uint32_t protocol_extension_id;
483 uint32_t message_type;
486 static struct lppa_private_data*
487 lppa_get_private_data(packet_info* pinfo)
489 struct lppa_private_data* lppa_data = (struct lppa_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_lppa, 0);
490 if (!lppa_data) {
491 lppa_data = wmem_new0(pinfo->pool, struct lppa_private_data);
492 p_add_proto_data(pinfo->pool, pinfo, proto_lppa, 0, lppa_data);
494 return lppa_data;
498 static const value_string lppa_Criticality_vals[] = {
499 { 0, "reject" },
500 { 1, "ignore" },
501 { 2, "notify" },
502 { 0, NULL }
506 static int
507 dissect_lppa_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
508 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
509 3, NULL, false, 0, NULL);
511 return offset;
516 static int
517 dissect_lppa_LPPATransactionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
518 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
519 0U, 32767U, NULL, false);
521 return offset;
526 static int
527 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_) {
528 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
529 0U, maxPrivateIEs, NULL, false);
531 return offset;
536 static int
537 dissect_lppa_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
538 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
540 return offset;
544 static const value_string lppa_PrivateIE_ID_vals[] = {
545 { 0, "local" },
546 { 1, "global" },
547 { 0, NULL }
550 static const per_choice_t PrivateIE_ID_choice[] = {
551 { 0, &hf_lppa_local , ASN1_NO_EXTENSIONS , dissect_lppa_INTEGER_0_maxPrivateIEs },
552 { 1, &hf_lppa_global , ASN1_NO_EXTENSIONS , dissect_lppa_OBJECT_IDENTIFIER },
553 { 0, NULL, 0, NULL }
556 static int
557 dissect_lppa_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
558 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
559 ett_lppa_PrivateIE_ID, PrivateIE_ID_choice,
560 NULL);
562 return offset;
566 static const value_string lppa_ProcedureCode_vals[] = {
567 { id_errorIndication, "id-errorIndication" },
568 { id_privateMessage, "id-privateMessage" },
569 { id_e_CIDMeasurementInitiation, "id-e-CIDMeasurementInitiation" },
570 { id_e_CIDMeasurementFailureIndication, "id-e-CIDMeasurementFailureIndication" },
571 { id_e_CIDMeasurementReport, "id-e-CIDMeasurementReport" },
572 { id_e_CIDMeasurementTermination, "id-e-CIDMeasurementTermination" },
573 { id_oTDOAInformationExchange, "id-oTDOAInformationExchange" },
574 { id_uTDOAInformationExchange, "id-uTDOAInformationExchange" },
575 { id_uTDOAInformationUpdate, "id-uTDOAInformationUpdate" },
576 { id_assistanceInformationControl, "id-assistanceInformationControl" },
577 { id_assistanceInformationFeedback, "id-assistanceInformationFeedback" },
578 { 0, NULL }
582 static int
583 dissect_lppa_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
584 struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo);
586 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
587 0U, 255U, &lppa_data->procedure_code, false);
590 col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
591 val_to_str_const(lppa_data->procedure_code, lppa_ProcedureCode_vals,
592 "unknown message"));
594 return offset;
598 static const value_string lppa_ProtocolIE_ID_vals[] = {
599 { id_Cause, "id-Cause" },
600 { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
601 { id_E_SMLC_UE_Measurement_ID, "id-E-SMLC-UE-Measurement-ID" },
602 { id_ReportCharacteristics, "id-ReportCharacteristics" },
603 { id_MeasurementPeriodicity, "id-MeasurementPeriodicity" },
604 { id_MeasurementQuantities, "id-MeasurementQuantities" },
605 { id_eNB_UE_Measurement_ID, "id-eNB-UE-Measurement-ID" },
606 { id_E_CID_MeasurementResult, "id-E-CID-MeasurementResult" },
607 { id_OTDOACells, "id-OTDOACells" },
608 { id_OTDOA_Information_Type_Group, "id-OTDOA-Information-Type-Group" },
609 { id_OTDOA_Information_Type_Item, "id-OTDOA-Information-Type-Item" },
610 { id_MeasurementQuantities_Item, "id-MeasurementQuantities-Item" },
611 { id_RequestedSRSTransmissionCharacteristics, "id-RequestedSRSTransmissionCharacteristics" },
612 { id_ULConfiguration, "id-ULConfiguration" },
613 { id_Cell_Portion_ID, "id-Cell-Portion-ID" },
614 { id_InterRATMeasurementQuantities, "id-InterRATMeasurementQuantities" },
615 { id_InterRATMeasurementQuantities_Item, "id-InterRATMeasurementQuantities-Item" },
616 { id_InterRATMeasurementResult, "id-InterRATMeasurementResult" },
617 { id_AddOTDOACells, "id-AddOTDOACells" },
618 { id_WLANMeasurementQuantities, "id-WLANMeasurementQuantities" },
619 { id_WLANMeasurementQuantities_Item, "id-WLANMeasurementQuantities-Item" },
620 { id_WLANMeasurementResult, "id-WLANMeasurementResult" },
621 { id_Assistance_Information, "id-Assistance-Information" },
622 { id_Broadcast, "id-Broadcast" },
623 { id_AssistanceInformationFailureList, "id-AssistanceInformationFailureList" },
624 { id_ResultsPerSSB_Index_List, "id-ResultsPerSSB-Index-List" },
625 { id_ResultsPerSSB_Index_Item, "id-ResultsPerSSB-Index-Item" },
626 { id_NR_CGI, "id-NR-CGI" },
627 { 0, NULL }
631 static int
632 dissect_lppa_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
633 struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo);
634 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
635 0U, maxProtocolIEs, &lppa_data->protocol_ie_id, false);
639 if (tree) {
640 proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
641 val_to_str(lppa_data->protocol_ie_id, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)"));
643 return offset;
647 static const value_string lppa_TriggeringMessage_vals[] = {
648 { 0, "initiating-message" },
649 { 1, "successful-outcome" },
650 { 2, "unsuccessful-outcome" },
651 { 0, NULL }
655 static int
656 dissect_lppa_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
657 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
658 3, NULL, false, 0, NULL);
660 return offset;
665 static int
666 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_) {
667 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue);
669 return offset;
673 static const per_sequence_t ProtocolIE_Field_sequence[] = {
674 { &hf_lppa_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_ID },
675 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
676 { &hf_lppa_ie_field_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_ie_field_value },
677 { NULL, 0, 0, NULL }
680 static int
681 dissect_lppa_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
682 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
683 ett_lppa_ProtocolIE_Field, ProtocolIE_Field_sequence);
685 return offset;
689 static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
690 { &hf_lppa_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Field },
693 static int
694 dissect_lppa_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
695 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
696 ett_lppa_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
697 0, maxProtocolIEs, false);
699 return offset;
704 static int
705 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_) {
706 offset = dissect_lppa_ProtocolIE_Field(tvb, offset, actx, tree, hf_index);
708 return offset;
713 static int
714 dissect_lppa_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
715 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolExtensionFieldExtensionValue);
717 return offset;
721 static const per_sequence_t ProtocolExtensionField_sequence[] = {
722 { &hf_lppa_ext_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_ID },
723 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
724 { &hf_lppa_extensionValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_extensionValue },
725 { NULL, 0, 0, NULL }
728 static int
729 dissect_lppa_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
730 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
731 ett_lppa_ProtocolExtensionField, ProtocolExtensionField_sequence);
733 return offset;
737 static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
738 { &hf_lppa_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolExtensionField },
741 static int
742 dissect_lppa_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
743 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
744 ett_lppa_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
745 1, maxProtocolExtensions, false);
747 return offset;
752 static int
753 dissect_lppa_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
754 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
756 return offset;
760 static const per_sequence_t PrivateIE_Field_sequence[] = {
761 { &hf_lppa_id_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_PrivateIE_ID },
762 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
763 { &hf_lppa_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_value },
764 { NULL, 0, 0, NULL }
767 static int
768 dissect_lppa_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
769 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
770 ett_lppa_PrivateIE_Field, PrivateIE_Field_sequence);
772 return offset;
776 static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
777 { &hf_lppa_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_PrivateIE_Field },
780 static int
781 dissect_lppa_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
782 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
783 ett_lppa_PrivateIE_Container, PrivateIE_Container_sequence_of,
784 1, maxPrivateIEs, false);
786 return offset;
791 static int
792 dissect_lppa_PCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
793 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
794 0U, 503U, NULL, true);
796 return offset;
801 static int
802 dissect_lppa_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
803 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
804 3, 3, false, NULL);
806 return offset;
811 static int
812 dissect_lppa_EUTRANCellIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
813 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
814 28, 28, false, NULL, 0, NULL, NULL);
816 return offset;
820 static const per_sequence_t ECGI_sequence[] = {
821 { &hf_lppa_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PLMN_Identity },
822 { &hf_lppa_eUTRANcellIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EUTRANCellIdentifier },
823 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
824 { NULL, 0, 0, NULL }
827 static int
828 dissect_lppa_ECGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
829 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
830 ett_lppa_ECGI, ECGI_sequence);
832 return offset;
837 static int
838 dissect_lppa_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
839 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
840 2, 2, false, NULL);
842 return offset;
847 static int
848 dissect_lppa_EARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
849 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
850 0U, 65535U, NULL, true);
852 return offset;
856 static const value_string lppa_PRS_Bandwidth_vals[] = {
857 { 0, "bw6" },
858 { 1, "bw15" },
859 { 2, "bw25" },
860 { 3, "bw50" },
861 { 4, "bw75" },
862 { 5, "bw100" },
863 { 0, NULL }
867 static int
868 dissect_lppa_PRS_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
869 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
870 6, NULL, true, 0, NULL);
872 return offset;
877 static int
878 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_) {
879 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
880 0U, 4095U, NULL, true);
882 return offset;
886 static const value_string lppa_CPLength_vals[] = {
887 { 0, "normal" },
888 { 1, "extended" },
889 { 0, NULL }
893 static int
894 dissect_lppa_CPLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
895 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
896 2, NULL, true, 0, NULL);
898 return offset;
902 static const value_string lppa_NumberOfDlFrames_vals[] = {
903 { 0, "sf1" },
904 { 1, "sf2" },
905 { 2, "sf4" },
906 { 3, "sf6" },
907 { 0, NULL }
911 static int
912 dissect_lppa_NumberOfDlFrames(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
913 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
914 4, NULL, true, 0, NULL);
916 return offset;
920 static const value_string lppa_NumberOfAntennaPorts_vals[] = {
921 { 0, "n1-or-n2" },
922 { 1, "n4" },
923 { 0, NULL }
927 static int
928 dissect_lppa_NumberOfAntennaPorts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
929 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
930 2, NULL, true, 0, NULL);
932 return offset;
937 static int
938 dissect_lppa_SFNInitialisationTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
939 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
940 64, 64, false, NULL, 0, NULL, NULL);
942 return offset;
946 static const value_string lppa_T_latitudeSign_vals[] = {
947 { 0, "north" },
948 { 1, "south" },
949 { 0, NULL }
953 static int
954 dissect_lppa_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
955 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
956 2, NULL, false, 0, NULL);
958 return offset;
963 static int
964 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_) {
965 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
966 0U, 8388607U, NULL, false);
968 return offset;
973 static int
974 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_) {
975 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
976 -8388608, 8388607U, NULL, false);
978 return offset;
982 static const value_string lppa_T_directionOfAltitude_vals[] = {
983 { 0, "height" },
984 { 1, "depth" },
985 { 0, NULL }
989 static int
990 dissect_lppa_T_directionOfAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
991 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
992 2, NULL, false, 0, NULL);
994 return offset;
999 static int
1000 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_) {
1001 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1002 0U, 32767U, NULL, false);
1004 return offset;
1009 static int
1010 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_) {
1011 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1012 0U, 127U, NULL, false);
1014 return offset;
1019 static int
1020 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_) {
1021 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1022 0U, 179U, NULL, false);
1024 return offset;
1029 static int
1030 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_) {
1031 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1032 0U, 100U, NULL, false);
1034 return offset;
1038 static const per_sequence_t E_UTRANAccessPointPosition_sequence[] = {
1039 { &hf_lppa_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_latitudeSign },
1040 { &hf_lppa_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_8388607 },
1041 { &hf_lppa_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_M8388608_8388607 },
1042 { &hf_lppa_directionOfAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_directionOfAltitude },
1043 { &hf_lppa_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_32767 },
1044 { &hf_lppa_uncertaintySemi_major, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_127 },
1045 { &hf_lppa_uncertaintySemi_minor, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_127 },
1046 { &hf_lppa_orientationOfMajorAxis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_179 },
1047 { &hf_lppa_uncertaintyAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_127 },
1048 { &hf_lppa_confidence , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_100 },
1049 { NULL, 0, 0, NULL }
1052 static int
1053 dissect_lppa_E_UTRANAccessPointPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1054 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1055 ett_lppa_E_UTRANAccessPointPosition, E_UTRANAccessPointPosition_sequence);
1057 return offset;
1062 static int
1063 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_) {
1064 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1065 2, 2, false, NULL, 0, NULL, NULL);
1067 return offset;
1072 static int
1073 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_) {
1074 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1075 4, 4, false, NULL, 0, NULL, NULL);
1077 return offset;
1082 static int
1083 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_) {
1084 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1085 8, 8, false, NULL, 0, NULL, NULL);
1087 return offset;
1092 static int
1093 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_) {
1094 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1095 16, 16, false, NULL, 0, NULL, NULL);
1097 return offset;
1102 static int
1103 dissect_lppa_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1104 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1105 32, 32, false, NULL, 0, NULL, NULL);
1107 return offset;
1112 static int
1113 dissect_lppa_BIT_STRING_SIZE_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1114 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1115 64, 64, false, NULL, 0, NULL, NULL);
1117 return offset;
1122 static int
1123 dissect_lppa_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1124 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1125 128, 128, false, NULL, 0, NULL, NULL);
1127 return offset;
1132 static int
1133 dissect_lppa_BIT_STRING_SIZE_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1134 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1135 256, 256, false, NULL, 0, NULL, NULL);
1137 return offset;
1142 static int
1143 dissect_lppa_BIT_STRING_SIZE_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1144 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1145 512, 512, false, NULL, 0, NULL, NULL);
1147 return offset;
1152 static int
1153 dissect_lppa_BIT_STRING_SIZE_1024(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1154 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1155 1024, 1024, false, NULL, 0, NULL, NULL);
1157 return offset;
1161 static const value_string lppa_PRSMutingConfiguration_vals[] = {
1162 { 0, "two" },
1163 { 1, "four" },
1164 { 2, "eight" },
1165 { 3, "sixteen" },
1166 { 4, "thirty-two" },
1167 { 5, "sixty-four" },
1168 { 6, "one-hundred-and-twenty-eight" },
1169 { 7, "two-hundred-and-fifty-six" },
1170 { 8, "five-hundred-and-twelve" },
1171 { 9, "one-thousand-and-twenty-four" },
1172 { 0, NULL }
1175 static const per_choice_t PRSMutingConfiguration_choice[] = {
1176 { 0, &hf_lppa_two , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_2 },
1177 { 1, &hf_lppa_four , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_4 },
1178 { 2, &hf_lppa_eight , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_8 },
1179 { 3, &hf_lppa_sixteen , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_16 },
1180 { 4, &hf_lppa_thirty_two , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_32 },
1181 { 5, &hf_lppa_sixty_four , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_64 },
1182 { 6, &hf_lppa_one_hundred_and_twenty_eight, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_128 },
1183 { 7, &hf_lppa_two_hundred_and_fifty_six, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_256 },
1184 { 8, &hf_lppa_five_hundred_and_twelve, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_512 },
1185 { 9, &hf_lppa_one_thousand_and_twenty_four, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_1024 },
1186 { 0, NULL, 0, NULL }
1189 static int
1190 dissect_lppa_PRSMutingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1191 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1192 ett_lppa_PRSMutingConfiguration, PRSMutingConfiguration_choice,
1193 NULL);
1195 return offset;
1200 static int
1201 dissect_lppa_PRS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1202 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1203 0U, 4095U, NULL, true);
1205 return offset;
1210 static int
1211 dissect_lppa_TP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1212 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1213 0U, 4095U, NULL, true);
1215 return offset;
1219 static const value_string lppa_TP_Type_vals[] = {
1220 { 0, "prs-only-tp" },
1221 { 0, NULL }
1225 static int
1226 dissect_lppa_TP_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1227 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1228 1, NULL, true, 0, NULL);
1230 return offset;
1235 static int
1236 dissect_lppa_NumberOfDlFrames_Extended(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1237 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1238 1U, 160U, NULL, true);
1240 return offset;
1244 static const value_string lppa_T_radioframeAllocationPeriod_vals[] = {
1245 { 0, "n1" },
1246 { 1, "n2" },
1247 { 2, "n4" },
1248 { 3, "n8" },
1249 { 4, "n16" },
1250 { 5, "n32" },
1251 { 0, NULL }
1255 static int
1256 dissect_lppa_T_radioframeAllocationPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1257 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1258 6, NULL, false, 0, NULL);
1260 return offset;
1265 static int
1266 dissect_lppa_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1267 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1268 0U, 7U, NULL, false);
1270 return offset;
1275 static int
1276 dissect_lppa_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1277 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1278 6, 6, false, NULL, 0, NULL, NULL);
1280 return offset;
1285 static int
1286 dissect_lppa_BIT_STRING_SIZE_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1287 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1288 24, 24, false, NULL, 0, NULL, NULL);
1290 return offset;
1294 static const value_string lppa_Subframeallocation_vals[] = {
1295 { 0, "oneFrame" },
1296 { 1, "fourFrames" },
1297 { 0, NULL }
1300 static const per_choice_t Subframeallocation_choice[] = {
1301 { 0, &hf_lppa_oneFrame , ASN1_NO_EXTENSIONS , dissect_lppa_BIT_STRING_SIZE_6 },
1302 { 1, &hf_lppa_fourFrames , ASN1_NO_EXTENSIONS , dissect_lppa_BIT_STRING_SIZE_24 },
1303 { 0, NULL, 0, NULL }
1306 static int
1307 dissect_lppa_Subframeallocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1308 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1309 ett_lppa_Subframeallocation, Subframeallocation_choice,
1310 NULL);
1312 return offset;
1316 static const per_sequence_t MBSFNsubframeConfigurationValue_sequence[] = {
1317 { &hf_lppa_radioframeAllocationPeriod, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_T_radioframeAllocationPeriod },
1318 { &hf_lppa_radioframeAllocationOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_7 },
1319 { &hf_lppa_subframeAllocation, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Subframeallocation },
1320 { NULL, 0, 0, NULL }
1323 static int
1324 dissect_lppa_MBSFNsubframeConfigurationValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1325 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1326 ett_lppa_MBSFNsubframeConfigurationValue, MBSFNsubframeConfigurationValue_sequence);
1328 return offset;
1332 static const per_sequence_t MBSFNsubframeConfiguration_sequence_of[1] = {
1333 { &hf_lppa_MBSFNsubframeConfiguration_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_MBSFNsubframeConfigurationValue },
1336 static int
1337 dissect_lppa_MBSFNsubframeConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1338 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1339 ett_lppa_MBSFNsubframeConfiguration, MBSFNsubframeConfiguration_sequence_of,
1340 1, maxMBSFN_Allocations, false);
1342 return offset;
1347 static int
1348 dissect_lppa_BIT_STRING_SIZE_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1349 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1350 10, 10, false, NULL, 0, NULL, NULL);
1352 return offset;
1357 static int
1358 dissect_lppa_BIT_STRING_SIZE_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1359 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1360 40, 40, false, NULL, 0, NULL, NULL);
1362 return offset;
1366 static const value_string lppa_BitmapsforNPRS_vals[] = {
1367 { 0, "ten" },
1368 { 1, "forty" },
1369 { 2, "ten-tdd" },
1370 { 3, "forty-tdd" },
1371 { 0, NULL }
1374 static const per_choice_t BitmapsforNPRS_choice[] = {
1375 { 0, &hf_lppa_ten , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_10 },
1376 { 1, &hf_lppa_forty , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_40 },
1377 { 2, &hf_lppa_ten_tdd , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_8 },
1378 { 3, &hf_lppa_forty_tdd , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_BIT_STRING_SIZE_32 },
1379 { 0, NULL, 0, NULL }
1382 static int
1383 dissect_lppa_BitmapsforNPRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1384 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1385 ett_lppa_BitmapsforNPRS, BitmapsforNPRS_choice,
1386 NULL);
1388 return offset;
1392 static const value_string lppa_NPRSMutingConfiguration_vals[] = {
1393 { 0, "two" },
1394 { 1, "four" },
1395 { 2, "eight" },
1396 { 3, "sixteen" },
1397 { 0, NULL }
1400 static const per_choice_t NPRSMutingConfiguration_choice[] = {
1401 { 0, &hf_lppa_two , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_2 },
1402 { 1, &hf_lppa_four , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_4 },
1403 { 2, &hf_lppa_eight , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_8 },
1404 { 3, &hf_lppa_sixteen , ASN1_EXTENSION_ROOT , dissect_lppa_BIT_STRING_SIZE_16 },
1405 { 0, NULL, 0, NULL }
1408 static int
1409 dissect_lppa_NPRSMutingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1410 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1411 ett_lppa_NPRSMutingConfiguration, NPRSMutingConfiguration_choice,
1412 NULL);
1414 return offset;
1418 static const per_sequence_t NPRSSubframePartA_sequence[] = {
1419 { &hf_lppa_bitmapsforNPRS , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_BitmapsforNPRS },
1420 { &hf_lppa_nPRSMutingConfiguration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_NPRSMutingConfiguration },
1421 { NULL, 0, 0, NULL }
1424 static int
1425 dissect_lppa_NPRSSubframePartA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1426 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1427 ett_lppa_NPRSSubframePartA, NPRSSubframePartA_sequence);
1429 return offset;
1433 static const value_string lppa_T_numberofNPRSOneOccasion_vals[] = {
1434 { 0, "sf10" },
1435 { 1, "sf20" },
1436 { 2, "sf40" },
1437 { 3, "sf80" },
1438 { 4, "sf160" },
1439 { 5, "sf320" },
1440 { 6, "sf640" },
1441 { 7, "sf1280" },
1442 { 8, "sf2560" },
1443 { 0, NULL }
1447 static int
1448 dissect_lppa_T_numberofNPRSOneOccasion(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1449 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1450 8, NULL, true, 1, NULL);
1452 return offset;
1456 static const value_string lppa_T_periodicityofNPRS_vals[] = {
1457 { 0, "sf160" },
1458 { 1, "sf320" },
1459 { 2, "sf640" },
1460 { 3, "sf1280" },
1461 { 4, "sf2560" },
1462 { 0, NULL }
1466 static int
1467 dissect_lppa_T_periodicityofNPRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1468 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1469 4, NULL, true, 1, NULL);
1471 return offset;
1475 static const value_string lppa_T_startingsubframeoffset_vals[] = {
1476 { 0, "zero" },
1477 { 1, "one-Eighth" },
1478 { 2, "two-Eighths" },
1479 { 3, "three-Eighths" },
1480 { 4, "four-Eighths" },
1481 { 5, "five-Eighths" },
1482 { 6, "six-Eighths" },
1483 { 7, "seven-Eighths" },
1484 { 0, NULL }
1488 static int
1489 dissect_lppa_T_startingsubframeoffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1490 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1491 8, NULL, true, 0, NULL);
1493 return offset;
1497 static const value_string lppa_T_sIB1_NB_Subframe_TDD_vals[] = {
1498 { 0, "sf0" },
1499 { 1, "sf4" },
1500 { 2, "sf0and5" },
1501 { 0, NULL }
1505 static int
1506 dissect_lppa_T_sIB1_NB_Subframe_TDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1508 3, NULL, true, 0, NULL);
1510 return offset;
1514 static const per_sequence_t NPRSSubframePartB_sequence[] = {
1515 { &hf_lppa_numberofNPRSOneOccasion, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_numberofNPRSOneOccasion },
1516 { &hf_lppa_periodicityofNPRS, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_periodicityofNPRS },
1517 { &hf_lppa_startingsubframeoffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_startingsubframeoffset },
1518 { &hf_lppa_nPRSMutingConfiguration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_NPRSMutingConfiguration },
1519 { &hf_lppa_sIB1_NB_Subframe_TDD, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_lppa_T_sIB1_NB_Subframe_TDD },
1520 { NULL, 0, 0, NULL }
1523 static int
1524 dissect_lppa_NPRSSubframePartB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1525 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1526 ett_lppa_NPRSSubframePartB, NPRSSubframePartB_sequence);
1528 return offset;
1532 static const per_sequence_t NPRSConfiguration_sequence[] = {
1533 { &hf_lppa_nPRSSubframePartA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_NPRSSubframePartA },
1534 { &hf_lppa_nPRSSubframePartB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_NPRSSubframePartB },
1535 { NULL, 0, 0, NULL }
1538 static int
1539 dissect_lppa_NPRSConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1540 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1541 ett_lppa_NPRSConfiguration, NPRSConfiguration_sequence);
1543 return offset;
1547 static const value_string lppa_OffsetNBChanneltoEARFCN_vals[] = {
1548 { 0, "minusTen" },
1549 { 1, "minusNine" },
1550 { 2, "minusEight" },
1551 { 3, "minusSeven" },
1552 { 4, "minusSix" },
1553 { 5, "minusFive" },
1554 { 6, "minusFour" },
1555 { 7, "minusThree" },
1556 { 8, "minusTwo" },
1557 { 9, "minusOne" },
1558 { 10, "minusZeroDotFive" },
1559 { 11, "zero" },
1560 { 12, "one" },
1561 { 13, "two" },
1562 { 14, "three" },
1563 { 15, "four" },
1564 { 16, "five" },
1565 { 17, "six" },
1566 { 18, "seven" },
1567 { 19, "eight" },
1568 { 20, "nine" },
1569 { 0, NULL }
1573 static int
1574 dissect_lppa_OffsetNBChanneltoEARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1575 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1576 21, NULL, true, 0, NULL);
1578 return offset;
1582 static const value_string lppa_OperationModeInfo_vals[] = {
1583 { 0, "inband" },
1584 { 1, "guardband" },
1585 { 2, "standalone" },
1586 { 0, NULL }
1590 static int
1591 dissect_lppa_OperationModeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1592 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1593 3, NULL, true, 0, NULL);
1595 return offset;
1600 static int
1601 dissect_lppa_INTEGER_0_4095_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1602 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1603 0U, 4095U, NULL, true);
1605 return offset;
1609 static const value_string lppa_DL_Bandwidth_vals[] = {
1610 { 0, "bw6" },
1611 { 1, "bw15" },
1612 { 2, "bw25" },
1613 { 3, "bw50" },
1614 { 4, "bw75" },
1615 { 5, "bw100" },
1616 { 0, NULL }
1620 static int
1621 dissect_lppa_DL_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1622 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1623 6, NULL, true, 0, NULL);
1625 return offset;
1629 static const value_string lppa_PRSOccasionGroup_vals[] = {
1630 { 0, "og2" },
1631 { 1, "og4" },
1632 { 2, "og8" },
1633 { 3, "og16" },
1634 { 4, "og32" },
1635 { 5, "og64" },
1636 { 6, "og128" },
1637 { 0, NULL }
1641 static int
1642 dissect_lppa_PRSOccasionGroup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1643 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1644 7, NULL, true, 0, NULL);
1646 return offset;
1650 static const value_string lppa_NumberOfFrequencyHoppingBands_vals[] = {
1651 { 0, "twobands" },
1652 { 1, "fourbands" },
1653 { 0, NULL }
1657 static int
1658 dissect_lppa_NumberOfFrequencyHoppingBands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1659 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1660 2, NULL, true, 0, NULL);
1662 return offset;
1667 static int
1668 dissect_lppa_NarrowBandIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1669 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1670 0U, 15U, NULL, true);
1672 return offset;
1676 static const per_sequence_t SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex_sequence_of[1] = {
1677 { &hf_lppa_bandPositions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_NarrowBandIndex },
1680 static int
1681 dissect_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1682 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1683 ett_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex, SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex_sequence_of,
1684 1, maxnoFreqHoppingBandsMinusOne, false);
1686 return offset;
1690 static const per_sequence_t PRSFrequencyHoppingConfiguration_sequence[] = {
1691 { &hf_lppa_noOfFreqHoppingBands, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_NumberOfFrequencyHoppingBands },
1692 { &hf_lppa_bandPositions , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex },
1693 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1694 { NULL, 0, 0, NULL }
1697 static int
1698 dissect_lppa_PRSFrequencyHoppingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1699 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1700 ett_lppa_PRSFrequencyHoppingConfiguration, PRSFrequencyHoppingConfiguration_sequence);
1702 return offset;
1706 static const value_string lppa_RepetitionNumberofSIB1_NB_vals[] = {
1707 { 0, "r4" },
1708 { 1, "r8" },
1709 { 2, "r16" },
1710 { 0, NULL }
1714 static int
1715 dissect_lppa_RepetitionNumberofSIB1_NB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1716 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1717 3, NULL, true, 0, NULL);
1719 return offset;
1724 static int
1725 dissect_lppa_NPRSSequenceInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1726 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1727 0U, 174U, NULL, true);
1729 return offset;
1733 static const value_string lppa_T_subframeAssignment_vals[] = {
1734 { 0, "sa0" },
1735 { 1, "sa1" },
1736 { 2, "sa2" },
1737 { 3, "sa3" },
1738 { 4, "sa4" },
1739 { 5, "sa5" },
1740 { 6, "sa6" },
1741 { 0, NULL }
1745 static int
1746 dissect_lppa_T_subframeAssignment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1747 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1748 7, NULL, true, 0, NULL);
1750 return offset;
1754 static const per_sequence_t TDDConfiguration_sequence[] = {
1755 { &hf_lppa_subframeAssignment, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_subframeAssignment },
1756 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1757 { NULL, 0, 0, NULL }
1760 static int
1761 dissect_lppa_TDDConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1762 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1763 ett_lppa_TDDConfiguration, TDDConfiguration_sequence);
1765 return offset;
1769 static const value_string lppa_OTDOACell_Information_Item_vals[] = {
1770 { 0, "pCI" },
1771 { 1, "cellId" },
1772 { 2, "tAC" },
1773 { 3, "eARFCN" },
1774 { 4, "pRS-Bandwidth" },
1775 { 5, "pRS-ConfigurationIndex" },
1776 { 6, "cPLength" },
1777 { 7, "numberOfDlFrames" },
1778 { 8, "numberOfAntennaPorts" },
1779 { 9, "sFNInitialisationTime" },
1780 { 10, "e-UTRANAccessPointPosition" },
1781 { 11, "pRSMutingConfiguration" },
1782 { 12, "prsid" },
1783 { 13, "tpid" },
1784 { 14, "tpType" },
1785 { 15, "numberOfDlFrames-Extended" },
1786 { 16, "crsCPlength" },
1787 { 17, "mBSFNsubframeConfiguration" },
1788 { 18, "nPRSConfiguration" },
1789 { 19, "offsetNBChanneltoEARFCN" },
1790 { 20, "operationModeInfo" },
1791 { 21, "nPRS-ID" },
1792 { 22, "dL-Bandwidth" },
1793 { 23, "pRSOccasionGroup" },
1794 { 24, "pRSFreqHoppingConfig" },
1795 { 25, "repetitionNumberofSIB1-NB" },
1796 { 26, "nPRSSequenceInfo" },
1797 { 27, "nPRSType2" },
1798 { 28, "tddConfiguration" },
1799 { 0, NULL }
1802 static const per_choice_t OTDOACell_Information_Item_choice[] = {
1803 { 0, &hf_lppa_pCI , ASN1_EXTENSION_ROOT , dissect_lppa_PCI },
1804 { 1, &hf_lppa_cellId , ASN1_EXTENSION_ROOT , dissect_lppa_ECGI },
1805 { 2, &hf_lppa_tAC , ASN1_EXTENSION_ROOT , dissect_lppa_TAC },
1806 { 3, &hf_lppa_eARFCN , ASN1_EXTENSION_ROOT , dissect_lppa_EARFCN },
1807 { 4, &hf_lppa_pRS_Bandwidth , ASN1_EXTENSION_ROOT , dissect_lppa_PRS_Bandwidth },
1808 { 5, &hf_lppa_pRS_ConfigurationIndex, ASN1_EXTENSION_ROOT , dissect_lppa_PRS_Configuration_Index },
1809 { 6, &hf_lppa_cPLength , ASN1_EXTENSION_ROOT , dissect_lppa_CPLength },
1810 { 7, &hf_lppa_numberOfDlFrames, ASN1_EXTENSION_ROOT , dissect_lppa_NumberOfDlFrames },
1811 { 8, &hf_lppa_numberOfAntennaPorts, ASN1_EXTENSION_ROOT , dissect_lppa_NumberOfAntennaPorts },
1812 { 9, &hf_lppa_sFNInitialisationTime, ASN1_EXTENSION_ROOT , dissect_lppa_SFNInitialisationTime },
1813 { 10, &hf_lppa_e_UTRANAccessPointPosition, ASN1_EXTENSION_ROOT , dissect_lppa_E_UTRANAccessPointPosition },
1814 { 11, &hf_lppa_pRSMutingConfiguration, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_PRSMutingConfiguration },
1815 { 12, &hf_lppa_prsid , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_PRS_ID },
1816 { 13, &hf_lppa_tpid , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_TP_ID },
1817 { 14, &hf_lppa_tpType , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_TP_Type },
1818 { 15, &hf_lppa_numberOfDlFrames_Extended, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_NumberOfDlFrames_Extended },
1819 { 16, &hf_lppa_crsCPlength , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_CPLength },
1820 { 17, &hf_lppa_mBSFNsubframeConfiguration, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_MBSFNsubframeConfiguration },
1821 { 18, &hf_lppa_nPRSConfiguration, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_NPRSConfiguration },
1822 { 19, &hf_lppa_offsetNBChanneltoEARFCN, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_OffsetNBChanneltoEARFCN },
1823 { 20, &hf_lppa_operationModeInfo, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_OperationModeInfo },
1824 { 21, &hf_lppa_nPRS_ID , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_INTEGER_0_4095_ },
1825 { 22, &hf_lppa_dL_Bandwidth , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_DL_Bandwidth },
1826 { 23, &hf_lppa_pRSOccasionGroup, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_PRSOccasionGroup },
1827 { 24, &hf_lppa_pRSFreqHoppingConfig, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_PRSFrequencyHoppingConfiguration },
1828 { 25, &hf_lppa_repetitionNumberofSIB1_NB, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_RepetitionNumberofSIB1_NB },
1829 { 26, &hf_lppa_nPRSSequenceInfo, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_NPRSSequenceInfo },
1830 { 27, &hf_lppa_nPRSType2 , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_NPRSConfiguration },
1831 { 28, &hf_lppa_tddConfiguration, ASN1_NOT_EXTENSION_ROOT, dissect_lppa_TDDConfiguration },
1832 { 0, NULL, 0, NULL }
1835 static int
1836 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_) {
1837 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1838 ett_lppa_OTDOACell_Information_Item, OTDOACell_Information_Item_choice,
1839 NULL);
1841 return offset;
1845 static const per_sequence_t Add_OTDOACell_Information_sequence_of[1] = {
1846 { &hf_lppa_Add_OTDOACell_Information_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACell_Information_Item },
1849 static int
1850 dissect_lppa_Add_OTDOACell_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1851 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1852 ett_lppa_Add_OTDOACell_Information, Add_OTDOACell_Information_sequence_of,
1853 1, maxnoOTDOAtypes, false);
1855 return offset;
1859 static const per_sequence_t Add_OTDOACells_item_sequence[] = {
1860 { &hf_lppa_add_OTDOACellInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_Add_OTDOACell_Information },
1861 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1862 { NULL, 0, 0, NULL }
1865 static int
1866 dissect_lppa_Add_OTDOACells_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1867 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1868 ett_lppa_Add_OTDOACells_item, Add_OTDOACells_item_sequence);
1870 return offset;
1874 static const per_sequence_t Add_OTDOACells_sequence_of[1] = {
1875 { &hf_lppa_Add_OTDOACells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Add_OTDOACells_item },
1878 static int
1879 dissect_lppa_Add_OTDOACells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1880 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1881 ett_lppa_Add_OTDOACells, Add_OTDOACells_sequence_of,
1882 1, maxCellineNB_ext, false);
1884 return offset;
1888 static const value_string lppa_BroadcastPeriodicity_vals[] = {
1889 { 0, "ms80" },
1890 { 1, "ms160" },
1891 { 2, "ms320" },
1892 { 3, "ms640" },
1893 { 4, "ms1280" },
1894 { 5, "ms2560" },
1895 { 6, "ms5120" },
1896 { 0, NULL }
1900 static int
1901 dissect_lppa_BroadcastPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1902 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1903 7, NULL, true, 0, NULL);
1905 return offset;
1909 static const value_string lppa_PosSIB_Type_vals[] = {
1910 { 0, "posSibType1-1" },
1911 { 1, "posSibType1-2" },
1912 { 2, "posSibType1-3" },
1913 { 3, "posSibType1-4" },
1914 { 4, "posSibType1-5" },
1915 { 5, "posSibType1-6" },
1916 { 6, "posSibType1-7" },
1917 { 7, "posSibType2-1" },
1918 { 8, "posSibType2-2" },
1919 { 9, "posSibType2-3" },
1920 { 10, "posSibType2-4" },
1921 { 11, "posSibType2-5" },
1922 { 12, "posSibType2-6" },
1923 { 13, "posSibType2-7" },
1924 { 14, "posSibType2-8" },
1925 { 15, "posSibType2-9" },
1926 { 16, "posSibType2-10" },
1927 { 17, "posSibType2-11" },
1928 { 18, "posSibType2-12" },
1929 { 19, "posSibType2-13" },
1930 { 20, "posSibType2-14" },
1931 { 21, "posSibType2-15" },
1932 { 22, "posSibType2-16" },
1933 { 23, "posSibType2-17" },
1934 { 24, "posSibType2-18" },
1935 { 25, "posSibType2-19" },
1936 { 26, "posSibType3-1" },
1937 { 27, "posSibType4-1" },
1938 { 28, "posSibType5-1" },
1939 { 29, "posSibType2-24" },
1940 { 30, "posSibType2-25" },
1941 { 0, NULL }
1945 static int
1946 dissect_lppa_PosSIB_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1947 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1948 27, NULL, true, 4, NULL);
1950 return offset;
1955 static int
1956 dissect_lppa_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1957 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1958 NO_BOUND, NO_BOUND, false, NULL);
1960 return offset;
1964 static const per_sequence_t PosSIB_Segments_item_sequence[] = {
1965 { &hf_lppa_assistanceDataSIBelement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_OCTET_STRING },
1966 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
1967 { NULL, 0, 0, NULL }
1970 static int
1971 dissect_lppa_PosSIB_Segments_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1972 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1973 ett_lppa_PosSIB_Segments_item, PosSIB_Segments_item_sequence);
1975 return offset;
1979 static const per_sequence_t PosSIB_Segments_sequence_of[1] = {
1980 { &hf_lppa_PosSIB_Segments_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_PosSIB_Segments_item },
1983 static int
1984 dissect_lppa_PosSIB_Segments(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1985 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1986 ett_lppa_PosSIB_Segments, PosSIB_Segments_sequence_of,
1987 1, maxNrOfSegments, false);
1989 return offset;
1993 static const value_string lppa_T_encrypted_vals[] = {
1994 { 0, "true" },
1995 { 0, NULL }
1999 static int
2000 dissect_lppa_T_encrypted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2001 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2002 1, NULL, true, 0, NULL);
2004 return offset;
2008 static const value_string lppa_T_gNSSID_vals[] = {
2009 { 0, "gps" },
2010 { 1, "sbas" },
2011 { 2, "gzss" },
2012 { 3, "galileo" },
2013 { 4, "glonass" },
2014 { 5, "bds" },
2015 { 6, "navic" },
2016 { 0, NULL }
2020 static int
2021 dissect_lppa_T_gNSSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2022 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2023 6, NULL, true, 1, NULL);
2025 return offset;
2029 static const value_string lppa_T_sBASID_vals[] = {
2030 { 0, "waas" },
2031 { 1, "egnos" },
2032 { 2, "msas" },
2033 { 3, "gagan" },
2034 { 0, NULL }
2038 static int
2039 dissect_lppa_T_sBASID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2040 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2041 4, NULL, true, 0, NULL);
2043 return offset;
2047 static const per_sequence_t AssistanceInformationMetaData_sequence[] = {
2048 { &hf_lppa_encrypted , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_T_encrypted },
2049 { &hf_lppa_gNSSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_T_gNSSID },
2050 { &hf_lppa_sBASID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_T_sBASID },
2051 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2052 { NULL, 0, 0, NULL }
2055 static int
2056 dissect_lppa_AssistanceInformationMetaData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2057 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2058 ett_lppa_AssistanceInformationMetaData, AssistanceInformationMetaData_sequence);
2060 return offset;
2065 static int
2066 dissect_lppa_INTEGER_1_16_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2067 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2068 1U, 16U, NULL, true);
2070 return offset;
2074 static const per_sequence_t PosSIBs_item_sequence[] = {
2075 { &hf_lppa_posSIB_Type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PosSIB_Type },
2076 { &hf_lppa_posSIB_Segments, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PosSIB_Segments },
2077 { &hf_lppa_assistanceInformationMetaData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_AssistanceInformationMetaData },
2078 { &hf_lppa_broadcastPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_1_16_ },
2079 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2080 { NULL, 0, 0, NULL }
2083 static int
2084 dissect_lppa_PosSIBs_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2085 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2086 ett_lppa_PosSIBs_item, PosSIBs_item_sequence);
2088 return offset;
2092 static const per_sequence_t PosSIBs_sequence_of[1] = {
2093 { &hf_lppa_PosSIBs_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_PosSIBs_item },
2096 static int
2097 dissect_lppa_PosSIBs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2098 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2099 ett_lppa_PosSIBs, PosSIBs_sequence_of,
2100 1, maxNrOfPosSIBs, false);
2102 return offset;
2106 static const per_sequence_t SystemInformation_item_sequence[] = {
2107 { &hf_lppa_broadcastPeriodicity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_BroadcastPeriodicity },
2108 { &hf_lppa_posSIBs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PosSIBs },
2109 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2110 { NULL, 0, 0, NULL }
2113 static int
2114 dissect_lppa_SystemInformation_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2115 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2116 ett_lppa_SystemInformation_item, SystemInformation_item_sequence);
2118 return offset;
2122 static const per_sequence_t SystemInformation_sequence_of[1] = {
2123 { &hf_lppa_SystemInformation_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_SystemInformation_item },
2126 static int
2127 dissect_lppa_SystemInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2128 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2129 ett_lppa_SystemInformation, SystemInformation_sequence_of,
2130 1, maxNrOfPosSImessage, false);
2132 return offset;
2136 static const per_sequence_t Assistance_Information_sequence[] = {
2137 { &hf_lppa_systemInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SystemInformation },
2138 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2139 { NULL, 0, 0, NULL }
2142 static int
2143 dissect_lppa_Assistance_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2144 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2145 ett_lppa_Assistance_Information, Assistance_Information_sequence);
2147 return offset;
2151 static const value_string lppa_Outcome_vals[] = {
2152 { 0, "failed" },
2153 { 0, NULL }
2157 static int
2158 dissect_lppa_Outcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2159 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2160 1, NULL, true, 0, NULL);
2162 return offset;
2166 static const per_sequence_t AssistanceInformationFailureList_item_sequence[] = {
2167 { &hf_lppa_posSIB_Type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PosSIB_Type },
2168 { &hf_lppa_outcome , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_Outcome },
2169 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2170 { NULL, 0, 0, NULL }
2173 static int
2174 dissect_lppa_AssistanceInformationFailureList_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2175 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2176 ett_lppa_AssistanceInformationFailureList_item, AssistanceInformationFailureList_item_sequence);
2178 return offset;
2182 static const per_sequence_t AssistanceInformationFailureList_sequence_of[1] = {
2183 { &hf_lppa_AssistanceInformationFailureList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_AssistanceInformationFailureList_item },
2186 static int
2187 dissect_lppa_AssistanceInformationFailureList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2188 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2189 ett_lppa_AssistanceInformationFailureList, AssistanceInformationFailureList_sequence_of,
2190 1, maxnoAssistInfoFailureListItems, false);
2192 return offset;
2197 static int
2198 dissect_lppa_BCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2199 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2200 0U, 1023U, NULL, true);
2202 return offset;
2206 static const value_string lppa_Broadcast_vals[] = {
2207 { 0, "start" },
2208 { 1, "stop" },
2209 { 0, NULL }
2213 static int
2214 dissect_lppa_Broadcast(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2215 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2216 2, NULL, true, 0, NULL);
2218 return offset;
2223 static int
2224 dissect_lppa_BSSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2225 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2226 6, 6, false, NULL);
2228 return offset;
2232 static const value_string lppa_CauseRadioNetwork_vals[] = {
2233 { 0, "unspecified" },
2234 { 1, "requested-item-not-supported" },
2235 { 2, "requested-item-temporarily-not-available" },
2236 { 0, NULL }
2240 static int
2241 dissect_lppa_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2242 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2243 3, NULL, true, 0, NULL);
2245 return offset;
2249 static const value_string lppa_CauseProtocol_vals[] = {
2250 { 0, "transfer-syntax-error" },
2251 { 1, "abstract-syntax-error-reject" },
2252 { 2, "abstract-syntax-error-ignore-and-notify" },
2253 { 3, "message-not-compatible-with-receiver-state" },
2254 { 4, "semantic-error" },
2255 { 5, "unspecified" },
2256 { 6, "abstract-syntax-error-falsely-constructed-message" },
2257 { 0, NULL }
2261 static int
2262 dissect_lppa_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2263 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2264 7, NULL, true, 0, NULL);
2266 return offset;
2270 static const value_string lppa_CauseMisc_vals[] = {
2271 { 0, "unspecified" },
2272 { 0, NULL }
2276 static int
2277 dissect_lppa_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2278 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2279 1, NULL, true, 0, NULL);
2281 return offset;
2285 static const value_string lppa_Cause_vals[] = {
2286 { 0, "radioNetwork" },
2287 { 1, "protocol" },
2288 { 2, "misc" },
2289 { 0, NULL }
2292 static const per_choice_t Cause_choice[] = {
2293 { 0, &hf_lppa_radioNetwork , ASN1_EXTENSION_ROOT , dissect_lppa_CauseRadioNetwork },
2294 { 1, &hf_lppa_protocol , ASN1_EXTENSION_ROOT , dissect_lppa_CauseProtocol },
2295 { 2, &hf_lppa_misc , ASN1_EXTENSION_ROOT , dissect_lppa_CauseMisc },
2296 { 0, NULL, 0, NULL }
2299 static int
2300 dissect_lppa_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2301 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2302 ett_lppa_Cause, Cause_choice,
2303 NULL);
2305 return offset;
2310 static int
2311 dissect_lppa_Cell_Portion_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2312 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2313 0U, 255U, NULL, true);
2315 return offset;
2319 static const value_string lppa_TypeOfError_vals[] = {
2320 { 0, "not-understood" },
2321 { 1, "missing" },
2322 { 0, NULL }
2326 static int
2327 dissect_lppa_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2328 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2329 2, NULL, true, 0, NULL);
2331 return offset;
2335 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
2336 { &hf_lppa_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
2337 { &hf_lppa_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_ID },
2338 { &hf_lppa_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_TypeOfError },
2339 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2340 { NULL, 0, 0, NULL }
2343 static int
2344 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_) {
2345 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2346 ett_lppa_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
2348 return offset;
2352 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
2353 { &hf_lppa_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_CriticalityDiagnostics_IE_List_item },
2356 static int
2357 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_) {
2358 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2359 ett_lppa_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
2360 1, maxNrOfErrors, false);
2362 return offset;
2366 static const per_sequence_t CriticalityDiagnostics_sequence[] = {
2367 { &hf_lppa_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProcedureCode },
2368 { &hf_lppa_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_TriggeringMessage },
2369 { &hf_lppa_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_Criticality },
2370 { &hf_lppa_lppatransactionID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_LPPATransactionID },
2371 { &hf_lppa_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_CriticalityDiagnostics_IE_List },
2372 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2373 { NULL, 0, 0, NULL }
2376 static int
2377 dissect_lppa_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2378 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2379 ett_lppa_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
2381 return offset;
2386 static int
2387 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_) {
2388 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2389 0U, 719U, NULL, false);
2391 return offset;
2396 static int
2397 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_) {
2398 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2399 0U, 7690U, NULL, false);
2401 return offset;
2406 static int
2407 dissect_lppa_ValueRSRP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2408 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2409 0U, 97U, NULL, true);
2411 return offset;
2415 static const per_sequence_t ResultRSRP_Item_sequence[] = {
2416 { &hf_lppa_pCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
2417 { &hf_lppa_eARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
2418 { &hf_lppa_eCGI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ECGI },
2419 { &hf_lppa_valueRSRP , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ValueRSRP },
2420 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2421 { NULL, 0, 0, NULL }
2424 static int
2425 dissect_lppa_ResultRSRP_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2426 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2427 ett_lppa_ResultRSRP_Item, ResultRSRP_Item_sequence);
2429 return offset;
2433 static const per_sequence_t ResultRSRP_sequence_of[1] = {
2434 { &hf_lppa_ResultRSRP_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultRSRP_Item },
2437 static int
2438 dissect_lppa_ResultRSRP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2439 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2440 ett_lppa_ResultRSRP, ResultRSRP_sequence_of,
2441 1, maxCellReport, false);
2443 return offset;
2448 static int
2449 dissect_lppa_ValueRSRQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2450 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2451 0U, 34U, NULL, true);
2453 return offset;
2457 static const per_sequence_t ResultRSRQ_Item_sequence[] = {
2458 { &hf_lppa_pCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
2459 { &hf_lppa_eARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
2460 { &hf_lppa_eCGI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ECGI },
2461 { &hf_lppa_valueRSRQ , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ValueRSRQ },
2462 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2463 { NULL, 0, 0, NULL }
2466 static int
2467 dissect_lppa_ResultRSRQ_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2468 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2469 ett_lppa_ResultRSRQ_Item, ResultRSRQ_Item_sequence);
2471 return offset;
2475 static const per_sequence_t ResultRSRQ_sequence_of[1] = {
2476 { &hf_lppa_ResultRSRQ_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultRSRQ_Item },
2479 static int
2480 dissect_lppa_ResultRSRQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2481 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2482 ett_lppa_ResultRSRQ, ResultRSRQ_sequence_of,
2483 1, maxCellReport, false);
2485 return offset;
2489 static const value_string lppa_MeasuredResultsValue_vals[] = {
2490 { 0, "valueAngleOfArrival" },
2491 { 1, "valueTimingAdvanceType1" },
2492 { 2, "valueTimingAdvanceType2" },
2493 { 3, "resultRSRP" },
2494 { 4, "resultRSRQ" },
2495 { 0, NULL }
2498 static const per_choice_t MeasuredResultsValue_choice[] = {
2499 { 0, &hf_lppa_valueAngleOfArrival, ASN1_EXTENSION_ROOT , dissect_lppa_INTEGER_0_719 },
2500 { 1, &hf_lppa_valueTimingAdvanceType1, ASN1_EXTENSION_ROOT , dissect_lppa_INTEGER_0_7690 },
2501 { 2, &hf_lppa_valueTimingAdvanceType2, ASN1_EXTENSION_ROOT , dissect_lppa_INTEGER_0_7690 },
2502 { 3, &hf_lppa_resultRSRP , ASN1_EXTENSION_ROOT , dissect_lppa_ResultRSRP },
2503 { 4, &hf_lppa_resultRSRQ , ASN1_EXTENSION_ROOT , dissect_lppa_ResultRSRQ },
2504 { 0, NULL, 0, NULL }
2507 static int
2508 dissect_lppa_MeasuredResultsValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2509 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2510 ett_lppa_MeasuredResultsValue, MeasuredResultsValue_choice,
2511 NULL);
2513 return offset;
2517 static const per_sequence_t MeasuredResults_sequence_of[1] = {
2518 { &hf_lppa_MeasuredResults_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_MeasuredResultsValue },
2521 static int
2522 dissect_lppa_MeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2523 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2524 ett_lppa_MeasuredResults, MeasuredResults_sequence_of,
2525 1, maxNoMeas, false);
2527 return offset;
2531 static const per_sequence_t E_CID_MeasurementResult_sequence[] = {
2532 { &hf_lppa_servingCell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ECGI },
2533 { &hf_lppa_servingCellTAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_TAC },
2534 { &hf_lppa_e_UTRANAccessPointPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_E_UTRANAccessPointPosition },
2535 { &hf_lppa_measuredResults, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_MeasuredResults },
2536 { NULL, 0, 0, NULL }
2539 static int
2540 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_) {
2541 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2542 ett_lppa_E_CID_MeasurementResult, E_CID_MeasurementResult_sequence);
2544 return offset;
2549 static int
2550 dissect_lppa_HESSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2551 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2552 6, 6, false, NULL);
2554 return offset;
2558 static const per_sequence_t InterRATMeasurementQuantities_sequence_of[1] = {
2559 { &hf_lppa_InterRATMeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Single_Container },
2562 static int
2563 dissect_lppa_InterRATMeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2564 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2565 ett_lppa_InterRATMeasurementQuantities, InterRATMeasurementQuantities_sequence_of,
2566 0, maxNoMeas, false);
2568 return offset;
2572 static const value_string lppa_InterRATMeasurementQuantitiesValue_vals[] = {
2573 { 0, "geran" },
2574 { 1, "utran" },
2575 { 2, "nr" },
2576 { 0, NULL }
2580 static int
2581 dissect_lppa_InterRATMeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2582 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2583 2, NULL, true, 1, NULL);
2585 return offset;
2589 static const per_sequence_t InterRATMeasurementQuantities_Item_sequence[] = {
2590 { &hf_lppa_interRATMeasurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_InterRATMeasurementQuantitiesValue },
2591 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2592 { NULL, 0, 0, NULL }
2595 static int
2596 dissect_lppa_InterRATMeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2597 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2598 ett_lppa_InterRATMeasurementQuantities_Item, InterRATMeasurementQuantities_Item_sequence);
2600 return offset;
2605 static int
2606 dissect_lppa_PhysCellIDGERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2607 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2608 0U, 63U, NULL, true);
2610 return offset;
2615 static int
2616 dissect_lppa_RSSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2617 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2618 0U, 63U, NULL, true);
2620 return offset;
2624 static const per_sequence_t ResultGERAN_Item_sequence[] = {
2625 { &hf_lppa_bCCH , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_BCCH },
2626 { &hf_lppa_physCellIDGERAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PhysCellIDGERAN },
2627 { &hf_lppa_rSSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_RSSI },
2628 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2629 { NULL, 0, 0, NULL }
2632 static int
2633 dissect_lppa_ResultGERAN_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2634 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2635 ett_lppa_ResultGERAN_Item, ResultGERAN_Item_sequence);
2637 return offset;
2641 static const per_sequence_t ResultGERAN_sequence_of[1] = {
2642 { &hf_lppa_ResultGERAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultGERAN_Item },
2645 static int
2646 dissect_lppa_ResultGERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2647 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2648 ett_lppa_ResultGERAN, ResultGERAN_sequence_of,
2649 1, maxGERANMeas, false);
2651 return offset;
2656 static int
2657 dissect_lppa_UARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2658 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2659 0U, 16383U, NULL, true);
2661 return offset;
2666 static int
2667 dissect_lppa_PhysCellIDUTRA_FDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2668 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2669 0U, 511U, NULL, true);
2671 return offset;
2676 static int
2677 dissect_lppa_PhysCellIDUTRA_TDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2678 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2679 0U, 127U, NULL, true);
2681 return offset;
2685 static const value_string lppa_T_physCellIDUTRAN_vals[] = {
2686 { 0, "physCellIDUTRA-FDD" },
2687 { 1, "physCellIDUTRA-TDD" },
2688 { 0, NULL }
2691 static const per_choice_t T_physCellIDUTRAN_choice[] = {
2692 { 0, &hf_lppa_physCellIDUTRA_FDD, ASN1_NO_EXTENSIONS , dissect_lppa_PhysCellIDUTRA_FDD },
2693 { 1, &hf_lppa_physCellIDUTRA_TDD, ASN1_NO_EXTENSIONS , dissect_lppa_PhysCellIDUTRA_TDD },
2694 { 0, NULL, 0, NULL }
2697 static int
2698 dissect_lppa_T_physCellIDUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2699 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2700 ett_lppa_T_physCellIDUTRAN, T_physCellIDUTRAN_choice,
2701 NULL);
2703 return offset;
2708 static int
2709 dissect_lppa_UTRA_RSCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2710 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2711 -5, 91U, NULL, true);
2713 return offset;
2718 static int
2719 dissect_lppa_UTRA_EcN0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2720 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2721 0U, 49U, NULL, true);
2723 return offset;
2727 static const per_sequence_t ResultUTRAN_Item_sequence[] = {
2728 { &hf_lppa_uARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_UARFCN },
2729 { &hf_lppa_physCellIDUTRAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_physCellIDUTRAN },
2730 { &hf_lppa_uTRA_RSCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_UTRA_RSCP },
2731 { &hf_lppa_uTRA_EcN0 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_UTRA_EcN0 },
2732 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2733 { NULL, 0, 0, NULL }
2736 static int
2737 dissect_lppa_ResultUTRAN_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2738 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2739 ett_lppa_ResultUTRAN_Item, ResultUTRAN_Item_sequence);
2741 return offset;
2745 static const per_sequence_t ResultUTRAN_sequence_of[1] = {
2746 { &hf_lppa_ResultUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultUTRAN_Item },
2749 static int
2750 dissect_lppa_ResultUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2751 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2752 ett_lppa_ResultUTRAN, ResultUTRAN_sequence_of,
2753 1, maxUTRANMeas, false);
2755 return offset;
2760 static int
2761 dissect_lppa_NRARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2762 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2763 0U, 3279165U, NULL, false);
2765 return offset;
2770 static int
2771 dissect_lppa_NRPCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2772 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2773 0U, 1007U, NULL, false);
2775 return offset;
2780 static int
2781 dissect_lppa_SS_NRRSRP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2782 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2783 0U, 127U, NULL, false);
2785 return offset;
2790 static int
2791 dissect_lppa_SS_NRRSRQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2792 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2793 0U, 127U, NULL, false);
2795 return offset;
2799 static const per_sequence_t ResultNR_Item_sequence[] = {
2800 { &hf_lppa_nRARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_NRARFCN },
2801 { &hf_lppa_nRPCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_NRPCI },
2802 { &hf_lppa_sS_NRRSRP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_SS_NRRSRP },
2803 { &hf_lppa_sS_NRRSRQ , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_SS_NRRSRQ },
2804 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2805 { NULL, 0, 0, NULL }
2808 static int
2809 dissect_lppa_ResultNR_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2810 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2811 ett_lppa_ResultNR_Item, ResultNR_Item_sequence);
2813 return offset;
2817 static const per_sequence_t ResultNR_sequence_of[1] = {
2818 { &hf_lppa_ResultNR_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultNR_Item },
2821 static int
2822 dissect_lppa_ResultNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2823 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2824 ett_lppa_ResultNR, ResultNR_sequence_of,
2825 1, maxNRmeas, false);
2827 return offset;
2831 static const value_string lppa_InterRATMeasuredResultsValue_vals[] = {
2832 { 0, "resultGERAN" },
2833 { 1, "resultUTRAN" },
2834 { 2, "resultNR" },
2835 { 0, NULL }
2838 static const per_choice_t InterRATMeasuredResultsValue_choice[] = {
2839 { 0, &hf_lppa_resultGERAN , ASN1_EXTENSION_ROOT , dissect_lppa_ResultGERAN },
2840 { 1, &hf_lppa_resultUTRAN , ASN1_EXTENSION_ROOT , dissect_lppa_ResultUTRAN },
2841 { 2, &hf_lppa_resultNR , ASN1_NOT_EXTENSION_ROOT, dissect_lppa_ResultNR },
2842 { 0, NULL, 0, NULL }
2845 static int
2846 dissect_lppa_InterRATMeasuredResultsValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2847 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2848 ett_lppa_InterRATMeasuredResultsValue, InterRATMeasuredResultsValue_choice,
2849 NULL);
2851 return offset;
2855 static const per_sequence_t InterRATMeasurementResult_sequence_of[1] = {
2856 { &hf_lppa_InterRATMeasurementResult_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_InterRATMeasuredResultsValue },
2859 static int
2860 dissect_lppa_InterRATMeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2861 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2862 ett_lppa_InterRATMeasurementResult, InterRATMeasurementResult_sequence_of,
2863 1, maxNoMeas, false);
2865 return offset;
2870 static int
2871 dissect_lppa_Measurement_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2872 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2873 1U, 15U, NULL, true);
2875 return offset;
2879 static const value_string lppa_MeasurementPeriodicity_vals[] = {
2880 { 0, "ms120" },
2881 { 1, "ms240" },
2882 { 2, "ms480" },
2883 { 3, "ms640" },
2884 { 4, "ms1024" },
2885 { 5, "ms2048" },
2886 { 6, "ms5120" },
2887 { 7, "ms10240" },
2888 { 8, "min1" },
2889 { 9, "min6" },
2890 { 10, "min12" },
2891 { 11, "min30" },
2892 { 12, "min60" },
2893 { 0, NULL }
2897 static int
2898 dissect_lppa_MeasurementPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2899 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2900 13, NULL, true, 0, NULL);
2902 return offset;
2906 static const per_sequence_t MeasurementQuantities_sequence_of[1] = {
2907 { &hf_lppa_MeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Single_Container },
2910 static int
2911 dissect_lppa_MeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2912 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2913 ett_lppa_MeasurementQuantities, MeasurementQuantities_sequence_of,
2914 1, maxNoMeas, false);
2916 return offset;
2920 static const value_string lppa_MeasurementQuantitiesValue_vals[] = {
2921 { 0, "cell-ID" },
2922 { 1, "angleOfArrival" },
2923 { 2, "timingAdvanceType1" },
2924 { 3, "timingAdvanceType2" },
2925 { 4, "rSRP" },
2926 { 5, "rSRQ" },
2927 { 0, NULL }
2931 static int
2932 dissect_lppa_MeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2933 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2934 6, NULL, true, 0, NULL);
2936 return offset;
2940 static const per_sequence_t MeasurementQuantities_Item_sequence[] = {
2941 { &hf_lppa_measurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_MeasurementQuantitiesValue },
2942 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2943 { NULL, 0, 0, NULL }
2946 static int
2947 dissect_lppa_MeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2948 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2949 ett_lppa_MeasurementQuantities_Item, MeasurementQuantities_Item_sequence);
2951 return offset;
2956 static int
2957 dissect_lppa_NRCellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2958 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2959 36, 36, false, NULL, 0, NULL, NULL);
2961 return offset;
2965 static const per_sequence_t NR_CGI_sequence[] = {
2966 { &hf_lppa_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PLMN_Identity },
2967 { &hf_lppa_nRCellIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_NRCellIdentity },
2968 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2969 { NULL, 0, 0, NULL }
2972 static int
2973 dissect_lppa_NR_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2974 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2975 ett_lppa_NR_CGI, NR_CGI_sequence);
2977 return offset;
2981 static const per_sequence_t OTDOACell_Information_sequence_of[1] = {
2982 { &hf_lppa_OTDOACell_Information_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACell_Information_Item },
2985 static int
2986 dissect_lppa_OTDOACell_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2987 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2988 ett_lppa_OTDOACell_Information, OTDOACell_Information_sequence_of,
2989 1, maxnoOTDOAtypes, false);
2991 return offset;
2995 static const per_sequence_t OTDOACells_item_sequence[] = {
2996 { &hf_lppa_oTDOACellInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACell_Information },
2997 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
2998 { NULL, 0, 0, NULL }
3001 static int
3002 dissect_lppa_OTDOACells_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3003 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3004 ett_lppa_OTDOACells_item, OTDOACells_item_sequence);
3006 return offset;
3010 static const per_sequence_t OTDOACells_sequence_of[1] = {
3011 { &hf_lppa_OTDOACells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOACells_item },
3014 static int
3015 dissect_lppa_OTDOACells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3016 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3017 ett_lppa_OTDOACells, OTDOACells_sequence_of,
3018 1, maxCellineNB, false);
3020 return offset;
3024 static const value_string lppa_OTDOA_Information_Item_vals[] = {
3025 { 0, "pci" },
3026 { 1, "cellid" },
3027 { 2, "tac" },
3028 { 3, "earfcn" },
3029 { 4, "prsBandwidth" },
3030 { 5, "prsConfigIndex" },
3031 { 6, "cpLength" },
3032 { 7, "noDlFrames" },
3033 { 8, "noAntennaPorts" },
3034 { 9, "sFNInitTime" },
3035 { 10, "e-UTRANAccessPointPosition" },
3036 { 11, "prsmutingconfiguration" },
3037 { 12, "prsid" },
3038 { 13, "tpid" },
3039 { 14, "tpType" },
3040 { 15, "crsCPlength" },
3041 { 16, "mBSFNsubframeConfiguration" },
3042 { 17, "nPRSConfiguration" },
3043 { 18, "offsetNBChannelNumbertoEARFCN" },
3044 { 19, "operationModeInfo" },
3045 { 20, "nPRS-ID" },
3046 { 21, "dlBandwidth" },
3047 { 22, "multipleprsConfigurationsperCell" },
3048 { 23, "prsOccasionGroup" },
3049 { 24, "prsFrequencyHoppingConfiguration" },
3050 { 25, "repetitionNumberofSIB1-NB" },
3051 { 26, "nPRSSequenceInfo" },
3052 { 27, "nPRSType2" },
3053 { 28, "tddConfig" },
3054 { 0, NULL }
3058 static int
3059 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_) {
3060 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3061 10, NULL, true, 19, NULL);
3063 return offset;
3067 static const value_string lppa_ReportCharacteristics_vals[] = {
3068 { 0, "onDemand" },
3069 { 1, "periodic" },
3070 { 0, NULL }
3074 static int
3075 dissect_lppa_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3076 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3077 2, NULL, true, 0, NULL);
3079 return offset;
3084 static int
3085 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_) {
3086 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3087 0U, 500U, NULL, true);
3089 return offset;
3094 static int
3095 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_) {
3096 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3097 1U, 100U, NULL, true);
3099 return offset;
3103 static const per_sequence_t RequestedSRSTransmissionCharacteristics_sequence[] = {
3104 { &hf_lppa_numberOfTransmissions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_500_ },
3105 { &hf_lppa_bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_1_100_ },
3106 { NULL, 0, 0, NULL }
3109 static int
3110 dissect_lppa_RequestedSRSTransmissionCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3111 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3112 ett_lppa_RequestedSRSTransmissionCharacteristics, RequestedSRSTransmissionCharacteristics_sequence);
3114 return offset;
3119 static int
3120 dissect_lppa_SSB_Index(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3121 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3122 0U, 63U, NULL, false);
3124 return offset;
3128 static const per_sequence_t ResultsPerSSB_Index_Item_sequence[] = {
3129 { &hf_lppa_sSB_Index , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SSB_Index },
3130 { &hf_lppa_sS_NRRSRPBeamValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_SS_NRRSRP },
3131 { &hf_lppa_sS_NRRSRQBeamValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_SS_NRRSRQ },
3132 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
3133 { NULL, 0, 0, NULL }
3136 static int
3137 dissect_lppa_ResultsPerSSB_Index_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3138 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3139 ett_lppa_ResultsPerSSB_Index_Item, ResultsPerSSB_Index_Item_sequence);
3141 return offset;
3145 static const per_sequence_t ResultsPerSSB_Index_List_sequence_of[1] = {
3146 { &hf_lppa_ResultsPerSSB_Index_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ResultsPerSSB_Index_Item },
3149 static int
3150 dissect_lppa_ResultsPerSSB_Index_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3151 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3152 ett_lppa_ResultsPerSSB_Index_List, ResultsPerSSB_Index_List_sequence_of,
3153 1, maxResultsPerSSBIndex, false);
3155 return offset;
3159 static const value_string lppa_T_ul_bandwidth_vals[] = {
3160 { 0, "n6" },
3161 { 1, "n15" },
3162 { 2, "n25" },
3163 { 3, "n50" },
3164 { 4, "n75" },
3165 { 5, "n100" },
3166 { 0, NULL }
3170 static int
3171 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_) {
3172 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3173 6, NULL, false, 0, NULL);
3175 return offset;
3179 static const value_string lppa_T_srs_BandwidthConfig_vals[] = {
3180 { 0, "bw0" },
3181 { 1, "bw1" },
3182 { 2, "bw2" },
3183 { 3, "bw3" },
3184 { 4, "bw4" },
3185 { 5, "bw5" },
3186 { 6, "bw6" },
3187 { 7, "bw7" },
3188 { 0, NULL }
3192 static int
3193 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_) {
3194 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3195 8, NULL, false, 0, NULL);
3197 return offset;
3201 static const value_string lppa_T_srs_Bandwidth_vals[] = {
3202 { 0, "bw0" },
3203 { 1, "bw1" },
3204 { 2, "bw2" },
3205 { 3, "bw3" },
3206 { 0, NULL }
3210 static int
3211 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_) {
3212 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3213 4, NULL, false, 0, NULL);
3215 return offset;
3219 static const value_string lppa_T_srs_AntennaPort_vals[] = {
3220 { 0, "an1" },
3221 { 1, "an2" },
3222 { 2, "an4" },
3223 { 0, NULL }
3227 static int
3228 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_) {
3229 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3230 3, NULL, true, 0, NULL);
3232 return offset;
3236 static const value_string lppa_T_srs_HoppingBandwidth_vals[] = {
3237 { 0, "hbw0" },
3238 { 1, "hbw1" },
3239 { 2, "hbw2" },
3240 { 3, "hbw3" },
3241 { 0, NULL }
3245 static int
3246 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_) {
3247 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3248 4, NULL, false, 0, NULL);
3250 return offset;
3254 static const value_string lppa_T_srs_cyclicShift_vals[] = {
3255 { 0, "cs0" },
3256 { 1, "cs1" },
3257 { 2, "cs2" },
3258 { 3, "cs3" },
3259 { 4, "cs4" },
3260 { 5, "cs5" },
3261 { 6, "cs6" },
3262 { 7, "cs7" },
3263 { 0, NULL }
3267 static int
3268 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_) {
3269 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3270 8, NULL, false, 0, NULL);
3272 return offset;
3277 static int
3278 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_) {
3279 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3280 0U, 1023U, NULL, false);
3282 return offset;
3286 static const value_string lppa_T_maxUpPts_vals[] = {
3287 { 0, "true" },
3288 { 0, NULL }
3292 static int
3293 dissect_lppa_T_maxUpPts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3294 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3295 1, NULL, false, 0, NULL);
3297 return offset;
3302 static int
3303 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_) {
3304 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3305 0U, 1U, NULL, false);
3307 return offset;
3312 static int
3313 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_) {
3314 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3315 0U, 23U, NULL, false);
3317 return offset;
3322 static int
3323 dissect_lppa_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3324 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
3326 return offset;
3331 static int
3332 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_) {
3333 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3334 0U, 29U, NULL, false);
3336 return offset;
3340 static const per_sequence_t SRSConfigurationForOneCell_sequence[] = {
3341 { &hf_lppa_pci , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
3342 { &hf_lppa_ul_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
3343 { &hf_lppa_ul_bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_ul_bandwidth },
3344 { &hf_lppa_ul_cyclicPrefixLength, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_CPLength },
3345 { &hf_lppa_srs_BandwidthConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_BandwidthConfig },
3346 { &hf_lppa_srs_Bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_Bandwidth },
3347 { &hf_lppa_srs_AntennaPort, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_AntennaPort },
3348 { &hf_lppa_srs_HoppingBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_HoppingBandwidth },
3349 { &hf_lppa_srs_cyclicShift, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_T_srs_cyclicShift },
3350 { &hf_lppa_srs_ConfigIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_1023 },
3351 { &hf_lppa_maxUpPts , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_T_maxUpPts },
3352 { &hf_lppa_transmissionComb, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_1 },
3353 { &hf_lppa_freqDomainPosition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_23 },
3354 { &hf_lppa_groupHoppingEnabled, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_BOOLEAN },
3355 { &hf_lppa_deltaSS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_0_29 },
3356 { &hf_lppa_sfnInitialisationTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SFNInitialisationTime },
3357 { NULL, 0, 0, NULL }
3360 static int
3361 dissect_lppa_SRSConfigurationForOneCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3362 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3363 ett_lppa_SRSConfigurationForOneCell, SRSConfigurationForOneCell_sequence);
3365 return offset;
3369 static const per_sequence_t SRSConfigurationForAllCells_sequence_of[1] = {
3370 { &hf_lppa_SRSConfigurationForAllCells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_SRSConfigurationForOneCell },
3373 static int
3374 dissect_lppa_SRSConfigurationForAllCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3375 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3376 ett_lppa_SRSConfigurationForAllCells, SRSConfigurationForAllCells_sequence_of,
3377 1, maxServCell, false);
3379 return offset;
3384 static int
3385 dissect_lppa_SSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3386 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3387 1, 32, false, NULL);
3389 return offset;
3393 static const per_sequence_t ULConfiguration_sequence[] = {
3394 { &hf_lppa_pci , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PCI },
3395 { &hf_lppa_ul_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_EARFCN },
3396 { &hf_lppa_timingAdvanceType1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_0_7690 },
3397 { &hf_lppa_timingAdvanceType2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_INTEGER_0_7690 },
3398 { &hf_lppa_numberOfTransmissions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_INTEGER_0_500_ },
3399 { &hf_lppa_srsConfiguration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_SRSConfigurationForAllCells },
3400 { NULL, 0, 0, NULL }
3403 static int
3404 dissect_lppa_ULConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3405 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3406 ett_lppa_ULConfiguration, ULConfiguration_sequence);
3408 return offset;
3412 static const per_sequence_t WLANMeasurementQuantities_sequence_of[1] = {
3413 { &hf_lppa_WLANMeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Single_Container },
3416 static int
3417 dissect_lppa_WLANMeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3418 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3419 ett_lppa_WLANMeasurementQuantities, WLANMeasurementQuantities_sequence_of,
3420 0, maxNoMeas, false);
3422 return offset;
3426 static const value_string lppa_WLANMeasurementQuantitiesValue_vals[] = {
3427 { 0, "wlan" },
3428 { 0, NULL }
3432 static int
3433 dissect_lppa_WLANMeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3434 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3435 1, NULL, true, 0, NULL);
3437 return offset;
3441 static const per_sequence_t WLANMeasurementQuantities_Item_sequence[] = {
3442 { &hf_lppa_wLANMeasurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_WLANMeasurementQuantitiesValue },
3443 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
3444 { NULL, 0, 0, NULL }
3447 static int
3448 dissect_lppa_WLANMeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3449 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3450 ett_lppa_WLANMeasurementQuantities_Item, WLANMeasurementQuantities_Item_sequence);
3452 return offset;
3457 static int
3458 dissect_lppa_WLAN_RSSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3459 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3460 0U, 141U, NULL, true);
3462 return offset;
3467 static int
3468 dissect_lppa_WLANOperatingClass(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3469 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3470 0U, 255U, NULL, false);
3472 return offset;
3476 static const value_string lppa_WLANCountryCode_vals[] = {
3477 { 0, "unitedStates" },
3478 { 1, "europe" },
3479 { 2, "japan" },
3480 { 3, "global" },
3481 { 0, NULL }
3485 static int
3486 dissect_lppa_WLANCountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3487 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3488 4, NULL, true, 0, NULL);
3490 return offset;
3495 static int
3496 dissect_lppa_WLANChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3497 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3498 0U, 255U, NULL, false);
3500 return offset;
3504 static const per_sequence_t WLANChannelList_sequence_of[1] = {
3505 { &hf_lppa_WLANChannelList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_WLANChannel },
3508 static int
3509 dissect_lppa_WLANChannelList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3510 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3511 ett_lppa_WLANChannelList, WLANChannelList_sequence_of,
3512 1, maxWLANchannels, false);
3514 return offset;
3518 static const value_string lppa_WLANBand_vals[] = {
3519 { 0, "band2dot4" },
3520 { 1, "band5" },
3521 { 0, NULL }
3525 static int
3526 dissect_lppa_WLANBand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3527 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3528 2, NULL, true, 0, NULL);
3530 return offset;
3534 static const per_sequence_t WLANMeasurementResult_Item_sequence[] = {
3535 { &hf_lppa_wLAN_RSSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_WLAN_RSSI },
3536 { &hf_lppa_sSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_SSID },
3537 { &hf_lppa_bSSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_BSSID },
3538 { &hf_lppa_hESSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_HESSID },
3539 { &hf_lppa_operatingClass , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_WLANOperatingClass },
3540 { &hf_lppa_countryCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_WLANCountryCode },
3541 { &hf_lppa_wLANChannelList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_WLANChannelList },
3542 { &hf_lppa_wLANBand , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_WLANBand },
3543 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
3544 { NULL, 0, 0, NULL }
3547 static int
3548 dissect_lppa_WLANMeasurementResult_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3549 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3550 ett_lppa_WLANMeasurementResult_Item, WLANMeasurementResult_Item_sequence);
3552 return offset;
3556 static const per_sequence_t WLANMeasurementResult_sequence_of[1] = {
3557 { &hf_lppa_WLANMeasurementResult_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_WLANMeasurementResult_Item },
3560 static int
3561 dissect_lppa_WLANMeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3562 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3563 ett_lppa_WLANMeasurementResult, WLANMeasurementResult_sequence_of,
3564 1, maxNoMeas, false);
3566 return offset;
3570 static const per_sequence_t E_CIDMeasurementInitiationRequest_sequence[] = {
3571 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3572 { NULL, 0, 0, NULL }
3575 static int
3576 dissect_lppa_E_CIDMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3577 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3578 ett_lppa_E_CIDMeasurementInitiationRequest, E_CIDMeasurementInitiationRequest_sequence);
3580 return offset;
3584 static const per_sequence_t E_CIDMeasurementInitiationResponse_sequence[] = {
3585 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3586 { NULL, 0, 0, NULL }
3589 static int
3590 dissect_lppa_E_CIDMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3591 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3592 ett_lppa_E_CIDMeasurementInitiationResponse, E_CIDMeasurementInitiationResponse_sequence);
3594 return offset;
3598 static const per_sequence_t E_CIDMeasurementInitiationFailure_sequence[] = {
3599 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3600 { NULL, 0, 0, NULL }
3603 static int
3604 dissect_lppa_E_CIDMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3605 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3606 ett_lppa_E_CIDMeasurementInitiationFailure, E_CIDMeasurementInitiationFailure_sequence);
3608 return offset;
3612 static const per_sequence_t E_CIDMeasurementFailureIndication_sequence[] = {
3613 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3614 { NULL, 0, 0, NULL }
3617 static int
3618 dissect_lppa_E_CIDMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3619 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3620 ett_lppa_E_CIDMeasurementFailureIndication, E_CIDMeasurementFailureIndication_sequence);
3622 return offset;
3626 static const per_sequence_t E_CIDMeasurementReport_sequence[] = {
3627 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3628 { NULL, 0, 0, NULL }
3631 static int
3632 dissect_lppa_E_CIDMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3633 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3634 ett_lppa_E_CIDMeasurementReport, E_CIDMeasurementReport_sequence);
3636 return offset;
3640 static const per_sequence_t E_CIDMeasurementTerminationCommand_sequence[] = {
3641 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3642 { NULL, 0, 0, NULL }
3645 static int
3646 dissect_lppa_E_CIDMeasurementTerminationCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3647 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3648 ett_lppa_E_CIDMeasurementTerminationCommand, E_CIDMeasurementTerminationCommand_sequence);
3650 return offset;
3654 static const per_sequence_t OTDOAInformationRequest_sequence[] = {
3655 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3656 { NULL, 0, 0, NULL }
3659 static int
3660 dissect_lppa_OTDOAInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3661 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3662 ett_lppa_OTDOAInformationRequest, OTDOAInformationRequest_sequence);
3664 return offset;
3668 static const per_sequence_t OTDOA_Information_Type_sequence_of[1] = {
3669 { &hf_lppa_OTDOA_Information_Type_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Single_Container },
3672 static int
3673 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_) {
3674 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3675 ett_lppa_OTDOA_Information_Type, OTDOA_Information_Type_sequence_of,
3676 1, maxnoOTDOAtypes, false);
3678 return offset;
3682 static const per_sequence_t OTDOA_Information_Type_Item_sequence[] = {
3683 { &hf_lppa_oTDOA_Information_Type_Item, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_OTDOA_Information_Item },
3684 { &hf_lppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lppa_ProtocolExtensionContainer },
3685 { NULL, 0, 0, NULL }
3688 static int
3689 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_) {
3690 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3691 ett_lppa_OTDOA_Information_Type_Item, OTDOA_Information_Type_Item_sequence);
3693 return offset;
3697 static const per_sequence_t OTDOAInformationResponse_sequence[] = {
3698 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3699 { NULL, 0, 0, NULL }
3702 static int
3703 dissect_lppa_OTDOAInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3704 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3705 ett_lppa_OTDOAInformationResponse, OTDOAInformationResponse_sequence);
3707 return offset;
3711 static const per_sequence_t OTDOAInformationFailure_sequence[] = {
3712 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3713 { NULL, 0, 0, NULL }
3716 static int
3717 dissect_lppa_OTDOAInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3718 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3719 ett_lppa_OTDOAInformationFailure, OTDOAInformationFailure_sequence);
3721 return offset;
3725 static const per_sequence_t UTDOAInformationRequest_sequence[] = {
3726 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3727 { NULL, 0, 0, NULL }
3730 static int
3731 dissect_lppa_UTDOAInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3732 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3733 ett_lppa_UTDOAInformationRequest, UTDOAInformationRequest_sequence);
3735 return offset;
3739 static const per_sequence_t UTDOAInformationResponse_sequence[] = {
3740 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3741 { NULL, 0, 0, NULL }
3744 static int
3745 dissect_lppa_UTDOAInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3746 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3747 ett_lppa_UTDOAInformationResponse, UTDOAInformationResponse_sequence);
3749 return offset;
3753 static const per_sequence_t UTDOAInformationFailure_sequence[] = {
3754 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3755 { NULL, 0, 0, NULL }
3758 static int
3759 dissect_lppa_UTDOAInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3760 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3761 ett_lppa_UTDOAInformationFailure, UTDOAInformationFailure_sequence);
3763 return offset;
3767 static const per_sequence_t UTDOAInformationUpdate_sequence[] = {
3768 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3769 { NULL, 0, 0, NULL }
3772 static int
3773 dissect_lppa_UTDOAInformationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3774 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3775 ett_lppa_UTDOAInformationUpdate, UTDOAInformationUpdate_sequence);
3777 return offset;
3781 static const per_sequence_t AssistanceInformationControl_sequence[] = {
3782 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3783 { NULL, 0, 0, NULL }
3786 static int
3787 dissect_lppa_AssistanceInformationControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3788 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3789 ett_lppa_AssistanceInformationControl, AssistanceInformationControl_sequence);
3791 return offset;
3795 static const per_sequence_t AssistanceInformationFeedback_sequence[] = {
3796 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3797 { NULL, 0, 0, NULL }
3800 static int
3801 dissect_lppa_AssistanceInformationFeedback(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3802 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3803 ett_lppa_AssistanceInformationFeedback, AssistanceInformationFeedback_sequence);
3805 return offset;
3809 static const per_sequence_t ErrorIndication_sequence[] = {
3810 { &hf_lppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_ProtocolIE_Container },
3811 { NULL, 0, 0, NULL }
3814 static int
3815 dissect_lppa_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3816 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3817 ett_lppa_ErrorIndication, ErrorIndication_sequence);
3819 return offset;
3823 static const per_sequence_t PrivateMessage_sequence[] = {
3824 { &hf_lppa_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lppa_PrivateIE_Container },
3825 { NULL, 0, 0, NULL }
3828 static int
3829 dissect_lppa_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3830 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3831 ett_lppa_PrivateMessage, PrivateMessage_sequence);
3833 return offset;
3838 static int
3839 dissect_lppa_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3840 struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo);
3841 lppa_data->message_type = INITIATING_MESSAGE;
3842 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue);
3844 return offset;
3848 static const per_sequence_t InitiatingMessage_sequence[] = {
3849 { &hf_lppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProcedureCode },
3850 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
3851 { &hf_lppa_lppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_LPPATransactionID },
3852 { &hf_lppa_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_InitiatingMessage_value },
3853 { NULL, 0, 0, NULL }
3856 static int
3857 dissect_lppa_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3858 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3859 ett_lppa_InitiatingMessage, InitiatingMessage_sequence);
3861 return offset;
3866 static int
3867 dissect_lppa_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3868 struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo);
3869 lppa_data->message_type = SUCCESSFUL_OUTCOME;
3870 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue);
3872 return offset;
3876 static const per_sequence_t SuccessfulOutcome_sequence[] = {
3877 { &hf_lppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProcedureCode },
3878 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
3879 { &hf_lppa_lppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_LPPATransactionID },
3880 { &hf_lppa_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_SuccessfulOutcome_value },
3881 { NULL, 0, 0, NULL }
3884 static int
3885 dissect_lppa_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3886 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3887 ett_lppa_SuccessfulOutcome, SuccessfulOutcome_sequence);
3889 return offset;
3894 static int
3895 dissect_lppa_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3896 struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo);
3897 lppa_data->message_type = UNSUCCESSFUL_OUTCOME;
3899 offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue);
3901 return offset;
3905 static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
3906 { &hf_lppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_ProcedureCode },
3907 { &hf_lppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_Criticality },
3908 { &hf_lppa_lppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_LPPATransactionID },
3909 { &hf_lppa_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lppa_UnsuccessfulOutcome_value },
3910 { NULL, 0, 0, NULL }
3913 static int
3914 dissect_lppa_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3915 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3916 ett_lppa_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
3918 return offset;
3922 static const value_string lppa_LPPA_PDU_vals[] = {
3923 { 0, "initiatingMessage" },
3924 { 1, "successfulOutcome" },
3925 { 2, "unsuccessfulOutcome" },
3926 { 0, NULL }
3929 static const per_choice_t LPPA_PDU_choice[] = {
3930 { 0, &hf_lppa_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_lppa_InitiatingMessage },
3931 { 1, &hf_lppa_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_lppa_SuccessfulOutcome },
3932 { 2, &hf_lppa_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_lppa_UnsuccessfulOutcome },
3933 { 0, NULL, 0, NULL }
3936 static int
3937 dissect_lppa_LPPA_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3939 proto_tree_add_item(tree, proto_lppa, tvb, 0, -1, ENC_NA);
3941 col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "LPPa");
3942 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3943 ett_lppa_LPPA_PDU, LPPA_PDU_choice,
3944 NULL);
3946 return offset;
3949 /*--- PDUs ---*/
3951 static int dissect_Add_OTDOACells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3952 int offset = 0;
3953 asn1_ctx_t asn1_ctx;
3954 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3955 offset = dissect_lppa_Add_OTDOACells(tvb, offset, &asn1_ctx, tree, hf_lppa_Add_OTDOACells_PDU);
3956 offset += 7; offset >>= 3;
3957 return offset;
3959 static int dissect_Assistance_Information_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3960 int offset = 0;
3961 asn1_ctx_t asn1_ctx;
3962 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3963 offset = dissect_lppa_Assistance_Information(tvb, offset, &asn1_ctx, tree, hf_lppa_Assistance_Information_PDU);
3964 offset += 7; offset >>= 3;
3965 return offset;
3967 static int dissect_AssistanceInformationFailureList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3968 int offset = 0;
3969 asn1_ctx_t asn1_ctx;
3970 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3971 offset = dissect_lppa_AssistanceInformationFailureList(tvb, offset, &asn1_ctx, tree, hf_lppa_AssistanceInformationFailureList_PDU);
3972 offset += 7; offset >>= 3;
3973 return offset;
3975 static int dissect_Broadcast_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3976 int offset = 0;
3977 asn1_ctx_t asn1_ctx;
3978 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3979 offset = dissect_lppa_Broadcast(tvb, offset, &asn1_ctx, tree, hf_lppa_Broadcast_PDU);
3980 offset += 7; offset >>= 3;
3981 return offset;
3983 static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3984 int offset = 0;
3985 asn1_ctx_t asn1_ctx;
3986 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3987 offset = dissect_lppa_Cause(tvb, offset, &asn1_ctx, tree, hf_lppa_Cause_PDU);
3988 offset += 7; offset >>= 3;
3989 return offset;
3991 static int dissect_Cell_Portion_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3992 int offset = 0;
3993 asn1_ctx_t asn1_ctx;
3994 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3995 offset = dissect_lppa_Cell_Portion_ID(tvb, offset, &asn1_ctx, tree, hf_lppa_Cell_Portion_ID_PDU);
3996 offset += 7; offset >>= 3;
3997 return offset;
3999 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4000 int offset = 0;
4001 asn1_ctx_t asn1_ctx;
4002 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4003 offset = dissect_lppa_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_lppa_CriticalityDiagnostics_PDU);
4004 offset += 7; offset >>= 3;
4005 return offset;
4007 static int dissect_E_CID_MeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4008 int offset = 0;
4009 asn1_ctx_t asn1_ctx;
4010 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4011 offset = dissect_lppa_E_CID_MeasurementResult(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CID_MeasurementResult_PDU);
4012 offset += 7; offset >>= 3;
4013 return offset;
4015 static int dissect_InterRATMeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4016 int offset = 0;
4017 asn1_ctx_t asn1_ctx;
4018 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4019 offset = dissect_lppa_InterRATMeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_lppa_InterRATMeasurementQuantities_PDU);
4020 offset += 7; offset >>= 3;
4021 return offset;
4023 static int dissect_InterRATMeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4024 int offset = 0;
4025 asn1_ctx_t asn1_ctx;
4026 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4027 offset = dissect_lppa_InterRATMeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_lppa_InterRATMeasurementQuantities_Item_PDU);
4028 offset += 7; offset >>= 3;
4029 return offset;
4031 static int dissect_InterRATMeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4032 int offset = 0;
4033 asn1_ctx_t asn1_ctx;
4034 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4035 offset = dissect_lppa_InterRATMeasurementResult(tvb, offset, &asn1_ctx, tree, hf_lppa_InterRATMeasurementResult_PDU);
4036 offset += 7; offset >>= 3;
4037 return offset;
4039 static int dissect_Measurement_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4040 int offset = 0;
4041 asn1_ctx_t asn1_ctx;
4042 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4043 offset = dissect_lppa_Measurement_ID(tvb, offset, &asn1_ctx, tree, hf_lppa_Measurement_ID_PDU);
4044 offset += 7; offset >>= 3;
4045 return offset;
4047 static int dissect_MeasurementPeriodicity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4048 int offset = 0;
4049 asn1_ctx_t asn1_ctx;
4050 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4051 offset = dissect_lppa_MeasurementPeriodicity(tvb, offset, &asn1_ctx, tree, hf_lppa_MeasurementPeriodicity_PDU);
4052 offset += 7; offset >>= 3;
4053 return offset;
4055 static int dissect_MeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4056 int offset = 0;
4057 asn1_ctx_t asn1_ctx;
4058 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4059 offset = dissect_lppa_MeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_lppa_MeasurementQuantities_PDU);
4060 offset += 7; offset >>= 3;
4061 return offset;
4063 static int dissect_MeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4064 int offset = 0;
4065 asn1_ctx_t asn1_ctx;
4066 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4067 offset = dissect_lppa_MeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_lppa_MeasurementQuantities_Item_PDU);
4068 offset += 7; offset >>= 3;
4069 return offset;
4071 static int dissect_NR_CGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4072 int offset = 0;
4073 asn1_ctx_t asn1_ctx;
4074 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4075 offset = dissect_lppa_NR_CGI(tvb, offset, &asn1_ctx, tree, hf_lppa_NR_CGI_PDU);
4076 offset += 7; offset >>= 3;
4077 return offset;
4079 static int dissect_OTDOACells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4080 int offset = 0;
4081 asn1_ctx_t asn1_ctx;
4082 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4083 offset = dissect_lppa_OTDOACells(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOACells_PDU);
4084 offset += 7; offset >>= 3;
4085 return offset;
4087 static int dissect_ReportCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4088 int offset = 0;
4089 asn1_ctx_t asn1_ctx;
4090 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4091 offset = dissect_lppa_ReportCharacteristics(tvb, offset, &asn1_ctx, tree, hf_lppa_ReportCharacteristics_PDU);
4092 offset += 7; offset >>= 3;
4093 return offset;
4095 static int dissect_RequestedSRSTransmissionCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4096 int offset = 0;
4097 asn1_ctx_t asn1_ctx;
4098 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4099 offset = dissect_lppa_RequestedSRSTransmissionCharacteristics(tvb, offset, &asn1_ctx, tree, hf_lppa_RequestedSRSTransmissionCharacteristics_PDU);
4100 offset += 7; offset >>= 3;
4101 return offset;
4103 static int dissect_ResultsPerSSB_Index_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4104 int offset = 0;
4105 asn1_ctx_t asn1_ctx;
4106 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4107 offset = dissect_lppa_ResultsPerSSB_Index_List(tvb, offset, &asn1_ctx, tree, hf_lppa_ResultsPerSSB_Index_List_PDU);
4108 offset += 7; offset >>= 3;
4109 return offset;
4111 static int dissect_ULConfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4112 int offset = 0;
4113 asn1_ctx_t asn1_ctx;
4114 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4115 offset = dissect_lppa_ULConfiguration(tvb, offset, &asn1_ctx, tree, hf_lppa_ULConfiguration_PDU);
4116 offset += 7; offset >>= 3;
4117 return offset;
4119 static int dissect_WLANMeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4120 int offset = 0;
4121 asn1_ctx_t asn1_ctx;
4122 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4123 offset = dissect_lppa_WLANMeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_lppa_WLANMeasurementQuantities_PDU);
4124 offset += 7; offset >>= 3;
4125 return offset;
4127 static int dissect_WLANMeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4128 int offset = 0;
4129 asn1_ctx_t asn1_ctx;
4130 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4131 offset = dissect_lppa_WLANMeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_lppa_WLANMeasurementQuantities_Item_PDU);
4132 offset += 7; offset >>= 3;
4133 return offset;
4135 static int dissect_WLANMeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4136 int offset = 0;
4137 asn1_ctx_t asn1_ctx;
4138 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4139 offset = dissect_lppa_WLANMeasurementResult(tvb, offset, &asn1_ctx, tree, hf_lppa_WLANMeasurementResult_PDU);
4140 offset += 7; offset >>= 3;
4141 return offset;
4143 static int dissect_E_CIDMeasurementInitiationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4144 int offset = 0;
4145 asn1_ctx_t asn1_ctx;
4146 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4147 offset = dissect_lppa_E_CIDMeasurementInitiationRequest(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementInitiationRequest_PDU);
4148 offset += 7; offset >>= 3;
4149 return offset;
4151 static int dissect_E_CIDMeasurementInitiationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4152 int offset = 0;
4153 asn1_ctx_t asn1_ctx;
4154 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4155 offset = dissect_lppa_E_CIDMeasurementInitiationResponse(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementInitiationResponse_PDU);
4156 offset += 7; offset >>= 3;
4157 return offset;
4159 static int dissect_E_CIDMeasurementInitiationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4160 int offset = 0;
4161 asn1_ctx_t asn1_ctx;
4162 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4163 offset = dissect_lppa_E_CIDMeasurementInitiationFailure(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementInitiationFailure_PDU);
4164 offset += 7; offset >>= 3;
4165 return offset;
4167 static int dissect_E_CIDMeasurementFailureIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4168 int offset = 0;
4169 asn1_ctx_t asn1_ctx;
4170 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4171 offset = dissect_lppa_E_CIDMeasurementFailureIndication(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementFailureIndication_PDU);
4172 offset += 7; offset >>= 3;
4173 return offset;
4175 static int dissect_E_CIDMeasurementReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4176 int offset = 0;
4177 asn1_ctx_t asn1_ctx;
4178 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4179 offset = dissect_lppa_E_CIDMeasurementReport(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementReport_PDU);
4180 offset += 7; offset >>= 3;
4181 return offset;
4183 static int dissect_E_CIDMeasurementTerminationCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4184 int offset = 0;
4185 asn1_ctx_t asn1_ctx;
4186 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4187 offset = dissect_lppa_E_CIDMeasurementTerminationCommand(tvb, offset, &asn1_ctx, tree, hf_lppa_E_CIDMeasurementTerminationCommand_PDU);
4188 offset += 7; offset >>= 3;
4189 return offset;
4191 static int dissect_OTDOAInformationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4192 int offset = 0;
4193 asn1_ctx_t asn1_ctx;
4194 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4195 offset = dissect_lppa_OTDOAInformationRequest(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOAInformationRequest_PDU);
4196 offset += 7; offset >>= 3;
4197 return offset;
4199 static int dissect_OTDOA_Information_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4200 int offset = 0;
4201 asn1_ctx_t asn1_ctx;
4202 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4203 offset = dissect_lppa_OTDOA_Information_Type(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOA_Information_Type_PDU);
4204 offset += 7; offset >>= 3;
4205 return offset;
4207 static int dissect_OTDOA_Information_Type_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4208 int offset = 0;
4209 asn1_ctx_t asn1_ctx;
4210 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4211 offset = dissect_lppa_OTDOA_Information_Type_Item(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOA_Information_Type_Item_PDU);
4212 offset += 7; offset >>= 3;
4213 return offset;
4215 static int dissect_OTDOAInformationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4216 int offset = 0;
4217 asn1_ctx_t asn1_ctx;
4218 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4219 offset = dissect_lppa_OTDOAInformationResponse(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOAInformationResponse_PDU);
4220 offset += 7; offset >>= 3;
4221 return offset;
4223 static int dissect_OTDOAInformationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4224 int offset = 0;
4225 asn1_ctx_t asn1_ctx;
4226 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4227 offset = dissect_lppa_OTDOAInformationFailure(tvb, offset, &asn1_ctx, tree, hf_lppa_OTDOAInformationFailure_PDU);
4228 offset += 7; offset >>= 3;
4229 return offset;
4231 static int dissect_UTDOAInformationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4232 int offset = 0;
4233 asn1_ctx_t asn1_ctx;
4234 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4235 offset = dissect_lppa_UTDOAInformationRequest(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationRequest_PDU);
4236 offset += 7; offset >>= 3;
4237 return offset;
4239 static int dissect_UTDOAInformationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4240 int offset = 0;
4241 asn1_ctx_t asn1_ctx;
4242 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4243 offset = dissect_lppa_UTDOAInformationResponse(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationResponse_PDU);
4244 offset += 7; offset >>= 3;
4245 return offset;
4247 static int dissect_UTDOAInformationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4248 int offset = 0;
4249 asn1_ctx_t asn1_ctx;
4250 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4251 offset = dissect_lppa_UTDOAInformationFailure(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationFailure_PDU);
4252 offset += 7; offset >>= 3;
4253 return offset;
4255 static int dissect_UTDOAInformationUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4256 int offset = 0;
4257 asn1_ctx_t asn1_ctx;
4258 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4259 offset = dissect_lppa_UTDOAInformationUpdate(tvb, offset, &asn1_ctx, tree, hf_lppa_UTDOAInformationUpdate_PDU);
4260 offset += 7; offset >>= 3;
4261 return offset;
4263 static int dissect_AssistanceInformationControl_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4264 int offset = 0;
4265 asn1_ctx_t asn1_ctx;
4266 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4267 offset = dissect_lppa_AssistanceInformationControl(tvb, offset, &asn1_ctx, tree, hf_lppa_AssistanceInformationControl_PDU);
4268 offset += 7; offset >>= 3;
4269 return offset;
4271 static int dissect_AssistanceInformationFeedback_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4272 int offset = 0;
4273 asn1_ctx_t asn1_ctx;
4274 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4275 offset = dissect_lppa_AssistanceInformationFeedback(tvb, offset, &asn1_ctx, tree, hf_lppa_AssistanceInformationFeedback_PDU);
4276 offset += 7; offset >>= 3;
4277 return offset;
4279 static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4280 int offset = 0;
4281 asn1_ctx_t asn1_ctx;
4282 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4283 offset = dissect_lppa_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_lppa_ErrorIndication_PDU);
4284 offset += 7; offset >>= 3;
4285 return offset;
4287 static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4288 int offset = 0;
4289 asn1_ctx_t asn1_ctx;
4290 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4291 offset = dissect_lppa_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_lppa_PrivateMessage_PDU);
4292 offset += 7; offset >>= 3;
4293 return offset;
4295 static int dissect_LPPA_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4296 int offset = 0;
4297 asn1_ctx_t asn1_ctx;
4298 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4299 offset = dissect_lppa_LPPA_PDU(tvb, offset, &asn1_ctx, tree, hf_lppa_LPPA_PDU_PDU);
4300 offset += 7; offset >>= 3;
4301 return offset;
4306 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
4309 lppa_ctx_t lppa_ctx;
4310 struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
4312 lppa_ctx.message_type = lppa_data->message_type;
4313 lppa_ctx.ProcedureCode = lppa_data->procedure_code;
4314 lppa_ctx.ProtocolIE_ID = lppa_data->protocol_ie_id;
4315 lppa_ctx.ProtocolExtensionID = lppa_data->protocol_extension_id;
4317 return (dissector_try_uint_with_data(lppa_ies_dissector_table, lppa_ctx.ProtocolIE_ID, tvb, pinfo, tree, false, &lppa_ctx)) ? tvb_captured_length(tvb) : 0;
4320 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
4322 lppa_ctx_t lppa_ctx;
4323 struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
4325 lppa_ctx.message_type = lppa_data->message_type;
4326 lppa_ctx.ProcedureCode = lppa_data->procedure_code;
4327 lppa_ctx.ProtocolIE_ID = lppa_data->protocol_ie_id;
4328 lppa_ctx.ProtocolExtensionID = lppa_data->protocol_extension_id;
4330 return (dissector_try_uint_with_data(lppa_extension_dissector_table, lppa_ctx.ProtocolExtensionID, tvb, pinfo, tree, false, &lppa_ctx)) ? tvb_captured_length(tvb) : 0;
4333 static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
4335 struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
4336 return (dissector_try_uint_with_data(lppa_proc_imsg_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
4339 static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
4341 struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
4342 return (dissector_try_uint_with_data(lppa_proc_sout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
4345 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
4347 struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
4349 return (dissector_try_uint_with_data(lppa_proc_uout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
4352 /*--- proto_register_lppa -------------------------------------------*/
4353 void proto_register_lppa(void) {
4355 /* List of fields */
4356 static hf_register_info hf[] = {
4358 { &hf_lppa_Add_OTDOACells_PDU,
4359 { "Add-OTDOACells", "lppa.Add_OTDOACells",
4360 FT_UINT32, BASE_DEC, NULL, 0,
4361 NULL, HFILL }},
4362 { &hf_lppa_Assistance_Information_PDU,
4363 { "Assistance-Information", "lppa.Assistance_Information_element",
4364 FT_NONE, BASE_NONE, NULL, 0,
4365 NULL, HFILL }},
4366 { &hf_lppa_AssistanceInformationFailureList_PDU,
4367 { "AssistanceInformationFailureList", "lppa.AssistanceInformationFailureList",
4368 FT_UINT32, BASE_DEC, NULL, 0,
4369 NULL, HFILL }},
4370 { &hf_lppa_Broadcast_PDU,
4371 { "Broadcast", "lppa.Broadcast",
4372 FT_UINT32, BASE_DEC, VALS(lppa_Broadcast_vals), 0,
4373 NULL, HFILL }},
4374 { &hf_lppa_Cause_PDU,
4375 { "Cause", "lppa.Cause",
4376 FT_UINT32, BASE_DEC, VALS(lppa_Cause_vals), 0,
4377 NULL, HFILL }},
4378 { &hf_lppa_Cell_Portion_ID_PDU,
4379 { "Cell-Portion-ID", "lppa.Cell_Portion_ID",
4380 FT_UINT32, BASE_DEC, NULL, 0,
4381 NULL, HFILL }},
4382 { &hf_lppa_CriticalityDiagnostics_PDU,
4383 { "CriticalityDiagnostics", "lppa.CriticalityDiagnostics_element",
4384 FT_NONE, BASE_NONE, NULL, 0,
4385 NULL, HFILL }},
4386 { &hf_lppa_E_CID_MeasurementResult_PDU,
4387 { "E-CID-MeasurementResult", "lppa.E_CID_MeasurementResult_element",
4388 FT_NONE, BASE_NONE, NULL, 0,
4389 NULL, HFILL }},
4390 { &hf_lppa_InterRATMeasurementQuantities_PDU,
4391 { "InterRATMeasurementQuantities", "lppa.InterRATMeasurementQuantities",
4392 FT_UINT32, BASE_DEC, NULL, 0,
4393 NULL, HFILL }},
4394 { &hf_lppa_InterRATMeasurementQuantities_Item_PDU,
4395 { "InterRATMeasurementQuantities-Item", "lppa.InterRATMeasurementQuantities_Item_element",
4396 FT_NONE, BASE_NONE, NULL, 0,
4397 NULL, HFILL }},
4398 { &hf_lppa_InterRATMeasurementResult_PDU,
4399 { "InterRATMeasurementResult", "lppa.InterRATMeasurementResult",
4400 FT_UINT32, BASE_DEC, NULL, 0,
4401 NULL, HFILL }},
4402 { &hf_lppa_Measurement_ID_PDU,
4403 { "Measurement-ID", "lppa.Measurement_ID",
4404 FT_UINT32, BASE_DEC, NULL, 0,
4405 NULL, HFILL }},
4406 { &hf_lppa_MeasurementPeriodicity_PDU,
4407 { "MeasurementPeriodicity", "lppa.MeasurementPeriodicity",
4408 FT_UINT32, BASE_DEC, VALS(lppa_MeasurementPeriodicity_vals), 0,
4409 NULL, HFILL }},
4410 { &hf_lppa_MeasurementQuantities_PDU,
4411 { "MeasurementQuantities", "lppa.MeasurementQuantities",
4412 FT_UINT32, BASE_DEC, NULL, 0,
4413 NULL, HFILL }},
4414 { &hf_lppa_MeasurementQuantities_Item_PDU,
4415 { "MeasurementQuantities-Item", "lppa.MeasurementQuantities_Item_element",
4416 FT_NONE, BASE_NONE, NULL, 0,
4417 NULL, HFILL }},
4418 { &hf_lppa_NR_CGI_PDU,
4419 { "NR-CGI", "lppa.NR_CGI_element",
4420 FT_NONE, BASE_NONE, NULL, 0,
4421 NULL, HFILL }},
4422 { &hf_lppa_OTDOACells_PDU,
4423 { "OTDOACells", "lppa.OTDOACells",
4424 FT_UINT32, BASE_DEC, NULL, 0,
4425 NULL, HFILL }},
4426 { &hf_lppa_ReportCharacteristics_PDU,
4427 { "ReportCharacteristics", "lppa.ReportCharacteristics",
4428 FT_UINT32, BASE_DEC, VALS(lppa_ReportCharacteristics_vals), 0,
4429 NULL, HFILL }},
4430 { &hf_lppa_RequestedSRSTransmissionCharacteristics_PDU,
4431 { "RequestedSRSTransmissionCharacteristics", "lppa.RequestedSRSTransmissionCharacteristics_element",
4432 FT_NONE, BASE_NONE, NULL, 0,
4433 NULL, HFILL }},
4434 { &hf_lppa_ResultsPerSSB_Index_List_PDU,
4435 { "ResultsPerSSB-Index-List", "lppa.ResultsPerSSB_Index_List",
4436 FT_UINT32, BASE_DEC, NULL, 0,
4437 NULL, HFILL }},
4438 { &hf_lppa_ULConfiguration_PDU,
4439 { "ULConfiguration", "lppa.ULConfiguration_element",
4440 FT_NONE, BASE_NONE, NULL, 0,
4441 NULL, HFILL }},
4442 { &hf_lppa_WLANMeasurementQuantities_PDU,
4443 { "WLANMeasurementQuantities", "lppa.WLANMeasurementQuantities",
4444 FT_UINT32, BASE_DEC, NULL, 0,
4445 NULL, HFILL }},
4446 { &hf_lppa_WLANMeasurementQuantities_Item_PDU,
4447 { "WLANMeasurementQuantities-Item", "lppa.WLANMeasurementQuantities_Item_element",
4448 FT_NONE, BASE_NONE, NULL, 0,
4449 NULL, HFILL }},
4450 { &hf_lppa_WLANMeasurementResult_PDU,
4451 { "WLANMeasurementResult", "lppa.WLANMeasurementResult",
4452 FT_UINT32, BASE_DEC, NULL, 0,
4453 NULL, HFILL }},
4454 { &hf_lppa_E_CIDMeasurementInitiationRequest_PDU,
4455 { "E-CIDMeasurementInitiationRequest", "lppa.E_CIDMeasurementInitiationRequest_element",
4456 FT_NONE, BASE_NONE, NULL, 0,
4457 NULL, HFILL }},
4458 { &hf_lppa_E_CIDMeasurementInitiationResponse_PDU,
4459 { "E-CIDMeasurementInitiationResponse", "lppa.E_CIDMeasurementInitiationResponse_element",
4460 FT_NONE, BASE_NONE, NULL, 0,
4461 NULL, HFILL }},
4462 { &hf_lppa_E_CIDMeasurementInitiationFailure_PDU,
4463 { "E-CIDMeasurementInitiationFailure", "lppa.E_CIDMeasurementInitiationFailure_element",
4464 FT_NONE, BASE_NONE, NULL, 0,
4465 NULL, HFILL }},
4466 { &hf_lppa_E_CIDMeasurementFailureIndication_PDU,
4467 { "E-CIDMeasurementFailureIndication", "lppa.E_CIDMeasurementFailureIndication_element",
4468 FT_NONE, BASE_NONE, NULL, 0,
4469 NULL, HFILL }},
4470 { &hf_lppa_E_CIDMeasurementReport_PDU,
4471 { "E-CIDMeasurementReport", "lppa.E_CIDMeasurementReport_element",
4472 FT_NONE, BASE_NONE, NULL, 0,
4473 NULL, HFILL }},
4474 { &hf_lppa_E_CIDMeasurementTerminationCommand_PDU,
4475 { "E-CIDMeasurementTerminationCommand", "lppa.E_CIDMeasurementTerminationCommand_element",
4476 FT_NONE, BASE_NONE, NULL, 0,
4477 NULL, HFILL }},
4478 { &hf_lppa_OTDOAInformationRequest_PDU,
4479 { "OTDOAInformationRequest", "lppa.OTDOAInformationRequest_element",
4480 FT_NONE, BASE_NONE, NULL, 0,
4481 NULL, HFILL }},
4482 { &hf_lppa_OTDOA_Information_Type_PDU,
4483 { "OTDOA-Information-Type", "lppa.OTDOA_Information_Type",
4484 FT_UINT32, BASE_DEC, NULL, 0,
4485 NULL, HFILL }},
4486 { &hf_lppa_OTDOA_Information_Type_Item_PDU,
4487 { "OTDOA-Information-Type-Item", "lppa.OTDOA_Information_Type_Item_element",
4488 FT_NONE, BASE_NONE, NULL, 0,
4489 NULL, HFILL }},
4490 { &hf_lppa_OTDOAInformationResponse_PDU,
4491 { "OTDOAInformationResponse", "lppa.OTDOAInformationResponse_element",
4492 FT_NONE, BASE_NONE, NULL, 0,
4493 NULL, HFILL }},
4494 { &hf_lppa_OTDOAInformationFailure_PDU,
4495 { "OTDOAInformationFailure", "lppa.OTDOAInformationFailure_element",
4496 FT_NONE, BASE_NONE, NULL, 0,
4497 NULL, HFILL }},
4498 { &hf_lppa_UTDOAInformationRequest_PDU,
4499 { "UTDOAInformationRequest", "lppa.UTDOAInformationRequest_element",
4500 FT_NONE, BASE_NONE, NULL, 0,
4501 NULL, HFILL }},
4502 { &hf_lppa_UTDOAInformationResponse_PDU,
4503 { "UTDOAInformationResponse", "lppa.UTDOAInformationResponse_element",
4504 FT_NONE, BASE_NONE, NULL, 0,
4505 NULL, HFILL }},
4506 { &hf_lppa_UTDOAInformationFailure_PDU,
4507 { "UTDOAInformationFailure", "lppa.UTDOAInformationFailure_element",
4508 FT_NONE, BASE_NONE, NULL, 0,
4509 NULL, HFILL }},
4510 { &hf_lppa_UTDOAInformationUpdate_PDU,
4511 { "UTDOAInformationUpdate", "lppa.UTDOAInformationUpdate_element",
4512 FT_NONE, BASE_NONE, NULL, 0,
4513 NULL, HFILL }},
4514 { &hf_lppa_AssistanceInformationControl_PDU,
4515 { "AssistanceInformationControl", "lppa.AssistanceInformationControl_element",
4516 FT_NONE, BASE_NONE, NULL, 0,
4517 NULL, HFILL }},
4518 { &hf_lppa_AssistanceInformationFeedback_PDU,
4519 { "AssistanceInformationFeedback", "lppa.AssistanceInformationFeedback_element",
4520 FT_NONE, BASE_NONE, NULL, 0,
4521 NULL, HFILL }},
4522 { &hf_lppa_ErrorIndication_PDU,
4523 { "ErrorIndication", "lppa.ErrorIndication_element",
4524 FT_NONE, BASE_NONE, NULL, 0,
4525 NULL, HFILL }},
4526 { &hf_lppa_PrivateMessage_PDU,
4527 { "PrivateMessage", "lppa.PrivateMessage_element",
4528 FT_NONE, BASE_NONE, NULL, 0,
4529 NULL, HFILL }},
4530 { &hf_lppa_LPPA_PDU_PDU,
4531 { "LPPA-PDU", "lppa.LPPA_PDU",
4532 FT_UINT32, BASE_DEC, VALS(lppa_LPPA_PDU_vals), 0,
4533 NULL, HFILL }},
4534 { &hf_lppa_local,
4535 { "local", "lppa.local",
4536 FT_UINT32, BASE_DEC, NULL, 0,
4537 "INTEGER_0_maxPrivateIEs", HFILL }},
4538 { &hf_lppa_global,
4539 { "global", "lppa.global",
4540 FT_OID, BASE_NONE, NULL, 0,
4541 "OBJECT_IDENTIFIER", HFILL }},
4542 { &hf_lppa_ProtocolIE_Container_item,
4543 { "ProtocolIE-Field", "lppa.ProtocolIE_Field_element",
4544 FT_NONE, BASE_NONE, NULL, 0,
4545 NULL, HFILL }},
4546 { &hf_lppa_id,
4547 { "id", "lppa.id",
4548 FT_UINT32, BASE_DEC, VALS(lppa_ProtocolIE_ID_vals), 0,
4549 "ProtocolIE_ID", HFILL }},
4550 { &hf_lppa_criticality,
4551 { "criticality", "lppa.criticality",
4552 FT_UINT32, BASE_DEC, VALS(lppa_Criticality_vals), 0,
4553 NULL, HFILL }},
4554 { &hf_lppa_ie_field_value,
4555 { "value", "lppa.value_element",
4556 FT_NONE, BASE_NONE, NULL, 0,
4557 "T_ie_field_value", HFILL }},
4558 { &hf_lppa_ProtocolExtensionContainer_item,
4559 { "ProtocolExtensionField", "lppa.ProtocolExtensionField_element",
4560 FT_NONE, BASE_NONE, NULL, 0,
4561 NULL, HFILL }},
4562 { &hf_lppa_ext_id,
4563 { "id", "lppa.id",
4564 FT_UINT32, BASE_DEC, VALS(lppa_ProtocolIE_ID_vals), 0,
4565 "ProtocolIE_ID", HFILL }},
4566 { &hf_lppa_extensionValue,
4567 { "extensionValue", "lppa.extensionValue_element",
4568 FT_NONE, BASE_NONE, NULL, 0,
4569 NULL, HFILL }},
4570 { &hf_lppa_PrivateIE_Container_item,
4571 { "PrivateIE-Field", "lppa.PrivateIE_Field_element",
4572 FT_NONE, BASE_NONE, NULL, 0,
4573 NULL, HFILL }},
4574 { &hf_lppa_id_01,
4575 { "id", "lppa.id",
4576 FT_UINT32, BASE_DEC, VALS(lppa_PrivateIE_ID_vals), 0,
4577 "PrivateIE_ID", HFILL }},
4578 { &hf_lppa_value,
4579 { "value", "lppa.value_element",
4580 FT_NONE, BASE_NONE, NULL, 0,
4581 NULL, HFILL }},
4582 { &hf_lppa_Add_OTDOACells_item,
4583 { "Add-OTDOACells item", "lppa.Add_OTDOACells_item_element",
4584 FT_NONE, BASE_NONE, NULL, 0,
4585 NULL, HFILL }},
4586 { &hf_lppa_add_OTDOACellInfo,
4587 { "add-OTDOACellInfo", "lppa.add_OTDOACellInfo",
4588 FT_UINT32, BASE_DEC, NULL, 0,
4589 "Add_OTDOACell_Information", HFILL }},
4590 { &hf_lppa_iE_Extensions,
4591 { "iE-Extensions", "lppa.iE_Extensions",
4592 FT_UINT32, BASE_DEC, NULL, 0,
4593 "ProtocolExtensionContainer", HFILL }},
4594 { &hf_lppa_Add_OTDOACell_Information_item,
4595 { "OTDOACell-Information-Item", "lppa.OTDOACell_Information_Item",
4596 FT_UINT32, BASE_DEC, VALS(lppa_OTDOACell_Information_Item_vals), 0,
4597 NULL, HFILL }},
4598 { &hf_lppa_systemInformation,
4599 { "systemInformation", "lppa.systemInformation",
4600 FT_UINT32, BASE_DEC, NULL, 0,
4601 NULL, HFILL }},
4602 { &hf_lppa_AssistanceInformationFailureList_item,
4603 { "AssistanceInformationFailureList item", "lppa.AssistanceInformationFailureList_item_element",
4604 FT_NONE, BASE_NONE, NULL, 0,
4605 NULL, HFILL }},
4606 { &hf_lppa_posSIB_Type,
4607 { "posSIB-Type", "lppa.posSIB_Type",
4608 FT_UINT32, BASE_DEC, VALS(lppa_PosSIB_Type_vals), 0,
4609 NULL, HFILL }},
4610 { &hf_lppa_outcome,
4611 { "outcome", "lppa.outcome",
4612 FT_UINT32, BASE_DEC, VALS(lppa_Outcome_vals), 0,
4613 NULL, HFILL }},
4614 { &hf_lppa_encrypted,
4615 { "encrypted", "lppa.encrypted",
4616 FT_UINT32, BASE_DEC, VALS(lppa_T_encrypted_vals), 0,
4617 NULL, HFILL }},
4618 { &hf_lppa_gNSSID,
4619 { "gNSSID", "lppa.gNSSID",
4620 FT_UINT32, BASE_DEC, VALS(lppa_T_gNSSID_vals), 0,
4621 NULL, HFILL }},
4622 { &hf_lppa_sBASID,
4623 { "sBASID", "lppa.sBASID",
4624 FT_UINT32, BASE_DEC, VALS(lppa_T_sBASID_vals), 0,
4625 NULL, HFILL }},
4626 { &hf_lppa_ten,
4627 { "ten", "lppa.ten",
4628 FT_BYTES, BASE_NONE, NULL, 0,
4629 "BIT_STRING_SIZE_10", HFILL }},
4630 { &hf_lppa_forty,
4631 { "forty", "lppa.forty",
4632 FT_BYTES, BASE_NONE, NULL, 0,
4633 "BIT_STRING_SIZE_40", HFILL }},
4634 { &hf_lppa_ten_tdd,
4635 { "ten-tdd", "lppa.ten_tdd",
4636 FT_BYTES, BASE_NONE, NULL, 0,
4637 "BIT_STRING_SIZE_8", HFILL }},
4638 { &hf_lppa_forty_tdd,
4639 { "forty-tdd", "lppa.forty_tdd",
4640 FT_BYTES, BASE_NONE, NULL, 0,
4641 "BIT_STRING_SIZE_32", HFILL }},
4642 { &hf_lppa_radioNetwork,
4643 { "radioNetwork", "lppa.radioNetwork",
4644 FT_UINT32, BASE_DEC, VALS(lppa_CauseRadioNetwork_vals), 0,
4645 "CauseRadioNetwork", HFILL }},
4646 { &hf_lppa_protocol,
4647 { "protocol", "lppa.protocol",
4648 FT_UINT32, BASE_DEC, VALS(lppa_CauseProtocol_vals), 0,
4649 "CauseProtocol", HFILL }},
4650 { &hf_lppa_misc,
4651 { "misc", "lppa.misc",
4652 FT_UINT32, BASE_DEC, VALS(lppa_CauseMisc_vals), 0,
4653 "CauseMisc", HFILL }},
4654 { &hf_lppa_procedureCode,
4655 { "procedureCode", "lppa.procedureCode",
4656 FT_UINT32, BASE_DEC, VALS(lppa_ProcedureCode_vals), 0,
4657 NULL, HFILL }},
4658 { &hf_lppa_triggeringMessage,
4659 { "triggeringMessage", "lppa.triggeringMessage",
4660 FT_UINT32, BASE_DEC, VALS(lppa_TriggeringMessage_vals), 0,
4661 NULL, HFILL }},
4662 { &hf_lppa_procedureCriticality,
4663 { "procedureCriticality", "lppa.procedureCriticality",
4664 FT_UINT32, BASE_DEC, VALS(lppa_Criticality_vals), 0,
4665 "Criticality", HFILL }},
4666 { &hf_lppa_lppatransactionID,
4667 { "lppatransactionID", "lppa.lppatransactionID",
4668 FT_UINT32, BASE_DEC, NULL, 0,
4669 NULL, HFILL }},
4670 { &hf_lppa_iEsCriticalityDiagnostics,
4671 { "iEsCriticalityDiagnostics", "lppa.iEsCriticalityDiagnostics",
4672 FT_UINT32, BASE_DEC, NULL, 0,
4673 "CriticalityDiagnostics_IE_List", HFILL }},
4674 { &hf_lppa_CriticalityDiagnostics_IE_List_item,
4675 { "CriticalityDiagnostics-IE-List item", "lppa.CriticalityDiagnostics_IE_List_item_element",
4676 FT_NONE, BASE_NONE, NULL, 0,
4677 NULL, HFILL }},
4678 { &hf_lppa_iECriticality,
4679 { "iECriticality", "lppa.iECriticality",
4680 FT_UINT32, BASE_DEC, VALS(lppa_Criticality_vals), 0,
4681 "Criticality", HFILL }},
4682 { &hf_lppa_iE_ID,
4683 { "iE-ID", "lppa.iE_ID",
4684 FT_UINT32, BASE_DEC, VALS(lppa_ProtocolIE_ID_vals), 0,
4685 "ProtocolIE_ID", HFILL }},
4686 { &hf_lppa_typeOfError,
4687 { "typeOfError", "lppa.typeOfError",
4688 FT_UINT32, BASE_DEC, VALS(lppa_TypeOfError_vals), 0,
4689 NULL, HFILL }},
4690 { &hf_lppa_servingCell_ID,
4691 { "servingCell-ID", "lppa.servingCell_ID_element",
4692 FT_NONE, BASE_NONE, NULL, 0,
4693 "ECGI", HFILL }},
4694 { &hf_lppa_servingCellTAC,
4695 { "servingCellTAC", "lppa.servingCellTAC",
4696 FT_BYTES, BASE_NONE, NULL, 0,
4697 "TAC", HFILL }},
4698 { &hf_lppa_e_UTRANAccessPointPosition,
4699 { "e-UTRANAccessPointPosition", "lppa.e_UTRANAccessPointPosition_element",
4700 FT_NONE, BASE_NONE, NULL, 0,
4701 NULL, HFILL }},
4702 { &hf_lppa_measuredResults,
4703 { "measuredResults", "lppa.measuredResults",
4704 FT_UINT32, BASE_DEC, NULL, 0,
4705 NULL, HFILL }},
4706 { &hf_lppa_pLMN_Identity,
4707 { "pLMN-Identity", "lppa.pLMN_Identity",
4708 FT_BYTES, BASE_NONE, NULL, 0,
4709 NULL, HFILL }},
4710 { &hf_lppa_eUTRANcellIdentifier,
4711 { "eUTRANcellIdentifier", "lppa.eUTRANcellIdentifier",
4712 FT_BYTES, BASE_NONE, NULL, 0,
4713 NULL, HFILL }},
4714 { &hf_lppa_latitudeSign,
4715 { "latitudeSign", "lppa.latitudeSign",
4716 FT_UINT32, BASE_DEC, VALS(lppa_T_latitudeSign_vals), 0,
4717 NULL, HFILL }},
4718 { &hf_lppa_latitude,
4719 { "latitude", "lppa.latitude",
4720 FT_UINT32, BASE_DEC, NULL, 0,
4721 "INTEGER_0_8388607", HFILL }},
4722 { &hf_lppa_longitude,
4723 { "longitude", "lppa.longitude",
4724 FT_INT32, BASE_DEC, NULL, 0,
4725 "INTEGER_M8388608_8388607", HFILL }},
4726 { &hf_lppa_directionOfAltitude,
4727 { "directionOfAltitude", "lppa.directionOfAltitude",
4728 FT_UINT32, BASE_DEC, VALS(lppa_T_directionOfAltitude_vals), 0,
4729 NULL, HFILL }},
4730 { &hf_lppa_altitude,
4731 { "altitude", "lppa.altitude",
4732 FT_UINT32, BASE_DEC, NULL, 0,
4733 "INTEGER_0_32767", HFILL }},
4734 { &hf_lppa_uncertaintySemi_major,
4735 { "uncertaintySemi-major", "lppa.uncertaintySemi_major",
4736 FT_UINT32, BASE_DEC, NULL, 0,
4737 "INTEGER_0_127", HFILL }},
4738 { &hf_lppa_uncertaintySemi_minor,
4739 { "uncertaintySemi-minor", "lppa.uncertaintySemi_minor",
4740 FT_UINT32, BASE_DEC, NULL, 0,
4741 "INTEGER_0_127", HFILL }},
4742 { &hf_lppa_orientationOfMajorAxis,
4743 { "orientationOfMajorAxis", "lppa.orientationOfMajorAxis",
4744 FT_UINT32, BASE_DEC, NULL, 0,
4745 "INTEGER_0_179", HFILL }},
4746 { &hf_lppa_uncertaintyAltitude,
4747 { "uncertaintyAltitude", "lppa.uncertaintyAltitude",
4748 FT_UINT32, BASE_DEC, NULL, 0,
4749 "INTEGER_0_127", HFILL }},
4750 { &hf_lppa_confidence,
4751 { "confidence", "lppa.confidence",
4752 FT_UINT32, BASE_DEC, NULL, 0,
4753 "INTEGER_0_100", HFILL }},
4754 { &hf_lppa_InterRATMeasurementQuantities_item,
4755 { "ProtocolIE-Single-Container", "lppa.ProtocolIE_Single_Container_element",
4756 FT_NONE, BASE_NONE, NULL, 0,
4757 NULL, HFILL }},
4758 { &hf_lppa_interRATMeasurementQuantitiesValue,
4759 { "interRATMeasurementQuantitiesValue", "lppa.interRATMeasurementQuantitiesValue",
4760 FT_UINT32, BASE_DEC, VALS(lppa_InterRATMeasurementQuantitiesValue_vals), 0,
4761 NULL, HFILL }},
4762 { &hf_lppa_InterRATMeasurementResult_item,
4763 { "InterRATMeasuredResultsValue", "lppa.InterRATMeasuredResultsValue",
4764 FT_UINT32, BASE_DEC, VALS(lppa_InterRATMeasuredResultsValue_vals), 0,
4765 NULL, HFILL }},
4766 { &hf_lppa_resultGERAN,
4767 { "resultGERAN", "lppa.resultGERAN",
4768 FT_UINT32, BASE_DEC, NULL, 0,
4769 NULL, HFILL }},
4770 { &hf_lppa_resultUTRAN,
4771 { "resultUTRAN", "lppa.resultUTRAN",
4772 FT_UINT32, BASE_DEC, NULL, 0,
4773 NULL, HFILL }},
4774 { &hf_lppa_resultNR,
4775 { "resultNR", "lppa.resultNR",
4776 FT_UINT32, BASE_DEC, NULL, 0,
4777 NULL, HFILL }},
4778 { &hf_lppa_MeasurementQuantities_item,
4779 { "ProtocolIE-Single-Container", "lppa.ProtocolIE_Single_Container_element",
4780 FT_NONE, BASE_NONE, NULL, 0,
4781 NULL, HFILL }},
4782 { &hf_lppa_measurementQuantitiesValue,
4783 { "measurementQuantitiesValue", "lppa.measurementQuantitiesValue",
4784 FT_UINT32, BASE_DEC, VALS(lppa_MeasurementQuantitiesValue_vals), 0,
4785 NULL, HFILL }},
4786 { &hf_lppa_MeasuredResults_item,
4787 { "MeasuredResultsValue", "lppa.MeasuredResultsValue",
4788 FT_UINT32, BASE_DEC, VALS(lppa_MeasuredResultsValue_vals), 0,
4789 NULL, HFILL }},
4790 { &hf_lppa_valueAngleOfArrival,
4791 { "valueAngleOfArrival", "lppa.valueAngleOfArrival",
4792 FT_UINT32, BASE_DEC, NULL, 0,
4793 "INTEGER_0_719", HFILL }},
4794 { &hf_lppa_valueTimingAdvanceType1,
4795 { "valueTimingAdvanceType1", "lppa.valueTimingAdvanceType1",
4796 FT_UINT32, BASE_DEC, NULL, 0,
4797 "INTEGER_0_7690", HFILL }},
4798 { &hf_lppa_valueTimingAdvanceType2,
4799 { "valueTimingAdvanceType2", "lppa.valueTimingAdvanceType2",
4800 FT_UINT32, BASE_DEC, NULL, 0,
4801 "INTEGER_0_7690", HFILL }},
4802 { &hf_lppa_resultRSRP,
4803 { "resultRSRP", "lppa.resultRSRP",
4804 FT_UINT32, BASE_DEC, NULL, 0,
4805 NULL, HFILL }},
4806 { &hf_lppa_resultRSRQ,
4807 { "resultRSRQ", "lppa.resultRSRQ",
4808 FT_UINT32, BASE_DEC, NULL, 0,
4809 NULL, HFILL }},
4810 { &hf_lppa_MBSFNsubframeConfiguration_item,
4811 { "MBSFNsubframeConfigurationValue", "lppa.MBSFNsubframeConfigurationValue_element",
4812 FT_NONE, BASE_NONE, NULL, 0,
4813 NULL, HFILL }},
4814 { &hf_lppa_radioframeAllocationPeriod,
4815 { "radioframeAllocationPeriod", "lppa.radioframeAllocationPeriod",
4816 FT_UINT32, BASE_DEC, VALS(lppa_T_radioframeAllocationPeriod_vals), 0,
4817 NULL, HFILL }},
4818 { &hf_lppa_radioframeAllocationOffset,
4819 { "radioframeAllocationOffset", "lppa.radioframeAllocationOffset",
4820 FT_UINT32, BASE_DEC, NULL, 0,
4821 "INTEGER_0_7", HFILL }},
4822 { &hf_lppa_subframeAllocation,
4823 { "subframeAllocation", "lppa.subframeAllocation",
4824 FT_UINT32, BASE_DEC, VALS(lppa_Subframeallocation_vals), 0,
4825 NULL, HFILL }},
4826 { &hf_lppa_nRCellIdentity,
4827 { "nRCellIdentity", "lppa.nRCellIdentity",
4828 FT_BYTES, BASE_NONE, NULL, 0,
4829 NULL, HFILL }},
4830 { &hf_lppa_nPRSSubframePartA,
4831 { "nPRSSubframePartA", "lppa.nPRSSubframePartA_element",
4832 FT_NONE, BASE_NONE, NULL, 0,
4833 NULL, HFILL }},
4834 { &hf_lppa_nPRSSubframePartB,
4835 { "nPRSSubframePartB", "lppa.nPRSSubframePartB_element",
4836 FT_NONE, BASE_NONE, NULL, 0,
4837 NULL, HFILL }},
4838 { &hf_lppa_two,
4839 { "two", "lppa.two",
4840 FT_BYTES, BASE_NONE, NULL, 0,
4841 "BIT_STRING_SIZE_2", HFILL }},
4842 { &hf_lppa_four,
4843 { "four", "lppa.four",
4844 FT_BYTES, BASE_NONE, NULL, 0,
4845 "BIT_STRING_SIZE_4", HFILL }},
4846 { &hf_lppa_eight,
4847 { "eight", "lppa.eight",
4848 FT_BYTES, BASE_NONE, NULL, 0,
4849 "BIT_STRING_SIZE_8", HFILL }},
4850 { &hf_lppa_sixteen,
4851 { "sixteen", "lppa.sixteen",
4852 FT_BYTES, BASE_NONE, NULL, 0,
4853 "BIT_STRING_SIZE_16", HFILL }},
4854 { &hf_lppa_bitmapsforNPRS,
4855 { "bitmapsforNPRS", "lppa.bitmapsforNPRS",
4856 FT_UINT32, BASE_DEC, VALS(lppa_BitmapsforNPRS_vals), 0,
4857 NULL, HFILL }},
4858 { &hf_lppa_nPRSMutingConfiguration,
4859 { "nPRSMutingConfiguration", "lppa.nPRSMutingConfiguration",
4860 FT_UINT32, BASE_DEC, VALS(lppa_NPRSMutingConfiguration_vals), 0,
4861 NULL, HFILL }},
4862 { &hf_lppa_numberofNPRSOneOccasion,
4863 { "numberofNPRSOneOccasion", "lppa.numberofNPRSOneOccasion",
4864 FT_UINT32, BASE_DEC, VALS(lppa_T_numberofNPRSOneOccasion_vals), 0,
4865 NULL, HFILL }},
4866 { &hf_lppa_periodicityofNPRS,
4867 { "periodicityofNPRS", "lppa.periodicityofNPRS",
4868 FT_UINT32, BASE_DEC, VALS(lppa_T_periodicityofNPRS_vals), 0,
4869 NULL, HFILL }},
4870 { &hf_lppa_startingsubframeoffset,
4871 { "startingsubframeoffset", "lppa.startingsubframeoffset",
4872 FT_UINT32, BASE_DEC, VALS(lppa_T_startingsubframeoffset_vals), 0,
4873 NULL, HFILL }},
4874 { &hf_lppa_sIB1_NB_Subframe_TDD,
4875 { "sIB1-NB-Subframe-TDD", "lppa.sIB1_NB_Subframe_TDD",
4876 FT_UINT32, BASE_DEC, VALS(lppa_T_sIB1_NB_Subframe_TDD_vals), 0,
4877 NULL, HFILL }},
4878 { &hf_lppa_OTDOACells_item,
4879 { "OTDOACells item", "lppa.OTDOACells_item_element",
4880 FT_NONE, BASE_NONE, NULL, 0,
4881 NULL, HFILL }},
4882 { &hf_lppa_oTDOACellInfo,
4883 { "oTDOACellInfo", "lppa.oTDOACellInfo",
4884 FT_UINT32, BASE_DEC, NULL, 0,
4885 "OTDOACell_Information", HFILL }},
4886 { &hf_lppa_OTDOACell_Information_item,
4887 { "OTDOACell-Information-Item", "lppa.OTDOACell_Information_Item",
4888 FT_UINT32, BASE_DEC, VALS(lppa_OTDOACell_Information_Item_vals), 0,
4889 NULL, HFILL }},
4890 { &hf_lppa_pCI,
4891 { "pCI", "lppa.pCI",
4892 FT_UINT32, BASE_DEC, NULL, 0,
4893 NULL, HFILL }},
4894 { &hf_lppa_cellId,
4895 { "cellId", "lppa.cellId_element",
4896 FT_NONE, BASE_NONE, NULL, 0,
4897 "ECGI", HFILL }},
4898 { &hf_lppa_tAC,
4899 { "tAC", "lppa.tAC",
4900 FT_BYTES, BASE_NONE, NULL, 0,
4901 NULL, HFILL }},
4902 { &hf_lppa_eARFCN,
4903 { "eARFCN", "lppa.eARFCN",
4904 FT_UINT32, BASE_DEC, NULL, 0,
4905 NULL, HFILL }},
4906 { &hf_lppa_pRS_Bandwidth,
4907 { "pRS-Bandwidth", "lppa.pRS_Bandwidth",
4908 FT_UINT32, BASE_DEC, VALS(lppa_PRS_Bandwidth_vals), 0,
4909 NULL, HFILL }},
4910 { &hf_lppa_pRS_ConfigurationIndex,
4911 { "pRS-ConfigurationIndex", "lppa.pRS_ConfigurationIndex",
4912 FT_UINT32, BASE_DEC, NULL, 0,
4913 "PRS_Configuration_Index", HFILL }},
4914 { &hf_lppa_cPLength,
4915 { "cPLength", "lppa.cPLength",
4916 FT_UINT32, BASE_DEC, VALS(lppa_CPLength_vals), 0,
4917 NULL, HFILL }},
4918 { &hf_lppa_numberOfDlFrames,
4919 { "numberOfDlFrames", "lppa.numberOfDlFrames",
4920 FT_UINT32, BASE_DEC, VALS(lppa_NumberOfDlFrames_vals), 0,
4921 NULL, HFILL }},
4922 { &hf_lppa_numberOfAntennaPorts,
4923 { "numberOfAntennaPorts", "lppa.numberOfAntennaPorts",
4924 FT_UINT32, BASE_DEC, VALS(lppa_NumberOfAntennaPorts_vals), 0,
4925 NULL, HFILL }},
4926 { &hf_lppa_sFNInitialisationTime,
4927 { "sFNInitialisationTime", "lppa.sFNInitialisationTime",
4928 FT_BYTES, BASE_NONE, NULL, 0,
4929 NULL, HFILL }},
4930 { &hf_lppa_pRSMutingConfiguration,
4931 { "pRSMutingConfiguration", "lppa.pRSMutingConfiguration",
4932 FT_UINT32, BASE_DEC, VALS(lppa_PRSMutingConfiguration_vals), 0,
4933 NULL, HFILL }},
4934 { &hf_lppa_prsid,
4935 { "prsid", "lppa.prsid",
4936 FT_UINT32, BASE_DEC, NULL, 0,
4937 "PRS_ID", HFILL }},
4938 { &hf_lppa_tpid,
4939 { "tpid", "lppa.tpid",
4940 FT_UINT32, BASE_DEC, NULL, 0,
4941 "TP_ID", HFILL }},
4942 { &hf_lppa_tpType,
4943 { "tpType", "lppa.tpType",
4944 FT_UINT32, BASE_DEC, VALS(lppa_TP_Type_vals), 0,
4945 "TP_Type", HFILL }},
4946 { &hf_lppa_numberOfDlFrames_Extended,
4947 { "numberOfDlFrames-Extended", "lppa.numberOfDlFrames_Extended",
4948 FT_UINT32, BASE_DEC, NULL, 0,
4949 NULL, HFILL }},
4950 { &hf_lppa_crsCPlength,
4951 { "crsCPlength", "lppa.crsCPlength",
4952 FT_UINT32, BASE_DEC, VALS(lppa_CPLength_vals), 0,
4953 "CPLength", HFILL }},
4954 { &hf_lppa_mBSFNsubframeConfiguration,
4955 { "mBSFNsubframeConfiguration", "lppa.mBSFNsubframeConfiguration",
4956 FT_UINT32, BASE_DEC, NULL, 0,
4957 NULL, HFILL }},
4958 { &hf_lppa_nPRSConfiguration,
4959 { "nPRSConfiguration", "lppa.nPRSConfiguration_element",
4960 FT_NONE, BASE_NONE, NULL, 0,
4961 NULL, HFILL }},
4962 { &hf_lppa_offsetNBChanneltoEARFCN,
4963 { "offsetNBChanneltoEARFCN", "lppa.offsetNBChanneltoEARFCN",
4964 FT_UINT32, BASE_DEC, VALS(lppa_OffsetNBChanneltoEARFCN_vals), 0,
4965 NULL, HFILL }},
4966 { &hf_lppa_operationModeInfo,
4967 { "operationModeInfo", "lppa.operationModeInfo",
4968 FT_UINT32, BASE_DEC, VALS(lppa_OperationModeInfo_vals), 0,
4969 NULL, HFILL }},
4970 { &hf_lppa_nPRS_ID,
4971 { "nPRS-ID", "lppa.nPRS_ID",
4972 FT_UINT32, BASE_DEC, NULL, 0,
4973 "INTEGER_0_4095_", HFILL }},
4974 { &hf_lppa_dL_Bandwidth,
4975 { "dL-Bandwidth", "lppa.dL_Bandwidth",
4976 FT_UINT32, BASE_DEC, VALS(lppa_DL_Bandwidth_vals), 0,
4977 NULL, HFILL }},
4978 { &hf_lppa_pRSOccasionGroup,
4979 { "pRSOccasionGroup", "lppa.pRSOccasionGroup",
4980 FT_UINT32, BASE_DEC, VALS(lppa_PRSOccasionGroup_vals), 0,
4981 NULL, HFILL }},
4982 { &hf_lppa_pRSFreqHoppingConfig,
4983 { "pRSFreqHoppingConfig", "lppa.pRSFreqHoppingConfig_element",
4984 FT_NONE, BASE_NONE, NULL, 0,
4985 "PRSFrequencyHoppingConfiguration", HFILL }},
4986 { &hf_lppa_repetitionNumberofSIB1_NB,
4987 { "repetitionNumberofSIB1-NB", "lppa.repetitionNumberofSIB1_NB",
4988 FT_UINT32, BASE_DEC, VALS(lppa_RepetitionNumberofSIB1_NB_vals), 0,
4989 NULL, HFILL }},
4990 { &hf_lppa_nPRSSequenceInfo,
4991 { "nPRSSequenceInfo", "lppa.nPRSSequenceInfo",
4992 FT_UINT32, BASE_DEC, NULL, 0,
4993 NULL, HFILL }},
4994 { &hf_lppa_nPRSType2,
4995 { "nPRSType2", "lppa.nPRSType2_element",
4996 FT_NONE, BASE_NONE, NULL, 0,
4997 "NPRSConfiguration", HFILL }},
4998 { &hf_lppa_tddConfiguration,
4999 { "tddConfiguration", "lppa.tddConfiguration_element",
5000 FT_NONE, BASE_NONE, NULL, 0,
5001 NULL, HFILL }},
5002 { &hf_lppa_PosSIBs_item,
5003 { "PosSIBs item", "lppa.PosSIBs_item_element",
5004 FT_NONE, BASE_NONE, NULL, 0,
5005 NULL, HFILL }},
5006 { &hf_lppa_posSIB_Segments,
5007 { "posSIB-Segments", "lppa.posSIB_Segments",
5008 FT_UINT32, BASE_DEC, NULL, 0,
5009 NULL, HFILL }},
5010 { &hf_lppa_assistanceInformationMetaData,
5011 { "assistanceInformationMetaData", "lppa.assistanceInformationMetaData_element",
5012 FT_NONE, BASE_NONE, NULL, 0,
5013 NULL, HFILL }},
5014 { &hf_lppa_broadcastPriority,
5015 { "broadcastPriority", "lppa.broadcastPriority",
5016 FT_UINT32, BASE_DEC, NULL, 0,
5017 "INTEGER_1_16_", HFILL }},
5018 { &hf_lppa_PosSIB_Segments_item,
5019 { "PosSIB-Segments item", "lppa.PosSIB_Segments_item_element",
5020 FT_NONE, BASE_NONE, NULL, 0,
5021 NULL, HFILL }},
5022 { &hf_lppa_assistanceDataSIBelement,
5023 { "assistanceDataSIBelement", "lppa.assistanceDataSIBelement",
5024 FT_BYTES, BASE_NONE, NULL, 0,
5025 "OCTET_STRING", HFILL }},
5026 { &hf_lppa_thirty_two,
5027 { "thirty-two", "lppa.thirty_two",
5028 FT_BYTES, BASE_NONE, NULL, 0,
5029 "BIT_STRING_SIZE_32", HFILL }},
5030 { &hf_lppa_sixty_four,
5031 { "sixty-four", "lppa.sixty_four",
5032 FT_BYTES, BASE_NONE, NULL, 0,
5033 "BIT_STRING_SIZE_64", HFILL }},
5034 { &hf_lppa_one_hundred_and_twenty_eight,
5035 { "one-hundred-and-twenty-eight", "lppa.one_hundred_and_twenty_eight",
5036 FT_BYTES, BASE_NONE, NULL, 0,
5037 "BIT_STRING_SIZE_128", HFILL }},
5038 { &hf_lppa_two_hundred_and_fifty_six,
5039 { "two-hundred-and-fifty-six", "lppa.two_hundred_and_fifty_six",
5040 FT_BYTES, BASE_NONE, NULL, 0,
5041 "BIT_STRING_SIZE_256", HFILL }},
5042 { &hf_lppa_five_hundred_and_twelve,
5043 { "five-hundred-and-twelve", "lppa.five_hundred_and_twelve",
5044 FT_BYTES, BASE_NONE, NULL, 0,
5045 "BIT_STRING_SIZE_512", HFILL }},
5046 { &hf_lppa_one_thousand_and_twenty_four,
5047 { "one-thousand-and-twenty-four", "lppa.one_thousand_and_twenty_four",
5048 FT_BYTES, BASE_NONE, NULL, 0,
5049 "BIT_STRING_SIZE_1024", HFILL }},
5050 { &hf_lppa_noOfFreqHoppingBands,
5051 { "noOfFreqHoppingBands", "lppa.noOfFreqHoppingBands",
5052 FT_UINT32, BASE_DEC, VALS(lppa_NumberOfFrequencyHoppingBands_vals), 0,
5053 "NumberOfFrequencyHoppingBands", HFILL }},
5054 { &hf_lppa_bandPositions,
5055 { "bandPositions", "lppa.bandPositions",
5056 FT_UINT32, BASE_DEC, NULL, 0,
5057 "SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex", HFILL }},
5058 { &hf_lppa_bandPositions_item,
5059 { "NarrowBandIndex", "lppa.NarrowBandIndex",
5060 FT_UINT32, BASE_DEC, NULL, 0,
5061 NULL, HFILL }},
5062 { &hf_lppa_numberOfTransmissions,
5063 { "numberOfTransmissions", "lppa.numberOfTransmissions",
5064 FT_UINT32, BASE_DEC, NULL, 0,
5065 "INTEGER_0_500_", HFILL }},
5066 { &hf_lppa_bandwidth,
5067 { "bandwidth", "lppa.bandwidth",
5068 FT_UINT32, BASE_DEC, NULL, 0,
5069 "INTEGER_1_100_", HFILL }},
5070 { &hf_lppa_ResultRSRP_item,
5071 { "ResultRSRP-Item", "lppa.ResultRSRP_Item_element",
5072 FT_NONE, BASE_NONE, NULL, 0,
5073 NULL, HFILL }},
5074 { &hf_lppa_eCGI,
5075 { "eCGI", "lppa.eCGI_element",
5076 FT_NONE, BASE_NONE, NULL, 0,
5077 NULL, HFILL }},
5078 { &hf_lppa_valueRSRP,
5079 { "valueRSRP", "lppa.valueRSRP",
5080 FT_UINT32, BASE_DEC, NULL, 0,
5081 NULL, HFILL }},
5082 { &hf_lppa_ResultRSRQ_item,
5083 { "ResultRSRQ-Item", "lppa.ResultRSRQ_Item_element",
5084 FT_NONE, BASE_NONE, NULL, 0,
5085 NULL, HFILL }},
5086 { &hf_lppa_valueRSRQ,
5087 { "valueRSRQ", "lppa.valueRSRQ",
5088 FT_UINT32, BASE_DEC, NULL, 0,
5089 NULL, HFILL }},
5090 { &hf_lppa_ResultGERAN_item,
5091 { "ResultGERAN-Item", "lppa.ResultGERAN_Item_element",
5092 FT_NONE, BASE_NONE, NULL, 0,
5093 NULL, HFILL }},
5094 { &hf_lppa_bCCH,
5095 { "bCCH", "lppa.bCCH",
5096 FT_UINT32, BASE_DEC, NULL, 0,
5097 NULL, HFILL }},
5098 { &hf_lppa_physCellIDGERAN,
5099 { "physCellIDGERAN", "lppa.physCellIDGERAN",
5100 FT_UINT32, BASE_DEC, NULL, 0,
5101 NULL, HFILL }},
5102 { &hf_lppa_rSSI,
5103 { "rSSI", "lppa.rSSI",
5104 FT_UINT32, BASE_DEC, NULL, 0,
5105 NULL, HFILL }},
5106 { &hf_lppa_ResultUTRAN_item,
5107 { "ResultUTRAN-Item", "lppa.ResultUTRAN_Item_element",
5108 FT_NONE, BASE_NONE, NULL, 0,
5109 NULL, HFILL }},
5110 { &hf_lppa_uARFCN,
5111 { "uARFCN", "lppa.uARFCN",
5112 FT_UINT32, BASE_DEC, NULL, 0,
5113 NULL, HFILL }},
5114 { &hf_lppa_physCellIDUTRAN,
5115 { "physCellIDUTRAN", "lppa.physCellIDUTRAN",
5116 FT_UINT32, BASE_DEC, VALS(lppa_T_physCellIDUTRAN_vals), 0,
5117 NULL, HFILL }},
5118 { &hf_lppa_physCellIDUTRA_FDD,
5119 { "physCellIDUTRA-FDD", "lppa.physCellIDUTRA_FDD",
5120 FT_UINT32, BASE_DEC, NULL, 0,
5121 NULL, HFILL }},
5122 { &hf_lppa_physCellIDUTRA_TDD,
5123 { "physCellIDUTRA-TDD", "lppa.physCellIDUTRA_TDD",
5124 FT_UINT32, BASE_DEC, NULL, 0,
5125 NULL, HFILL }},
5126 { &hf_lppa_uTRA_RSCP,
5127 { "uTRA-RSCP", "lppa.uTRA_RSCP",
5128 FT_INT32, BASE_DEC, NULL, 0,
5129 NULL, HFILL }},
5130 { &hf_lppa_uTRA_EcN0,
5131 { "uTRA-EcN0", "lppa.uTRA_EcN0",
5132 FT_UINT32, BASE_DEC, NULL, 0,
5133 NULL, HFILL }},
5134 { &hf_lppa_ResultNR_item,
5135 { "ResultNR-Item", "lppa.ResultNR_Item_element",
5136 FT_NONE, BASE_NONE, NULL, 0,
5137 NULL, HFILL }},
5138 { &hf_lppa_nRARFCN,
5139 { "nRARFCN", "lppa.nRARFCN",
5140 FT_UINT32, BASE_DEC, NULL, 0,
5141 NULL, HFILL }},
5142 { &hf_lppa_nRPCI,
5143 { "nRPCI", "lppa.nRPCI",
5144 FT_UINT32, BASE_DEC, NULL, 0,
5145 NULL, HFILL }},
5146 { &hf_lppa_sS_NRRSRP,
5147 { "sS-NRRSRP", "lppa.sS_NRRSRP",
5148 FT_UINT32, BASE_DEC, NULL, 0,
5149 NULL, HFILL }},
5150 { &hf_lppa_sS_NRRSRQ,
5151 { "sS-NRRSRQ", "lppa.sS_NRRSRQ",
5152 FT_UINT32, BASE_DEC, NULL, 0,
5153 NULL, HFILL }},
5154 { &hf_lppa_ResultsPerSSB_Index_List_item,
5155 { "ResultsPerSSB-Index-Item", "lppa.ResultsPerSSB_Index_Item_element",
5156 FT_NONE, BASE_NONE, NULL, 0,
5157 NULL, HFILL }},
5158 { &hf_lppa_sSB_Index,
5159 { "sSB-Index", "lppa.sSB_Index",
5160 FT_UINT32, BASE_DEC, NULL, 0,
5161 NULL, HFILL }},
5162 { &hf_lppa_sS_NRRSRPBeamValue,
5163 { "sS-NRRSRPBeamValue", "lppa.sS_NRRSRPBeamValue",
5164 FT_UINT32, BASE_DEC, NULL, 0,
5165 "SS_NRRSRP", HFILL }},
5166 { &hf_lppa_sS_NRRSRQBeamValue,
5167 { "sS-NRRSRQBeamValue", "lppa.sS_NRRSRQBeamValue",
5168 FT_UINT32, BASE_DEC, NULL, 0,
5169 "SS_NRRSRQ", HFILL }},
5170 { &hf_lppa_SRSConfigurationForAllCells_item,
5171 { "SRSConfigurationForOneCell", "lppa.SRSConfigurationForOneCell_element",
5172 FT_NONE, BASE_NONE, NULL, 0,
5173 NULL, HFILL }},
5174 { &hf_lppa_pci,
5175 { "pci", "lppa.pci",
5176 FT_UINT32, BASE_DEC, NULL, 0,
5177 NULL, HFILL }},
5178 { &hf_lppa_ul_earfcn,
5179 { "ul-earfcn", "lppa.ul_earfcn",
5180 FT_UINT32, BASE_DEC, NULL, 0,
5181 "EARFCN", HFILL }},
5182 { &hf_lppa_ul_bandwidth,
5183 { "ul-bandwidth", "lppa.ul_bandwidth",
5184 FT_UINT32, BASE_DEC, VALS(lppa_T_ul_bandwidth_vals), 0,
5185 NULL, HFILL }},
5186 { &hf_lppa_ul_cyclicPrefixLength,
5187 { "ul-cyclicPrefixLength", "lppa.ul_cyclicPrefixLength",
5188 FT_UINT32, BASE_DEC, VALS(lppa_CPLength_vals), 0,
5189 "CPLength", HFILL }},
5190 { &hf_lppa_srs_BandwidthConfig,
5191 { "srs-BandwidthConfig", "lppa.srs_BandwidthConfig",
5192 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_BandwidthConfig_vals), 0,
5193 NULL, HFILL }},
5194 { &hf_lppa_srs_Bandwidth,
5195 { "srs-Bandwidth", "lppa.srs_Bandwidth",
5196 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_Bandwidth_vals), 0,
5197 NULL, HFILL }},
5198 { &hf_lppa_srs_AntennaPort,
5199 { "srs-AntennaPort", "lppa.srs_AntennaPort",
5200 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_AntennaPort_vals), 0,
5201 NULL, HFILL }},
5202 { &hf_lppa_srs_HoppingBandwidth,
5203 { "srs-HoppingBandwidth", "lppa.srs_HoppingBandwidth",
5204 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_HoppingBandwidth_vals), 0,
5205 NULL, HFILL }},
5206 { &hf_lppa_srs_cyclicShift,
5207 { "srs-cyclicShift", "lppa.srs_cyclicShift",
5208 FT_UINT32, BASE_DEC, VALS(lppa_T_srs_cyclicShift_vals), 0,
5209 NULL, HFILL }},
5210 { &hf_lppa_srs_ConfigIndex,
5211 { "srs-ConfigIndex", "lppa.srs_ConfigIndex",
5212 FT_UINT32, BASE_DEC, NULL, 0,
5213 "INTEGER_0_1023", HFILL }},
5214 { &hf_lppa_maxUpPts,
5215 { "maxUpPts", "lppa.maxUpPts",
5216 FT_UINT32, BASE_DEC, VALS(lppa_T_maxUpPts_vals), 0,
5217 NULL, HFILL }},
5218 { &hf_lppa_transmissionComb,
5219 { "transmissionComb", "lppa.transmissionComb",
5220 FT_UINT32, BASE_DEC, NULL, 0,
5221 "INTEGER_0_1", HFILL }},
5222 { &hf_lppa_freqDomainPosition,
5223 { "freqDomainPosition", "lppa.freqDomainPosition",
5224 FT_UINT32, BASE_DEC, NULL, 0,
5225 "INTEGER_0_23", HFILL }},
5226 { &hf_lppa_groupHoppingEnabled,
5227 { "groupHoppingEnabled", "lppa.groupHoppingEnabled",
5228 FT_BOOLEAN, BASE_NONE, NULL, 0,
5229 "BOOLEAN", HFILL }},
5230 { &hf_lppa_deltaSS,
5231 { "deltaSS", "lppa.deltaSS",
5232 FT_UINT32, BASE_DEC, NULL, 0,
5233 "INTEGER_0_29", HFILL }},
5234 { &hf_lppa_sfnInitialisationTime,
5235 { "sfnInitialisationTime", "lppa.sfnInitialisationTime",
5236 FT_BYTES, BASE_NONE, NULL, 0,
5237 NULL, HFILL }},
5238 { &hf_lppa_oneFrame,
5239 { "oneFrame", "lppa.oneFrame",
5240 FT_BYTES, BASE_NONE, NULL, 0,
5241 "BIT_STRING_SIZE_6", HFILL }},
5242 { &hf_lppa_fourFrames,
5243 { "fourFrames", "lppa.fourFrames",
5244 FT_BYTES, BASE_NONE, NULL, 0,
5245 "BIT_STRING_SIZE_24", HFILL }},
5246 { &hf_lppa_SystemInformation_item,
5247 { "SystemInformation item", "lppa.SystemInformation_item_element",
5248 FT_NONE, BASE_NONE, NULL, 0,
5249 NULL, HFILL }},
5250 { &hf_lppa_broadcastPeriodicity,
5251 { "broadcastPeriodicity", "lppa.broadcastPeriodicity",
5252 FT_UINT32, BASE_DEC, VALS(lppa_BroadcastPeriodicity_vals), 0,
5253 NULL, HFILL }},
5254 { &hf_lppa_posSIBs,
5255 { "posSIBs", "lppa.posSIBs",
5256 FT_UINT32, BASE_DEC, NULL, 0,
5257 NULL, HFILL }},
5258 { &hf_lppa_subframeAssignment,
5259 { "subframeAssignment", "lppa.subframeAssignment",
5260 FT_UINT32, BASE_DEC, VALS(lppa_T_subframeAssignment_vals), 0,
5261 NULL, HFILL }},
5262 { &hf_lppa_timingAdvanceType1,
5263 { "timingAdvanceType1", "lppa.timingAdvanceType1",
5264 FT_UINT32, BASE_DEC, NULL, 0,
5265 "INTEGER_0_7690", HFILL }},
5266 { &hf_lppa_timingAdvanceType2,
5267 { "timingAdvanceType2", "lppa.timingAdvanceType2",
5268 FT_UINT32, BASE_DEC, NULL, 0,
5269 "INTEGER_0_7690", HFILL }},
5270 { &hf_lppa_srsConfiguration,
5271 { "srsConfiguration", "lppa.srsConfiguration",
5272 FT_UINT32, BASE_DEC, NULL, 0,
5273 "SRSConfigurationForAllCells", HFILL }},
5274 { &hf_lppa_WLANMeasurementQuantities_item,
5275 { "ProtocolIE-Single-Container", "lppa.ProtocolIE_Single_Container_element",
5276 FT_NONE, BASE_NONE, NULL, 0,
5277 NULL, HFILL }},
5278 { &hf_lppa_wLANMeasurementQuantitiesValue,
5279 { "wLANMeasurementQuantitiesValue", "lppa.wLANMeasurementQuantitiesValue",
5280 FT_UINT32, BASE_DEC, VALS(lppa_WLANMeasurementQuantitiesValue_vals), 0,
5281 NULL, HFILL }},
5282 { &hf_lppa_WLANMeasurementResult_item,
5283 { "WLANMeasurementResult-Item", "lppa.WLANMeasurementResult_Item_element",
5284 FT_NONE, BASE_NONE, NULL, 0,
5285 NULL, HFILL }},
5286 { &hf_lppa_wLAN_RSSI,
5287 { "wLAN-RSSI", "lppa.wLAN_RSSI",
5288 FT_UINT32, BASE_DEC, NULL, 0,
5289 NULL, HFILL }},
5290 { &hf_lppa_sSID,
5291 { "sSID", "lppa.sSID",
5292 FT_BYTES, BASE_NONE, NULL, 0,
5293 NULL, HFILL }},
5294 { &hf_lppa_bSSID,
5295 { "bSSID", "lppa.bSSID",
5296 FT_ETHER, BASE_NONE, NULL, 0,
5297 NULL, HFILL }},
5298 { &hf_lppa_hESSID,
5299 { "hESSID", "lppa.hESSID",
5300 FT_ETHER, BASE_NONE, NULL, 0,
5301 NULL, HFILL }},
5302 { &hf_lppa_operatingClass,
5303 { "operatingClass", "lppa.operatingClass",
5304 FT_UINT32, BASE_DEC, NULL, 0,
5305 "WLANOperatingClass", HFILL }},
5306 { &hf_lppa_countryCode,
5307 { "countryCode", "lppa.countryCode",
5308 FT_UINT32, BASE_DEC, VALS(lppa_WLANCountryCode_vals), 0,
5309 "WLANCountryCode", HFILL }},
5310 { &hf_lppa_wLANChannelList,
5311 { "wLANChannelList", "lppa.wLANChannelList",
5312 FT_UINT32, BASE_DEC, NULL, 0,
5313 NULL, HFILL }},
5314 { &hf_lppa_wLANBand,
5315 { "wLANBand", "lppa.wLANBand",
5316 FT_UINT32, BASE_DEC, VALS(lppa_WLANBand_vals), 0,
5317 NULL, HFILL }},
5318 { &hf_lppa_WLANChannelList_item,
5319 { "WLANChannel", "lppa.WLANChannel",
5320 FT_UINT32, BASE_DEC, NULL, 0,
5321 NULL, HFILL }},
5322 { &hf_lppa_protocolIEs,
5323 { "protocolIEs", "lppa.protocolIEs",
5324 FT_UINT32, BASE_DEC, NULL, 0,
5325 "ProtocolIE_Container", HFILL }},
5326 { &hf_lppa_OTDOA_Information_Type_item,
5327 { "ProtocolIE-Single-Container", "lppa.ProtocolIE_Single_Container_element",
5328 FT_NONE, BASE_NONE, NULL, 0,
5329 NULL, HFILL }},
5330 { &hf_lppa_oTDOA_Information_Type_Item,
5331 { "oTDOA-Information-Type-Item", "lppa.oTDOA_Information_Type_Item",
5332 FT_UINT32, BASE_DEC, VALS(lppa_OTDOA_Information_Item_vals), 0,
5333 "OTDOA_Information_Item", HFILL }},
5334 { &hf_lppa_privateIEs,
5335 { "privateIEs", "lppa.privateIEs",
5336 FT_UINT32, BASE_DEC, NULL, 0,
5337 "PrivateIE_Container", HFILL }},
5338 { &hf_lppa_initiatingMessage,
5339 { "initiatingMessage", "lppa.initiatingMessage_element",
5340 FT_NONE, BASE_NONE, NULL, 0,
5341 NULL, HFILL }},
5342 { &hf_lppa_successfulOutcome,
5343 { "successfulOutcome", "lppa.successfulOutcome_element",
5344 FT_NONE, BASE_NONE, NULL, 0,
5345 NULL, HFILL }},
5346 { &hf_lppa_unsuccessfulOutcome,
5347 { "unsuccessfulOutcome", "lppa.unsuccessfulOutcome_element",
5348 FT_NONE, BASE_NONE, NULL, 0,
5349 NULL, HFILL }},
5350 { &hf_lppa_initiatingMessagevalue,
5351 { "value", "lppa.value_element",
5352 FT_NONE, BASE_NONE, NULL, 0,
5353 "InitiatingMessage_value", HFILL }},
5354 { &hf_lppa_successfulOutcome_value,
5355 { "value", "lppa.value_element",
5356 FT_NONE, BASE_NONE, NULL, 0,
5357 "SuccessfulOutcome_value", HFILL }},
5358 { &hf_lppa_unsuccessfulOutcome_value,
5359 { "value", "lppa.value_element",
5360 FT_NONE, BASE_NONE, NULL, 0,
5361 "UnsuccessfulOutcome_value", HFILL }},
5364 /* List of subtrees */
5365 static int* ett[] = {
5366 &ett_lppa,
5367 &ett_lppa_PrivateIE_ID,
5368 &ett_lppa_ProtocolIE_Container,
5369 &ett_lppa_ProtocolIE_Field,
5370 &ett_lppa_ProtocolExtensionContainer,
5371 &ett_lppa_ProtocolExtensionField,
5372 &ett_lppa_PrivateIE_Container,
5373 &ett_lppa_PrivateIE_Field,
5374 &ett_lppa_Add_OTDOACells,
5375 &ett_lppa_Add_OTDOACells_item,
5376 &ett_lppa_Add_OTDOACell_Information,
5377 &ett_lppa_Assistance_Information,
5378 &ett_lppa_AssistanceInformationFailureList,
5379 &ett_lppa_AssistanceInformationFailureList_item,
5380 &ett_lppa_AssistanceInformationMetaData,
5381 &ett_lppa_BitmapsforNPRS,
5382 &ett_lppa_Cause,
5383 &ett_lppa_CriticalityDiagnostics,
5384 &ett_lppa_CriticalityDiagnostics_IE_List,
5385 &ett_lppa_CriticalityDiagnostics_IE_List_item,
5386 &ett_lppa_E_CID_MeasurementResult,
5387 &ett_lppa_ECGI,
5388 &ett_lppa_E_UTRANAccessPointPosition,
5389 &ett_lppa_InterRATMeasurementQuantities,
5390 &ett_lppa_InterRATMeasurementQuantities_Item,
5391 &ett_lppa_InterRATMeasurementResult,
5392 &ett_lppa_InterRATMeasuredResultsValue,
5393 &ett_lppa_MeasurementQuantities,
5394 &ett_lppa_MeasurementQuantities_Item,
5395 &ett_lppa_MeasuredResults,
5396 &ett_lppa_MeasuredResultsValue,
5397 &ett_lppa_MBSFNsubframeConfiguration,
5398 &ett_lppa_MBSFNsubframeConfigurationValue,
5399 &ett_lppa_NR_CGI,
5400 &ett_lppa_NPRSConfiguration,
5401 &ett_lppa_NPRSMutingConfiguration,
5402 &ett_lppa_NPRSSubframePartA,
5403 &ett_lppa_NPRSSubframePartB,
5404 &ett_lppa_OTDOACells,
5405 &ett_lppa_OTDOACells_item,
5406 &ett_lppa_OTDOACell_Information,
5407 &ett_lppa_OTDOACell_Information_Item,
5408 &ett_lppa_PosSIBs,
5409 &ett_lppa_PosSIBs_item,
5410 &ett_lppa_PosSIB_Segments,
5411 &ett_lppa_PosSIB_Segments_item,
5412 &ett_lppa_PRSMutingConfiguration,
5413 &ett_lppa_PRSFrequencyHoppingConfiguration,
5414 &ett_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex,
5415 &ett_lppa_RequestedSRSTransmissionCharacteristics,
5416 &ett_lppa_ResultRSRP,
5417 &ett_lppa_ResultRSRP_Item,
5418 &ett_lppa_ResultRSRQ,
5419 &ett_lppa_ResultRSRQ_Item,
5420 &ett_lppa_ResultGERAN,
5421 &ett_lppa_ResultGERAN_Item,
5422 &ett_lppa_ResultUTRAN,
5423 &ett_lppa_ResultUTRAN_Item,
5424 &ett_lppa_T_physCellIDUTRAN,
5425 &ett_lppa_ResultNR,
5426 &ett_lppa_ResultNR_Item,
5427 &ett_lppa_ResultsPerSSB_Index_List,
5428 &ett_lppa_ResultsPerSSB_Index_Item,
5429 &ett_lppa_SRSConfigurationForAllCells,
5430 &ett_lppa_SRSConfigurationForOneCell,
5431 &ett_lppa_Subframeallocation,
5432 &ett_lppa_SystemInformation,
5433 &ett_lppa_SystemInformation_item,
5434 &ett_lppa_TDDConfiguration,
5435 &ett_lppa_ULConfiguration,
5436 &ett_lppa_WLANMeasurementQuantities,
5437 &ett_lppa_WLANMeasurementQuantities_Item,
5438 &ett_lppa_WLANMeasurementResult,
5439 &ett_lppa_WLANMeasurementResult_Item,
5440 &ett_lppa_WLANChannelList,
5441 &ett_lppa_E_CIDMeasurementInitiationRequest,
5442 &ett_lppa_E_CIDMeasurementInitiationResponse,
5443 &ett_lppa_E_CIDMeasurementInitiationFailure,
5444 &ett_lppa_E_CIDMeasurementFailureIndication,
5445 &ett_lppa_E_CIDMeasurementReport,
5446 &ett_lppa_E_CIDMeasurementTerminationCommand,
5447 &ett_lppa_OTDOAInformationRequest,
5448 &ett_lppa_OTDOA_Information_Type,
5449 &ett_lppa_OTDOA_Information_Type_Item,
5450 &ett_lppa_OTDOAInformationResponse,
5451 &ett_lppa_OTDOAInformationFailure,
5452 &ett_lppa_UTDOAInformationRequest,
5453 &ett_lppa_UTDOAInformationResponse,
5454 &ett_lppa_UTDOAInformationFailure,
5455 &ett_lppa_UTDOAInformationUpdate,
5456 &ett_lppa_AssistanceInformationControl,
5457 &ett_lppa_AssistanceInformationFeedback,
5458 &ett_lppa_ErrorIndication,
5459 &ett_lppa_PrivateMessage,
5460 &ett_lppa_LPPA_PDU,
5461 &ett_lppa_InitiatingMessage,
5462 &ett_lppa_SuccessfulOutcome,
5463 &ett_lppa_UnsuccessfulOutcome,
5466 /* Register protocol */
5467 proto_lppa = proto_register_protocol(PNAME, PSNAME, PFNAME);
5468 register_dissector("lppa", dissect_LPPA_PDU_PDU, proto_lppa);
5470 /* Register fields and subtrees */
5471 proto_register_field_array(proto_lppa, hf, array_length(hf));
5472 proto_register_subtree_array(ett, array_length(ett));
5474 /* Register dissector tables */
5475 lppa_ies_dissector_table = register_dissector_table("lppa.ies", "LPPA-PROTOCOL-IES", proto_lppa, FT_UINT32, BASE_DEC);
5476 lppa_extension_dissector_table = register_dissector_table("lppa.extension", "LPPA-PROTOCOL-EXTENSION", proto_lppa, FT_UINT32, BASE_DEC);
5477 lppa_proc_imsg_dissector_table = register_dissector_table("lppa.proc.imsg", "LPPA-ELEMENTARY-PROCEDURE InitiatingMessage", proto_lppa, FT_UINT32, BASE_DEC);
5478 lppa_proc_sout_dissector_table = register_dissector_table("lppa.proc.sout", "LPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_lppa, FT_UINT32, BASE_DEC);
5479 lppa_proc_uout_dissector_table = register_dissector_table("lppa.proc.uout", "LPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_lppa, FT_UINT32, BASE_DEC);
5482 /*--- proto_reg_handoff_lppa ---------------------------------------*/
5483 void
5484 proto_reg_handoff_lppa(void)
5486 dissector_add_uint("lppa.ies", id_MeasurementQuantities_Item, create_dissector_handle(dissect_MeasurementQuantities_Item_PDU, proto_lppa));
5487 dissector_add_uint("lppa.ies", id_ReportCharacteristics, create_dissector_handle(dissect_ReportCharacteristics_PDU, proto_lppa));
5488 dissector_add_uint("lppa.ies", id_MeasurementPeriodicity, create_dissector_handle(dissect_MeasurementPeriodicity_PDU, proto_lppa));
5489 dissector_add_uint("lppa.ies", id_MeasurementQuantities, create_dissector_handle(dissect_MeasurementQuantities_PDU, proto_lppa));
5490 dissector_add_uint("lppa.ies", id_E_CID_MeasurementResult, create_dissector_handle(dissect_E_CID_MeasurementResult_PDU, proto_lppa));
5491 dissector_add_uint("lppa.ies", id_OTDOA_Information_Type_Group, create_dissector_handle(dissect_OTDOA_Information_Type_PDU, proto_lppa));
5492 dissector_add_uint("lppa.ies", id_OTDOA_Information_Type_Item, create_dissector_handle(dissect_OTDOA_Information_Type_Item_PDU, proto_lppa));
5493 dissector_add_uint("lppa.ies", id_OTDOACells, create_dissector_handle(dissect_OTDOACells_PDU, proto_lppa));
5494 dissector_add_uint("lppa.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_lppa));
5495 dissector_add_uint("lppa.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_lppa));
5496 dissector_add_uint("lppa.ies", id_E_SMLC_UE_Measurement_ID, create_dissector_handle(dissect_Measurement_ID_PDU, proto_lppa));
5497 dissector_add_uint("lppa.ies", id_eNB_UE_Measurement_ID, create_dissector_handle(dissect_Measurement_ID_PDU, proto_lppa));
5498 dissector_add_uint("lppa.ies", id_RequestedSRSTransmissionCharacteristics, create_dissector_handle(dissect_RequestedSRSTransmissionCharacteristics_PDU, proto_lppa));
5499 dissector_add_uint("lppa.ies", id_ULConfiguration, create_dissector_handle(dissect_ULConfiguration_PDU, proto_lppa));
5500 dissector_add_uint("lppa.ies", id_InterRATMeasurementQuantities, create_dissector_handle(dissect_InterRATMeasurementQuantities_PDU, proto_lppa));
5501 dissector_add_uint("lppa.ies", id_Cell_Portion_ID, create_dissector_handle(dissect_Cell_Portion_ID_PDU, proto_lppa));
5502 dissector_add_uint("lppa.ies", id_InterRATMeasurementResult, create_dissector_handle(dissect_InterRATMeasurementResult_PDU, proto_lppa));
5503 dissector_add_uint("lppa.ies", id_InterRATMeasurementQuantities_Item, create_dissector_handle(dissect_InterRATMeasurementQuantities_Item_PDU, proto_lppa));
5504 dissector_add_uint("lppa.ies", id_WLANMeasurementQuantities, create_dissector_handle(dissect_WLANMeasurementQuantities_PDU, proto_lppa));
5505 dissector_add_uint("lppa.ies", id_WLANMeasurementResult, create_dissector_handle(dissect_WLANMeasurementResult_PDU, proto_lppa));
5506 dissector_add_uint("lppa.ies", id_AddOTDOACells, create_dissector_handle(dissect_Add_OTDOACells_PDU, proto_lppa));
5507 dissector_add_uint("lppa.ies", id_WLANMeasurementQuantities_Item, create_dissector_handle(dissect_WLANMeasurementQuantities_Item_PDU, proto_lppa));
5508 dissector_add_uint("lppa.ies", id_Assistance_Information, create_dissector_handle(dissect_Assistance_Information_PDU, proto_lppa));
5509 dissector_add_uint("lppa.ies", id_Broadcast, create_dissector_handle(dissect_Broadcast_PDU, proto_lppa));
5510 dissector_add_uint("lppa.ies", id_AssistanceInformationFailureList, create_dissector_handle(dissect_AssistanceInformationFailureList_PDU, proto_lppa));
5511 dissector_add_uint("lppa.extension", id_ResultsPerSSB_Index_List, create_dissector_handle(dissect_ResultsPerSSB_Index_List_PDU, proto_lppa));
5512 dissector_add_uint("lppa.extension", id_NR_CGI, create_dissector_handle(dissect_NR_CGI_PDU, proto_lppa));
5513 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementInitiation, create_dissector_handle(dissect_E_CIDMeasurementInitiationRequest_PDU, proto_lppa));
5514 dissector_add_uint("lppa.proc.sout", id_e_CIDMeasurementInitiation, create_dissector_handle(dissect_E_CIDMeasurementInitiationResponse_PDU, proto_lppa));
5515 dissector_add_uint("lppa.proc.uout", id_e_CIDMeasurementInitiation, create_dissector_handle(dissect_E_CIDMeasurementInitiationFailure_PDU, proto_lppa));
5516 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementFailureIndication, create_dissector_handle(dissect_E_CIDMeasurementFailureIndication_PDU, proto_lppa));
5517 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementReport, create_dissector_handle(dissect_E_CIDMeasurementReport_PDU, proto_lppa));
5518 dissector_add_uint("lppa.proc.imsg", id_e_CIDMeasurementTermination, create_dissector_handle(dissect_E_CIDMeasurementTerminationCommand_PDU, proto_lppa));
5519 dissector_add_uint("lppa.proc.imsg", id_oTDOAInformationExchange, create_dissector_handle(dissect_OTDOAInformationRequest_PDU, proto_lppa));
5520 dissector_add_uint("lppa.proc.sout", id_oTDOAInformationExchange, create_dissector_handle(dissect_OTDOAInformationResponse_PDU, proto_lppa));
5521 dissector_add_uint("lppa.proc.uout", id_oTDOAInformationExchange, create_dissector_handle(dissect_OTDOAInformationFailure_PDU, proto_lppa));
5522 dissector_add_uint("lppa.proc.imsg", id_errorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_lppa));
5523 dissector_add_uint("lppa.proc.imsg", id_privateMessage, create_dissector_handle(dissect_PrivateMessage_PDU, proto_lppa));
5524 dissector_add_uint("lppa.proc.imsg", id_uTDOAInformationExchange, create_dissector_handle(dissect_UTDOAInformationRequest_PDU, proto_lppa));
5525 dissector_add_uint("lppa.proc.sout", id_uTDOAInformationExchange, create_dissector_handle(dissect_UTDOAInformationResponse_PDU, proto_lppa));
5526 dissector_add_uint("lppa.proc.uout", id_uTDOAInformationExchange, create_dissector_handle(dissect_UTDOAInformationFailure_PDU, proto_lppa));
5527 dissector_add_uint("lppa.proc.imsg", id_uTDOAInformationUpdate, create_dissector_handle(dissect_UTDOAInformationUpdate_PDU, proto_lppa));
5528 dissector_add_uint("lppa.proc.imsg", id_assistanceInformationControl, create_dissector_handle(dissect_AssistanceInformationControl_PDU, proto_lppa));
5529 dissector_add_uint("lppa.proc.imsg", id_assistanceInformationFeedback, create_dissector_handle(dissect_AssistanceInformationFeedback_PDU, proto_lppa));